{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal/index.mjs","../../node_modules/page/page.js","../../node_modules/attractions/utils/ripple.js","../../node_modules/attractions/utils/events.js","../../node_modules/attractions/utils/classes.js","../../node_modules/attractions/button/button.svelte","../../node_modules/attractions/text-field/text-field.svelte","../../node_modules/attractions/form-field/form-field.svelte","../../node_modules/brace/index.js","../../node_modules/svelte-ace/src/AceEditor.svelte","../../node_modules/brace/ext/emmet.js","../../node_modules/grpc-web/index.js","../../node_modules/google-protobuf/google-protobuf.js","../../svelte-app/components/Protos/transformer_pb.js","../../svelte-app/components/Protos/TransformerServiceClientPb.js","../../node_modules/brace/worker/json.js","../../node_modules/brace/mode/json.js","../../node_modules/brace/theme/chrome.js","../../node_modules/@auth0/auth0-spa-js/dist/auth0-spa-js.production.esm.js","../../node_modules/svelte/store/index.mjs","../../svelte-app/store.js","../../svelte-app/authService.js","../../node_modules/svelte-tree-viewer/src/store/index.js","../../node_modules/svelte-fa/src/utils.js","../../node_modules/svelte-fa/src/fa.svelte","../../node_modules/svelte-tree-viewer/src/helpers/domhelpers.js","../../node_modules/svelte-tree-viewer/src/helpers/clickHandlers.js","../../node_modules/@fortawesome/free-solid-svg-icons/index.es.js","../../node_modules/svelte-tree-viewer/src/Tree.svelte","../../node_modules/lodash/isObject.js","../../node_modules/lodash/_freeGlobal.js","../../node_modules/lodash/_root.js","../../node_modules/lodash/now.js","../../node_modules/lodash/_trimmedEndIndex.js","../../node_modules/lodash/_baseTrim.js","../../node_modules/lodash/_Symbol.js","../../node_modules/lodash/_getRawTag.js","../../node_modules/lodash/_objectToString.js","../../node_modules/lodash/_baseGetTag.js","../../node_modules/lodash/isObjectLike.js","../../node_modules/lodash/isSymbol.js","../../node_modules/lodash/toNumber.js","../../node_modules/lodash/debounce.js","../../node_modules/strict-uri-encode/index.js","../../node_modules/decode-uri-component/index.js","../../node_modules/split-on-first/index.js","../../node_modules/filter-obj/index.js","../../node_modules/query-string/index.js","../../svelte-app/components/Home.svelte","../../svelte-app/components/Login.svelte","../../svelte-app/App.svelte","../../svelte-app/main.js"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not \n let children = target.childNodes;\n // If target is , there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root.host) {\n return root;\n }\n return document;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentElement !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n node.parentNode.removeChild(node);\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element(nodes, name, attributes, svg) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => svg ? svg_element(name) : element(name));\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration();\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n node.style.setProperty(key, value, important ? 'important' : '');\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, bubbles = false) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, false, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nclass HtmlTag {\n constructor() {\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes) {\n super();\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\n\nconst active_docs = new Set();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n active_docs.add(doc);\n const stylesheet = doc.__svelte_stylesheet || (doc.__svelte_stylesheet = append_empty_stylesheet(node).sheet);\n const current_rules = doc.__svelte_rules || (doc.__svelte_rules = {});\n if (!current_rules[name]) {\n current_rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n active_docs.forEach(doc => {\n const stylesheet = doc.__svelte_stylesheet;\n let i = stylesheet.cssRules.length;\n while (i--)\n stylesheet.deleteRule(i);\n doc.__svelte_rules = {};\n });\n active_docs.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail);\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n }\n };\n}\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n}\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\nlet flushing = false;\nconst seen_callbacks = new Set();\nfunction flush() {\n if (flushing)\n return;\n flushing = true;\n do {\n // first, call beforeUpdate functions\n // and update components\n for (let i = 0; i < dirty_components.length; i += 1) {\n const component = dirty_components[i];\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n flushing = false;\n seen_callbacks.clear();\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'ismap',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, classes_to_add) {\n const attributes = Object.assign({}, ...args);\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nconst escaped = {\n '\"': '"',\n \"'\": ''',\n '&': '&',\n '<': '<',\n '>': '>'\n};\nfunction escape(html) {\n return String(html).replace(/[\"'&<>]/g, match => escaped[match]);\n}\nfunction escape_attribute_value(value) {\n return typeof value === 'string' ? escape(value) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(parent_component ? parent_component.$$.context : context || []),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n return ` ${name}${value === true ? '' : `=${typeof value === 'string' ? JSON.stringify(escape(value)) : `\"${value}\"`}`}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, on_mount, on_destroy, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = on_mount.map(run).filter(is_function);\n if (on_destroy) {\n on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: null,\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(parent_component ? parent_component.$$.context : options.context || []),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.41.0' }, detail), true));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * \n * \n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, escaped, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, listen, listen_dev, loop, loop_guard, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_each_argument, validate_each_keys, validate_slots, validate_store, xlink_attr };\n","(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.page = factory());\n}(this, (function () { 'use strict';\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {String} str\n * @return {Array}\n */\nfunction parse (str) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n continue\n }\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var suffix = res[6];\n var asterisk = res[7];\n\n var repeat = suffix === '+' || suffix === '*';\n var optional = suffix === '?' || suffix === '*';\n var delimiter = prefix || '/';\n var pattern = capture || group || (asterisk ? '.*' : '[^' + delimiter + ']+?');\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n pattern: escapeGroup(pattern)\n });\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index);\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path);\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {String} str\n * @return {Function}\n */\nfunction compile (str) {\n return tokensToFunction(parse(str))\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^' + tokens[i].pattern + '$');\n }\n }\n\n return function (obj) {\n var path = '';\n var data = obj || {};\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n\n continue\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received \"' + value + '\"')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encodeURIComponent(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n segment = encodeURIComponent(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {String} str\n * @return {String}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {String} group\n * @return {String}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {RegExp} re\n * @param {Array} keys\n * @return {RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys;\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {String}\n */\nfunction flags (options) {\n return options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {RegExp} path\n * @param {Array} keys\n * @return {RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {Array} path\n * @param {Array} keys\n * @param {Object} options\n * @return {RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {String} path\n * @param {Array} keys\n * @param {Object} options\n * @return {RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n var tokens = parse(path);\n var re = tokensToRegExp(tokens, options);\n\n // Attach keys back to the regexp.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] !== 'string') {\n keys.push(tokens[i]);\n }\n }\n\n return attachKeys(re, keys)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {Array} tokens\n * @param {Array} keys\n * @param {Object} options\n * @return {RegExp}\n */\nfunction tokensToRegExp (tokens, options) {\n options = options || {};\n\n var strict = options.strict;\n var end = options.end !== false;\n var route = '';\n var lastToken = tokens[tokens.length - 1];\n var endsWithSlash = typeof lastToken === 'string' && /\\/$/.test(lastToken);\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = token.pattern;\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (prefix) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithSlash ? route.slice(0, -2) : route) + '(?:\\\\/(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithSlash ? '' : '(?=\\\\/|$)';\n }\n\n return new RegExp('^' + route, flags(options))\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(String|RegExp|Array)} path\n * @param {Array} [keys]\n * @param {Object} [options]\n * @return {RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n keys = keys || [];\n\n if (!isarray(keys)) {\n options = keys;\n keys = [];\n } else if (!options) {\n options = {};\n }\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, keys, options)\n }\n\n if (isarray(path)) {\n return arrayToRegexp(path, keys, options)\n }\n\n return stringToRegexp(path, keys, options)\n}\n\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/**\n * Module dependencies.\n */\n\n \n\n /**\n * Short-cuts for global-object checks\n */\n\n var hasDocument = ('undefined' !== typeof document);\n var hasWindow = ('undefined' !== typeof window);\n var hasHistory = ('undefined' !== typeof history);\n var hasProcess = typeof process !== 'undefined';\n\n /**\n * Detect click event\n */\n var clickEvent = hasDocument && document.ontouchstart ? 'touchstart' : 'click';\n\n /**\n * To work properly with the URL\n * history.location generated polyfill in https://github.com/devote/HTML5-History-API\n */\n\n var isLocation = hasWindow && !!(window.history.location || window.location);\n\n /**\n * The page instance\n * @api private\n */\n function Page() {\n // public things\n this.callbacks = [];\n this.exits = [];\n this.current = '';\n this.len = 0;\n\n // private things\n this._decodeURLComponents = true;\n this._base = '';\n this._strict = false;\n this._running = false;\n this._hashbang = false;\n\n // bound functions\n this.clickHandler = this.clickHandler.bind(this);\n this._onpopstate = this._onpopstate.bind(this);\n }\n\n /**\n * Configure the instance of page. This can be called multiple times.\n *\n * @param {Object} options\n * @api public\n */\n\n Page.prototype.configure = function(options) {\n var opts = options || {};\n\n this._window = opts.window || (hasWindow && window);\n this._decodeURLComponents = opts.decodeURLComponents !== false;\n this._popstate = opts.popstate !== false && hasWindow;\n this._click = opts.click !== false && hasDocument;\n this._hashbang = !!opts.hashbang;\n\n var _window = this._window;\n if(this._popstate) {\n _window.addEventListener('popstate', this._onpopstate, false);\n } else if(hasWindow) {\n _window.removeEventListener('popstate', this._onpopstate, false);\n }\n\n if (this._click) {\n _window.document.addEventListener(clickEvent, this.clickHandler, false);\n } else if(hasDocument) {\n _window.document.removeEventListener(clickEvent, this.clickHandler, false);\n }\n\n if(this._hashbang && hasWindow && !hasHistory) {\n _window.addEventListener('hashchange', this._onpopstate, false);\n } else if(hasWindow) {\n _window.removeEventListener('hashchange', this._onpopstate, false);\n }\n };\n\n /**\n * Get or set basepath to `path`.\n *\n * @param {string} path\n * @api public\n */\n\n Page.prototype.base = function(path) {\n if (0 === arguments.length) return this._base;\n this._base = path;\n };\n\n /**\n * Gets the `base`, which depends on whether we are using History or\n * hashbang routing.\n\n * @api private\n */\n Page.prototype._getBase = function() {\n var base = this._base;\n if(!!base) return base;\n var loc = hasWindow && this._window && this._window.location;\n\n if(hasWindow && this._hashbang && loc && loc.protocol === 'file:') {\n base = loc.pathname;\n }\n\n return base;\n };\n\n /**\n * Get or set strict path matching to `enable`\n *\n * @param {boolean} enable\n * @api public\n */\n\n Page.prototype.strict = function(enable) {\n if (0 === arguments.length) return this._strict;\n this._strict = enable;\n };\n\n\n /**\n * Bind with the given `options`.\n *\n * Options:\n *\n * - `click` bind to click events [true]\n * - `popstate` bind to popstate [true]\n * - `dispatch` perform initial dispatch [true]\n *\n * @param {Object} options\n * @api public\n */\n\n Page.prototype.start = function(options) {\n var opts = options || {};\n this.configure(opts);\n\n if (false === opts.dispatch) return;\n this._running = true;\n\n var url;\n if(isLocation) {\n var window = this._window;\n var loc = window.location;\n\n if(this._hashbang && ~loc.hash.indexOf('#!')) {\n url = loc.hash.substr(2) + loc.search;\n } else if (this._hashbang) {\n url = loc.search + loc.hash;\n } else {\n url = loc.pathname + loc.search + loc.hash;\n }\n }\n\n this.replace(url, null, true, opts.dispatch);\n };\n\n /**\n * Unbind click and popstate event handlers.\n *\n * @api public\n */\n\n Page.prototype.stop = function() {\n if (!this._running) return;\n this.current = '';\n this.len = 0;\n this._running = false;\n\n var window = this._window;\n this._click && window.document.removeEventListener(clickEvent, this.clickHandler, false);\n hasWindow && window.removeEventListener('popstate', this._onpopstate, false);\n hasWindow && window.removeEventListener('hashchange', this._onpopstate, false);\n };\n\n /**\n * Show `path` with optional `state` object.\n *\n * @param {string} path\n * @param {Object=} state\n * @param {boolean=} dispatch\n * @param {boolean=} push\n * @return {!Context}\n * @api public\n */\n\n Page.prototype.show = function(path, state, dispatch, push) {\n var ctx = new Context(path, state, this),\n prev = this.prevContext;\n this.prevContext = ctx;\n this.current = ctx.path;\n if (false !== dispatch) this.dispatch(ctx, prev);\n if (false !== ctx.handled && false !== push) ctx.pushState();\n return ctx;\n };\n\n /**\n * Goes back in the history\n * Back should always let the current route push state and then go back.\n *\n * @param {string} path - fallback path to go back if no more history exists, if undefined defaults to page.base\n * @param {Object=} state\n * @api public\n */\n\n Page.prototype.back = function(path, state) {\n var page = this;\n if (this.len > 0) {\n var window = this._window;\n // this may need more testing to see if all browsers\n // wait for the next tick to go back in history\n hasHistory && window.history.back();\n this.len--;\n } else if (path) {\n setTimeout(function() {\n page.show(path, state);\n });\n } else {\n setTimeout(function() {\n page.show(page._getBase(), state);\n });\n }\n };\n\n /**\n * Register route to redirect from one path to other\n * or just redirect to another route\n *\n * @param {string} from - if param 'to' is undefined redirects to 'from'\n * @param {string=} to\n * @api public\n */\n Page.prototype.redirect = function(from, to) {\n var inst = this;\n\n // Define route from a path to another\n if ('string' === typeof from && 'string' === typeof to) {\n page.call(this, from, function(e) {\n setTimeout(function() {\n inst.replace(/** @type {!string} */ (to));\n }, 0);\n });\n }\n\n // Wait for the push state and replace it with another\n if ('string' === typeof from && 'undefined' === typeof to) {\n setTimeout(function() {\n inst.replace(from);\n }, 0);\n }\n };\n\n /**\n * Replace `path` with optional `state` object.\n *\n * @param {string} path\n * @param {Object=} state\n * @param {boolean=} init\n * @param {boolean=} dispatch\n * @return {!Context}\n * @api public\n */\n\n\n Page.prototype.replace = function(path, state, init, dispatch) {\n var ctx = new Context(path, state, this),\n prev = this.prevContext;\n this.prevContext = ctx;\n this.current = ctx.path;\n ctx.init = init;\n ctx.save(); // save before dispatching, which may redirect\n if (false !== dispatch) this.dispatch(ctx, prev);\n return ctx;\n };\n\n /**\n * Dispatch the given `ctx`.\n *\n * @param {Context} ctx\n * @api private\n */\n\n Page.prototype.dispatch = function(ctx, prev) {\n var i = 0, j = 0, page = this;\n\n function nextExit() {\n var fn = page.exits[j++];\n if (!fn) return nextEnter();\n fn(prev, nextExit);\n }\n\n function nextEnter() {\n var fn = page.callbacks[i++];\n\n if (ctx.path !== page.current) {\n ctx.handled = false;\n return;\n }\n if (!fn) return unhandled.call(page, ctx);\n fn(ctx, nextEnter);\n }\n\n if (prev) {\n nextExit();\n } else {\n nextEnter();\n }\n };\n\n /**\n * Register an exit route on `path` with\n * callback `fn()`, which will be called\n * on the previous context when a new\n * page is visited.\n */\n Page.prototype.exit = function(path, fn) {\n if (typeof path === 'function') {\n return this.exit('*', path);\n }\n\n var route = new Route(path, null, this);\n for (var i = 1; i < arguments.length; ++i) {\n this.exits.push(route.middleware(arguments[i]));\n }\n };\n\n /**\n * Handle \"click\" events.\n */\n\n /* jshint +W054 */\n Page.prototype.clickHandler = function(e) {\n if (1 !== this._which(e)) return;\n\n if (e.metaKey || e.ctrlKey || e.shiftKey) return;\n if (e.defaultPrevented) return;\n\n // ensure link\n // use shadow dom when available if not, fall back to composedPath()\n // for browsers that only have shady\n var el = e.target;\n var eventPath = e.path || (e.composedPath ? e.composedPath() : null);\n\n if(eventPath) {\n for (var i = 0; i < eventPath.length; i++) {\n if (!eventPath[i].nodeName) continue;\n if (eventPath[i].nodeName.toUpperCase() !== 'A') continue;\n if (!eventPath[i].href) continue;\n\n el = eventPath[i];\n break;\n }\n }\n\n // continue ensure link\n // el.nodeName for svg links are 'a' instead of 'A'\n while (el && 'A' !== el.nodeName.toUpperCase()) el = el.parentNode;\n if (!el || 'A' !== el.nodeName.toUpperCase()) return;\n\n // check if link is inside an svg\n // in this case, both href and target are always inside an object\n var svg = (typeof el.href === 'object') && el.href.constructor.name === 'SVGAnimatedString';\n\n // Ignore if tag has\n // 1. \"download\" attribute\n // 2. rel=\"external\" attribute\n if (el.hasAttribute('download') || el.getAttribute('rel') === 'external') return;\n\n // ensure non-hash for the same path\n var link = el.getAttribute('href');\n if(!this._hashbang && this._samePath(el) && (el.hash || '#' === link)) return;\n\n // Check for mailto: in the href\n if (link && link.indexOf('mailto:') > -1) return;\n\n // check target\n // svg target is an object and its desired value is in .baseVal property\n if (svg ? el.target.baseVal : el.target) return;\n\n // x-origin\n // note: svg links that are not relative don't call click events (and skip page.js)\n // consequently, all svg links tested inside page.js are relative and in the same origin\n if (!svg && !this.sameOrigin(el.href)) return;\n\n // rebuild path\n // There aren't .pathname and .search properties in svg links, so we use href\n // Also, svg href is an object and its desired value is in .baseVal property\n var path = svg ? el.href.baseVal : (el.pathname + el.search + (el.hash || ''));\n\n path = path[0] !== '/' ? '/' + path : path;\n\n // strip leading \"/[drive letter]:\" on NW.js on Windows\n if (hasProcess && path.match(/^\\/[a-zA-Z]:\\//)) {\n path = path.replace(/^\\/[a-zA-Z]:\\//, '/');\n }\n\n // same page\n var orig = path;\n var pageBase = this._getBase();\n\n if (path.indexOf(pageBase) === 0) {\n path = path.substr(pageBase.length);\n }\n\n if (this._hashbang) path = path.replace('#!', '');\n\n if (pageBase && orig === path && (!isLocation || this._window.location.protocol !== 'file:')) {\n return;\n }\n\n e.preventDefault();\n this.show(orig);\n };\n\n /**\n * Handle \"populate\" events.\n * @api private\n */\n\n Page.prototype._onpopstate = (function () {\n var loaded = false;\n if ( ! hasWindow ) {\n return function () {};\n }\n if (hasDocument && document.readyState === 'complete') {\n loaded = true;\n } else {\n window.addEventListener('load', function() {\n setTimeout(function() {\n loaded = true;\n }, 0);\n });\n }\n return function onpopstate(e) {\n if (!loaded) return;\n var page = this;\n if (e.state) {\n var path = e.state.path;\n page.replace(path, e.state);\n } else if (isLocation) {\n var loc = page._window.location;\n page.show(loc.pathname + loc.search + loc.hash, undefined, undefined, false);\n }\n };\n })();\n\n /**\n * Event button.\n */\n Page.prototype._which = function(e) {\n e = e || (hasWindow && this._window.event);\n return null == e.which ? e.button : e.which;\n };\n\n /**\n * Convert to a URL object\n * @api private\n */\n Page.prototype._toURL = function(href) {\n var window = this._window;\n if(typeof URL === 'function' && isLocation) {\n return new URL(href, window.location.toString());\n } else if (hasDocument) {\n var anc = window.document.createElement('a');\n anc.href = href;\n return anc;\n }\n };\n\n /**\n * Check if `href` is the same origin.\n * @param {string} href\n * @api public\n */\n Page.prototype.sameOrigin = function(href) {\n if(!href || !isLocation) return false;\n\n var url = this._toURL(href);\n var window = this._window;\n\n var loc = window.location;\n\n /*\n When the port is the default http port 80 for http, or 443 for\n https, internet explorer 11 returns an empty string for loc.port,\n so we need to compare loc.port with an empty string if url.port\n is the default port 80 or 443.\n Also the comparition with `port` is changed from `===` to `==` because\n `port` can be a string sometimes. This only applies to ie11.\n */\n return loc.protocol === url.protocol &&\n loc.hostname === url.hostname &&\n (loc.port === url.port || loc.port === '' && (url.port == 80 || url.port == 443)); // jshint ignore:line\n };\n\n /**\n * @api private\n */\n Page.prototype._samePath = function(url) {\n if(!isLocation) return false;\n var window = this._window;\n var loc = window.location;\n return url.pathname === loc.pathname &&\n url.search === loc.search;\n };\n\n /**\n * Remove URL encoding from the given `str`.\n * Accommodates whitespace in both x-www-form-urlencoded\n * and regular percent-encoded form.\n *\n * @param {string} val - URL component to decode\n * @api private\n */\n Page.prototype._decodeURLEncodedURIComponent = function(val) {\n if (typeof val !== 'string') { return val; }\n return this._decodeURLComponents ? decodeURIComponent(val.replace(/\\+/g, ' ')) : val;\n };\n\n /**\n * Create a new `page` instance and function\n */\n function createPage() {\n var pageInstance = new Page();\n\n function pageFn(/* args */) {\n return page.apply(pageInstance, arguments);\n }\n\n // Copy all of the things over. In 2.0 maybe we use setPrototypeOf\n pageFn.callbacks = pageInstance.callbacks;\n pageFn.exits = pageInstance.exits;\n pageFn.base = pageInstance.base.bind(pageInstance);\n pageFn.strict = pageInstance.strict.bind(pageInstance);\n pageFn.start = pageInstance.start.bind(pageInstance);\n pageFn.stop = pageInstance.stop.bind(pageInstance);\n pageFn.show = pageInstance.show.bind(pageInstance);\n pageFn.back = pageInstance.back.bind(pageInstance);\n pageFn.redirect = pageInstance.redirect.bind(pageInstance);\n pageFn.replace = pageInstance.replace.bind(pageInstance);\n pageFn.dispatch = pageInstance.dispatch.bind(pageInstance);\n pageFn.exit = pageInstance.exit.bind(pageInstance);\n pageFn.configure = pageInstance.configure.bind(pageInstance);\n pageFn.sameOrigin = pageInstance.sameOrigin.bind(pageInstance);\n pageFn.clickHandler = pageInstance.clickHandler.bind(pageInstance);\n\n pageFn.create = createPage;\n\n Object.defineProperty(pageFn, 'len', {\n get: function(){\n return pageInstance.len;\n },\n set: function(val) {\n pageInstance.len = val;\n }\n });\n\n Object.defineProperty(pageFn, 'current', {\n get: function(){\n return pageInstance.current;\n },\n set: function(val) {\n pageInstance.current = val;\n }\n });\n\n // In 2.0 these can be named exports\n pageFn.Context = Context;\n pageFn.Route = Route;\n\n return pageFn;\n }\n\n /**\n * Register `path` with callback `fn()`,\n * or route `path`, or redirection,\n * or `page.start()`.\n *\n * page(fn);\n * page('*', fn);\n * page('/user/:id', load, user);\n * page('/user/' + user.id, { some: 'thing' });\n * page('/user/' + user.id);\n * page('/from', '/to')\n * page();\n *\n * @param {string|!Function|!Object} path\n * @param {Function=} fn\n * @api public\n */\n\n function page(path, fn) {\n // \n if ('function' === typeof path) {\n return page.call(this, '*', path);\n }\n\n // route to \n if ('function' === typeof fn) {\n var route = new Route(/** @type {string} */ (path), null, this);\n for (var i = 1; i < arguments.length; ++i) {\n this.callbacks.push(route.middleware(arguments[i]));\n }\n // show with [state]\n } else if ('string' === typeof path) {\n this['string' === typeof fn ? 'redirect' : 'show'](path, fn);\n // start [options]\n } else {\n this.start(path);\n }\n }\n\n /**\n * Unhandled `ctx`. When it's not the initial\n * popstate then redirect. If you wish to handle\n * 404s on your own use `page('*', callback)`.\n *\n * @param {Context} ctx\n * @api private\n */\n function unhandled(ctx) {\n if (ctx.handled) return;\n var current;\n var page = this;\n var window = page._window;\n\n if (page._hashbang) {\n current = isLocation && this._getBase() + window.location.hash.replace('#!', '');\n } else {\n current = isLocation && window.location.pathname + window.location.search;\n }\n\n if (current === ctx.canonicalPath) return;\n page.stop();\n ctx.handled = false;\n isLocation && (window.location.href = ctx.canonicalPath);\n }\n\n /**\n * Escapes RegExp characters in the given string.\n *\n * @param {string} s\n * @api private\n */\n function escapeRegExp(s) {\n return s.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, '\\\\$1');\n }\n\n /**\n * Initialize a new \"request\" `Context`\n * with the given `path` and optional initial `state`.\n *\n * @constructor\n * @param {string} path\n * @param {Object=} state\n * @api public\n */\n\n function Context(path, state, pageInstance) {\n var _page = this.page = pageInstance || page;\n var window = _page._window;\n var hashbang = _page._hashbang;\n\n var pageBase = _page._getBase();\n if ('/' === path[0] && 0 !== path.indexOf(pageBase)) path = pageBase + (hashbang ? '#!' : '') + path;\n var i = path.indexOf('?');\n\n this.canonicalPath = path;\n var re = new RegExp('^' + escapeRegExp(pageBase));\n this.path = path.replace(re, '') || '/';\n if (hashbang) this.path = this.path.replace('#!', '') || '/';\n\n this.title = (hasDocument && window.document.title);\n this.state = state || {};\n this.state.path = path;\n this.querystring = ~i ? _page._decodeURLEncodedURIComponent(path.slice(i + 1)) : '';\n this.pathname = _page._decodeURLEncodedURIComponent(~i ? path.slice(0, i) : path);\n this.params = {};\n\n // fragment\n this.hash = '';\n if (!hashbang) {\n if (!~this.path.indexOf('#')) return;\n var parts = this.path.split('#');\n this.path = this.pathname = parts[0];\n this.hash = _page._decodeURLEncodedURIComponent(parts[1]) || '';\n this.querystring = this.querystring.split('#')[0];\n }\n }\n\n /**\n * Push state.\n *\n * @api private\n */\n\n Context.prototype.pushState = function() {\n var page = this.page;\n var window = page._window;\n var hashbang = page._hashbang;\n\n page.len++;\n if (hasHistory) {\n window.history.pushState(this.state, this.title,\n hashbang && this.path !== '/' ? '#!' + this.path : this.canonicalPath);\n }\n };\n\n /**\n * Save the context state.\n *\n * @api public\n */\n\n Context.prototype.save = function() {\n var page = this.page;\n if (hasHistory) {\n page._window.history.replaceState(this.state, this.title,\n page._hashbang && this.path !== '/' ? '#!' + this.path : this.canonicalPath);\n }\n };\n\n /**\n * Initialize `Route` with the given HTTP `path`,\n * and an array of `callbacks` and `options`.\n *\n * Options:\n *\n * - `sensitive` enable case-sensitive routes\n * - `strict` enable strict matching for trailing slashes\n *\n * @constructor\n * @param {string} path\n * @param {Object=} options\n * @api private\n */\n\n function Route(path, options, page) {\n var _page = this.page = page || globalPage;\n var opts = options || {};\n opts.strict = opts.strict || _page._strict;\n this.path = (path === '*') ? '(.*)' : path;\n this.method = 'GET';\n this.regexp = pathToRegexp_1(this.path, this.keys = [], opts);\n }\n\n /**\n * Return route middleware with\n * the given callback `fn()`.\n *\n * @param {Function} fn\n * @return {Function}\n * @api public\n */\n\n Route.prototype.middleware = function(fn) {\n var self = this;\n return function(ctx, next) {\n if (self.match(ctx.path, ctx.params)) {\n ctx.routePath = self.path;\n return fn(ctx, next);\n }\n next();\n };\n };\n\n /**\n * Check if this route matches `path`, if so\n * populate `params`.\n *\n * @param {string} path\n * @param {Object} params\n * @return {boolean}\n * @api private\n */\n\n Route.prototype.match = function(path, params) {\n var keys = this.keys,\n qsIndex = path.indexOf('?'),\n pathname = ~qsIndex ? path.slice(0, qsIndex) : path,\n m = this.regexp.exec(decodeURIComponent(pathname));\n\n if (!m) return false;\n\n delete params[0];\n\n for (var i = 1, len = m.length; i < len; ++i) {\n var key = keys[i - 1];\n var val = this.page._decodeURLEncodedURIComponent(m[i]);\n if (val !== undefined || !(hasOwnProperty.call(params, key.name))) {\n params[key.name] = val;\n }\n }\n\n return true;\n };\n\n\n /**\n * Module exports.\n */\n\n var globalPage = createPage();\n var page_js = globalPage;\n var default_1 = globalPage;\n\npage_js.default = default_1;\n\nreturn page_js;\n\n})));\n","/**\n * Create a ripple action\n * @typedef {{ event?: string; transition?: number; zIndex?: string; rippleColor?: string; disabled?: boolean }} Options\n * @param {Element} node\n * @param {Options} [options={}]\n * @returns {{ destroy: () => void; update: (options?: Options) => void }}\n */\nexport default function ripple(node, options = {}) {\n // Default values.\n const props = {\n event: options.event || 'click',\n transition: options.transition || 150,\n zIndex: options.zIndex || '100',\n bg: options.rippleColor || null,\n disabled: options.disabled || false,\n };\n\n const handler = event => rippler(event, node, props);\n\n if (!props.disabled) {\n node.addEventListener(props.event, handler);\n }\n\n function rippler(event, target, { bg, zIndex, transition }) {\n // Get border to avoid offsetting on ripple container position\n const targetBorder = parseInt(\n getComputedStyle(target).borderWidth.replace('px', '')\n );\n\n // Get necessary variables\n const rect = target.getBoundingClientRect(),\n left = rect.left,\n top = rect.top,\n width = target.offsetWidth,\n height = target.offsetHeight,\n dx = event.clientX - left,\n dy = event.clientY - top,\n maxX = Math.max(dx, width - dx),\n maxY = Math.max(dy, height - dy),\n style = window.getComputedStyle(target),\n radius = Math.sqrt(maxX * maxX + maxY * maxY),\n border = targetBorder > 0 ? targetBorder : 0;\n\n // Create the ripple and its container\n const ripple = document.createElement('div');\n const rippleContainer = document.createElement('div');\n rippleContainer.className = 'ripple-container';\n ripple.className = 'ripple';\n\n // Styles for the ripple\n ripple.style.marginTop = '0px';\n ripple.style.marginLeft = '0px';\n ripple.style.width = '1px';\n ripple.style.height = '1px';\n ripple.style.transition = `all ${transition}ms cubic-bezier(0.4, 0, 0.2, 1)`;\n ripple.style.borderRadius = '50%';\n ripple.style.pointerEvents = 'none';\n ripple.style.position = 'relative';\n ripple.style.zIndex = zIndex;\n if (bg !== null) {\n ripple.style.backgroundColor = bg;\n }\n\n // Styles for the rippleContainer\n rippleContainer.style.position = 'absolute';\n rippleContainer.style.left = 0 - border + 'px';\n rippleContainer.style.top = 0 - border + 'px';\n rippleContainer.style.height = '0';\n rippleContainer.style.width = '0';\n rippleContainer.style.pointerEvents = 'none';\n rippleContainer.style.overflow = 'hidden';\n\n // Store target position to change it after\n const storedTargetPosition =\n target.style.position.length > 0\n ? target.style.position\n : getComputedStyle(target).position;\n // Change target position to relative to guarantee ripples correct positioning\n if (\n storedTargetPosition !== 'relative' &&\n storedTargetPosition !== 'absolute'\n ) {\n target.style.position = 'relative';\n }\n\n rippleContainer.appendChild(ripple);\n target.appendChild(rippleContainer);\n\n ripple.style.marginLeft = dx + 'px';\n ripple.style.marginTop = dy + 'px';\n\n rippleContainer.style.width = width + 'px';\n rippleContainer.style.height = height + 'px';\n rippleContainer.style.borderTopLeftRadius = style.borderTopLeftRadius;\n rippleContainer.style.borderTopRightRadius = style.borderTopRightRadius;\n rippleContainer.style.borderBottomLeftRadius = style.borderBottomLeftRadius;\n rippleContainer.style.borderBottomRightRadius =\n style.borderBottomRightRadius;\n rippleContainer.style.direction = 'ltr';\n\n setTimeout(() => {\n ripple.style.width = radius * 2 + 'px';\n ripple.style.height = radius * 2 + 'px';\n ripple.style.marginLeft = dx - radius + 'px';\n ripple.style.marginTop = dy - radius + 'px';\n }, 0);\n\n function clearRipple() {\n setTimeout(() => {\n ripple.style.backgroundColor = 'rgba(0, 0, 0, 0)';\n }, 250);\n\n // Timeout set to get a smooth removal of the ripple\n setTimeout(() => {\n rippleContainer.parentNode.removeChild(rippleContainer);\n }, transition + 250);\n\n // After removing event set position to target to it's original one\n // Timeout it's needed to avoid jerky effect of ripple jumping out parent target\n setTimeout(() => {\n let clearPosition = true;\n for (let i = 0; i < target.childNodes.length; i++) {\n if (target.childNodes[i].className === 'ripple-container') {\n clearPosition = false;\n }\n }\n\n if (clearPosition) {\n if (storedTargetPosition !== 'static') {\n target.style.position = storedTargetPosition;\n } else {\n target.style.position = '';\n }\n }\n }, transition + 250);\n }\n\n clearRipple();\n }\n\n return {\n destroy() {\n node.removeEventListener(props.event, handler);\n },\n update(newProps = {}) {\n if (newProps.disabled) {\n node.removeEventListener(props.event, handler);\n } else {\n node.addEventListener(props.event, handler);\n }\n },\n };\n}\n","/**\n * An action to set up arbitrary event listeners dynamically.\n * @param {Element} node\n * @param {Array<{ name: string; handler: EventListenerOrEventListenerObject }>} args The event listeners to be registered\n * @returns {{ destroy: () => void }}\n */\nexport default function events(node, args) {\n if (args != null) {\n for (const event of args) {\n node.addEventListener(event.name, event.handler);\n }\n }\n\n return {\n destroy() {\n if (args != null) {\n for (const event of args) {\n node.removeEventListener(event.name, event.handler);\n }\n }\n },\n };\n}\n","const consecutiveSpace = / {2,}/;\n\n/**\n * Removes extra whitespace in class strings.\n * @param {string} classString The string to be trimmed\n * @returns {string} Clean class string\n */\nexport function stripClassWhitespace(classString) {\n return classString.replace(consecutiveSpace, ' ').trimRight();\n}\n\n/**\n * Filters out falsy classes.\n * @param {...(string | false | null)} args The classes to be filtered\n * @return {string} The classes without the falsy values\n */\nexport default function classes(...args) {\n return args.filter(cls => !!cls).join(' ');\n}\n","\n\n{#if href}\n dispatch('click', { nativeEvent: e })}\n use:eventsAction={events}\n use:ripple={{ disabled: noRipple || disabled }}\n {...$$restProps}\n >\n \n \n{:else}\n dispatch('click', { nativeEvent: e })}\n use:ripple={{ disabled: noRipple || disabled }}\n use:eventsAction={events}\n {...$$restProps}\n >\n \n \n{/if}\n\n\n","\n\n\n {#if multiline}\n dispatch('change', { value, nativeEvent: e })}\n on:focus={e => dispatch('focus', { nativeEvent: e })}\n on:keydown={e => dispatch('keydown', { nativeEvent: e })}\n on:blur={e => dispatch('blur', { nativeEvent: e })}\n use:eventsAction={events}\n {...$$restProps}\n />\n {:else}\n dispatch('change', { value, nativeEvent: e })}\n on:focus={e => dispatch('focus', { nativeEvent: e })}\n on:keydown={e => dispatch('keydown', { nativeEvent: e })}\n on:blur={e => dispatch('blur', { nativeEvent: e })}\n use:eventsAction={events}\n {...$$restProps}\n />\n {#if outline && label != null}\n \n {/if}\n\n {#if withItem}\n \n {/if}\n\n {#if error}\n \n {error}\n \n {/if}\n {/if}\n\n\n\n","\n\n
\n
\n {#if name != null}\n \n {/if}\n {#if help != null}\n
{help}
\n {/if}\n \n
\n
\n \n {#each errors as error}\n {#if error}\n
{error}
\n {/if}\n {/each}\n {#if required}\n
* Required
\n {:else if optional}\n
Optional
\n {/if}\n \n
\n
\n\n\n","/* ***** BEGIN LICENSE BLOCK *****\n * Distributed under the BSD license:\n *\n * Copyright (c) 2010, Ajax.org B.V.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n * * Neither the name of Ajax.org B.V. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * ***** END LICENSE BLOCK ***** */\n\n/**\n * Define a module along with a payload\n * @param module a name for the payload\n * @param payload a function to call with (acequire, exports, module) params\n */\n\n(function() {\n\nvar ACE_NAMESPACE = \"ace\";\n\nvar global = (function() { return this; })();\nif (!global && typeof window != \"undefined\") global = window; // strict mode\n\n\nif (!ACE_NAMESPACE && typeof acequirejs !== \"undefined\")\n return;\n\n\nvar define = function(module, deps, payload) {\n if (typeof module !== \"string\") {\n if (define.original)\n define.original.apply(this, arguments);\n else {\n console.error(\"dropping module because define wasn\\'t a string.\");\n console.trace();\n }\n return;\n }\n if (arguments.length == 2)\n payload = deps;\n if (!define.modules[module]) {\n define.payloads[module] = payload;\n define.modules[module] = null;\n }\n};\n\ndefine.modules = {};\ndefine.payloads = {};\n\n/**\n * Get at functionality define()ed using the function above\n */\nvar _acequire = function(parentId, module, callback) {\n if (typeof module === \"string\") {\n var payload = lookup(parentId, module);\n if (payload != undefined) {\n callback && callback();\n return payload;\n }\n } else if (Object.prototype.toString.call(module) === \"[object Array]\") {\n var params = [];\n for (var i = 0, l = module.length; i < l; ++i) {\n var dep = lookup(parentId, module[i]);\n if (dep == undefined && acequire.original)\n return;\n params.push(dep);\n }\n return callback && callback.apply(null, params) || true;\n }\n};\n\nvar acequire = function(module, callback) {\n var packagedModule = _acequire(\"\", module, callback);\n if (packagedModule == undefined && acequire.original)\n return acequire.original.apply(this, arguments);\n return packagedModule;\n};\n\nvar normalizeModule = function(parentId, moduleName) {\n // normalize plugin acequires\n if (moduleName.indexOf(\"!\") !== -1) {\n var chunks = moduleName.split(\"!\");\n return normalizeModule(parentId, chunks[0]) + \"!\" + normalizeModule(parentId, chunks[1]);\n }\n // normalize relative acequires\n if (moduleName.charAt(0) == \".\") {\n var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n moduleName = base + \"/\" + moduleName;\n\n while(moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n var previous = moduleName;\n moduleName = moduleName.replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n }\n }\n return moduleName;\n};\n\n/**\n * Internal function to lookup moduleNames and resolve them by calling the\n * definition function if needed.\n */\nvar lookup = function(parentId, moduleName) {\n moduleName = normalizeModule(parentId, moduleName);\n\n var module = define.modules[moduleName];\n if (!module) {\n module = define.payloads[moduleName];\n if (typeof module === 'function') {\n var exports = {};\n var mod = {\n id: moduleName,\n uri: '',\n exports: exports,\n packaged: true\n };\n\n var req = function(module, callback) {\n return _acequire(moduleName, module, callback);\n };\n\n var returnValue = module(req, exports, mod);\n exports = returnValue || mod.exports;\n define.modules[moduleName] = exports;\n delete define.payloads[moduleName];\n }\n module = define.modules[moduleName] = exports || module;\n }\n return module;\n};\n\nfunction exportAce(ns) {\n var root = global;\n if (ns) {\n if (!global[ns])\n global[ns] = {};\n root = global[ns];\n }\n\n if (!root.define || !root.define.packaged) {\n define.original = root.define;\n root.define = define;\n root.define.packaged = true;\n }\n\n if (!root.acequire || !root.acequire.packaged) {\n acequire.original = root.acequire;\n root.acequire = acequire;\n root.acequire.packaged = true;\n }\n}\n\nexportAce(ACE_NAMESPACE);\n\n})();\n\nace.define(\"ace/lib/regexp\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\n var real = {\n exec: RegExp.prototype.exec,\n test: RegExp.prototype.test,\n match: String.prototype.match,\n replace: String.prototype.replace,\n split: String.prototype.split\n },\n compliantExecNpcg = real.exec.call(/()??/, \"\")[1] === undefined, // check `exec` handling of nonparticipating capturing groups\n compliantLastIndexIncrement = function () {\n var x = /^/g;\n real.test.call(x, \"\");\n return !x.lastIndex;\n }();\n\n if (compliantLastIndexIncrement && compliantExecNpcg)\n return;\n RegExp.prototype.exec = function (str) {\n var match = real.exec.apply(this, arguments),\n name, r2;\n if ( typeof(str) == 'string' && match) {\n if (!compliantExecNpcg && match.length > 1 && indexOf(match, \"\") > -1) {\n r2 = RegExp(this.source, real.replace.call(getNativeFlags(this), \"g\", \"\"));\n real.replace.call(str.slice(match.index), r2, function () {\n for (var i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined)\n match[i] = undefined;\n }\n });\n }\n if (this._xregexp && this._xregexp.captureNames) {\n for (var i = 1; i < match.length; i++) {\n name = this._xregexp.captureNames[i - 1];\n if (name)\n match[name] = match[i];\n }\n }\n if (!compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index))\n this.lastIndex--;\n }\n return match;\n };\n if (!compliantLastIndexIncrement) {\n RegExp.prototype.test = function (str) {\n var match = real.exec.call(this, str);\n if (match && this.global && !match[0].length && (this.lastIndex > match.index))\n this.lastIndex--;\n return !!match;\n };\n }\n\n function getNativeFlags (regex) {\n return (regex.global ? \"g\" : \"\") +\n (regex.ignoreCase ? \"i\" : \"\") +\n (regex.multiline ? \"m\" : \"\") +\n (regex.extended ? \"x\" : \"\") + // Proposed for ES4; included in AS3\n (regex.sticky ? \"y\" : \"\");\n }\n\n function indexOf (array, item, from) {\n if (Array.prototype.indexOf) // Use the native array method if available\n return array.indexOf(item, from);\n for (var i = from || 0; i < array.length; i++) {\n if (array[i] === item)\n return i;\n }\n return -1;\n }\n\n});\n\nace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\nfunction Empty() {}\n\nif (!Function.prototype.bind) {\n Function.prototype.bind = function bind(that) { // .length is 1\n var target = this;\n if (typeof target != \"function\") {\n throw new TypeError(\"Function.prototype.bind called on incompatible \" + target);\n }\n var args = slice.call(arguments, 1); // for normal call\n var bound = function () {\n\n if (this instanceof bound) {\n\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n\n }\n\n };\n if(target.prototype) {\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n return bound;\n };\n}\nvar call = Function.prototype.call;\nvar prototypeOfArray = Array.prototype;\nvar prototypeOfObject = Object.prototype;\nvar slice = prototypeOfArray.slice;\nvar _toString = call.bind(prototypeOfObject.toString);\nvar owns = call.bind(prototypeOfObject.hasOwnProperty);\nvar defineGetter;\nvar defineSetter;\nvar lookupGetter;\nvar lookupSetter;\nvar supportsAccessors;\nif ((supportsAccessors = owns(prototypeOfObject, \"__defineGetter__\"))) {\n defineGetter = call.bind(prototypeOfObject.__defineGetter__);\n defineSetter = call.bind(prototypeOfObject.__defineSetter__);\n lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);\n lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);\n}\nif ([1,2].splice(0).length != 2) {\n if(function() { // test IE < 9 to splice bug - see issue #138\n function makeArray(l) {\n var a = new Array(l+2);\n a[0] = a[1] = 0;\n return a;\n }\n var array = [], lengthBefore;\n \n array.splice.apply(array, makeArray(20));\n array.splice.apply(array, makeArray(26));\n\n lengthBefore = array.length; //46\n array.splice(5, 0, \"XXX\"); // add one element\n\n lengthBefore + 1 == array.length\n\n if (lengthBefore + 1 == array.length) {\n return true;// has right splice implementation without bugs\n }\n }()) {//IE 6/7\n var array_splice = Array.prototype.splice;\n Array.prototype.splice = function(start, deleteCount) {\n if (!arguments.length) {\n return [];\n } else {\n return array_splice.apply(this, [\n start === void 0 ? 0 : start,\n deleteCount === void 0 ? (this.length - start) : deleteCount\n ].concat(slice.call(arguments, 2)))\n }\n };\n } else {//IE8\n Array.prototype.splice = function(pos, removeCount){\n var length = this.length;\n if (pos > 0) {\n if (pos > length)\n pos = length;\n } else if (pos == void 0) {\n pos = 0;\n } else if (pos < 0) {\n pos = Math.max(length + pos, 0);\n }\n\n if (!(pos+removeCount < length))\n removeCount = length - pos;\n\n var removed = this.slice(pos, pos+removeCount);\n var insert = slice.call(arguments, 2);\n var add = insert.length; \n if (pos === length) {\n if (add) {\n this.push.apply(this, insert);\n }\n } else {\n var remove = Math.min(removeCount, length - pos);\n var tailOldPos = pos + remove;\n var tailNewPos = tailOldPos + add - remove;\n var tailCount = length - tailOldPos;\n var lengthAfterRemove = length - remove;\n\n if (tailNewPos < tailOldPos) { // case A\n for (var i = 0; i < tailCount; ++i) {\n this[tailNewPos+i] = this[tailOldPos+i];\n }\n } else if (tailNewPos > tailOldPos) { // case B\n for (i = tailCount; i--; ) {\n this[tailNewPos+i] = this[tailOldPos+i];\n }\n } // else, add == remove (nothing to do)\n\n if (add && pos === lengthAfterRemove) {\n this.length = lengthAfterRemove; // truncate array\n this.push.apply(this, insert);\n } else {\n this.length = lengthAfterRemove + add; // reserves space\n for (i = 0; i < add; ++i) {\n this[pos+i] = insert[i];\n }\n }\n }\n return removed;\n };\n }\n}\nif (!Array.isArray) {\n Array.isArray = function isArray(obj) {\n return _toString(obj) == \"[object Array]\";\n };\n}\nvar boxedString = Object(\"a\"),\n splitString = boxedString[0] != \"a\" || !(0 in boxedString);\n\nif (!Array.prototype.forEach) {\n Array.prototype.forEach = function forEach(fun /*, thisp*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n thisp = arguments[1],\n i = -1,\n length = self.length >>> 0;\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(); // TODO message\n }\n\n while (++i < length) {\n if (i in self) {\n fun.call(thisp, self[i], i, object);\n }\n }\n };\n}\nif (!Array.prototype.map) {\n Array.prototype.map = function map(fun /*, thisp*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n result = Array(length),\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self)\n result[i] = fun.call(thisp, self[i], i, object);\n }\n return result;\n };\n}\nif (!Array.prototype.filter) {\n Array.prototype.filter = function filter(fun /*, thisp */) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n result = [],\n value,\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self) {\n value = self[i];\n if (fun.call(thisp, value, i, object)) {\n result.push(value);\n }\n }\n }\n return result;\n };\n}\nif (!Array.prototype.every) {\n Array.prototype.every = function every(fun /*, thisp */) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self && !fun.call(thisp, self[i], i, object)) {\n return false;\n }\n }\n return true;\n };\n}\nif (!Array.prototype.some) {\n Array.prototype.some = function some(fun /*, thisp */) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self && fun.call(thisp, self[i], i, object)) {\n return true;\n }\n }\n return false;\n };\n}\nif (!Array.prototype.reduce) {\n Array.prototype.reduce = function reduce(fun /*, initial*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0;\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n if (!length && arguments.length == 1) {\n throw new TypeError(\"reduce of empty array with no initial value\");\n }\n\n var i = 0;\n var result;\n if (arguments.length >= 2) {\n result = arguments[1];\n } else {\n do {\n if (i in self) {\n result = self[i++];\n break;\n }\n if (++i >= length) {\n throw new TypeError(\"reduce of empty array with no initial value\");\n }\n } while (true);\n }\n\n for (; i < length; i++) {\n if (i in self) {\n result = fun.call(void 0, result, self[i], i, object);\n }\n }\n\n return result;\n };\n}\nif (!Array.prototype.reduceRight) {\n Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0;\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n if (!length && arguments.length == 1) {\n throw new TypeError(\"reduceRight of empty array with no initial value\");\n }\n\n var result, i = length - 1;\n if (arguments.length >= 2) {\n result = arguments[1];\n } else {\n do {\n if (i in self) {\n result = self[i--];\n break;\n }\n if (--i < 0) {\n throw new TypeError(\"reduceRight of empty array with no initial value\");\n }\n } while (true);\n }\n\n do {\n if (i in this) {\n result = fun.call(void 0, result, self[i], i, object);\n }\n } while (i--);\n\n return result;\n };\n}\nif (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) {\n Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) {\n var self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n toObject(this),\n length = self.length >>> 0;\n\n if (!length) {\n return -1;\n }\n\n var i = 0;\n if (arguments.length > 1) {\n i = toInteger(arguments[1]);\n }\n i = i >= 0 ? i : Math.max(0, length + i);\n for (; i < length; i++) {\n if (i in self && self[i] === sought) {\n return i;\n }\n }\n return -1;\n };\n}\nif (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) {\n Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) {\n var self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n toObject(this),\n length = self.length >>> 0;\n\n if (!length) {\n return -1;\n }\n var i = length - 1;\n if (arguments.length > 1) {\n i = Math.min(i, toInteger(arguments[1]));\n }\n i = i >= 0 ? i : length - Math.abs(i);\n for (; i >= 0; i--) {\n if (i in self && sought === self[i]) {\n return i;\n }\n }\n return -1;\n };\n}\nif (!Object.getPrototypeOf) {\n Object.getPrototypeOf = function getPrototypeOf(object) {\n return object.__proto__ || (\n object.constructor ?\n object.constructor.prototype :\n prototypeOfObject\n );\n };\n}\nif (!Object.getOwnPropertyDescriptor) {\n var ERR_NON_OBJECT = \"Object.getOwnPropertyDescriptor called on a \" +\n \"non-object: \";\n Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {\n if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n throw new TypeError(ERR_NON_OBJECT + object);\n if (!owns(object, property))\n return;\n\n var descriptor, getter, setter;\n descriptor = { enumerable: true, configurable: true };\n if (supportsAccessors) {\n var prototype = object.__proto__;\n object.__proto__ = prototypeOfObject;\n\n var getter = lookupGetter(object, property);\n var setter = lookupSetter(object, property);\n object.__proto__ = prototype;\n\n if (getter || setter) {\n if (getter) descriptor.get = getter;\n if (setter) descriptor.set = setter;\n return descriptor;\n }\n }\n descriptor.value = object[property];\n return descriptor;\n };\n}\nif (!Object.getOwnPropertyNames) {\n Object.getOwnPropertyNames = function getOwnPropertyNames(object) {\n return Object.keys(object);\n };\n}\nif (!Object.create) {\n var createEmpty;\n if (Object.prototype.__proto__ === null) {\n createEmpty = function () {\n return { \"__proto__\": null };\n };\n } else {\n createEmpty = function () {\n var empty = {};\n for (var i in empty)\n empty[i] = null;\n empty.constructor =\n empty.hasOwnProperty =\n empty.propertyIsEnumerable =\n empty.isPrototypeOf =\n empty.toLocaleString =\n empty.toString =\n empty.valueOf =\n empty.__proto__ = null;\n return empty;\n }\n }\n\n Object.create = function create(prototype, properties) {\n var object;\n if (prototype === null) {\n object = createEmpty();\n } else {\n if (typeof prototype != \"object\")\n throw new TypeError(\"typeof prototype[\"+(typeof prototype)+\"] != 'object'\");\n var Type = function () {};\n Type.prototype = prototype;\n object = new Type();\n object.__proto__ = prototype;\n }\n if (properties !== void 0)\n Object.defineProperties(object, properties);\n return object;\n };\n}\n\nfunction doesDefinePropertyWork(object) {\n try {\n Object.defineProperty(object, \"sentinel\", {});\n return \"sentinel\" in object;\n } catch (exception) {\n }\n}\nif (Object.defineProperty) {\n var definePropertyWorksOnObject = doesDefinePropertyWork({});\n var definePropertyWorksOnDom = typeof document == \"undefined\" ||\n doesDefinePropertyWork(document.createElement(\"div\"));\n if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {\n var definePropertyFallback = Object.defineProperty;\n }\n}\n\nif (!Object.defineProperty || definePropertyFallback) {\n var ERR_NON_OBJECT_DESCRIPTOR = \"Property description must be an object: \";\n var ERR_NON_OBJECT_TARGET = \"Object.defineProperty called on non-object: \"\n var ERR_ACCESSORS_NOT_SUPPORTED = \"getters & setters can not be defined \" +\n \"on this javascript engine\";\n\n Object.defineProperty = function defineProperty(object, property, descriptor) {\n if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n throw new TypeError(ERR_NON_OBJECT_TARGET + object);\n if ((typeof descriptor != \"object\" && typeof descriptor != \"function\") || descriptor === null)\n throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);\n if (definePropertyFallback) {\n try {\n return definePropertyFallback.call(Object, object, property, descriptor);\n } catch (exception) {\n }\n }\n if (owns(descriptor, \"value\")) {\n\n if (supportsAccessors && (lookupGetter(object, property) ||\n lookupSetter(object, property)))\n {\n var prototype = object.__proto__;\n object.__proto__ = prototypeOfObject;\n delete object[property];\n object[property] = descriptor.value;\n object.__proto__ = prototype;\n } else {\n object[property] = descriptor.value;\n }\n } else {\n if (!supportsAccessors)\n throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);\n if (owns(descriptor, \"get\"))\n defineGetter(object, property, descriptor.get);\n if (owns(descriptor, \"set\"))\n defineSetter(object, property, descriptor.set);\n }\n\n return object;\n };\n}\nif (!Object.defineProperties) {\n Object.defineProperties = function defineProperties(object, properties) {\n for (var property in properties) {\n if (owns(properties, property))\n Object.defineProperty(object, property, properties[property]);\n }\n return object;\n };\n}\nif (!Object.seal) {\n Object.seal = function seal(object) {\n return object;\n };\n}\nif (!Object.freeze) {\n Object.freeze = function freeze(object) {\n return object;\n };\n}\ntry {\n Object.freeze(function () {});\n} catch (exception) {\n Object.freeze = (function freeze(freezeObject) {\n return function freeze(object) {\n if (typeof object == \"function\") {\n return object;\n } else {\n return freezeObject(object);\n }\n };\n })(Object.freeze);\n}\nif (!Object.preventExtensions) {\n Object.preventExtensions = function preventExtensions(object) {\n return object;\n };\n}\nif (!Object.isSealed) {\n Object.isSealed = function isSealed(object) {\n return false;\n };\n}\nif (!Object.isFrozen) {\n Object.isFrozen = function isFrozen(object) {\n return false;\n };\n}\nif (!Object.isExtensible) {\n Object.isExtensible = function isExtensible(object) {\n if (Object(object) === object) {\n throw new TypeError(); // TODO message\n }\n var name = '';\n while (owns(object, name)) {\n name += '?';\n }\n object[name] = true;\n var returnValue = owns(object, name);\n delete object[name];\n return returnValue;\n };\n}\nif (!Object.keys) {\n var hasDontEnumBug = true,\n dontEnums = [\n \"toString\",\n \"toLocaleString\",\n \"valueOf\",\n \"hasOwnProperty\",\n \"isPrototypeOf\",\n \"propertyIsEnumerable\",\n \"constructor\"\n ],\n dontEnumsLength = dontEnums.length;\n\n for (var key in {\"toString\": null}) {\n hasDontEnumBug = false;\n }\n\n Object.keys = function keys(object) {\n\n if (\n (typeof object != \"object\" && typeof object != \"function\") ||\n object === null\n ) {\n throw new TypeError(\"Object.keys called on a non-object\");\n }\n\n var keys = [];\n for (var name in object) {\n if (owns(object, name)) {\n keys.push(name);\n }\n }\n\n if (hasDontEnumBug) {\n for (var i = 0, ii = dontEnumsLength; i < ii; i++) {\n var dontEnum = dontEnums[i];\n if (owns(object, dontEnum)) {\n keys.push(dontEnum);\n }\n }\n }\n return keys;\n };\n\n}\nif (!Date.now) {\n Date.now = function now() {\n return new Date().getTime();\n };\n}\nvar ws = \"\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\" +\n \"\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\" +\n \"\\u2029\\uFEFF\";\nif (!String.prototype.trim || ws.trim()) {\n ws = \"[\" + ws + \"]\";\n var trimBeginRegexp = new RegExp(\"^\" + ws + ws + \"*\"),\n trimEndRegexp = new RegExp(ws + ws + \"*$\");\n String.prototype.trim = function trim() {\n return String(this).replace(trimBeginRegexp, \"\").replace(trimEndRegexp, \"\");\n };\n}\n\nfunction toInteger(n) {\n n = +n;\n if (n !== n) { // isNaN\n n = 0;\n } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) {\n n = (n > 0 || -1) * Math.floor(Math.abs(n));\n }\n return n;\n}\n\nfunction isPrimitive(input) {\n var type = typeof input;\n return (\n input === null ||\n type === \"undefined\" ||\n type === \"boolean\" ||\n type === \"number\" ||\n type === \"string\"\n );\n}\n\nfunction toPrimitive(input) {\n var val, valueOf, toString;\n if (isPrimitive(input)) {\n return input;\n }\n valueOf = input.valueOf;\n if (typeof valueOf === \"function\") {\n val = valueOf.call(input);\n if (isPrimitive(val)) {\n return val;\n }\n }\n toString = input.toString;\n if (typeof toString === \"function\") {\n val = toString.call(input);\n if (isPrimitive(val)) {\n return val;\n }\n }\n throw new TypeError();\n}\nvar toObject = function (o) {\n if (o == null) { // this matches both null and undefined\n throw new TypeError(\"can't convert \"+o+\" to object\");\n }\n return Object(o);\n};\n\n});\n\nace.define(\"ace/lib/fixoldbrowsers\",[\"require\",\"exports\",\"module\",\"ace/lib/regexp\",\"ace/lib/es5-shim\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./regexp\");\nacequire(\"./es5-shim\");\n\n});\n\nace.define(\"ace/lib/dom\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar XHTML_NS = \"http://www.w3.org/1999/xhtml\";\n\nexports.getDocumentHead = function(doc) {\n if (!doc)\n doc = document;\n return doc.head || doc.getElementsByTagName(\"head\")[0] || doc.documentElement;\n};\n\nexports.createElement = function(tag, ns) {\n return document.createElementNS ?\n document.createElementNS(ns || XHTML_NS, tag) :\n document.createElement(tag);\n};\n\nexports.hasCssClass = function(el, name) {\n var classes = (el.className + \"\").split(/\\s+/g);\n return classes.indexOf(name) !== -1;\n};\nexports.addCssClass = function(el, name) {\n if (!exports.hasCssClass(el, name)) {\n el.className += \" \" + name;\n }\n};\nexports.removeCssClass = function(el, name) {\n var classes = el.className.split(/\\s+/g);\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n classes.splice(index, 1);\n }\n el.className = classes.join(\" \");\n};\n\nexports.toggleCssClass = function(el, name) {\n var classes = el.className.split(/\\s+/g), add = true;\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n add = false;\n classes.splice(index, 1);\n }\n if (add)\n classes.push(name);\n\n el.className = classes.join(\" \");\n return add;\n};\nexports.setCssClass = function(node, className, include) {\n if (include) {\n exports.addCssClass(node, className);\n } else {\n exports.removeCssClass(node, className);\n }\n};\n\nexports.hasCssString = function(id, doc) {\n var index = 0, sheets;\n doc = doc || document;\n\n if (doc.createStyleSheet && (sheets = doc.styleSheets)) {\n while (index < sheets.length)\n if (sheets[index++].owningElement.id === id) return true;\n } else if ((sheets = doc.getElementsByTagName(\"style\"))) {\n while (index < sheets.length)\n if (sheets[index++].id === id) return true;\n }\n\n return false;\n};\n\nexports.importCssString = function importCssString(cssText, id, doc) {\n doc = doc || document;\n if (id && exports.hasCssString(id, doc))\n return null;\n \n var style;\n \n if (id)\n cssText += \"\\n/*# sourceURL=ace/css/\" + id + \" */\";\n \n if (doc.createStyleSheet) {\n style = doc.createStyleSheet();\n style.cssText = cssText;\n if (id)\n style.owningElement.id = id;\n } else {\n style = exports.createElement(\"style\");\n style.appendChild(doc.createTextNode(cssText));\n if (id)\n style.id = id;\n\n exports.getDocumentHead(doc).appendChild(style);\n }\n};\n\nexports.importCssStylsheet = function(uri, doc) {\n if (doc.createStyleSheet) {\n doc.createStyleSheet(uri);\n } else {\n var link = exports.createElement('link');\n link.rel = 'stylesheet';\n link.href = uri;\n\n exports.getDocumentHead(doc).appendChild(link);\n }\n};\n\nexports.getInnerWidth = function(element) {\n return (\n parseInt(exports.computedStyle(element, \"paddingLeft\"), 10) +\n parseInt(exports.computedStyle(element, \"paddingRight\"), 10) + \n element.clientWidth\n );\n};\n\nexports.getInnerHeight = function(element) {\n return (\n parseInt(exports.computedStyle(element, \"paddingTop\"), 10) +\n parseInt(exports.computedStyle(element, \"paddingBottom\"), 10) +\n element.clientHeight\n );\n};\n\nexports.scrollbarWidth = function(document) {\n var inner = exports.createElement(\"ace_inner\");\n inner.style.width = \"100%\";\n inner.style.minWidth = \"0px\";\n inner.style.height = \"200px\";\n inner.style.display = \"block\";\n\n var outer = exports.createElement(\"ace_outer\");\n var style = outer.style;\n\n style.position = \"absolute\";\n style.left = \"-10000px\";\n style.overflow = \"hidden\";\n style.width = \"200px\";\n style.minWidth = \"0px\";\n style.height = \"150px\";\n style.display = \"block\";\n\n outer.appendChild(inner);\n\n var body = document.documentElement;\n body.appendChild(outer);\n\n var noScrollbar = inner.offsetWidth;\n\n style.overflow = \"scroll\";\n var withScrollbar = inner.offsetWidth;\n\n if (noScrollbar == withScrollbar) {\n withScrollbar = outer.clientWidth;\n }\n\n body.removeChild(outer);\n\n return noScrollbar-withScrollbar;\n};\n\nif (typeof document == \"undefined\") {\n exports.importCssString = function() {};\n return;\n}\n\nif (window.pageYOffset !== undefined) {\n exports.getPageScrollTop = function() {\n return window.pageYOffset;\n };\n\n exports.getPageScrollLeft = function() {\n return window.pageXOffset;\n };\n}\nelse {\n exports.getPageScrollTop = function() {\n return document.body.scrollTop;\n };\n\n exports.getPageScrollLeft = function() {\n return document.body.scrollLeft;\n };\n}\n\nif (window.getComputedStyle)\n exports.computedStyle = function(element, style) {\n if (style)\n return (window.getComputedStyle(element, \"\") || {})[style] || \"\";\n return window.getComputedStyle(element, \"\") || {};\n };\nelse\n exports.computedStyle = function(element, style) {\n if (style)\n return element.currentStyle[style];\n return element.currentStyle;\n };\nexports.setInnerHtml = function(el, innerHtml) {\n var element = el.cloneNode(false);//document.createElement(\"div\");\n element.innerHTML = innerHtml;\n el.parentNode.replaceChild(element, el);\n return element;\n};\n\nif (\"textContent\" in document.documentElement) {\n exports.setInnerText = function(el, innerText) {\n el.textContent = innerText;\n };\n\n exports.getInnerText = function(el) {\n return el.textContent;\n };\n}\nelse {\n exports.setInnerText = function(el, innerText) {\n el.innerText = innerText;\n };\n\n exports.getInnerText = function(el) {\n return el.innerText;\n };\n}\n\nexports.getParentWindow = function(document) {\n return document.defaultView || document.parentWindow;\n};\n\n});\n\nace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nexports.inherits = function(ctor, superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n};\n\nexports.mixin = function(obj, mixin) {\n for (var key in mixin) {\n obj[key] = mixin[key];\n }\n return obj;\n};\n\nexports.implement = function(proto, mixin) {\n exports.mixin(proto, mixin);\n};\n\n});\n\nace.define(\"ace/lib/keys\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/oop\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./fixoldbrowsers\");\n\nvar oop = acequire(\"./oop\");\nvar Keys = (function() {\n var ret = {\n MODIFIER_KEYS: {\n 16: 'Shift', 17: 'Ctrl', 18: 'Alt', 224: 'Meta'\n },\n\n KEY_MODS: {\n \"ctrl\": 1, \"alt\": 2, \"option\" : 2, \"shift\": 4,\n \"super\": 8, \"meta\": 8, \"command\": 8, \"cmd\": 8\n },\n\n FUNCTION_KEYS : {\n 8 : \"Backspace\",\n 9 : \"Tab\",\n 13 : \"Return\",\n 19 : \"Pause\",\n 27 : \"Esc\",\n 32 : \"Space\",\n 33 : \"PageUp\",\n 34 : \"PageDown\",\n 35 : \"End\",\n 36 : \"Home\",\n 37 : \"Left\",\n 38 : \"Up\",\n 39 : \"Right\",\n 40 : \"Down\",\n 44 : \"Print\",\n 45 : \"Insert\",\n 46 : \"Delete\",\n 96 : \"Numpad0\",\n 97 : \"Numpad1\",\n 98 : \"Numpad2\",\n 99 : \"Numpad3\",\n 100: \"Numpad4\",\n 101: \"Numpad5\",\n 102: \"Numpad6\",\n 103: \"Numpad7\",\n 104: \"Numpad8\",\n 105: \"Numpad9\",\n '-13': \"NumpadEnter\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"Numlock\",\n 145: \"Scrolllock\"\n },\n\n PRINTABLE_KEYS: {\n 32: ' ', 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5',\n 54: '6', 55: '7', 56: '8', 57: '9', 59: ';', 61: '=', 65: 'a',\n 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h',\n 73: 'i', 74: 'j', 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o',\n 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't', 85: 'u', 86: 'v',\n 87: 'w', 88: 'x', 89: 'y', 90: 'z', 107: '+', 109: '-', 110: '.',\n 186: ';', 187: '=', 188: ',', 189: '-', 190: '.', 191: '/', 192: '`',\n 219: '[', 220: '\\\\',221: ']', 222: \"'\", 111: '/', 106: '*'\n }\n };\n var name, i;\n for (i in ret.FUNCTION_KEYS) {\n name = ret.FUNCTION_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n for (i in ret.PRINTABLE_KEYS) {\n name = ret.PRINTABLE_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n oop.mixin(ret, ret.MODIFIER_KEYS);\n oop.mixin(ret, ret.PRINTABLE_KEYS);\n oop.mixin(ret, ret.FUNCTION_KEYS);\n ret.enter = ret[\"return\"];\n ret.escape = ret.esc;\n ret.del = ret[\"delete\"];\n ret[173] = '-';\n \n (function() {\n var mods = [\"cmd\", \"ctrl\", \"alt\", \"shift\"];\n for (var i = Math.pow(2, mods.length); i--;) { \n ret.KEY_MODS[i] = mods.filter(function(x) {\n return i & ret.KEY_MODS[x];\n }).join(\"-\") + \"-\";\n }\n })();\n\n ret.KEY_MODS[0] = \"\";\n ret.KEY_MODS[-1] = \"input-\";\n\n return ret;\n})();\noop.mixin(exports, Keys);\n\nexports.keyCodeToString = function(keyCode) {\n var keyString = Keys[keyCode];\n if (typeof keyString != \"string\")\n keyString = String.fromCharCode(keyCode);\n return keyString.toLowerCase();\n};\n\n});\n\nace.define(\"ace/lib/useragent\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nexports.OS = {\n LINUX: \"LINUX\",\n MAC: \"MAC\",\n WINDOWS: \"WINDOWS\"\n};\nexports.getOS = function() {\n if (exports.isMac) {\n return exports.OS.MAC;\n } else if (exports.isLinux) {\n return exports.OS.LINUX;\n } else {\n return exports.OS.WINDOWS;\n }\n};\nif (typeof navigator != \"object\")\n return;\n\nvar os = (navigator.platform.match(/mac|win|linux/i) || [\"other\"])[0].toLowerCase();\nvar ua = navigator.userAgent;\nexports.isWin = (os == \"win\");\nexports.isMac = (os == \"mac\");\nexports.isLinux = (os == \"linux\");\nexports.isIE = \n (navigator.appName == \"Microsoft Internet Explorer\" || navigator.appName.indexOf(\"MSAppHost\") >= 0)\n ? parseFloat((ua.match(/(?:MSIE |Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/)||[])[1])\n : parseFloat((ua.match(/(?:Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/)||[])[1]); // for ie\n \nexports.isOldIE = exports.isIE && exports.isIE < 9;\nexports.isGecko = exports.isMozilla = (window.Controllers || window.controllers) && window.navigator.product === \"Gecko\";\nexports.isOldGecko = exports.isGecko && parseInt((ua.match(/rv:(\\d+)/)||[])[1], 10) < 4;\nexports.isOpera = window.opera && Object.prototype.toString.call(window.opera) == \"[object Opera]\";\nexports.isWebKit = parseFloat(ua.split(\"WebKit/\")[1]) || undefined;\n\nexports.isChrome = parseFloat(ua.split(\" Chrome/\")[1]) || undefined;\n\nexports.isAIR = ua.indexOf(\"AdobeAIR\") >= 0;\n\nexports.isIPad = ua.indexOf(\"iPad\") >= 0;\n\nexports.isChromeOS = ua.indexOf(\" CrOS \") >= 0;\n\nexports.isIOS = /iPad|iPhone|iPod/.test(ua) && !window.MSStream;\n\nif (exports.isIOS) exports.isMac = true;\n\n});\n\nace.define(\"ace/lib/event\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar keys = acequire(\"./keys\");\nvar useragent = acequire(\"./useragent\");\n\nvar pressedKeys = null;\nvar ts = 0;\n\nexports.addListener = function(elem, type, callback) {\n if (elem.addEventListener) {\n return elem.addEventListener(type, callback, false);\n }\n if (elem.attachEvent) {\n var wrapper = function() {\n callback.call(elem, window.event);\n };\n callback._wrapper = wrapper;\n elem.attachEvent(\"on\" + type, wrapper);\n }\n};\n\nexports.removeListener = function(elem, type, callback) {\n if (elem.removeEventListener) {\n return elem.removeEventListener(type, callback, false);\n }\n if (elem.detachEvent) {\n elem.detachEvent(\"on\" + type, callback._wrapper || callback);\n }\n};\nexports.stopEvent = function(e) {\n exports.stopPropagation(e);\n exports.preventDefault(e);\n return false;\n};\n\nexports.stopPropagation = function(e) {\n if (e.stopPropagation)\n e.stopPropagation();\n else\n e.cancelBubble = true;\n};\n\nexports.preventDefault = function(e) {\n if (e.preventDefault)\n e.preventDefault();\n else\n e.returnValue = false;\n};\nexports.getButton = function(e) {\n if (e.type == \"dblclick\")\n return 0;\n if (e.type == \"contextmenu\" || (useragent.isMac && (e.ctrlKey && !e.altKey && !e.shiftKey)))\n return 2;\n if (e.preventDefault) {\n return e.button;\n }\n else {\n return {1:0, 2:2, 4:1}[e.button];\n }\n};\n\nexports.capture = function(el, eventHandler, releaseCaptureHandler) {\n function onMouseUp(e) {\n eventHandler && eventHandler(e);\n releaseCaptureHandler && releaseCaptureHandler(e);\n\n exports.removeListener(document, \"mousemove\", eventHandler, true);\n exports.removeListener(document, \"mouseup\", onMouseUp, true);\n exports.removeListener(document, \"dragstart\", onMouseUp, true);\n }\n\n exports.addListener(document, \"mousemove\", eventHandler, true);\n exports.addListener(document, \"mouseup\", onMouseUp, true);\n exports.addListener(document, \"dragstart\", onMouseUp, true);\n \n return onMouseUp;\n};\n\nexports.addTouchMoveListener = function (el, callback) {\n var startx, starty;\n exports.addListener(el, \"touchstart\", function (e) {\n var touches = e.touches;\n var touchObj = touches[0];\n startx = touchObj.clientX;\n starty = touchObj.clientY;\n });\n exports.addListener(el, \"touchmove\", function (e) {\n var touches = e.touches;\n if (touches.length > 1) return;\n\n var touchObj = touches[0];\n\n e.wheelX = startx - touchObj.clientX;\n e.wheelY = starty - touchObj.clientY;\n\n startx = touchObj.clientX;\n starty = touchObj.clientY;\n\n callback(e);\n });\n};\n\nexports.addMouseWheelListener = function(el, callback) {\n if (\"onmousewheel\" in el) {\n exports.addListener(el, \"mousewheel\", function(e) {\n var factor = 8;\n if (e.wheelDeltaX !== undefined) {\n e.wheelX = -e.wheelDeltaX / factor;\n e.wheelY = -e.wheelDeltaY / factor;\n } else {\n e.wheelX = 0;\n e.wheelY = -e.wheelDelta / factor;\n }\n callback(e);\n });\n } else if (\"onwheel\" in el) {\n exports.addListener(el, \"wheel\", function(e) {\n var factor = 0.35;\n switch (e.deltaMode) {\n case e.DOM_DELTA_PIXEL:\n e.wheelX = e.deltaX * factor || 0;\n e.wheelY = e.deltaY * factor || 0;\n break;\n case e.DOM_DELTA_LINE:\n case e.DOM_DELTA_PAGE:\n e.wheelX = (e.deltaX || 0) * 5;\n e.wheelY = (e.deltaY || 0) * 5;\n break;\n }\n \n callback(e);\n });\n } else {\n exports.addListener(el, \"DOMMouseScroll\", function(e) {\n if (e.axis && e.axis == e.HORIZONTAL_AXIS) {\n e.wheelX = (e.detail || 0) * 5;\n e.wheelY = 0;\n } else {\n e.wheelX = 0;\n e.wheelY = (e.detail || 0) * 5;\n }\n callback(e);\n });\n }\n};\n\nexports.addMultiMouseDownListener = function(elements, timeouts, eventHandler, callbackName) {\n var clicks = 0;\n var startX, startY, timer; \n var eventNames = {\n 2: \"dblclick\",\n 3: \"tripleclick\",\n 4: \"quadclick\"\n };\n\n function onMousedown(e) {\n if (exports.getButton(e) !== 0) {\n clicks = 0;\n } else if (e.detail > 1) {\n clicks++;\n if (clicks > 4)\n clicks = 1;\n } else {\n clicks = 1;\n }\n if (useragent.isIE) {\n var isNewClick = Math.abs(e.clientX - startX) > 5 || Math.abs(e.clientY - startY) > 5;\n if (!timer || isNewClick)\n clicks = 1;\n if (timer)\n clearTimeout(timer);\n timer = setTimeout(function() {timer = null;}, timeouts[clicks - 1] || 600);\n\n if (clicks == 1) {\n startX = e.clientX;\n startY = e.clientY;\n }\n }\n \n e._clicks = clicks;\n\n eventHandler[callbackName](\"mousedown\", e);\n\n if (clicks > 4)\n clicks = 0;\n else if (clicks > 1)\n return eventHandler[callbackName](eventNames[clicks], e);\n }\n function onDblclick(e) {\n clicks = 2;\n if (timer)\n clearTimeout(timer);\n timer = setTimeout(function() {timer = null;}, timeouts[clicks - 1] || 600);\n eventHandler[callbackName](\"mousedown\", e);\n eventHandler[callbackName](eventNames[clicks], e);\n }\n if (!Array.isArray(elements))\n elements = [elements];\n elements.forEach(function(el) {\n exports.addListener(el, \"mousedown\", onMousedown);\n if (useragent.isOldIE)\n exports.addListener(el, \"dblclick\", onDblclick);\n });\n};\n\nvar getModifierHash = useragent.isMac && useragent.isOpera && !(\"KeyboardEvent\" in window)\n ? function(e) {\n return 0 | (e.metaKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.ctrlKey ? 8 : 0);\n }\n : function(e) {\n return 0 | (e.ctrlKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.metaKey ? 8 : 0);\n };\n\nexports.getModifierString = function(e) {\n return keys.KEY_MODS[getModifierHash(e)];\n};\n\nfunction normalizeCommandKeys(callback, e, keyCode) {\n var hashId = getModifierHash(e);\n\n if (!useragent.isMac && pressedKeys) {\n if (e.getModifierState && (e.getModifierState(\"OS\") || e.getModifierState(\"Win\")))\n hashId |= 8;\n if (pressedKeys.altGr) {\n if ((3 & hashId) != 3)\n pressedKeys.altGr = 0;\n else\n return;\n }\n if (keyCode === 18 || keyCode === 17) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (keyCode === 17 && location === 1) {\n if (pressedKeys[keyCode] == 1)\n ts = e.timeStamp;\n } else if (keyCode === 18 && hashId === 3 && location === 2) {\n var dt = e.timeStamp - ts;\n if (dt < 50)\n pressedKeys.altGr = true;\n }\n }\n }\n \n if (keyCode in keys.MODIFIER_KEYS) {\n keyCode = -1;\n }\n if (hashId & 8 && (keyCode >= 91 && keyCode <= 93)) {\n keyCode = -1;\n }\n \n if (!hashId && keyCode === 13) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (location === 3) {\n callback(e, hashId, -keyCode);\n if (e.defaultPrevented)\n return;\n }\n }\n \n if (useragent.isChromeOS && hashId & 8) {\n callback(e, hashId, keyCode);\n if (e.defaultPrevented)\n return;\n else\n hashId &= ~8;\n }\n if (!hashId && !(keyCode in keys.FUNCTION_KEYS) && !(keyCode in keys.PRINTABLE_KEYS)) {\n return false;\n }\n \n return callback(e, hashId, keyCode);\n}\n\n\nexports.addCommandKeyListener = function(el, callback) {\n var addListener = exports.addListener;\n if (useragent.isOldGecko || (useragent.isOpera && !(\"KeyboardEvent\" in window))) {\n var lastKeyDownKeyCode = null;\n addListener(el, \"keydown\", function(e) {\n lastKeyDownKeyCode = e.keyCode;\n });\n addListener(el, \"keypress\", function(e) {\n return normalizeCommandKeys(callback, e, lastKeyDownKeyCode);\n });\n } else {\n var lastDefaultPrevented = null;\n\n addListener(el, \"keydown\", function(e) {\n pressedKeys[e.keyCode] = (pressedKeys[e.keyCode] || 0) + 1;\n var result = normalizeCommandKeys(callback, e, e.keyCode);\n lastDefaultPrevented = e.defaultPrevented;\n return result;\n });\n\n addListener(el, \"keypress\", function(e) {\n if (lastDefaultPrevented && (e.ctrlKey || e.altKey || e.shiftKey || e.metaKey)) {\n exports.stopEvent(e);\n lastDefaultPrevented = null;\n }\n });\n\n addListener(el, \"keyup\", function(e) {\n pressedKeys[e.keyCode] = null;\n });\n\n if (!pressedKeys) {\n resetPressedKeys();\n addListener(window, \"focus\", resetPressedKeys);\n }\n }\n};\nfunction resetPressedKeys() {\n pressedKeys = Object.create(null);\n}\n\nif (typeof window == \"object\" && window.postMessage && !useragent.isOldIE) {\n var postMessageId = 1;\n exports.nextTick = function(callback, win) {\n win = win || window;\n var messageName = \"zero-timeout-message-\" + postMessageId;\n exports.addListener(win, \"message\", function listener(e) {\n if (e.data == messageName) {\n exports.stopPropagation(e);\n exports.removeListener(win, \"message\", listener);\n callback();\n }\n });\n win.postMessage(messageName, \"*\");\n };\n}\n\n\nexports.nextFrame = typeof window == \"object\" && (window.requestAnimationFrame\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame\n || window.msRequestAnimationFrame\n || window.oRequestAnimationFrame);\n\nif (exports.nextFrame)\n exports.nextFrame = exports.nextFrame.bind(window);\nelse\n exports.nextFrame = function(callback) {\n setTimeout(callback, 17);\n };\n});\n\nace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nexports.last = function(a) {\n return a[a.length - 1];\n};\n\nexports.stringReverse = function(string) {\n return string.split(\"\").reverse().join(\"\");\n};\n\nexports.stringRepeat = function (string, count) {\n var result = '';\n while (count > 0) {\n if (count & 1)\n result += string;\n\n if (count >>= 1)\n string += string;\n }\n return result;\n};\n\nvar trimBeginRegexp = /^\\s\\s*/;\nvar trimEndRegexp = /\\s\\s*$/;\n\nexports.stringTrimLeft = function (string) {\n return string.replace(trimBeginRegexp, '');\n};\n\nexports.stringTrimRight = function (string) {\n return string.replace(trimEndRegexp, '');\n};\n\nexports.copyObject = function(obj) {\n var copy = {};\n for (var key in obj) {\n copy[key] = obj[key];\n }\n return copy;\n};\n\nexports.copyArray = function(array){\n var copy = [];\n for (var i=0, l=array.length; i PLACEHOLDER.length)\n data = data.substr(9);\n else if (data.substr(0, 4) == PLACEHOLDER.substr(0, 4))\n data = data.substr(4, data.length - PLACEHOLDER.length + 1);\n else if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0))\n data = data.slice(0, -1);\n if (data == PLACEHOLDER.charAt(0)) {\n } else if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0))\n data = data.slice(0, -1);\n\n if (data)\n host.onTextInput(data);\n }\n if (copied) {\n copied = false;\n }\n if (afterContextMenu)\n afterContextMenu = false;\n };\n var onInput = function(e) {\n if (inComposition)\n return;\n var data = text.value;\n sendText(data);\n resetValue();\n };\n\n var handleClipboardData = function(e, data, forceIEMime) {\n var clipboardData = e.clipboardData || window.clipboardData;\n if (!clipboardData || BROKEN_SETDATA)\n return;\n var mime = USE_IE_MIME_TYPE || forceIEMime ? \"Text\" : \"text/plain\";\n try {\n if (data) {\n return clipboardData.setData(mime, data) !== false;\n } else {\n return clipboardData.getData(mime);\n }\n } catch(e) {\n if (!forceIEMime)\n return handleClipboardData(e, data, true);\n }\n };\n\n var doCopy = function(e, isCut) {\n var data = host.getCopyText();\n if (!data)\n return event.preventDefault(e);\n\n if (handleClipboardData(e, data)) {\n if (useragent.isIOS) {\n cut = isCut;\n text.value = \"\\n aa\" + data + \"a a\\n\";\n text.setSelectionRange(4, 4 + data.length);\n copied = {\n value: data\n };\n }\n isCut ? host.onCut() : host.onCopy();\n if (!useragent.isIOS) event.preventDefault(e);\n } else {\n copied = true;\n text.value = data;\n text.select();\n setTimeout(function(){\n copied = false;\n resetValue();\n resetSelection();\n isCut ? host.onCut() : host.onCopy();\n });\n }\n };\n\n var onCut = function(e) {\n doCopy(e, true);\n };\n\n var onCopy = function(e) {\n doCopy(e, false);\n };\n\n var onPaste = function(e) {\n var data = handleClipboardData(e);\n if (typeof data == \"string\") {\n if (data)\n host.onPaste(data, e);\n if (useragent.isIE)\n setTimeout(resetSelection);\n event.preventDefault(e);\n }\n else {\n text.value = \"\";\n pasted = true;\n }\n };\n\n event.addCommandKeyListener(text, host.onCommandKey.bind(host));\n\n event.addListener(text, \"select\", onSelect);\n\n event.addListener(text, \"input\", onInput);\n\n event.addListener(text, \"cut\", onCut);\n event.addListener(text, \"copy\", onCopy);\n event.addListener(text, \"paste\", onPaste);\n var onCompositionStart = function(e) {\n if (inComposition || !host.onCompositionStart || host.$readOnly)\n return;\n inComposition = {};\n inComposition.canUndo = host.session.$undoManager;\n host.onCompositionStart();\n setTimeout(onCompositionUpdate, 0);\n host.on(\"mousedown\", onCompositionEnd);\n if (inComposition.canUndo && !host.selection.isEmpty()) {\n host.insert(\"\");\n host.session.markUndoGroup();\n host.selection.clearSelection();\n }\n host.session.markUndoGroup();\n };\n\n var onCompositionUpdate = function() {\n if (!inComposition || !host.onCompositionUpdate || host.$readOnly)\n return;\n var val = text.value.replace(/\\x01/g, \"\");\n if (inComposition.lastValue === val) return;\n\n host.onCompositionUpdate(val);\n if (inComposition.lastValue)\n host.undo();\n if (inComposition.canUndo)\n inComposition.lastValue = val;\n if (inComposition.lastValue) {\n var r = host.selection.getRange();\n host.insert(inComposition.lastValue);\n host.session.markUndoGroup();\n inComposition.range = host.selection.getRange();\n host.selection.setRange(r);\n host.selection.clearSelection();\n }\n };\n\n var onCompositionEnd = function(e) {\n if (!host.onCompositionEnd || host.$readOnly) return;\n var c = inComposition;\n inComposition = false;\n var timer = setTimeout(function() {\n timer = null;\n var str = text.value.replace(/\\x01/g, \"\");\n if (inComposition)\n return;\n else if (str == c.lastValue)\n resetValue();\n else if (!c.lastValue && str) {\n resetValue();\n sendText(str);\n }\n });\n inputHandler = function compositionInputHandler(str) {\n if (timer)\n clearTimeout(timer);\n str = str.replace(/\\x01/g, \"\");\n if (str == c.lastValue)\n return \"\";\n if (c.lastValue && timer)\n host.undo();\n return str;\n };\n host.onCompositionEnd();\n host.removeListener(\"mousedown\", onCompositionEnd);\n if (e.type == \"compositionend\" && c.range) {\n host.selection.setRange(c.range);\n }\n var needsOnInput =\n (!!useragent.isChrome && useragent.isChrome >= 53) ||\n (!!useragent.isWebKit && useragent.isWebKit >= 603);\n\n if (needsOnInput) {\n onInput();\n }\n };\n\n\n\n var syncComposition = lang.delayedCall(onCompositionUpdate, 50);\n\n event.addListener(text, \"compositionstart\", onCompositionStart);\n if (useragent.isGecko) {\n event.addListener(text, \"text\", function(){syncComposition.schedule();});\n } else {\n event.addListener(text, \"keyup\", function(){syncComposition.schedule();});\n event.addListener(text, \"keydown\", function(){syncComposition.schedule();});\n }\n event.addListener(text, \"compositionend\", onCompositionEnd);\n\n this.getElement = function() {\n return text;\n };\n\n this.setReadOnly = function(readOnly) {\n text.readOnly = readOnly;\n };\n\n this.onContextMenu = function(e) {\n afterContextMenu = true;\n resetSelection(host.selection.isEmpty());\n host._emit(\"nativecontextmenu\", {target: host, domEvent: e});\n this.moveToMouse(e, true);\n };\n\n this.moveToMouse = function(e, bringToFront) {\n if (!tempStyle)\n tempStyle = text.style.cssText;\n text.style.cssText = (bringToFront ? \"z-index:100000;\" : \"\")\n + \"height:\" + text.style.height + \";\"\n + (useragent.isIE ? \"opacity:0.1;\" : \"\");\n\n var rect = host.container.getBoundingClientRect();\n var style = dom.computedStyle(host.container);\n var top = rect.top + (parseInt(style.borderTopWidth) || 0);\n var left = rect.left + (parseInt(rect.borderLeftWidth) || 0);\n var maxTop = rect.bottom - top - text.clientHeight -2;\n var move = function(e) {\n text.style.left = e.clientX - left - 2 + \"px\";\n text.style.top = Math.min(e.clientY - top - 2, maxTop) + \"px\";\n };\n move(e);\n\n if (e.type != \"mousedown\")\n return;\n\n if (host.renderer.$keepTextAreaAtCursor)\n host.renderer.$keepTextAreaAtCursor = null;\n\n clearTimeout(closeTimeout);\n if (useragent.isWin)\n event.capture(host.container, move, onContextMenuClose);\n };\n\n this.onContextMenuClose = onContextMenuClose;\n var closeTimeout;\n function onContextMenuClose() {\n clearTimeout(closeTimeout);\n closeTimeout = setTimeout(function () {\n if (tempStyle) {\n text.style.cssText = tempStyle;\n tempStyle = '';\n }\n if (host.renderer.$keepTextAreaAtCursor == null) {\n host.renderer.$keepTextAreaAtCursor = true;\n host.renderer.$moveTextAreaToCursor();\n }\n }, 0);\n }\n\n var onContextMenu = function(e) {\n host.textInput.onContextMenu(e);\n onContextMenuClose();\n };\n event.addListener(text, \"mouseup\", onContextMenu);\n event.addListener(text, \"mousedown\", function(e) {\n e.preventDefault();\n onContextMenuClose();\n });\n event.addListener(host.renderer.scroller, \"contextmenu\", onContextMenu);\n event.addListener(text, \"contextmenu\", onContextMenu);\n\n if (useragent.isIOS) {\n var typingResetTimeout = null;\n var typing = false;\n\n parentNode.addEventListener(\"keydown\", function (e) {\n if (typingResetTimeout) clearTimeout(typingResetTimeout);\n typing = true;\n });\n\n parentNode.addEventListener(\"keyup\", function (e) {\n typingResetTimeout = setTimeout(function () {\n typing = false;\n }, 100);\n });\n var detectArrowKeys = function(e) {\n if (document.activeElement !== text) return;\n if (typing) return;\n\n if (cut) {\n return setTimeout(function () {\n cut = false;\n }, 100);\n }\n var selectionStart = text.selectionStart;\n var selectionEnd = text.selectionEnd;\n text.setSelectionRange(4, 5);\n if (selectionStart == selectionEnd) {\n switch (selectionStart) {\n case 0: host.onCommandKey(null, 0, KEYS.up); break;\n case 1: host.onCommandKey(null, 0, KEYS.home); break;\n case 2: host.onCommandKey(null, MODS.option, KEYS.left); break;\n case 4: host.onCommandKey(null, 0, KEYS.left); break;\n case 5: host.onCommandKey(null, 0, KEYS.right); break;\n case 7: host.onCommandKey(null, MODS.option, KEYS.right); break;\n case 8: host.onCommandKey(null, 0, KEYS.end); break;\n case 9: host.onCommandKey(null, 0, KEYS.down); break;\n }\n } else {\n switch (selectionEnd) {\n case 6: host.onCommandKey(null, MODS.shift, KEYS.right); break;\n case 7: host.onCommandKey(null, MODS.shift | MODS.option, KEYS.right); break;\n case 8: host.onCommandKey(null, MODS.shift, KEYS.end); break;\n case 9: host.onCommandKey(null, MODS.shift, KEYS.down); break;\n }\n switch (selectionStart) {\n case 0: host.onCommandKey(null, MODS.shift, KEYS.up); break;\n case 1: host.onCommandKey(null, MODS.shift, KEYS.home); break;\n case 2: host.onCommandKey(null, MODS.shift | MODS.option, KEYS.left); break;\n case 3: host.onCommandKey(null, MODS.shift, KEYS.left); break;\n }\n }\n };\n document.addEventListener(\"selectionchange\", detectArrowKeys);\n host.on(\"destroy\", function() {\n document.removeEventListener(\"selectionchange\", detectArrowKeys);\n });\n }\n};\n\nexports.TextInput = TextInput;\n});\n\nace.define(\"ace/keyboard/textinput\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/keyboard/textinput_ios\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\nvar dom = acequire(\"../lib/dom\");\nvar lang = acequire(\"../lib/lang\");\nvar BROKEN_SETDATA = useragent.isChrome < 18;\nvar USE_IE_MIME_TYPE = useragent.isIE;\n\nvar TextInputIOS = acequire(\"./textinput_ios\").TextInput;\nvar TextInput = function(parentNode, host) {\n if (useragent.isIOS)\n return TextInputIOS.call(this, parentNode, host);\n\n var text = dom.createElement(\"textarea\");\n text.className = \"ace_text-input\";\n\n text.setAttribute(\"wrap\", \"off\");\n text.setAttribute(\"autocorrect\", \"off\");\n text.setAttribute(\"autocapitalize\", \"off\");\n text.setAttribute(\"spellcheck\", false);\n\n text.style.opacity = \"0\";\n parentNode.insertBefore(text, parentNode.firstChild);\n\n var PLACEHOLDER = \"\\u2028\\u2028\";\n\n var copied = false;\n var pasted = false;\n var inComposition = false;\n var tempStyle = '';\n var isSelectionEmpty = true;\n try { var isFocused = document.activeElement === text; } catch(e) {}\n \n event.addListener(text, \"blur\", function(e) {\n host.onBlur(e);\n isFocused = false;\n });\n event.addListener(text, \"focus\", function(e) {\n isFocused = true;\n host.onFocus(e);\n resetSelection();\n });\n this.focus = function() {\n if (tempStyle) return text.focus();\n var top = text.style.top;\n text.style.position = \"fixed\";\n text.style.top = \"0px\";\n text.focus();\n setTimeout(function() {\n text.style.position = \"\";\n if (text.style.top == \"0px\")\n text.style.top = top;\n }, 0);\n };\n this.blur = function() {\n text.blur();\n };\n this.isFocused = function() {\n return isFocused;\n };\n var syncSelection = lang.delayedCall(function() {\n isFocused && resetSelection(isSelectionEmpty);\n });\n var syncValue = lang.delayedCall(function() {\n if (!inComposition) {\n text.value = PLACEHOLDER;\n isFocused && resetSelection();\n }\n });\n\n function resetSelection(isEmpty) {\n if (inComposition)\n return;\n inComposition = true;\n \n if (inputHandler) {\n var selectionStart = 0;\n var selectionEnd = isEmpty ? 0 : text.value.length - 1;\n } else {\n var selectionStart = isEmpty ? 2 : 1;\n var selectionEnd = 2;\n }\n try {\n text.setSelectionRange(selectionStart, selectionEnd);\n } catch(e){}\n \n inComposition = false;\n }\n\n function resetValue() {\n if (inComposition)\n return;\n text.value = PLACEHOLDER;\n if (useragent.isWebKit)\n syncValue.schedule();\n }\n\n useragent.isWebKit || host.addEventListener('changeSelection', function() {\n if (host.selection.isEmpty() != isSelectionEmpty) {\n isSelectionEmpty = !isSelectionEmpty;\n syncSelection.schedule();\n }\n });\n\n resetValue();\n if (isFocused)\n host.onFocus();\n\n\n var isAllSelected = function(text) {\n return text.selectionStart === 0 && text.selectionEnd === text.value.length;\n };\n\n var onSelect = function(e) {\n if (copied) {\n copied = false;\n } else if (isAllSelected(text)) {\n host.selectAll();\n resetSelection();\n } else if (inputHandler) {\n resetSelection(host.selection.isEmpty());\n }\n };\n\n var inputHandler = null;\n this.setInputHandler = function(cb) {inputHandler = cb;};\n this.getInputHandler = function() {return inputHandler;};\n var afterContextMenu = false;\n \n var sendText = function(data) {\n if (inputHandler) {\n data = inputHandler(data);\n inputHandler = null;\n }\n if (pasted) {\n resetSelection();\n if (data)\n host.onPaste(data);\n pasted = false;\n } else if (data == PLACEHOLDER.charAt(0)) {\n if (afterContextMenu)\n host.execCommand(\"del\", {source: \"ace\"});\n else // some versions of android do not fire keydown when pressing backspace\n host.execCommand(\"backspace\", {source: \"ace\"});\n } else {\n if (data.substring(0, 2) == PLACEHOLDER)\n data = data.substr(2);\n else if (data.charAt(0) == PLACEHOLDER.charAt(0))\n data = data.substr(1);\n else if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0))\n data = data.slice(0, -1);\n if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0))\n data = data.slice(0, -1);\n \n if (data)\n host.onTextInput(data);\n }\n if (afterContextMenu)\n afterContextMenu = false;\n };\n var onInput = function(e) {\n if (inComposition)\n return;\n var data = text.value;\n sendText(data);\n resetValue();\n };\n \n var handleClipboardData = function(e, data, forceIEMime) {\n var clipboardData = e.clipboardData || window.clipboardData;\n if (!clipboardData || BROKEN_SETDATA)\n return;\n var mime = USE_IE_MIME_TYPE || forceIEMime ? \"Text\" : \"text/plain\";\n try {\n if (data) {\n return clipboardData.setData(mime, data) !== false;\n } else {\n return clipboardData.getData(mime);\n }\n } catch(e) {\n if (!forceIEMime)\n return handleClipboardData(e, data, true);\n }\n };\n\n var doCopy = function(e, isCut) {\n var data = host.getCopyText();\n if (!data)\n return event.preventDefault(e);\n\n if (handleClipboardData(e, data)) {\n isCut ? host.onCut() : host.onCopy();\n event.preventDefault(e);\n } else {\n copied = true;\n text.value = data;\n text.select();\n setTimeout(function(){\n copied = false;\n resetValue();\n resetSelection();\n isCut ? host.onCut() : host.onCopy();\n });\n }\n };\n \n var onCut = function(e) {\n doCopy(e, true);\n };\n \n var onCopy = function(e) {\n doCopy(e, false);\n };\n \n var onPaste = function(e) {\n var data = handleClipboardData(e);\n if (typeof data == \"string\") {\n if (data)\n host.onPaste(data, e);\n if (useragent.isIE)\n setTimeout(resetSelection);\n event.preventDefault(e);\n }\n else {\n text.value = \"\";\n pasted = true;\n }\n };\n\n event.addCommandKeyListener(text, host.onCommandKey.bind(host));\n\n event.addListener(text, \"select\", onSelect);\n\n event.addListener(text, \"input\", onInput);\n\n event.addListener(text, \"cut\", onCut);\n event.addListener(text, \"copy\", onCopy);\n event.addListener(text, \"paste\", onPaste);\n if (!('oncut' in text) || !('oncopy' in text) || !('onpaste' in text)) {\n event.addListener(parentNode, \"keydown\", function(e) {\n if ((useragent.isMac && !e.metaKey) || !e.ctrlKey)\n return;\n\n switch (e.keyCode) {\n case 67:\n onCopy(e);\n break;\n case 86:\n onPaste(e);\n break;\n case 88:\n onCut(e);\n break;\n }\n });\n }\n var onCompositionStart = function(e) {\n if (inComposition || !host.onCompositionStart || host.$readOnly) \n return;\n inComposition = {};\n inComposition.canUndo = host.session.$undoManager;\n host.onCompositionStart();\n setTimeout(onCompositionUpdate, 0);\n host.on(\"mousedown\", onCompositionEnd);\n if (inComposition.canUndo && !host.selection.isEmpty()) {\n host.insert(\"\");\n host.session.markUndoGroup();\n host.selection.clearSelection();\n }\n host.session.markUndoGroup();\n };\n\n var onCompositionUpdate = function() {\n if (!inComposition || !host.onCompositionUpdate || host.$readOnly)\n return;\n var val = text.value.replace(/\\u2028/g, \"\");\n if (inComposition.lastValue === val) return;\n \n host.onCompositionUpdate(val);\n if (inComposition.lastValue)\n host.undo();\n if (inComposition.canUndo)\n inComposition.lastValue = val;\n if (inComposition.lastValue) {\n var r = host.selection.getRange();\n host.insert(inComposition.lastValue);\n host.session.markUndoGroup();\n inComposition.range = host.selection.getRange();\n host.selection.setRange(r);\n host.selection.clearSelection();\n }\n };\n\n var onCompositionEnd = function(e) {\n if (!host.onCompositionEnd || host.$readOnly) return;\n var c = inComposition;\n inComposition = false;\n var timer = setTimeout(function() {\n timer = null;\n var str = text.value.replace(/\\u2028/g, \"\");\n if (inComposition)\n return;\n else if (str == c.lastValue)\n resetValue();\n else if (!c.lastValue && str) {\n resetValue();\n sendText(str);\n }\n });\n inputHandler = function compositionInputHandler(str) {\n if (timer)\n clearTimeout(timer);\n str = str.replace(/\\u2028/g, \"\");\n if (str == c.lastValue)\n return \"\";\n if (c.lastValue && timer)\n host.undo();\n return str;\n };\n host.onCompositionEnd();\n host.removeListener(\"mousedown\", onCompositionEnd);\n if (e.type == \"compositionend\" && c.range) {\n host.selection.setRange(c.range);\n }\n var needsOnInput =\n (!!useragent.isChrome && useragent.isChrome >= 53) ||\n (!!useragent.isWebKit && useragent.isWebKit >= 603);\n\n if (needsOnInput) {\n onInput();\n }\n };\n \n \n\n var syncComposition = lang.delayedCall(onCompositionUpdate, 50);\n\n event.addListener(text, \"compositionstart\", onCompositionStart);\n if (useragent.isGecko) {\n event.addListener(text, \"text\", function(){syncComposition.schedule();});\n } else {\n event.addListener(text, \"keyup\", function(){syncComposition.schedule();});\n event.addListener(text, \"keydown\", function(){syncComposition.schedule();});\n }\n event.addListener(text, \"compositionend\", onCompositionEnd);\n\n this.getElement = function() {\n return text;\n };\n\n this.setReadOnly = function(readOnly) {\n text.readOnly = readOnly;\n };\n\n this.onContextMenu = function(e) {\n afterContextMenu = true;\n resetSelection(host.selection.isEmpty());\n host._emit(\"nativecontextmenu\", {target: host, domEvent: e});\n this.moveToMouse(e, true);\n };\n \n this.moveToMouse = function(e, bringToFront) {\n if (!tempStyle)\n tempStyle = text.style.cssText;\n text.style.cssText = (bringToFront ? \"z-index:100000;\" : \"\")\n + \"height:\" + text.style.height + \";\"\n + (useragent.isIE ? \"opacity:0.1;\" : \"\");\n\n var rect = host.container.getBoundingClientRect();\n var style = dom.computedStyle(host.container);\n var top = rect.top + (parseInt(style.borderTopWidth) || 0);\n var left = rect.left + (parseInt(rect.borderLeftWidth) || 0);\n var maxTop = rect.bottom - top - text.clientHeight -2;\n var move = function(e) {\n text.style.left = e.clientX - left - 2 + \"px\";\n text.style.top = Math.min(e.clientY - top - 2, maxTop) + \"px\";\n }; \n move(e);\n\n if (e.type != \"mousedown\")\n return;\n\n if (host.renderer.$keepTextAreaAtCursor)\n host.renderer.$keepTextAreaAtCursor = null;\n\n clearTimeout(closeTimeout);\n if (useragent.isWin)\n event.capture(host.container, move, onContextMenuClose);\n };\n\n this.onContextMenuClose = onContextMenuClose;\n var closeTimeout;\n function onContextMenuClose() {\n clearTimeout(closeTimeout);\n closeTimeout = setTimeout(function () {\n if (tempStyle) {\n text.style.cssText = tempStyle;\n tempStyle = '';\n }\n if (host.renderer.$keepTextAreaAtCursor == null) {\n host.renderer.$keepTextAreaAtCursor = true;\n host.renderer.$moveTextAreaToCursor();\n }\n }, 0);\n }\n\n var onContextMenu = function(e) {\n host.textInput.onContextMenu(e);\n onContextMenuClose();\n };\n event.addListener(text, \"mouseup\", onContextMenu);\n event.addListener(text, \"mousedown\", function(e) {\n e.preventDefault();\n onContextMenuClose();\n });\n event.addListener(host.renderer.scroller, \"contextmenu\", onContextMenu);\n event.addListener(text, \"contextmenu\", onContextMenu);\n};\n\nexports.TextInput = TextInput;\n});\n\nace.define(\"ace/mouse/default_handlers\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\n\nvar DRAG_OFFSET = 0; // pixels\nvar SCROLL_COOLDOWN_T = 250; // milliseconds\n\nfunction DefaultHandlers(mouseHandler) {\n mouseHandler.$clickSelection = null;\n\n var editor = mouseHandler.editor;\n editor.setDefaultHandler(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n editor.setDefaultHandler(\"dblclick\", this.onDoubleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"tripleclick\", this.onTripleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"quadclick\", this.onQuadClick.bind(mouseHandler));\n editor.setDefaultHandler(\"mousewheel\", this.onMouseWheel.bind(mouseHandler));\n editor.setDefaultHandler(\"touchmove\", this.onTouchMove.bind(mouseHandler));\n\n var exports = [\"select\", \"startSelect\", \"selectEnd\", \"selectAllEnd\", \"selectByWordsEnd\",\n \"selectByLinesEnd\", \"dragWait\", \"dragWaitEnd\", \"focusWait\"];\n\n exports.forEach(function(x) {\n mouseHandler[x] = this[x];\n }, this);\n\n mouseHandler.selectByLines = this.extendSelectionBy.bind(mouseHandler, \"getLineRange\");\n mouseHandler.selectByWords = this.extendSelectionBy.bind(mouseHandler, \"getWordRange\");\n}\n\n(function() {\n\n this.onMouseDown = function(ev) {\n var inSelection = ev.inSelection();\n var pos = ev.getDocumentPosition();\n this.mousedownEvent = ev;\n var editor = this.editor;\n\n var button = ev.getButton();\n if (button !== 0) {\n var selectionRange = editor.getSelectionRange();\n var selectionEmpty = selectionRange.isEmpty();\n editor.$blockScrolling++;\n if (selectionEmpty || button == 1)\n editor.selection.moveToPosition(pos);\n editor.$blockScrolling--;\n if (button == 2) {\n editor.textInput.onContextMenu(ev.domEvent);\n if (!useragent.isMozilla)\n ev.preventDefault();\n }\n return;\n }\n\n this.mousedownEvent.time = Date.now();\n if (inSelection && !editor.isFocused()) {\n editor.focus();\n if (this.$focusTimout && !this.$clickSelection && !editor.inMultiSelectMode) {\n this.setState(\"focusWait\");\n this.captureMouse(ev);\n return;\n }\n }\n\n this.captureMouse(ev);\n this.startSelect(pos, ev.domEvent._clicks > 1);\n return ev.preventDefault();\n };\n\n this.startSelect = function(pos, waitForClickSelection) {\n pos = pos || this.editor.renderer.screenToTextCoordinates(this.x, this.y);\n var editor = this.editor;\n editor.$blockScrolling++;\n if (this.mousedownEvent.getShiftKey())\n editor.selection.selectToPosition(pos);\n else if (!waitForClickSelection)\n editor.selection.moveToPosition(pos);\n if (!waitForClickSelection)\n this.select();\n if (editor.renderer.scroller.setCapture) {\n editor.renderer.scroller.setCapture();\n }\n editor.setStyle(\"ace_selecting\");\n this.setState(\"select\");\n editor.$blockScrolling--;\n };\n\n this.select = function() {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n editor.$blockScrolling++;\n if (this.$clickSelection) {\n var cmp = this.$clickSelection.comparePoint(cursor);\n\n if (cmp == -1) {\n anchor = this.$clickSelection.end;\n } else if (cmp == 1) {\n anchor = this.$clickSelection.start;\n } else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.$blockScrolling--;\n editor.renderer.scrollCursorIntoView();\n };\n\n this.extendSelectionBy = function(unitName) {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n var range = editor.selection[unitName](cursor.row, cursor.column);\n editor.$blockScrolling++;\n if (this.$clickSelection) {\n var cmpStart = this.$clickSelection.comparePoint(range.start);\n var cmpEnd = this.$clickSelection.comparePoint(range.end);\n\n if (cmpStart == -1 && cmpEnd <= 0) {\n anchor = this.$clickSelection.end;\n if (range.end.row != cursor.row || range.end.column != cursor.column)\n cursor = range.start;\n } else if (cmpEnd == 1 && cmpStart >= 0) {\n anchor = this.$clickSelection.start;\n if (range.start.row != cursor.row || range.start.column != cursor.column)\n cursor = range.end;\n } else if (cmpStart == -1 && cmpEnd == 1) {\n cursor = range.end;\n anchor = range.start;\n } else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.$blockScrolling--;\n editor.renderer.scrollCursorIntoView();\n };\n\n this.selectEnd =\n this.selectAllEnd =\n this.selectByWordsEnd =\n this.selectByLinesEnd = function() {\n this.$clickSelection = null;\n this.editor.unsetStyle(\"ace_selecting\");\n if (this.editor.renderer.scroller.releaseCapture) {\n this.editor.renderer.scroller.releaseCapture();\n }\n };\n\n this.focusWait = function() {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n var time = Date.now();\n\n if (distance > DRAG_OFFSET || time - this.mousedownEvent.time > this.$focusTimout)\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n };\n\n this.onDoubleClick = function(ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n var session = editor.session;\n\n var range = session.getBracketRange(pos);\n if (range) {\n if (range.isEmpty()) {\n range.start.column--;\n range.end.column++;\n }\n this.setState(\"select\");\n } else {\n range = editor.selection.getWordRange(pos.row, pos.column);\n this.setState(\"selectByWords\");\n }\n this.$clickSelection = range;\n this.select();\n };\n\n this.onTripleClick = function(ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n\n this.setState(\"selectByLines\");\n var range = editor.getSelectionRange();\n if (range.isMultiLine() && range.contains(pos.row, pos.column)) {\n this.$clickSelection = editor.selection.getLineRange(range.start.row);\n this.$clickSelection.end = editor.selection.getLineRange(range.end.row).end;\n } else {\n this.$clickSelection = editor.selection.getLineRange(pos.row);\n }\n this.select();\n };\n\n this.onQuadClick = function(ev) {\n var editor = this.editor;\n\n editor.selectAll();\n this.$clickSelection = editor.getSelectionRange();\n this.setState(\"selectAll\");\n };\n\n this.onMouseWheel = function(ev) {\n if (ev.getAccelKey())\n return;\n if (ev.getShiftKey() && ev.wheelY && !ev.wheelX) {\n ev.wheelX = ev.wheelY;\n ev.wheelY = 0;\n }\n \n var editor = this.editor;\n\n if (!this.$lastScroll)\n this.$lastScroll = { t: 0, vx: 0, vy: 0, allowed: 0 };\n\n var prevScroll = this.$lastScroll;\n var t = ev.domEvent.timeStamp;\n var dt = t - prevScroll.t;\n var vx = ev.wheelX / dt;\n var vy = ev.wheelY / dt;\n if (dt < SCROLL_COOLDOWN_T) {\n vx = (vx + prevScroll.vx) / 2;\n vy = (vy + prevScroll.vy) / 2;\n }\n\n var direction = Math.abs(vx / vy);\n\n var canScroll = false;\n if (direction >= 1 && editor.renderer.isScrollableBy(ev.wheelX * ev.speed, 0))\n canScroll = true;\n if (direction <= 1 && editor.renderer.isScrollableBy(0, ev.wheelY * ev.speed))\n canScroll = true;\n\n if (canScroll) {\n prevScroll.allowed = t;\n } else if (t - prevScroll.allowed < SCROLL_COOLDOWN_T) {\n var isSlower = Math.abs(vx) <= 1.1 * Math.abs(prevScroll.vx)\n && Math.abs(vy) <= 1.1 * Math.abs(prevScroll.vy);\n if (isSlower) {\n canScroll = true;\n prevScroll.allowed = t;\n }\n else {\n prevScroll.allowed = 0;\n }\n }\n\n prevScroll.t = t;\n prevScroll.vx = vx;\n prevScroll.vy = vy;\n\n if (canScroll) {\n editor.renderer.scrollBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n return ev.stop();\n }\n };\n\n this.onTouchMove = function(ev) {\n this.editor._emit(\"mousewheel\", ev);\n };\n\n}).call(DefaultHandlers.prototype);\n\nexports.DefaultHandlers = DefaultHandlers;\n\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\n\nfunction calcRangeOrientation(range, cursor) {\n if (range.start.row == range.end.row)\n var cmp = 2 * cursor.column - range.start.column - range.end.column;\n else if (range.start.row == range.end.row - 1 && !range.start.column && !range.end.column)\n var cmp = cursor.column - 4;\n else\n var cmp = 2 * cursor.row - range.start.row - range.end.row;\n\n if (cmp < 0)\n return {cursor: range.start, anchor: range.end};\n else\n return {cursor: range.end, anchor: range.start};\n}\n\n});\n\nace.define(\"ace/tooltip\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nfunction Tooltip (parentNode) {\n this.isOpen = false;\n this.$element = null;\n this.$parentNode = parentNode;\n}\n\n(function() {\n this.$init = function() {\n this.$element = dom.createElement(\"div\");\n this.$element.className = \"ace_tooltip\";\n this.$element.style.display = \"none\";\n this.$parentNode.appendChild(this.$element);\n return this.$element;\n };\n this.getElement = function() {\n return this.$element || this.$init();\n };\n this.setText = function(text) {\n dom.setInnerText(this.getElement(), text);\n };\n this.setHtml = function(html) {\n this.getElement().innerHTML = html;\n };\n this.setPosition = function(x, y) {\n this.getElement().style.left = x + \"px\";\n this.getElement().style.top = y + \"px\";\n };\n this.setClassName = function(className) {\n dom.addCssClass(this.getElement(), className);\n };\n this.show = function(text, x, y) {\n if (text != null)\n this.setText(text);\n if (x != null && y != null)\n this.setPosition(x, y);\n if (!this.isOpen) {\n this.getElement().style.display = \"block\";\n this.isOpen = true;\n }\n };\n\n this.hide = function() {\n if (this.isOpen) {\n this.getElement().style.display = \"none\";\n this.isOpen = false;\n }\n };\n this.getHeight = function() {\n return this.getElement().offsetHeight;\n };\n this.getWidth = function() {\n return this.getElement().offsetWidth;\n };\n\n this.destroy = function() {\n this.isOpen = false;\n if (this.$element && this.$element.parentNode) {\n this.$element.parentNode.removeChild(this.$element);\n }\n };\n\n}).call(Tooltip.prototype);\n\nexports.Tooltip = Tooltip;\n});\n\nace.define(\"ace/mouse/default_gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/event\",\"ace/tooltip\"], function(acequire, exports, module) {\n\"use strict\";\nvar dom = acequire(\"../lib/dom\");\nvar oop = acequire(\"../lib/oop\");\nvar event = acequire(\"../lib/event\");\nvar Tooltip = acequire(\"../tooltip\").Tooltip;\n\nfunction GutterHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var gutter = editor.renderer.$gutterLayer;\n var tooltip = new GutterTooltip(editor.container);\n\n mouseHandler.editor.setDefaultHandler(\"guttermousedown\", function(e) {\n if (!editor.isFocused() || e.getButton() != 0)\n return;\n var gutterRegion = gutter.getRegion(e);\n\n if (gutterRegion == \"foldWidgets\")\n return;\n\n var row = e.getDocumentPosition().row;\n var selection = editor.session.selection;\n\n if (e.getShiftKey())\n selection.selectTo(row, 0);\n else {\n if (e.domEvent.detail == 2) {\n editor.selectAll();\n return e.preventDefault();\n }\n mouseHandler.$clickSelection = editor.selection.getLineRange(row);\n }\n mouseHandler.setState(\"selectByLines\");\n mouseHandler.captureMouse(e);\n return e.preventDefault();\n });\n\n\n var tooltipTimeout, mouseEvent, tooltipAnnotation;\n\n function showTooltip() {\n var row = mouseEvent.getDocumentPosition().row;\n var annotation = gutter.$annotations[row];\n if (!annotation)\n return hideTooltip();\n\n var maxRow = editor.session.getLength();\n if (row == maxRow) {\n var screenRow = editor.renderer.pixelToScreenCoordinates(0, mouseEvent.y).row;\n var pos = mouseEvent.$pos;\n if (screenRow > editor.session.documentToScreenRow(pos.row, pos.column))\n return hideTooltip();\n }\n\n if (tooltipAnnotation == annotation)\n return;\n tooltipAnnotation = annotation.text.join(\"
\");\n\n tooltip.setHtml(tooltipAnnotation);\n tooltip.show();\n editor._signal(\"showGutterTooltip\", tooltip);\n editor.on(\"mousewheel\", hideTooltip);\n\n if (mouseHandler.$tooltipFollowsMouse) {\n moveTooltip(mouseEvent);\n } else {\n var gutterElement = mouseEvent.domEvent.target;\n var rect = gutterElement.getBoundingClientRect();\n var style = tooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n }\n }\n\n function hideTooltip() {\n if (tooltipTimeout)\n tooltipTimeout = clearTimeout(tooltipTimeout);\n if (tooltipAnnotation) {\n tooltip.hide();\n tooltipAnnotation = null;\n editor._signal(\"hideGutterTooltip\", tooltip);\n editor.removeEventListener(\"mousewheel\", hideTooltip);\n }\n }\n\n function moveTooltip(e) {\n tooltip.setPosition(e.x, e.y);\n }\n\n mouseHandler.editor.setDefaultHandler(\"guttermousemove\", function(e) {\n var target = e.domEvent.target || e.domEvent.srcElement;\n if (dom.hasCssClass(target, \"ace_fold-widget\"))\n return hideTooltip();\n\n if (tooltipAnnotation && mouseHandler.$tooltipFollowsMouse)\n moveTooltip(e);\n\n mouseEvent = e;\n if (tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function() {\n tooltipTimeout = null;\n if (mouseEvent && !mouseHandler.isMousePressed)\n showTooltip();\n else\n hideTooltip();\n }, 50);\n });\n\n event.addListener(editor.renderer.$gutter, \"mouseout\", function(e) {\n mouseEvent = null;\n if (!tooltipAnnotation || tooltipTimeout)\n return;\n\n tooltipTimeout = setTimeout(function() {\n tooltipTimeout = null;\n hideTooltip();\n }, 50);\n });\n \n editor.on(\"changeSession\", hideTooltip);\n}\n\nfunction GutterTooltip(parentNode) {\n Tooltip.call(this, parentNode);\n}\n\noop.inherits(GutterTooltip, Tooltip);\n\n(function(){\n this.setPosition = function(x, y) {\n var windowWidth = window.innerWidth || document.documentElement.clientWidth;\n var windowHeight = window.innerHeight || document.documentElement.clientHeight;\n var width = this.getWidth();\n var height = this.getHeight();\n x += 15;\n y += 15;\n if (x + width > windowWidth) {\n x -= (x + width) - windowWidth;\n }\n if (y + height > windowHeight) {\n y -= 20 + height;\n }\n Tooltip.prototype.setPosition.call(this, x, y);\n };\n\n}).call(GutterTooltip.prototype);\n\n\n\nexports.GutterHandler = GutterHandler;\n\n});\n\nace.define(\"ace/mouse/mouse_event\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\nvar MouseEvent = exports.MouseEvent = function(domEvent, editor) {\n this.domEvent = domEvent;\n this.editor = editor;\n \n this.x = this.clientX = domEvent.clientX;\n this.y = this.clientY = domEvent.clientY;\n\n this.$pos = null;\n this.$inSelection = null;\n \n this.propagationStopped = false;\n this.defaultPrevented = false;\n};\n\n(function() { \n \n this.stopPropagation = function() {\n event.stopPropagation(this.domEvent);\n this.propagationStopped = true;\n };\n \n this.preventDefault = function() {\n event.preventDefault(this.domEvent);\n this.defaultPrevented = true;\n };\n \n this.stop = function() {\n this.stopPropagation();\n this.preventDefault();\n };\n this.getDocumentPosition = function() {\n if (this.$pos)\n return this.$pos;\n \n this.$pos = this.editor.renderer.screenToTextCoordinates(this.clientX, this.clientY);\n return this.$pos;\n };\n this.inSelection = function() {\n if (this.$inSelection !== null)\n return this.$inSelection;\n \n var editor = this.editor;\n \n\n var selectionRange = editor.getSelectionRange();\n if (selectionRange.isEmpty())\n this.$inSelection = false;\n else {\n var pos = this.getDocumentPosition();\n this.$inSelection = selectionRange.contains(pos.row, pos.column);\n }\n\n return this.$inSelection;\n };\n this.getButton = function() {\n return event.getButton(this.domEvent);\n };\n this.getShiftKey = function() {\n return this.domEvent.shiftKey;\n };\n \n this.getAccelKey = useragent.isMac\n ? function() { return this.domEvent.metaKey; }\n : function() { return this.domEvent.ctrlKey; };\n \n}).call(MouseEvent.prototype);\n\n});\n\nace.define(\"ace/mouse/dragdrop_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\n\nvar AUTOSCROLL_DELAY = 200;\nvar SCROLL_CURSOR_DELAY = 200;\nvar SCROLL_CURSOR_HYSTERESIS = 5;\n\nfunction DragdropHandler(mouseHandler) {\n\n var editor = mouseHandler.editor;\n\n var blankImage = dom.createElement(\"img\");\n blankImage.src = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n if (useragent.isOpera)\n blankImage.style.cssText = \"width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;\";\n\n var exports = [\"dragWait\", \"dragWaitEnd\", \"startDrag\", \"dragReadyEnd\", \"onMouseDrag\"];\n\n exports.forEach(function(x) {\n mouseHandler[x] = this[x];\n }, this);\n editor.addEventListener(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n\n\n var mouseTarget = editor.container;\n var dragSelectionMarker, x, y;\n var timerId, range;\n var dragCursor, counter = 0;\n var dragOperation;\n var isInternal;\n var autoScrollStartTime;\n var cursorMovedTime;\n var cursorPointOnCaretMoved;\n\n this.onDragStart = function(e) {\n if (this.cancelDrag || !mouseTarget.draggable) {\n var self = this;\n setTimeout(function(){\n self.startSelect();\n self.captureMouse(e);\n }, 0);\n return e.preventDefault();\n }\n range = editor.getSelectionRange();\n\n var dataTransfer = e.dataTransfer;\n dataTransfer.effectAllowed = editor.getReadOnly() ? \"copy\" : \"copyMove\";\n if (useragent.isOpera) {\n editor.container.appendChild(blankImage);\n blankImage.scrollTop = 0;\n }\n dataTransfer.setDragImage && dataTransfer.setDragImage(blankImage, 0, 0);\n if (useragent.isOpera) {\n editor.container.removeChild(blankImage);\n }\n dataTransfer.clearData();\n dataTransfer.setData(\"Text\", editor.session.getTextRange());\n\n isInternal = true;\n this.setState(\"drag\");\n };\n\n this.onDragEnd = function(e) {\n mouseTarget.draggable = false;\n isInternal = false;\n this.setState(null);\n if (!editor.getReadOnly()) {\n var dropEffect = e.dataTransfer.dropEffect;\n if (!dragOperation && dropEffect == \"move\")\n editor.session.remove(editor.getSelectionRange());\n editor.renderer.$cursorLayer.setBlinking(true);\n }\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n };\n\n this.onDragEnter = function(e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker)\n addDragMarker();\n counter++;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n\n this.onDragOver = function(e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker) {\n addDragMarker();\n counter++;\n }\n if (onMouseMoveTimer !== null)\n onMouseMoveTimer = null;\n\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n\n this.onDragLeave = function(e) {\n counter--;\n if (counter <= 0 && dragSelectionMarker) {\n clearDragMarker();\n dragOperation = null;\n return event.preventDefault(e);\n }\n };\n\n this.onDrop = function(e) {\n if (!dragCursor)\n return;\n var dataTransfer = e.dataTransfer;\n if (isInternal) {\n switch (dragOperation) {\n case \"move\":\n if (range.contains(dragCursor.row, dragCursor.column)) {\n range = {\n start: dragCursor,\n end: dragCursor\n };\n } else {\n range = editor.moveText(range, dragCursor);\n }\n break;\n case \"copy\":\n range = editor.moveText(range, dragCursor, true);\n break;\n }\n } else {\n var dropData = dataTransfer.getData('Text');\n range = {\n start: dragCursor,\n end: editor.session.insert(dragCursor, dropData)\n };\n editor.focus();\n dragOperation = null;\n }\n clearDragMarker();\n return event.preventDefault(e);\n };\n\n event.addListener(mouseTarget, \"dragstart\", this.onDragStart.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragend\", this.onDragEnd.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragenter\", this.onDragEnter.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragover\", this.onDragOver.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragleave\", this.onDragLeave.bind(mouseHandler));\n event.addListener(mouseTarget, \"drop\", this.onDrop.bind(mouseHandler));\n\n function scrollCursorIntoView(cursor, prevCursor) {\n var now = Date.now();\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n var hMovement = !prevCursor || cursor.column != prevCursor.column;\n if (!cursorMovedTime || vMovement || hMovement) {\n editor.$blockScrolling += 1;\n editor.moveCursorToPosition(cursor);\n editor.$blockScrolling -= 1;\n cursorMovedTime = now;\n cursorPointOnCaretMoved = {x: x, y: y};\n } else {\n var distance = calcDistance(cursorPointOnCaretMoved.x, cursorPointOnCaretMoved.y, x, y);\n if (distance > SCROLL_CURSOR_HYSTERESIS) {\n cursorMovedTime = null;\n } else if (now - cursorMovedTime >= SCROLL_CURSOR_DELAY) {\n editor.renderer.scrollCursorIntoView();\n cursorMovedTime = null;\n }\n }\n }\n\n function autoScroll(cursor, prevCursor) {\n var now = Date.now();\n var lineHeight = editor.renderer.layerConfig.lineHeight;\n var characterWidth = editor.renderer.layerConfig.characterWidth;\n var editorRect = editor.renderer.scroller.getBoundingClientRect();\n var offsets = {\n x: {\n left: x - editorRect.left,\n right: editorRect.right - x\n },\n y: {\n top: y - editorRect.top,\n bottom: editorRect.bottom - y\n }\n };\n var nearestXOffset = Math.min(offsets.x.left, offsets.x.right);\n var nearestYOffset = Math.min(offsets.y.top, offsets.y.bottom);\n var scrollCursor = {row: cursor.row, column: cursor.column};\n if (nearestXOffset / characterWidth <= 2) {\n scrollCursor.column += (offsets.x.left < offsets.x.right ? -3 : +2);\n }\n if (nearestYOffset / lineHeight <= 1) {\n scrollCursor.row += (offsets.y.top < offsets.y.bottom ? -1 : +1);\n }\n var vScroll = cursor.row != scrollCursor.row;\n var hScroll = cursor.column != scrollCursor.column;\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n if (vScroll || (hScroll && !vMovement)) {\n if (!autoScrollStartTime)\n autoScrollStartTime = now;\n else if (now - autoScrollStartTime >= AUTOSCROLL_DELAY)\n editor.renderer.scrollCursorIntoView(scrollCursor);\n } else {\n autoScrollStartTime = null;\n }\n }\n\n function onDragInterval() {\n var prevCursor = dragCursor;\n dragCursor = editor.renderer.screenToTextCoordinates(x, y);\n scrollCursorIntoView(dragCursor, prevCursor);\n autoScroll(dragCursor, prevCursor);\n }\n\n function addDragMarker() {\n range = editor.selection.toOrientedRange();\n dragSelectionMarker = editor.session.addMarker(range, \"ace_selection\", editor.getSelectionStyle());\n editor.clearSelection();\n if (editor.isFocused())\n editor.renderer.$cursorLayer.setBlinking(false);\n clearInterval(timerId);\n onDragInterval();\n timerId = setInterval(onDragInterval, 20);\n counter = 0;\n event.addListener(document, \"mousemove\", onMouseMove);\n }\n\n function clearDragMarker() {\n clearInterval(timerId);\n editor.session.removeMarker(dragSelectionMarker);\n dragSelectionMarker = null;\n editor.$blockScrolling += 1;\n editor.selection.fromOrientedRange(range);\n editor.$blockScrolling -= 1;\n if (editor.isFocused() && !isInternal)\n editor.renderer.$cursorLayer.setBlinking(!editor.getReadOnly());\n range = null;\n dragCursor = null;\n counter = 0;\n autoScrollStartTime = null;\n cursorMovedTime = null;\n event.removeListener(document, \"mousemove\", onMouseMove);\n }\n var onMouseMoveTimer = null;\n function onMouseMove() {\n if (onMouseMoveTimer == null) {\n onMouseMoveTimer = setTimeout(function() {\n if (onMouseMoveTimer != null && dragSelectionMarker)\n clearDragMarker();\n }, 20);\n }\n }\n\n function canAccept(dataTransfer) {\n var types = dataTransfer.types;\n return !types || Array.prototype.some.call(types, function(type) {\n return type == 'text/plain' || type == 'Text';\n });\n }\n\n function getDropEffect(e) {\n var copyAllowed = ['copy', 'copymove', 'all', 'uninitialized'];\n var moveAllowed = ['move', 'copymove', 'linkmove', 'all', 'uninitialized'];\n\n var copyModifierState = useragent.isMac ? e.altKey : e.ctrlKey;\n var effectAllowed = \"uninitialized\";\n try {\n effectAllowed = e.dataTransfer.effectAllowed.toLowerCase();\n } catch (e) {}\n var dropEffect = \"none\";\n\n if (copyModifierState && copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n else if (moveAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"move\";\n else if (copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n\n return dropEffect;\n }\n}\n\n(function() {\n\n this.dragWait = function() {\n var interval = Date.now() - this.mousedownEvent.time;\n if (interval > this.editor.getDragDelay())\n this.startDrag();\n };\n\n this.dragWaitEnd = function() {\n var target = this.editor.container;\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n this.selectEnd();\n };\n\n this.dragReadyEnd = function(e) {\n this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly());\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n this.dragWaitEnd();\n };\n\n this.startDrag = function(){\n this.cancelDrag = false;\n var editor = this.editor;\n var target = editor.container;\n target.draggable = true;\n editor.renderer.$cursorLayer.setBlinking(false);\n editor.setStyle(\"ace_dragging\");\n var cursorStyle = useragent.isWin ? \"default\" : \"move\";\n editor.renderer.setCursorStyle(cursorStyle);\n this.setState(\"dragReady\");\n };\n\n this.onMouseDrag = function(e) {\n var target = this.editor.container;\n if (useragent.isIE && this.state == \"dragReady\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 3)\n target.dragDrop();\n }\n if (this.state === \"dragWait\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 0) {\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n }\n }\n };\n\n this.onMouseDown = function(e) {\n if (!this.$dragEnabled)\n return;\n this.mousedownEvent = e;\n var editor = this.editor;\n\n var inSelection = e.inSelection();\n var button = e.getButton();\n var clickCount = e.domEvent.detail || 1;\n if (clickCount === 1 && button === 0 && inSelection) {\n if (e.editor.inMultiSelectMode && (e.getAccelKey() || e.getShiftKey()))\n return;\n this.mousedownEvent.time = Date.now();\n var eventTarget = e.domEvent.target || e.domEvent.srcElement;\n if (\"unselectable\" in eventTarget)\n eventTarget.unselectable = \"on\";\n if (editor.getDragDelay()) {\n if (useragent.isWebKit) {\n this.cancelDrag = true;\n var mouseTarget = editor.container;\n mouseTarget.draggable = true;\n }\n this.setState(\"dragWait\");\n } else {\n this.startDrag();\n }\n this.captureMouse(e, this.onMouseDrag.bind(this));\n e.defaultPrevented = true;\n }\n };\n\n}).call(DragdropHandler.prototype);\n\n\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\n\nexports.DragdropHandler = DragdropHandler;\n\n});\n\nace.define(\"ace/lib/net\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\nvar dom = acequire(\"./dom\");\n\nexports.get = function (url, callback) {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n callback(xhr.responseText);\n }\n };\n xhr.send(null);\n};\n\nexports.loadScript = function(path, callback) {\n var head = dom.getDocumentHead();\n var s = document.createElement('script');\n\n s.src = path;\n head.appendChild(s);\n\n s.onload = s.onreadystatechange = function(_, isAbort) {\n if (isAbort || !s.readyState || s.readyState == \"loaded\" || s.readyState == \"complete\") {\n s = s.onload = s.onreadystatechange = null;\n if (!isAbort)\n callback();\n }\n };\n};\nexports.qualifyURL = function(url) {\n var a = document.createElement('a');\n a.href = url;\n return a.href;\n};\n\n});\n\nace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar EventEmitter = {};\nvar stopPropagation = function() { this.propagationStopped = true; };\nvar preventDefault = function() { this.defaultPrevented = true; };\n\nEventEmitter._emit =\nEventEmitter._dispatchEvent = function(eventName, e) {\n this._eventRegistry || (this._eventRegistry = {});\n this._defaultHandlers || (this._defaultHandlers = {});\n\n var listeners = this._eventRegistry[eventName] || [];\n var defaultHandler = this._defaultHandlers[eventName];\n if (!listeners.length && !defaultHandler)\n return;\n\n if (typeof e != \"object\" || !e)\n e = {};\n\n if (!e.type)\n e.type = eventName;\n if (!e.stopPropagation)\n e.stopPropagation = stopPropagation;\n if (!e.preventDefault)\n e.preventDefault = preventDefault;\n\n listeners = listeners.slice();\n for (var i=0; i 1)\n base = parts[parts.length - 2];\n var path = options[component + \"Path\"];\n if (path == null) {\n path = options.basePath;\n } else if (sep == \"/\") {\n component = sep = \"\";\n }\n if (path && path.slice(-1) != \"/\")\n path += \"/\";\n return path + component + sep + base + this.get(\"suffix\");\n};\n\nexports.setModuleUrl = function(name, subst) {\n return options.$moduleUrls[name] = subst;\n};\n\nexports.$loading = {};\nexports.loadModule = function(moduleName, onLoad) {\n var module, moduleType;\n if (Array.isArray(moduleName)) {\n moduleType = moduleName[0];\n moduleName = moduleName[1];\n }\n\n try {\n module = acequire(moduleName);\n } catch (e) {}\n if (module && !exports.$loading[moduleName])\n return onLoad && onLoad(module);\n\n if (!exports.$loading[moduleName])\n exports.$loading[moduleName] = [];\n\n exports.$loading[moduleName].push(onLoad);\n\n if (exports.$loading[moduleName].length > 1)\n return;\n\n var afterLoad = function() {\n acequire([moduleName], function(module) {\n exports._emit(\"load.module\", {name: moduleName, module: module});\n var listeners = exports.$loading[moduleName];\n exports.$loading[moduleName] = null;\n listeners.forEach(function(onLoad) {\n onLoad && onLoad(module);\n });\n });\n };\n\n if (!exports.get(\"packaged\"))\n return afterLoad();\n net.loadScript(exports.moduleUrl(moduleName, moduleType), afterLoad);\n};\ninit(true);function init(packaged) {\n\n if (!global || !global.document)\n return;\n \n options.packaged = packaged || acequire.packaged || module.packaged || (global.define && define.packaged);\n\n var scriptOptions = {};\n var scriptUrl = \"\";\n var currentScript = (document.currentScript || document._currentScript ); // native or polyfill\n var currentDocument = currentScript && currentScript.ownerDocument || document;\n \n var scripts = currentDocument.getElementsByTagName(\"script\");\n for (var i=0; i 0){\n\t\t\tif (action == 0x10){\n\t\t\t\tfor(i = condPos; i < ix; i++){\n\t\t\t\t\tlevels[i] = 1;\n\t\t\t\t}\n\t\t\t\tcondPos = -1;\n\t\t\t} else {\n\t\t\t\tcondPos = -1;\n\t\t\t}\n\t\t}\n\t\tcond = impTab[newState][6];\n\t\tif (cond){\n\t\t\tif(condPos == -1){\n\t\t\t\tcondPos = ix;\n\t\t\t}\n\t\t}else{\n\t\t\tif (condPos > -1){\n\t\t\t\tfor(i = condPos; i < ix; i++){\n\t\t\t\t\tlevels[i] = newLevel;\n\t\t\t\t}\n\t\t\t\tcondPos = -1;\n\t\t\t}\n\t\t}\n\t\tif (charTypes[ix] == B){\n\t\t\tlevels[ix] = 0;\n\t\t}\n\t\thiLevel |= newLevel;\n\t}\n\tif (hasUBAT_S){\n\t\tfor(i = 0; i < len; i++){\n\t\t\tif(charTypes[i] == S){\n\t\t\t\tlevels[i] = dir;\n\t\t\t\tfor(var j = i - 1; j >= 0; j--){\n\t\t\t\t\tif(charTypes[j] == WS){\n\t\t\t\t\t\tlevels[j] = dir;\n\t\t\t\t\t}else{\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction _invertLevel(lev, levels, _array) {\n\tif (hiLevel < lev){\n\t\treturn;\n\t}\n\tif (lev == 1 && dir == RTL && !hasUBAT_B){\n\t\t_array.reverse();\n\t\treturn;\n\t}\n\tvar len = _array.length, start = 0, end, lo, hi, tmp;\n\twhile(start < len){\n\t\tif (levels[start] >= lev){\n\t\t\tend = start + 1;\n\t\twhile(end < len && levels[end] >= lev){\n\t\t\tend++;\n\t\t}\n\t\tfor(lo = start, hi = end - 1 ; lo < hi; lo++, hi--){\n\t\t\ttmp = _array[lo];\n\t\t\t_array[lo] = _array[hi];\n\t\t\t_array[hi] = tmp;\n\t\t}\n\t\tstart = end;\n\t}\n\tstart++;\n\t}\n}\n\nfunction _getCharClass(chars, types, classes, ix) {\n\tvar cType = types[ix], wType, nType, len, i;\n\tswitch(cType){\n\t\tcase L:\n\t\tcase R:\n\t\t\tlastArabic = false;\n\t\tcase ON:\n\t\tcase AN:\n\t\t\treturn cType;\n\t\tcase EN:\n\t\t\treturn lastArabic ? AN : EN;\n\t\tcase AL:\n\t\t\tlastArabic = true;\n\t\t\thasUBAT_AL = true;\n\t\t\treturn R;\n\t\tcase WS:\n\t\t\treturn ON;\n\t\tcase CS:\n\t\t\tif (ix < 1 || (ix + 1) >= types.length ||\n\t\t\t\t((wType = classes[ix - 1]) != EN && wType != AN) ||\n\t\t\t\t((nType = types[ix + 1]) != EN && nType != AN)){\n\t\t\t\treturn ON;\n\t\t\t}\n\t\t\tif (lastArabic){nType = AN;}\n\t\t\treturn nType == wType ? nType : ON;\n\t\tcase ES:\n\t\t\twType = ix > 0 ? classes[ix - 1] : B;\n\t\t\tif (wType == EN && (ix + 1) < types.length && types[ix + 1] == EN){\n\t\t\t\treturn EN;\n\t\t\t}\n\t\t\treturn ON;\n\t\tcase ET:\n\t\t\tif (ix > 0 && classes[ix - 1] == EN){\n\t\t\t\treturn EN;\n\t\t\t}\n\t\t\tif (lastArabic){\n\t\t\t\treturn ON;\n\t\t\t}\n\t\t\ti = ix + 1;\n\t\t\tlen = types.length;\n\t\t\twhile (i < len && types[i] == ET){\n\t\t\t\ti++;\n\t\t\t}\n\t\t\tif (i < len && types[i] == EN){\n\t\t\t\treturn EN;\n\t\t\t}\n\t\t\treturn ON;\n\t\tcase NSM:\n\t\t\tlen = types.length;\n\t\t\ti = ix + 1;\n\t\t\twhile (i < len && types[i] == NSM){\n\t\t\t\ti++;\n\t\t\t}\n\t\t\tif (i < len){\n\t\t\t\tvar c = chars[ix], rtlCandidate = (c >= 0x0591 && c <= 0x08FF) || c == 0xFB1E;\n\n\t\t\t\twType = types[i];\n\t\t\t\tif (rtlCandidate && (wType == R || wType == AL)){\n\t\t\t\t\treturn R;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (ix < 1 || (wType = types[ix - 1]) == B){\n\t\t\t\treturn ON;\n\t\t\t}\n\t\t\treturn classes[ix - 1];\n\t\tcase B:\n\t\t\tlastArabic = false;\n\t\t\thasUBAT_B = true;\n\t\t\treturn dir;\n\t\tcase S:\n\t\t\thasUBAT_S = true;\n\t\t\treturn ON;\n\t\tcase LRE:\n\t\tcase RLE:\n\t\tcase LRO:\n\t\tcase RLO:\n\t\tcase PDF:\n\t\t\tlastArabic = false;\n\t\tcase BN:\n\t\t\treturn ON;\n\t}\n}\n\nfunction _getCharacterType( ch ) {\n\tvar uc = ch.charCodeAt(0), hi = uc >> 8;\n\n\tif (hi == 0) {\n\t\treturn ((uc > 0x00BF) ? L : UnicodeTBL00[uc]);\n\t} else if (hi == 5) {\n\t\treturn (/[\\u0591-\\u05f4]/.test(ch) ? R : L);\n\t} else if (hi == 6) {\n\t\tif (/[\\u0610-\\u061a\\u064b-\\u065f\\u06d6-\\u06e4\\u06e7-\\u06ed]/.test(ch))\n\t\t\treturn NSM;\n\t\telse if (/[\\u0660-\\u0669\\u066b-\\u066c]/.test(ch))\n\t\t\treturn AN;\n\t\telse if (uc == 0x066A)\n\t\t\treturn ET;\n\t\telse if (/[\\u06f0-\\u06f9]/.test(ch))\n\t\t\treturn EN;\n\t\telse\n\t\t\treturn AL;\n\t} else if (hi == 0x20 && uc <= 0x205F) {\n\t\treturn UnicodeTBL20[uc & 0xFF];\n\t} else if (hi == 0xFE) {\n\t\treturn (uc >= 0xFE70 ? AL : ON);\n\t}\n\treturn ON;\n}\n\nfunction _isArabicDiacritics( ch ) {\n\treturn (ch >= '\\u064b' && ch <= '\\u0655');\n}\nexports.L = L;\nexports.R = R;\nexports.EN = EN;\nexports.ON_R = 3;\nexports.AN = 4;\nexports.R_H = 5;\nexports.B = 6;\n\nexports.DOT = \"\\xB7\";\nexports.doBidiReorder = function(text, textCharTypes, isRtl) {\n\tif (text.length < 2)\n\t\treturn {};\n\n\tvar chars = text.split(\"\"), logicalFromVisual = new Array(chars.length),\n\t\tbidiLevels = new Array(chars.length), levels = [];\n\n\tdir = isRtl ? RTL : LTR;\n\n\t_computeLevels(chars, levels, chars.length, textCharTypes);\n\n\tfor (var i = 0; i < logicalFromVisual.length; logicalFromVisual[i] = i, i++);\n\n\t_invertLevel(2, levels, logicalFromVisual);\n\t_invertLevel(1, levels, logicalFromVisual);\n\n\tfor (var i = 0; i < logicalFromVisual.length - 1; i++) { //fix levels to reflect character width\n\t\tif (textCharTypes[i] === AN) {\n\t\t\tlevels[i] = exports.AN;\n\t\t} else if (levels[i] === R && ((textCharTypes[i] > AL && textCharTypes[i] < LRE)\n\t\t\t|| textCharTypes[i] === ON || textCharTypes[i] === BN)) {\n\t\t\tlevels[i] = exports.ON_R;\n\t\t} else if ((i > 0 && chars[i - 1] === '\\u0644') && /\\u0622|\\u0623|\\u0625|\\u0627/.test(chars[i])) {\n\t\t\tlevels[i - 1] = levels[i] = exports.R_H;\n\t\t\ti++;\n\t\t}\n\t}\n\tif (chars[chars.length - 1] === exports.DOT)\n\t\tlevels[chars.length - 1] = exports.B;\n\n\tfor (var i = 0; i < logicalFromVisual.length; i++) {\n\t\tbidiLevels[i] = levels[logicalFromVisual[i]];\n\t}\n\n\treturn {'logicalFromVisual': logicalFromVisual, 'bidiLevels': bidiLevels};\n};\nexports.hasBidiCharacters = function(text, textCharTypes){\n\tvar ret = false;\n\tfor (var i = 0; i < text.length; i++){\n\t\ttextCharTypes[i] = _getCharacterType(text.charAt(i));\n\t\tif (!ret && (textCharTypes[i] == R || textCharTypes[i] == AL))\n\t\t\tret = true;\n\t}\n\treturn ret;\n};\nexports.getVisualFromLogicalIdx = function(logIdx, rowMap) {\n\tfor (var i = 0; i < rowMap.logicalFromVisual.length; i++) {\n\t\tif (rowMap.logicalFromVisual[i] == logIdx)\n\t\t\treturn i;\n\t}\n\treturn 0;\n};\n\n});\n\nace.define(\"ace/bidihandler\",[\"require\",\"exports\",\"module\",\"ace/lib/bidiutil\",\"ace/lib/lang\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar bidiUtil = acequire(\"./lib/bidiutil\");\nvar lang = acequire(\"./lib/lang\");\nvar useragent = acequire(\"./lib/useragent\");\nvar bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/;\nvar BidiHandler = function(session) {\n this.session = session;\n this.bidiMap = {};\n this.currentRow = null;\n this.bidiUtil = bidiUtil;\n this.charWidths = [];\n this.EOL = \"\\xAC\";\n this.showInvisibles = true;\n this.isRtlDir = false;\n this.line = \"\";\n this.wrapIndent = 0;\n this.isLastRow = false;\n this.EOF = \"\\xB6\";\n this.seenBidi = false;\n};\n\n(function() {\n this.isBidiRow = function(screenRow, docRow, splitIndex) {\n if (!this.seenBidi)\n return false;\n if (screenRow !== this.currentRow) {\n this.currentRow = screenRow;\n this.updateRowLine(docRow, splitIndex);\n this.updateBidiMap();\n }\n return this.bidiMap.bidiLevels;\n };\n\n this.onChange = function(delta) {\n if (!this.seenBidi) {\n if (delta.action == \"insert\" && bidiRE.test(delta.lines.join(\"\\n\"))) {\n this.seenBidi = true;\n this.currentRow = null;\n }\n }\n else {\n this.currentRow = null;\n }\n };\n\n this.getDocumentRow = function() {\n var docRow = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var index = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n if (index >= 0)\n docRow = this.session.$docRowCache[index];\n }\n\n return docRow;\n };\n\n this.getSplitIndex = function() {\n var splitIndex = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var currentIndex, prevIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n while (this.currentRow - splitIndex > 0) {\n currentIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow - splitIndex - 1);\n if (currentIndex !== prevIndex)\n break;\n\n prevIndex = currentIndex;\n splitIndex++;\n }\n }\n\n return splitIndex;\n };\n\n this.updateRowLine = function(docRow, splitIndex) {\n if (docRow === undefined)\n docRow = this.getDocumentRow();\n\n this.wrapIndent = 0;\n this.isLastRow = (docRow === this.session.getLength() - 1);\n this.line = this.session.getLine(docRow);\n if (this.session.$useWrapMode) {\n var splits = this.session.$wrapData[docRow];\n if (splits) {\n if (splitIndex === undefined)\n splitIndex = this.getSplitIndex();\n\n if(splitIndex > 0 && splits.length) {\n this.wrapIndent = splits.indent;\n this.line = (splitIndex < splits.length) ?\n this.line.substring(splits[splitIndex - 1], splits[splits.length - 1]) :\n this.line.substring(splits[splits.length - 1]);\n } else {\n this.line = this.line.substring(0, splits[splitIndex]);\n }\n }\n }\n var session = this.session, shift = 0, size;\n this.line = this.line.replace(/\\t|[\\u1100-\\u2029, \\u202F-\\uFFE6]/g, function(ch, i){\n if (ch === '\\t' || session.isFullWidth(ch.charCodeAt(0))) {\n size = (ch === '\\t') ? session.getScreenTabSize(i + shift) : 2;\n shift += size - 1;\n return lang.stringRepeat(bidiUtil.DOT, size);\n }\n return ch;\n });\n };\n\n this.updateBidiMap = function() {\n var textCharTypes = [], endOfLine = this.isLastRow ? this.EOF : this.EOL;\n var line = this.line + (this.showInvisibles ? endOfLine : bidiUtil.DOT);\n if (bidiUtil.hasBidiCharacters(line, textCharTypes)) {\n this.bidiMap = bidiUtil.doBidiReorder(line, textCharTypes, this.isRtlDir);\n } else {\n this.bidiMap = {};\n }\n };\n this.markAsDirty = function() {\n this.currentRow = null;\n };\n this.updateCharacterWidths = function(fontMetrics) {\n if (!this.seenBidi)\n return;\n if (this.characterWidth === fontMetrics.$characterSize.width)\n return;\n\n var characterWidth = this.characterWidth = fontMetrics.$characterSize.width;\n var bidiCharWidth = fontMetrics.$measureCharWidth(\"\\u05d4\");\n\n this.charWidths[bidiUtil.L] = this.charWidths[bidiUtil.EN] = this.charWidths[bidiUtil.ON_R] = characterWidth;\n this.charWidths[bidiUtil.R] = this.charWidths[bidiUtil.AN] = bidiCharWidth;\n this.charWidths[bidiUtil.R_H] = useragent.isChrome ? bidiCharWidth : bidiCharWidth * 0.45;\n this.charWidths[bidiUtil.B] = 0;\n\n this.currentRow = null;\n };\n\n this.getShowInvisibles = function() {\n return this.showInvisibles;\n };\n\n this.setShowInvisibles = function(showInvisibles) {\n this.showInvisibles = showInvisibles;\n this.currentRow = null;\n };\n\n this.setEolChar = function(eolChar) {\n this.EOL = eolChar;\n };\n\n this.setTextDir = function(isRtlDir) {\n this.isRtlDir = isRtlDir;\n };\n this.getPosLeft = function(col) {\n col -= this.wrapIndent;\n var visualIdx = bidiUtil.getVisualFromLogicalIdx(col > 0 ? col - 1 : 0, this.bidiMap),\n levels = this.bidiMap.bidiLevels, left = 0;\n\n if (col === 0 && levels[visualIdx] % 2 !== 0)\n visualIdx++;\n\n for (var i = 0; i < visualIdx; i++) {\n left += this.charWidths[levels[i]];\n }\n\n if (col !== 0 && levels[visualIdx] % 2 === 0)\n left += this.charWidths[levels[visualIdx]];\n\n if (this.wrapIndent)\n left += this.wrapIndent * this.charWidths[bidiUtil.L];\n\n return left;\n };\n this.getSelections = function(startCol, endCol) {\n var map = this.bidiMap, levels = map.bidiLevels, level, offset = this.wrapIndent * this.charWidths[bidiUtil.L], selections = [],\n selColMin = Math.min(startCol, endCol) - this.wrapIndent, selColMax = Math.max(startCol, endCol) - this.wrapIndent,\n isSelected = false, isSelectedPrev = false, selectionStart = 0;\n\n for (var logIdx, visIdx = 0; visIdx < levels.length; visIdx++) {\n logIdx = map.logicalFromVisual[visIdx];\n level = levels[visIdx];\n isSelected = (logIdx >= selColMin) && (logIdx < selColMax);\n if (isSelected && !isSelectedPrev) {\n selectionStart = offset;\n } else if (!isSelected && isSelectedPrev) {\n selections.push({left: selectionStart, width: offset - selectionStart});\n }\n offset += this.charWidths[level];\n isSelectedPrev = isSelected;\n }\n\n if (isSelected && (visIdx === levels.length)) {\n selections.push({left: selectionStart, width: offset - selectionStart});\n }\n\n return selections;\n };\n this.offsetToCol = function(posX) {\n var logicalIdx = 0, posX = Math.max(posX, 0),\n offset = 0, visualIdx = 0, levels = this.bidiMap.bidiLevels,\n charWidth = this.charWidths[levels[visualIdx]];\n\n if (this.wrapIndent) {\n posX -= this.wrapIndent * this.charWidths[bidiUtil.L];\n }\n\n while(posX > offset + charWidth/2) {\n offset += charWidth;\n if(visualIdx === levels.length - 1) {\n charWidth = 0;\n break;\n }\n charWidth = this.charWidths[levels[++visualIdx]];\n }\n\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && (levels[visualIdx] % 2 === 0)){\n if(posX < offset)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n\n } else if (visualIdx > 0 && (levels[visualIdx - 1] % 2 === 0) && (levels[visualIdx] % 2 !== 0)){\n logicalIdx = 1 + ((posX > offset) ? this.bidiMap.logicalFromVisual[visualIdx]\n : this.bidiMap.logicalFromVisual[visualIdx - 1]);\n\n } else if ((this.isRtlDir && visualIdx === levels.length - 1 && charWidth === 0 && (levels[visualIdx - 1] % 2 === 0))\n || (!this.isRtlDir && visualIdx === 0 && (levels[visualIdx] % 2 !== 0))){\n logicalIdx = 1 + this.bidiMap.logicalFromVisual[visualIdx];\n } else {\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && charWidth !== 0)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n }\n\n return (logicalIdx + this.wrapIndent);\n };\n\n}).call(BidiHandler.prototype);\n\nexports.BidiHandler = BidiHandler;\n});\n\nace.define(\"ace/range\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nvar comparePoints = function(p1, p2) {\n return p1.row - p2.row || p1.column - p2.column;\n};\nvar Range = function(startRow, startColumn, endRow, endColumn) {\n this.start = {\n row: startRow,\n column: startColumn\n };\n\n this.end = {\n row: endRow,\n column: endColumn\n };\n};\n\n(function() {\n this.isEqual = function(range) {\n return this.start.row === range.start.row &&\n this.end.row === range.end.row &&\n this.start.column === range.start.column &&\n this.end.column === range.end.column;\n };\n this.toString = function() {\n return (\"Range: [\" + this.start.row + \"/\" + this.start.column +\n \"] -> [\" + this.end.row + \"/\" + this.end.column + \"]\");\n };\n\n this.contains = function(row, column) {\n return this.compare(row, column) == 0;\n };\n this.compareRange = function(range) {\n var cmp,\n end = range.end,\n start = range.start;\n\n cmp = this.compare(end.row, end.column);\n if (cmp == 1) {\n cmp = this.compare(start.row, start.column);\n if (cmp == 1) {\n return 2;\n } else if (cmp == 0) {\n return 1;\n } else {\n return 0;\n }\n } else if (cmp == -1) {\n return -2;\n } else {\n cmp = this.compare(start.row, start.column);\n if (cmp == -1) {\n return -1;\n } else if (cmp == 1) {\n return 42;\n } else {\n return 0;\n }\n }\n };\n this.comparePoint = function(p) {\n return this.compare(p.row, p.column);\n };\n this.containsRange = function(range) {\n return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n };\n this.intersects = function(range) {\n var cmp = this.compareRange(range);\n return (cmp == -1 || cmp == 0 || cmp == 1);\n };\n this.isEnd = function(row, column) {\n return this.end.row == row && this.end.column == column;\n };\n this.isStart = function(row, column) {\n return this.start.row == row && this.start.column == column;\n };\n this.setStart = function(row, column) {\n if (typeof row == \"object\") {\n this.start.column = row.column;\n this.start.row = row.row;\n } else {\n this.start.row = row;\n this.start.column = column;\n }\n };\n this.setEnd = function(row, column) {\n if (typeof row == \"object\") {\n this.end.column = row.column;\n this.end.row = row.row;\n } else {\n this.end.row = row;\n this.end.column = column;\n }\n };\n this.inside = function(row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column) || this.isStart(row, column)) {\n return false;\n } else {\n return true;\n }\n }\n return false;\n };\n this.insideStart = function(row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column)) {\n return false;\n } else {\n return true;\n }\n }\n return false;\n };\n this.insideEnd = function(row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isStart(row, column)) {\n return false;\n } else {\n return true;\n }\n }\n return false;\n };\n this.compare = function(row, column) {\n if (!this.isMultiLine()) {\n if (row === this.start.row) {\n return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n }\n }\n\n if (row < this.start.row)\n return -1;\n\n if (row > this.end.row)\n return 1;\n\n if (this.start.row === row)\n return column >= this.start.column ? 0 : -1;\n\n if (this.end.row === row)\n return column <= this.end.column ? 0 : 1;\n\n return 0;\n };\n this.compareStart = function(row, column) {\n if (this.start.row == row && this.start.column == column) {\n return -1;\n } else {\n return this.compare(row, column);\n }\n };\n this.compareEnd = function(row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n } else {\n return this.compare(row, column);\n }\n };\n this.compareInside = function(row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n } else if (this.start.row == row && this.start.column == column) {\n return -1;\n } else {\n return this.compare(row, column);\n }\n };\n this.clipRows = function(firstRow, lastRow) {\n if (this.end.row > lastRow)\n var end = {row: lastRow + 1, column: 0};\n else if (this.end.row < firstRow)\n var end = {row: firstRow, column: 0};\n\n if (this.start.row > lastRow)\n var start = {row: lastRow + 1, column: 0};\n else if (this.start.row < firstRow)\n var start = {row: firstRow, column: 0};\n\n return Range.fromPoints(start || this.start, end || this.end);\n };\n this.extend = function(row, column) {\n var cmp = this.compare(row, column);\n\n if (cmp == 0)\n return this;\n else if (cmp == -1)\n var start = {row: row, column: column};\n else\n var end = {row: row, column: column};\n\n return Range.fromPoints(start || this.start, end || this.end);\n };\n\n this.isEmpty = function() {\n return (this.start.row === this.end.row && this.start.column === this.end.column);\n };\n this.isMultiLine = function() {\n return (this.start.row !== this.end.row);\n };\n this.clone = function() {\n return Range.fromPoints(this.start, this.end);\n };\n this.collapseRows = function() {\n if (this.end.column == 0)\n return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0);\n else\n return new Range(this.start.row, 0, this.end.row, 0);\n };\n this.toScreenRange = function(session) {\n var screenPosStart = session.documentToScreenPosition(this.start);\n var screenPosEnd = session.documentToScreenPosition(this.end);\n\n return new Range(\n screenPosStart.row, screenPosStart.column,\n screenPosEnd.row, screenPosEnd.column\n );\n };\n this.moveBy = function(row, column) {\n this.start.row += row;\n this.start.column += column;\n this.end.row += row;\n this.end.column += column;\n };\n\n}).call(Range.prototype);\nRange.fromPoints = function(start, end) {\n return new Range(start.row, start.column, end.row, end.column);\n};\nRange.comparePoints = comparePoints;\n\nRange.comparePoints = function(p1, p2) {\n return p1.row - p2.row || p1.column - p2.column;\n};\n\n\nexports.Range = Range;\n});\n\nace.define(\"ace/selection\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar lang = acequire(\"./lib/lang\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar Range = acequire(\"./range\").Range;\nvar Selection = function(session) {\n this.session = session;\n this.doc = session.getDocument();\n\n this.clearSelection();\n this.lead = this.selectionLead = this.doc.createAnchor(0, 0);\n this.anchor = this.selectionAnchor = this.doc.createAnchor(0, 0);\n\n var self = this;\n this.lead.on(\"change\", function(e) {\n self._emit(\"changeCursor\");\n if (!self.$isEmpty)\n self._emit(\"changeSelection\");\n if (!self.$keepDesiredColumnOnChange && e.old.column != e.value.column)\n self.$desiredColumn = null;\n });\n\n this.selectionAnchor.on(\"change\", function() {\n if (!self.$isEmpty)\n self._emit(\"changeSelection\");\n });\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.isEmpty = function() {\n return (this.$isEmpty || (\n this.anchor.row == this.lead.row &&\n this.anchor.column == this.lead.column\n ));\n };\n this.isMultiLine = function() {\n if (this.isEmpty()) {\n return false;\n }\n\n return this.getRange().isMultiLine();\n };\n this.getCursor = function() {\n return this.lead.getPosition();\n };\n this.setSelectionAnchor = function(row, column) {\n this.anchor.setPosition(row, column);\n\n if (this.$isEmpty) {\n this.$isEmpty = false;\n this._emit(\"changeSelection\");\n }\n };\n this.getSelectionAnchor = function() {\n if (this.$isEmpty)\n return this.getSelectionLead();\n else\n return this.anchor.getPosition();\n };\n this.getSelectionLead = function() {\n return this.lead.getPosition();\n };\n this.shiftSelection = function(columns) {\n if (this.$isEmpty) {\n this.moveCursorTo(this.lead.row, this.lead.column + columns);\n return;\n }\n\n var anchor = this.getSelectionAnchor();\n var lead = this.getSelectionLead();\n\n var isBackwards = this.isBackwards();\n\n if (!isBackwards || anchor.column !== 0)\n this.setSelectionAnchor(anchor.row, anchor.column + columns);\n\n if (isBackwards || lead.column !== 0) {\n this.$moveSelection(function() {\n this.moveCursorTo(lead.row, lead.column + columns);\n });\n }\n };\n this.isBackwards = function() {\n var anchor = this.anchor;\n var lead = this.lead;\n return (anchor.row > lead.row || (anchor.row == lead.row && anchor.column > lead.column));\n };\n this.getRange = function() {\n var anchor = this.anchor;\n var lead = this.lead;\n\n if (this.isEmpty())\n return Range.fromPoints(lead, lead);\n\n if (this.isBackwards()) {\n return Range.fromPoints(lead, anchor);\n }\n else {\n return Range.fromPoints(anchor, lead);\n }\n };\n this.clearSelection = function() {\n if (!this.$isEmpty) {\n this.$isEmpty = true;\n this._emit(\"changeSelection\");\n }\n };\n this.selectAll = function() {\n var lastRow = this.doc.getLength() - 1;\n this.setSelectionAnchor(0, 0);\n this.moveCursorTo(lastRow, this.doc.getLine(lastRow).length);\n };\n this.setRange =\n this.setSelectionRange = function(range, reverse) {\n if (reverse) {\n this.setSelectionAnchor(range.end.row, range.end.column);\n this.selectTo(range.start.row, range.start.column);\n } else {\n this.setSelectionAnchor(range.start.row, range.start.column);\n this.selectTo(range.end.row, range.end.column);\n }\n if (this.getRange().isEmpty())\n this.$isEmpty = true;\n this.$desiredColumn = null;\n };\n\n this.$moveSelection = function(mover) {\n var lead = this.lead;\n if (this.$isEmpty)\n this.setSelectionAnchor(lead.row, lead.column);\n\n mover.call(this);\n };\n this.selectTo = function(row, column) {\n this.$moveSelection(function() {\n this.moveCursorTo(row, column);\n });\n };\n this.selectToPosition = function(pos) {\n this.$moveSelection(function() {\n this.moveCursorToPosition(pos);\n });\n };\n this.moveTo = function(row, column) {\n this.clearSelection();\n this.moveCursorTo(row, column);\n };\n this.moveToPosition = function(pos) {\n this.clearSelection();\n this.moveCursorToPosition(pos);\n };\n this.selectUp = function() {\n this.$moveSelection(this.moveCursorUp);\n };\n this.selectDown = function() {\n this.$moveSelection(this.moveCursorDown);\n };\n this.selectRight = function() {\n this.$moveSelection(this.moveCursorRight);\n };\n this.selectLeft = function() {\n this.$moveSelection(this.moveCursorLeft);\n };\n this.selectLineStart = function() {\n this.$moveSelection(this.moveCursorLineStart);\n };\n this.selectLineEnd = function() {\n this.$moveSelection(this.moveCursorLineEnd);\n };\n this.selectFileEnd = function() {\n this.$moveSelection(this.moveCursorFileEnd);\n };\n this.selectFileStart = function() {\n this.$moveSelection(this.moveCursorFileStart);\n };\n this.selectWordRight = function() {\n this.$moveSelection(this.moveCursorWordRight);\n };\n this.selectWordLeft = function() {\n this.$moveSelection(this.moveCursorWordLeft);\n };\n this.getWordRange = function(row, column) {\n if (typeof column == \"undefined\") {\n var cursor = row || this.lead;\n row = cursor.row;\n column = cursor.column;\n }\n return this.session.getWordRange(row, column);\n };\n this.selectWord = function() {\n this.setSelectionRange(this.getWordRange());\n };\n this.selectAWord = function() {\n var cursor = this.getCursor();\n var range = this.session.getAWordRange(cursor.row, cursor.column);\n this.setSelectionRange(range);\n };\n\n this.getLineRange = function(row, excludeLastChar) {\n var rowStart = typeof row == \"number\" ? row : this.lead.row;\n var rowEnd;\n\n var foldLine = this.session.getFoldLine(rowStart);\n if (foldLine) {\n rowStart = foldLine.start.row;\n rowEnd = foldLine.end.row;\n } else {\n rowEnd = rowStart;\n }\n if (excludeLastChar === true)\n return new Range(rowStart, 0, rowEnd, this.session.getLine(rowEnd).length);\n else\n return new Range(rowStart, 0, rowEnd + 1, 0);\n };\n this.selectLine = function() {\n this.setSelectionRange(this.getLineRange());\n };\n this.moveCursorUp = function() {\n this.moveCursorBy(-1, 0);\n };\n this.moveCursorDown = function() {\n this.moveCursorBy(1, 0);\n };\n this.wouldMoveIntoSoftTab = function(cursor, tabSize, direction) {\n var start = cursor.column;\n var end = cursor.column + tabSize;\n\n if (direction < 0) {\n start = cursor.column - tabSize;\n end = cursor.column;\n }\n return this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(start, end).split(\" \").length-1 == tabSize;\n };\n this.moveCursorLeft = function() {\n var cursor = this.lead.getPosition(),\n fold;\n\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n } else if (cursor.column === 0) {\n if (cursor.row > 0) {\n this.moveCursorTo(cursor.row - 1, this.doc.getLine(cursor.row - 1).length);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, -1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, -tabSize);\n } else {\n this.moveCursorBy(0, -1);\n }\n }\n };\n this.moveCursorRight = function() {\n var cursor = this.lead.getPosition(),\n fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, 1)) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n }\n else if (this.lead.column == this.doc.getLine(this.lead.row).length) {\n if (this.lead.row < this.doc.getLength() - 1) {\n this.moveCursorTo(this.lead.row + 1, 0);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n var cursor = this.lead;\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, 1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, tabSize);\n } else {\n this.moveCursorBy(0, 1);\n }\n }\n };\n this.moveCursorLineStart = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var screenRow = this.session.documentToScreenRow(row, column);\n var firstColumnPosition = this.session.screenToDocumentPosition(screenRow, 0);\n var beforeCursor = this.session.getDisplayLine(\n row, null, firstColumnPosition.row,\n firstColumnPosition.column\n );\n\n var leadingSpace = beforeCursor.match(/^\\s*/);\n if (leadingSpace[0].length != column && !this.session.$useEmacsStyleLineStart)\n firstColumnPosition.column += leadingSpace[0].length;\n this.moveCursorToPosition(firstColumnPosition);\n };\n this.moveCursorLineEnd = function() {\n var lead = this.lead;\n var lineEnd = this.session.getDocumentLastRowColumnPosition(lead.row, lead.column);\n if (this.lead.column == lineEnd.column) {\n var line = this.session.getLine(lineEnd.row);\n if (lineEnd.column == line.length) {\n var textEnd = line.search(/\\s+$/);\n if (textEnd > 0)\n lineEnd.column = textEnd;\n }\n }\n\n this.moveCursorTo(lineEnd.row, lineEnd.column);\n };\n this.moveCursorFileEnd = function() {\n var row = this.doc.getLength() - 1;\n var column = this.doc.getLine(row).length;\n this.moveCursorTo(row, column);\n };\n this.moveCursorFileStart = function() {\n this.moveCursorTo(0, 0);\n };\n this.moveCursorLongWordRight = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n\n var match;\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n return;\n }\n if (match = this.session.nonTokenRe.exec(rightOfCursor)) {\n column += this.session.nonTokenRe.lastIndex;\n this.session.nonTokenRe.lastIndex = 0;\n rightOfCursor = line.substring(column);\n }\n if (column >= line.length) {\n this.moveCursorTo(row, line.length);\n this.moveCursorRight();\n if (row < this.doc.getLength() - 1)\n this.moveCursorWordRight();\n return;\n }\n if (match = this.session.tokenRe.exec(rightOfCursor)) {\n column += this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n\n this.moveCursorTo(row, column);\n };\n this.moveCursorLongWordLeft = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n return;\n }\n\n var str = this.session.getFoldStringAt(row, column, -1);\n if (str == null) {\n str = this.doc.getLine(row).substring(0, column);\n }\n\n var leftOfCursor = lang.stringReverse(str);\n var match;\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n if (match = this.session.nonTokenRe.exec(leftOfCursor)) {\n column -= this.session.nonTokenRe.lastIndex;\n leftOfCursor = leftOfCursor.slice(this.session.nonTokenRe.lastIndex);\n this.session.nonTokenRe.lastIndex = 0;\n }\n if (column <= 0) {\n this.moveCursorTo(row, 0);\n this.moveCursorLeft();\n if (row > 0)\n this.moveCursorWordLeft();\n return;\n }\n if (match = this.session.tokenRe.exec(leftOfCursor)) {\n column -= this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n\n this.moveCursorTo(row, column);\n };\n\n this.$shortWordEndIndex = function(rightOfCursor) {\n var match, index = 0, ch;\n var whitespaceRe = /\\s/;\n var tokenRe = this.session.tokenRe;\n\n tokenRe.lastIndex = 0;\n if (match = this.session.tokenRe.exec(rightOfCursor)) {\n index = this.session.tokenRe.lastIndex;\n } else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index ++;\n\n if (index < 1) {\n tokenRe.lastIndex = 0;\n while ((ch = rightOfCursor[index]) && !tokenRe.test(ch)) {\n tokenRe.lastIndex = 0;\n index ++;\n if (whitespaceRe.test(ch)) {\n if (index > 2) {\n index--;\n break;\n } else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index ++;\n if (index > 2)\n break;\n }\n }\n }\n }\n }\n tokenRe.lastIndex = 0;\n\n return index;\n };\n\n this.moveCursorShortWordRight = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold)\n return this.moveCursorTo(fold.end.row, fold.end.column);\n\n if (column == line.length) {\n var l = this.doc.getLength();\n do {\n row++;\n rightOfCursor = this.doc.getLine(row);\n } while (row < l && /^\\s*$/.test(rightOfCursor));\n\n if (!/^\\s+/.test(rightOfCursor))\n rightOfCursor = \"\";\n column = 0;\n }\n\n var index = this.$shortWordEndIndex(rightOfCursor);\n\n this.moveCursorTo(row, column + index);\n };\n\n this.moveCursorShortWordLeft = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1))\n return this.moveCursorTo(fold.start.row, fold.start.column);\n\n var line = this.session.getLine(row).substring(0, column);\n if (column === 0) {\n do {\n row--;\n line = this.doc.getLine(row);\n } while (row > 0 && /^\\s*$/.test(line));\n\n column = line.length;\n if (!/\\s+$/.test(line))\n line = \"\";\n }\n\n var leftOfCursor = lang.stringReverse(line);\n var index = this.$shortWordEndIndex(leftOfCursor);\n\n return this.moveCursorTo(row, column - index);\n };\n\n this.moveCursorWordRight = function() {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordRight();\n else\n this.moveCursorShortWordRight();\n };\n\n this.moveCursorWordLeft = function() {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordLeft();\n else\n this.moveCursorShortWordLeft();\n };\n this.moveCursorBy = function(rows, chars) {\n var screenPos = this.session.documentToScreenPosition(\n this.lead.row,\n this.lead.column\n );\n\n var offsetX;\n\n if (chars === 0) {\n if (rows !== 0) {\n if (this.session.$bidiHandler.isBidiRow(screenPos.row, this.lead.row)) {\n offsetX = this.session.$bidiHandler.getPosLeft(screenPos.column);\n screenPos.column = Math.round(offsetX / this.session.$bidiHandler.charWidths[0]);\n } else {\n offsetX = screenPos.column * this.session.$bidiHandler.charWidths[0];\n }\n }\n\n if (this.$desiredColumn)\n screenPos.column = this.$desiredColumn;\n else\n this.$desiredColumn = screenPos.column;\n }\n\n var docPos = this.session.screenToDocumentPosition(screenPos.row + rows, screenPos.column, offsetX);\n \n if (rows !== 0 && chars === 0 && docPos.row === this.lead.row && docPos.column === this.lead.column) {\n if (this.session.lineWidgets && this.session.lineWidgets[docPos.row]) {\n if (docPos.row > 0 || rows > 0)\n docPos.row++;\n }\n }\n this.moveCursorTo(docPos.row, docPos.column + chars, chars === 0);\n };\n this.moveCursorToPosition = function(position) {\n this.moveCursorTo(position.row, position.column);\n };\n this.moveCursorTo = function(row, column, keepDesiredColumn) {\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n row = fold.start.row;\n column = fold.start.column;\n }\n\n this.$keepDesiredColumnOnChange = true;\n var line = this.session.getLine(row);\n if (/[\\uDC00-\\uDFFF]/.test(line.charAt(column)) && line.charAt(column - 1)) {\n if (this.lead.row == row && this.lead.column == column + 1)\n column = column - 1;\n else\n column = column + 1;\n }\n this.lead.setPosition(row, column);\n this.$keepDesiredColumnOnChange = false;\n\n if (!keepDesiredColumn)\n this.$desiredColumn = null;\n };\n this.moveCursorToScreen = function(row, column, keepDesiredColumn) {\n var pos = this.session.screenToDocumentPosition(row, column);\n this.moveCursorTo(pos.row, pos.column, keepDesiredColumn);\n };\n this.detach = function() {\n this.lead.detach();\n this.anchor.detach();\n this.session = this.doc = null;\n };\n\n this.fromOrientedRange = function(range) {\n this.setSelectionRange(range, range.cursor == range.start);\n this.$desiredColumn = range.desiredColumn || this.$desiredColumn;\n };\n\n this.toOrientedRange = function(range) {\n var r = this.getRange();\n if (range) {\n range.start.column = r.start.column;\n range.start.row = r.start.row;\n range.end.column = r.end.column;\n range.end.row = r.end.row;\n } else {\n range = r;\n }\n\n range.cursor = this.isBackwards() ? range.start : range.end;\n range.desiredColumn = this.$desiredColumn;\n return range;\n };\n this.getRangeOfMovements = function(func) {\n var start = this.getCursor();\n try {\n func(this);\n var end = this.getCursor();\n return Range.fromPoints(start,end);\n } catch(e) {\n return Range.fromPoints(start,start);\n } finally {\n this.moveCursorToPosition(start);\n }\n };\n\n this.toJSON = function() {\n if (this.rangeCount) {\n var data = this.ranges.map(function(r) {\n var r1 = r.clone();\n r1.isBackwards = r.cursor == r.start;\n return r1;\n });\n } else {\n var data = this.getRange();\n data.isBackwards = this.isBackwards();\n }\n return data;\n };\n\n this.fromJSON = function(data) {\n if (data.start == undefined) {\n if (this.rangeList) {\n this.toSingleRange(data[0]);\n for (var i = data.length; i--; ) {\n var r = Range.fromPoints(data[i].start, data[i].end);\n if (data[i].isBackwards)\n r.cursor = r.start;\n this.addRange(r, true);\n }\n return;\n } else\n data = data[0];\n }\n if (this.rangeList)\n this.toSingleRange(data);\n this.setSelectionRange(data, data.isBackwards);\n };\n\n this.isEqual = function(data) {\n if ((data.length || this.rangeCount) && data.length != this.rangeCount)\n return false;\n if (!data.length || !this.ranges)\n return this.getRange().isEqual(data);\n\n for (var i = this.ranges.length; i--; ) {\n if (!this.ranges[i].isEqual(data[i]))\n return false;\n }\n return true;\n };\n\n}).call(Selection.prototype);\n\nexports.Selection = Selection;\n});\n\nace.define(\"ace/tokenizer\",[\"require\",\"exports\",\"module\",\"ace/config\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar config = acequire(\"./config\");\nvar MAX_TOKEN_COUNT = 2000;\nvar Tokenizer = function(rules) {\n this.states = rules;\n\n this.regExps = {};\n this.matchMappings = {};\n for (var key in this.states) {\n var state = this.states[key];\n var ruleRegExps = [];\n var matchTotal = 0;\n var mapping = this.matchMappings[key] = {defaultToken: \"text\"};\n var flag = \"g\";\n\n var splitterRurles = [];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.defaultToken)\n mapping.defaultToken = rule.defaultToken;\n if (rule.caseInsensitive)\n flag = \"gi\";\n if (rule.regex == null)\n continue;\n\n if (rule.regex instanceof RegExp)\n rule.regex = rule.regex.toString().slice(1, -1);\n var adjustedregex = rule.regex;\n var matchcount = new RegExp(\"(?:(\" + adjustedregex + \")|(.))\").exec(\"a\").length - 2;\n if (Array.isArray(rule.token)) {\n if (rule.token.length == 1 || matchcount == 1) {\n rule.token = rule.token[0];\n } else if (matchcount - 1 != rule.token.length) {\n this.reportError(\"number of classes and regexp groups doesn't match\", { \n rule: rule,\n groupCount: matchcount - 1\n });\n rule.token = rule.token[0];\n } else {\n rule.tokenArray = rule.token;\n rule.token = null;\n rule.onMatch = this.$arrayTokens;\n }\n } else if (typeof rule.token == \"function\" && !rule.onMatch) {\n if (matchcount > 1)\n rule.onMatch = this.$applyToken;\n else\n rule.onMatch = rule.token;\n }\n\n if (matchcount > 1) {\n if (/\\\\\\d/.test(rule.regex)) {\n adjustedregex = rule.regex.replace(/\\\\([0-9]+)/g, function(match, digit) {\n return \"\\\\\" + (parseInt(digit, 10) + matchTotal + 1);\n });\n } else {\n matchcount = 1;\n adjustedregex = this.removeCapturingGroups(rule.regex);\n }\n if (!rule.splitRegex && typeof rule.token != \"string\")\n splitterRurles.push(rule); // flag will be known only at the very end\n }\n\n mapping[matchTotal] = i;\n matchTotal += matchcount;\n\n ruleRegExps.push(adjustedregex);\n if (!rule.onMatch)\n rule.onMatch = null;\n }\n \n if (!ruleRegExps.length) {\n mapping[0] = 0;\n ruleRegExps.push(\"$\");\n }\n \n splitterRurles.forEach(function(rule) {\n rule.splitRegex = this.createSplitterRegexp(rule.regex, flag);\n }, this);\n\n this.regExps[key] = new RegExp(\"(\" + ruleRegExps.join(\")|(\") + \")|($)\", flag);\n }\n};\n\n(function() {\n this.$setMaxTokenCount = function(m) {\n MAX_TOKEN_COUNT = m | 0;\n };\n \n this.$applyToken = function(str) {\n var values = this.splitRegex.exec(str).slice(1);\n var types = this.token.apply(this, values);\n if (typeof types === \"string\")\n return [{type: types, value: str}];\n\n var tokens = [];\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i]\n };\n }\n return tokens;\n };\n\n this.$arrayTokens = function(str) {\n if (!str)\n return [];\n var values = this.splitRegex.exec(str);\n if (!values)\n return \"text\";\n var tokens = [];\n var types = this.tokenArray;\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i + 1])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i + 1]\n };\n }\n return tokens;\n };\n\n this.removeCapturingGroups = function(src) {\n var r = src.replace(\n /\\[(?:\\\\.|[^\\]])*?\\]|\\\\.|\\(\\?[:=!]|(\\()/g,\n function(x, y) {return y ? \"(?:\" : x;}\n );\n return r;\n };\n\n this.createSplitterRegexp = function(src, flag) {\n if (src.indexOf(\"(?=\") != -1) {\n var stack = 0;\n var inChClass = false;\n var lastCapture = {};\n src.replace(/(\\\\.)|(\\((?:\\?[=!])?)|(\\))|([\\[\\]])/g, function(\n m, esc, parenOpen, parenClose, square, index\n ) {\n if (inChClass) {\n inChClass = square != \"]\";\n } else if (square) {\n inChClass = true;\n } else if (parenClose) {\n if (stack == lastCapture.stack) {\n lastCapture.end = index+1;\n lastCapture.stack = -1;\n }\n stack--;\n } else if (parenOpen) {\n stack++;\n if (parenOpen.length != 1) {\n lastCapture.stack = stack;\n lastCapture.start = index;\n }\n }\n return m;\n });\n\n if (lastCapture.end != null && /^\\)*$/.test(src.substr(lastCapture.end)))\n src = src.substring(0, lastCapture.start) + src.substr(lastCapture.end);\n }\n if (src.charAt(0) != \"^\") src = \"^\" + src;\n if (src.charAt(src.length - 1) != \"$\") src += \"$\";\n \n return new RegExp(src, (flag||\"\").replace(\"g\", \"\"));\n };\n this.getLineTokens = function(line, startState) {\n if (startState && typeof startState != \"string\") {\n var stack = startState.slice(0);\n startState = stack[0];\n if (startState === \"#tmp\") {\n stack.shift();\n startState = stack.shift();\n }\n } else\n var stack = [];\n\n var currentState = startState || \"start\";\n var state = this.states[currentState];\n if (!state) {\n currentState = \"start\";\n state = this.states[currentState];\n }\n var mapping = this.matchMappings[currentState];\n var re = this.regExps[currentState];\n re.lastIndex = 0;\n\n var match, tokens = [];\n var lastIndex = 0;\n var matchAttempts = 0;\n\n var token = {type: null, value: \"\"};\n\n while (match = re.exec(line)) {\n var type = mapping.defaultToken;\n var rule = null;\n var value = match[0];\n var index = re.lastIndex;\n\n if (index - value.length > lastIndex) {\n var skipped = line.substring(lastIndex, index - value.length);\n if (token.type == type) {\n token.value += skipped;\n } else {\n if (token.type)\n tokens.push(token);\n token = {type: type, value: skipped};\n }\n }\n\n for (var i = 0; i < match.length-2; i++) {\n if (match[i + 1] === undefined)\n continue;\n\n rule = state[mapping[i]];\n\n if (rule.onMatch)\n type = rule.onMatch(value, currentState, stack, line);\n else\n type = rule.token;\n\n if (rule.next) {\n if (typeof rule.next == \"string\") {\n currentState = rule.next;\n } else {\n currentState = rule.next(currentState, stack);\n }\n \n state = this.states[currentState];\n if (!state) {\n this.reportError(\"state doesn't exist\", currentState);\n currentState = \"start\";\n state = this.states[currentState];\n }\n mapping = this.matchMappings[currentState];\n lastIndex = index;\n re = this.regExps[currentState];\n re.lastIndex = index;\n }\n if (rule.consumeLineEnd)\n lastIndex = index;\n break;\n }\n\n if (value) {\n if (typeof type === \"string\") {\n if ((!rule || rule.merge !== false) && token.type === type) {\n token.value += value;\n } else {\n if (token.type)\n tokens.push(token);\n token = {type: type, value: value};\n }\n } else if (type) {\n if (token.type)\n tokens.push(token);\n token = {type: null, value: \"\"};\n for (var i = 0; i < type.length; i++)\n tokens.push(type[i]);\n }\n }\n\n if (lastIndex == line.length)\n break;\n\n lastIndex = index;\n\n if (matchAttempts++ > MAX_TOKEN_COUNT) {\n if (matchAttempts > 2 * line.length) {\n this.reportError(\"infinite loop with in ace tokenizer\", {\n startState: startState,\n line: line\n });\n }\n while (lastIndex < line.length) {\n if (token.type)\n tokens.push(token);\n token = {\n value: line.substring(lastIndex, lastIndex += 2000),\n type: \"overflow\"\n };\n }\n currentState = \"start\";\n stack = [];\n break;\n }\n }\n\n if (token.type)\n tokens.push(token);\n \n if (stack.length > 1) {\n if (stack[0] !== currentState)\n stack.unshift(\"#tmp\", currentState);\n }\n return {\n tokens : tokens,\n state : stack.length ? stack : currentState\n };\n };\n \n this.reportError = config.reportError;\n \n}).call(Tokenizer.prototype);\n\nexports.Tokenizer = Tokenizer;\n});\n\nace.define(\"ace/mode/text_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"../lib/lang\");\n\nvar TextHighlightRules = function() {\n\n this.$rules = {\n \"start\" : [{\n token : \"empty_line\",\n regex : '^$'\n }, {\n defaultToken : \"text\"\n }]\n };\n};\n\n(function() {\n\n this.addRules = function(rules, prefix) {\n if (!prefix) {\n for (var key in rules)\n this.$rules[key] = rules[key];\n return;\n }\n for (var key in rules) {\n var state = rules[key];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.next || rule.onMatch) {\n if (typeof rule.next == \"string\") {\n if (rule.next.indexOf(prefix) !== 0)\n rule.next = prefix + rule.next;\n }\n if (rule.nextState && rule.nextState.indexOf(prefix) !== 0)\n rule.nextState = prefix + rule.nextState;\n }\n }\n this.$rules[prefix + key] = state;\n }\n };\n\n this.getRules = function() {\n return this.$rules;\n };\n\n this.embedRules = function (HighlightRules, prefix, escapeRules, states, append) {\n var embedRules = typeof HighlightRules == \"function\"\n ? new HighlightRules().getRules()\n : HighlightRules;\n if (states) {\n for (var i = 0; i < states.length; i++)\n states[i] = prefix + states[i];\n } else {\n states = [];\n for (var key in embedRules)\n states.push(prefix + key);\n }\n\n this.addRules(embedRules, prefix);\n\n if (escapeRules) {\n var addRules = Array.prototype[append ? \"push\" : \"unshift\"];\n for (var i = 0; i < states.length; i++)\n addRules.apply(this.$rules[states[i]], lang.deepCopy(escapeRules));\n }\n\n if (!this.$embeds)\n this.$embeds = [];\n this.$embeds.push(prefix);\n };\n\n this.getEmbeds = function() {\n return this.$embeds;\n };\n\n var pushState = function(currentState, stack) {\n if (currentState != \"start\" || stack.length)\n stack.unshift(this.nextState, currentState);\n return this.nextState;\n };\n var popState = function(currentState, stack) {\n stack.shift();\n return stack.shift() || \"start\";\n };\n\n this.normalizeRules = function() {\n var id = 0;\n var rules = this.$rules;\n function processState(key) {\n var state = rules[key];\n state.processed = true;\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n var toInsert = null;\n if (Array.isArray(rule)) {\n toInsert = rule;\n rule = {};\n }\n if (!rule.regex && rule.start) {\n rule.regex = rule.start;\n if (!rule.next)\n rule.next = [];\n rule.next.push({\n defaultToken: rule.token\n }, {\n token: rule.token + \".end\",\n regex: rule.end || rule.start,\n next: \"pop\"\n });\n rule.token = rule.token + \".start\";\n rule.push = true;\n }\n var next = rule.next || rule.push;\n if (next && Array.isArray(next)) {\n var stateName = rule.stateName;\n if (!stateName) {\n stateName = rule.token;\n if (typeof stateName != \"string\")\n stateName = stateName[0] || \"\";\n if (rules[stateName])\n stateName += id++;\n }\n rules[stateName] = next;\n rule.next = stateName;\n processState(stateName);\n } else if (next == \"pop\") {\n rule.next = popState;\n }\n\n if (rule.push) {\n rule.nextState = rule.next || rule.push;\n rule.next = pushState;\n delete rule.push;\n }\n\n if (rule.rules) {\n for (var r in rule.rules) {\n if (rules[r]) {\n if (rules[r].push)\n rules[r].push.apply(rules[r], rule.rules[r]);\n } else {\n rules[r] = rule.rules[r];\n }\n }\n }\n var includeName = typeof rule == \"string\" ? rule : rule.include;\n if (includeName) {\n if (Array.isArray(includeName))\n toInsert = includeName.map(function(x) { return rules[x]; });\n else\n toInsert = rules[includeName];\n }\n\n if (toInsert) {\n var args = [i, 1].concat(toInsert);\n if (rule.noEscape)\n args = args.filter(function(x) {return !x.next;});\n state.splice.apply(state, args);\n i--;\n }\n \n if (rule.keywordMap) {\n rule.token = this.createKeywordMapper(\n rule.keywordMap, rule.defaultToken || \"text\", rule.caseInsensitive\n );\n delete rule.defaultToken;\n }\n }\n }\n Object.keys(rules).forEach(processState, this);\n };\n\n this.createKeywordMapper = function(map, defaultToken, ignoreCase, splitChar) {\n var keywords = Object.create(null);\n Object.keys(map).forEach(function(className) {\n var a = map[className];\n if (ignoreCase)\n a = a.toLowerCase();\n var list = a.split(splitChar || \"|\");\n for (var i = list.length; i--; )\n keywords[list[i]] = className;\n });\n if (Object.getPrototypeOf(keywords)) {\n keywords.__proto__ = null;\n }\n this.$keywordList = Object.keys(keywords);\n map = null;\n return ignoreCase\n ? function(value) {return keywords[value.toLowerCase()] || defaultToken; }\n : function(value) {return keywords[value] || defaultToken; };\n };\n\n this.getKeywords = function() {\n return this.$keywords;\n };\n\n}).call(TextHighlightRules.prototype);\n\nexports.TextHighlightRules = TextHighlightRules;\n});\n\nace.define(\"ace/mode/behaviour\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Behaviour = function() {\n this.$behaviours = {};\n};\n\n(function () {\n\n this.add = function (name, action, callback) {\n switch (undefined) {\n case this.$behaviours:\n this.$behaviours = {};\n case this.$behaviours[name]:\n this.$behaviours[name] = {};\n }\n this.$behaviours[name][action] = callback;\n };\n \n this.addBehaviours = function (behaviours) {\n for (var key in behaviours) {\n for (var action in behaviours[key]) {\n this.add(key, action, behaviours[key][action]);\n }\n }\n };\n \n this.remove = function (name) {\n if (this.$behaviours && this.$behaviours[name]) {\n delete this.$behaviours[name];\n }\n };\n \n this.inherit = function (mode, filter) {\n if (typeof mode === \"function\") {\n var behaviours = new mode().getBehaviours(filter);\n } else {\n var behaviours = mode.getBehaviours(filter);\n }\n this.addBehaviours(behaviours);\n };\n \n this.getBehaviours = function (filter) {\n if (!filter) {\n return this.$behaviours;\n } else {\n var ret = {};\n for (var i = 0; i < filter.length; i++) {\n if (this.$behaviours[filter[i]]) {\n ret[filter[i]] = this.$behaviours[filter[i]];\n }\n }\n return ret;\n }\n };\n\n}).call(Behaviour.prototype);\n\nexports.Behaviour = Behaviour;\n});\n\nace.define(\"ace/token_iterator\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"./range\").Range;\nvar TokenIterator = function(session, initialRow, initialColumn) {\n this.$session = session;\n this.$row = initialRow;\n this.$rowTokens = session.getTokens(initialRow);\n\n var token = session.getTokenAt(initialRow, initialColumn);\n this.$tokenIndex = token ? token.index : -1;\n};\n\n(function() { \n this.stepBackward = function() {\n this.$tokenIndex -= 1;\n \n while (this.$tokenIndex < 0) {\n this.$row -= 1;\n if (this.$row < 0) {\n this.$row = 0;\n return null;\n }\n \n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = this.$rowTokens.length - 1;\n }\n \n return this.$rowTokens[this.$tokenIndex];\n }; \n this.stepForward = function() {\n this.$tokenIndex += 1;\n var rowCount;\n while (this.$tokenIndex >= this.$rowTokens.length) {\n this.$row += 1;\n if (!rowCount)\n rowCount = this.$session.getLength();\n if (this.$row >= rowCount) {\n this.$row = rowCount - 1;\n return null;\n }\n\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = 0;\n }\n \n return this.$rowTokens[this.$tokenIndex];\n }; \n this.getCurrentToken = function () {\n return this.$rowTokens[this.$tokenIndex];\n }; \n this.getCurrentTokenRow = function () {\n return this.$row;\n }; \n this.getCurrentTokenColumn = function() {\n var rowTokens = this.$rowTokens;\n var tokenIndex = this.$tokenIndex;\n var column = rowTokens[tokenIndex].start;\n if (column !== undefined)\n return column;\n \n column = 0;\n while (tokenIndex > 0) {\n tokenIndex -= 1;\n column += rowTokens[tokenIndex].value.length;\n }\n \n return column; \n };\n this.getCurrentTokenPosition = function() {\n return {row: this.$row, column: this.getCurrentTokenColumn()};\n };\n this.getCurrentTokenRange = function() {\n var token = this.$rowTokens[this.$tokenIndex];\n var column = this.getCurrentTokenColumn();\n return new Range(this.$row, column, this.$row, column + token.value.length);\n };\n\n}).call(TokenIterator.prototype);\n\nexports.TokenIterator = TokenIterator;\n});\n\nace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Behaviour = acequire(\"../behaviour\").Behaviour;\nvar TokenIterator = acequire(\"../../token_iterator\").TokenIterator;\nvar lang = acequire(\"../../lib/lang\");\n\nvar SAFE_INSERT_IN_TOKENS =\n [\"text\", \"paren.rparen\", \"punctuation.operator\"];\nvar SAFE_INSERT_BEFORE_TOKENS =\n [\"text\", \"paren.rparen\", \"punctuation.operator\", \"comment\"];\n\nvar context;\nvar contextCache = {};\nvar defaultQuotes = {'\"' : '\"', \"'\" : \"'\"};\n\nvar initContext = function(editor) {\n var id = -1;\n if (editor.multiSelect) {\n id = editor.selection.index;\n if (contextCache.rangeCount != editor.multiSelect.rangeCount)\n contextCache = {rangeCount: editor.multiSelect.rangeCount};\n }\n if (contextCache[id])\n return context = contextCache[id];\n context = contextCache[id] = {\n autoInsertedBrackets: 0,\n autoInsertedRow: -1,\n autoInsertedLineEnd: \"\",\n maybeInsertedBrackets: 0,\n maybeInsertedRow: -1,\n maybeInsertedLineStart: \"\",\n maybeInsertedLineEnd: \"\"\n };\n};\n\nvar getWrapped = function(selection, selected, opening, closing) {\n var rowDiff = selection.end.row - selection.start.row;\n return {\n text: opening + selected + closing,\n selection: [\n 0,\n selection.start.column + 1,\n rowDiff,\n selection.end.column + (rowDiff ? 0 : 1)\n ]\n };\n};\n\nvar CstyleBehaviour = function(options) {\n this.add(\"braces\", \"insertion\", function(state, action, editor, session, text) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (text == '{') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"{\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '{', '}');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n if (/[\\]\\}\\)]/.test(line[cursor.column]) || editor.inMultiSelectMode || options && options.braces) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"}\");\n return {\n text: '{}',\n selection: [1, 1]\n };\n } else {\n CstyleBehaviour.recordMaybeInsert(editor, session, \"{\");\n return {\n text: '{',\n selection: [1, 1]\n };\n }\n }\n } else if (text == '}') {\n initContext(editor);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == '}') {\n var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n } else if (text == \"\\n\" || text == \"\\r\\n\") {\n initContext(editor);\n var closing = \"\";\n if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {\n closing = lang.stringRepeat(\"}\", context.maybeInsertedBrackets);\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === '}') {\n var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column+1}, '}');\n if (!openBracePos)\n return null;\n var next_indent = this.$getIndent(session.getLine(openBracePos.row));\n } else if (closing) {\n var next_indent = this.$getIndent(line);\n } else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n return;\n }\n var indent = next_indent + session.getTabString();\n\n return {\n text: '\\n' + indent + '\\n' + next_indent + closing,\n selection: [1, indent.length, 1, indent.length]\n };\n } else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n });\n\n this.add(\"braces\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '{') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar == '}') {\n range.end.column++;\n return range;\n } else {\n context.maybeInsertedBrackets--;\n }\n }\n });\n\n this.add(\"parens\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '(') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '(', ')');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \")\");\n return {\n text: '()',\n selection: [1, 1]\n };\n }\n } else if (text == ')') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ')') {\n var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n\n this.add(\"parens\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '(') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ')') {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"brackets\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '[') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '[', ']');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"]\");\n return {\n text: '[]',\n selection: [1, 1]\n };\n }\n } else if (text == ']') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ']') {\n var matching = session.$findOpeningBracket(']', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n\n this.add(\"brackets\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '[') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ']') {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"string_dquotes\", \"insertion\", function(state, action, editor, session, text) {\n var quotes = session.$mode.$quotes || defaultQuotes;\n if (text.length == 1 && quotes[text]) {\n if (this.lineCommentStart && this.lineCommentStart.indexOf(text) != -1)\n return;\n initContext(editor);\n var quote = text;\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && (selected.length != 1 || !quotes[selected]) && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, quote, quote);\n } else if (!selected) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var leftChar = line.substring(cursor.column-1, cursor.column);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n\n var token = session.getTokenAt(cursor.row, cursor.column);\n var rightToken = session.getTokenAt(cursor.row, cursor.column + 1);\n if (leftChar == \"\\\\\" && token && /escape/.test(token.type))\n return null;\n\n var stringBefore = token && /string|escape/.test(token.type);\n var stringAfter = !rightToken || /string|escape/.test(rightToken.type);\n\n var pair;\n if (rightChar == quote) {\n pair = stringBefore !== stringAfter;\n if (pair && /string\\.end/.test(rightToken.type))\n pair = false;\n } else {\n if (stringBefore && !stringAfter)\n return null; // wrap string with different quote\n if (stringBefore && stringAfter)\n return null; // do not pair quotes inside strings\n var wordRe = session.$mode.tokenRe;\n wordRe.lastIndex = 0;\n var isWordBefore = wordRe.test(leftChar);\n wordRe.lastIndex = 0;\n var isWordAfter = wordRe.test(leftChar);\n if (isWordBefore || isWordAfter)\n return null; // before or after alphanumeric\n if (rightChar && !/[\\s;,.})\\]\\\\]/.test(rightChar))\n return null; // there is rightChar and it isn't closing\n pair = true;\n }\n return {\n text: pair ? quote + quote : \"\",\n selection: [1,1]\n };\n }\n }\n });\n\n this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n\n};\n\n\nCstyleBehaviour.isSaneInsertion = function(editor, session) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n if (!this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS)) {\n var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);\n if (!this.$matchTokenType(iterator2.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS))\n return false;\n }\n iterator.stepForward();\n return iterator.getCurrentTokenRow() !== cursor.row ||\n this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_BEFORE_TOKENS);\n};\n\nCstyleBehaviour.$matchTokenType = function(token, types) {\n return types.indexOf(token.type || token) > -1;\n};\n\nCstyleBehaviour.recordAutoInsert = function(editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))\n context.autoInsertedBrackets = 0;\n context.autoInsertedRow = cursor.row;\n context.autoInsertedLineEnd = bracket + line.substr(cursor.column);\n context.autoInsertedBrackets++;\n};\n\nCstyleBehaviour.recordMaybeInsert = function(editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isMaybeInsertedClosing(cursor, line))\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = cursor.row;\n context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;\n context.maybeInsertedLineEnd = line.substr(cursor.column);\n context.maybeInsertedBrackets++;\n};\n\nCstyleBehaviour.isAutoInsertedClosing = function(cursor, line, bracket) {\n return context.autoInsertedBrackets > 0 &&\n cursor.row === context.autoInsertedRow &&\n bracket === context.autoInsertedLineEnd[0] &&\n line.substr(cursor.column) === context.autoInsertedLineEnd;\n};\n\nCstyleBehaviour.isMaybeInsertedClosing = function(cursor, line) {\n return context.maybeInsertedBrackets > 0 &&\n cursor.row === context.maybeInsertedRow &&\n line.substr(cursor.column) === context.maybeInsertedLineEnd &&\n line.substr(0, cursor.column) == context.maybeInsertedLineStart;\n};\n\nCstyleBehaviour.popAutoInsertedClosing = function() {\n context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);\n context.autoInsertedBrackets--;\n};\n\nCstyleBehaviour.clearMaybeInsertedClosing = function() {\n if (context) {\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = -1;\n }\n};\n\n\n\noop.inherits(CstyleBehaviour, Behaviour);\n\nexports.CstyleBehaviour = CstyleBehaviour;\n});\n\nace.define(\"ace/unicode\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nexports.packages = {};\n\naddUnicodePackage({\n L: \"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC\",\n Ll: \"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A\",\n Lu: \"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A\",\n Lt: \"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC\",\n Lm: \"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F\",\n Lo: \"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC\",\n M: \"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26\",\n Mn: \"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26\",\n Mc: \"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC\",\n Me: \"0488048906DE20DD-20E020E2-20E4A670-A672\",\n N: \"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19\",\n Nd: \"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19\",\n Nl: \"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF\",\n No: \"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835\",\n P: \"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65\",\n Pd: \"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D\",\n Ps: \"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62\",\n Pe: \"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63\",\n Pi: \"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20\",\n Pf: \"00BB2019201D203A2E032E052E0A2E0D2E1D2E21\",\n Pc: \"005F203F20402054FE33FE34FE4D-FE4FFF3F\",\n Po: \"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65\",\n S: \"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD\",\n Sm: \"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC\",\n Sc: \"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6\",\n Sk: \"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3\",\n So: \"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD\",\n Z: \"002000A01680180E2000-200A20282029202F205F3000\",\n Zs: \"002000A01680180E2000-200A202F205F3000\",\n Zl: \"2028\",\n Zp: \"2029\",\n C: \"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF\",\n Cc: \"0000-001F007F-009F\",\n Cf: \"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB\",\n Co: \"E000-F8FF\",\n Cs: \"D800-DFFF\",\n Cn: \"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF\"\n});\n\nfunction addUnicodePackage (pack) {\n var codePoint = /\\w{4}/g;\n for (var name in pack)\n exports.packages[name] = pack[name].replace(codePoint, \"\\\\u$&\");\n}\n\n});\n\nace.define(\"ace/mode/text\",[\"require\",\"exports\",\"module\",\"ace/tokenizer\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/unicode\",\"ace/lib/lang\",\"ace/token_iterator\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Tokenizer = acequire(\"../tokenizer\").Tokenizer;\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\nvar CstyleBehaviour = acequire(\"./behaviour/cstyle\").CstyleBehaviour;\nvar unicode = acequire(\"../unicode\");\nvar lang = acequire(\"../lib/lang\");\nvar TokenIterator = acequire(\"../token_iterator\").TokenIterator;\nvar Range = acequire(\"../range\").Range;\n\nvar Mode = function() {\n this.HighlightRules = TextHighlightRules;\n};\n\n(function() {\n this.$defaultBehaviour = new CstyleBehaviour();\n\n this.tokenRe = new RegExp(\"^[\"\n + unicode.packages.L\n + unicode.packages.Mn + unicode.packages.Mc\n + unicode.packages.Nd\n + unicode.packages.Pc + \"\\\\$_]+\", \"g\"\n );\n\n this.nonTokenRe = new RegExp(\"^(?:[^\"\n + unicode.packages.L\n + unicode.packages.Mn + unicode.packages.Mc\n + unicode.packages.Nd\n + unicode.packages.Pc + \"\\\\$_]|\\\\s])+\", \"g\"\n );\n\n this.getTokenizer = function() {\n if (!this.$tokenizer) {\n this.$highlightRules = this.$highlightRules || new this.HighlightRules(this.$highlightRuleConfig);\n this.$tokenizer = new Tokenizer(this.$highlightRules.getRules());\n }\n return this.$tokenizer;\n };\n\n this.lineCommentStart = \"\";\n this.blockComment = \"\";\n\n this.toggleCommentLines = function(state, session, startRow, endRow) {\n var doc = session.doc;\n\n var ignoreBlankLines = true;\n var shouldRemove = true;\n var minIndent = Infinity;\n var tabSize = session.getTabSize();\n var insertAtTabStop = false;\n\n if (!this.lineCommentStart) {\n if (!this.blockComment)\n return false;\n var lineCommentStart = this.blockComment.start;\n var lineCommentEnd = this.blockComment.end;\n var regexpStart = new RegExp(\"^(\\\\s*)(?:\" + lang.escapeRegExp(lineCommentStart) + \")\");\n var regexpEnd = new RegExp(\"(?:\" + lang.escapeRegExp(lineCommentEnd) + \")\\\\s*$\");\n\n var comment = function(line, i) {\n if (testRemove(line, i))\n return;\n if (!ignoreBlankLines || /\\S/.test(line)) {\n doc.insertInLine({row: i, column: line.length}, lineCommentEnd);\n doc.insertInLine({row: i, column: minIndent}, lineCommentStart);\n }\n };\n\n var uncomment = function(line, i) {\n var m;\n if (m = line.match(regexpEnd))\n doc.removeInLine(i, line.length - m[0].length, line.length);\n if (m = line.match(regexpStart))\n doc.removeInLine(i, m[1].length, m[0].length);\n };\n\n var testRemove = function(line, row) {\n if (regexpStart.test(line))\n return true;\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n if (tokens[i].type === \"comment\")\n return true;\n }\n };\n } else {\n if (Array.isArray(this.lineCommentStart)) {\n var regexpStart = this.lineCommentStart.map(lang.escapeRegExp).join(\"|\");\n var lineCommentStart = this.lineCommentStart[0];\n } else {\n var regexpStart = lang.escapeRegExp(this.lineCommentStart);\n var lineCommentStart = this.lineCommentStart;\n }\n regexpStart = new RegExp(\"^(\\\\s*)(?:\" + regexpStart + \") ?\");\n \n insertAtTabStop = session.getUseSoftTabs();\n\n var uncomment = function(line, i) {\n var m = line.match(regexpStart);\n if (!m) return;\n var start = m[1].length, end = m[0].length;\n if (!shouldInsertSpace(line, start, end) && m[0][end - 1] == \" \")\n end--;\n doc.removeInLine(i, start, end);\n };\n var commentWithSpace = lineCommentStart + \" \";\n var comment = function(line, i) {\n if (!ignoreBlankLines || /\\S/.test(line)) {\n if (shouldInsertSpace(line, minIndent, minIndent))\n doc.insertInLine({row: i, column: minIndent}, commentWithSpace);\n else\n doc.insertInLine({row: i, column: minIndent}, lineCommentStart);\n }\n };\n var testRemove = function(line, i) {\n return regexpStart.test(line);\n };\n \n var shouldInsertSpace = function(line, before, after) {\n var spaces = 0;\n while (before-- && line.charAt(before) == \" \")\n spaces++;\n if (spaces % tabSize != 0)\n return false;\n var spaces = 0;\n while (line.charAt(after++) == \" \")\n spaces++;\n if (tabSize > 2)\n return spaces % tabSize != tabSize - 1;\n else\n return spaces % tabSize == 0;\n return true;\n };\n }\n\n function iter(fun) {\n for (var i = startRow; i <= endRow; i++)\n fun(doc.getLine(i), i);\n }\n\n\n var minEmptyLength = Infinity;\n iter(function(line, i) {\n var indent = line.search(/\\S/);\n if (indent !== -1) {\n if (indent < minIndent)\n minIndent = indent;\n if (shouldRemove && !testRemove(line, i))\n shouldRemove = false;\n } else if (minEmptyLength > line.length) {\n minEmptyLength = line.length;\n }\n });\n\n if (minIndent == Infinity) {\n minIndent = minEmptyLength;\n ignoreBlankLines = false;\n shouldRemove = false;\n }\n\n if (insertAtTabStop && minIndent % tabSize != 0)\n minIndent = Math.floor(minIndent / tabSize) * tabSize;\n\n iter(shouldRemove ? uncomment : comment);\n };\n\n this.toggleBlockComment = function(state, session, range, cursor) {\n var comment = this.blockComment;\n if (!comment)\n return;\n if (!comment.start && comment[0])\n comment = comment[0];\n\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n\n var sel = session.selection;\n var initialRange = session.selection.toOrientedRange();\n var startRow, colDiff;\n\n if (token && /comment/.test(token.type)) {\n var startRange, endRange;\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.start);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n startRange = new Range(row, column, row, column + comment.start.length);\n break;\n }\n token = iterator.stepBackward();\n }\n\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.end);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n endRange = new Range(row, column, row, column + comment.end.length);\n break;\n }\n token = iterator.stepForward();\n }\n if (endRange)\n session.remove(endRange);\n if (startRange) {\n session.remove(startRange);\n startRow = startRange.start.row;\n colDiff = -comment.start.length;\n }\n } else {\n colDiff = comment.start.length;\n startRow = range.start.row;\n session.insert(range.end, comment.end);\n session.insert(range.start, comment.start);\n }\n if (initialRange.start.row == startRow)\n initialRange.start.column += colDiff;\n if (initialRange.end.row == startRow)\n initialRange.end.column += colDiff;\n session.selection.fromOrientedRange(initialRange);\n };\n\n this.getNextLineIndent = function(state, line, tab) {\n return this.$getIndent(line);\n };\n\n this.checkOutdent = function(state, line, input) {\n return false;\n };\n\n this.autoOutdent = function(state, doc, row) {\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n this.createWorker = function(session) {\n return null;\n };\n\n this.createModeDelegates = function (mapping) {\n this.$embeds = [];\n this.$modes = {};\n for (var i in mapping) {\n if (mapping[i]) {\n this.$embeds.push(i);\n this.$modes[i] = new mapping[i]();\n }\n }\n\n var delegations = [\"toggleBlockComment\", \"toggleCommentLines\", \"getNextLineIndent\", \n \"checkOutdent\", \"autoOutdent\", \"transformAction\", \"getCompletions\"];\n\n for (var i = 0; i < delegations.length; i++) {\n (function(scope) {\n var functionName = delegations[i];\n var defaultHandler = scope[functionName];\n scope[delegations[i]] = function() {\n return this.$delegator(functionName, arguments, defaultHandler);\n };\n }(this));\n }\n };\n\n this.$delegator = function(method, args, defaultHandler) {\n var state = args[0];\n if (typeof state != \"string\")\n state = state[0];\n for (var i = 0; i < this.$embeds.length; i++) {\n if (!this.$modes[this.$embeds[i]]) continue;\n\n var split = state.split(this.$embeds[i]);\n if (!split[0] && split[1]) {\n args[0] = split[1];\n var mode = this.$modes[this.$embeds[i]];\n return mode[method].apply(mode, args);\n }\n }\n var ret = defaultHandler.apply(this, args);\n return defaultHandler ? ret : undefined;\n };\n\n this.transformAction = function(state, action, editor, session, param) {\n if (this.$behaviour) {\n var behaviours = this.$behaviour.getBehaviours();\n for (var key in behaviours) {\n if (behaviours[key][action]) {\n var ret = behaviours[key][action].apply(this, arguments);\n if (ret) {\n return ret;\n }\n }\n }\n }\n };\n \n this.getKeywords = function(append) {\n if (!this.completionKeywords) {\n var rules = this.$tokenizer.rules;\n var completionKeywords = [];\n for (var rule in rules) {\n var ruleItr = rules[rule];\n for (var r = 0, l = ruleItr.length; r < l; r++) {\n if (typeof ruleItr[r].token === \"string\") {\n if (/keyword|support|storage/.test(ruleItr[r].token))\n completionKeywords.push(ruleItr[r].regex);\n }\n else if (typeof ruleItr[r].token === \"object\") {\n for (var a = 0, aLength = ruleItr[r].token.length; a < aLength; a++) { \n if (/keyword|support|storage/.test(ruleItr[r].token[a])) {\n var rule = ruleItr[r].regex.match(/\\(.+?\\)/g)[a];\n completionKeywords.push(rule.substr(1, rule.length - 2));\n }\n }\n }\n }\n }\n this.completionKeywords = completionKeywords;\n }\n if (!append)\n return this.$keywordList;\n return completionKeywords.concat(this.$keywordList || []);\n };\n \n this.$createKeywordList = function() {\n if (!this.$highlightRules)\n this.getTokenizer();\n return this.$keywordList = this.$highlightRules.$keywordList || [];\n };\n\n this.getCompletions = function(state, session, pos, prefix) {\n var keywords = this.$keywordList || this.$createKeywordList();\n return keywords.map(function(word) {\n return {\n name: word,\n value: word,\n score: 0,\n meta: \"keyword\"\n };\n });\n };\n\n this.$id = \"ace/mode/text\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nfunction throwDeltaError(delta, errorText){\n console.log(\"Invalid Delta:\", delta);\n throw \"Invalid Delta: \" + errorText;\n}\n\nfunction positionInDocument(docLines, position) {\n return position.row >= 0 && position.row < docLines.length &&\n position.column >= 0 && position.column <= docLines[position.row].length;\n}\n\nfunction validateDelta(docLines, delta) {\n if (delta.action != \"insert\" && delta.action != \"remove\")\n throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n if (!(delta.lines instanceof Array))\n throwDeltaError(delta, \"delta.lines must be an Array\");\n if (!delta.start || !delta.end)\n throwDeltaError(delta, \"delta.start/end must be an present\");\n var start = delta.start;\n if (!positionInDocument(docLines, delta.start))\n throwDeltaError(delta, \"delta.start must be contained in document\");\n var end = delta.end;\n if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n var numRangeRows = end.row - start.row;\n var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n throwDeltaError(delta, \"delta.range must match delta lines\");\n}\n\nexports.applyDelta = function(docLines, delta, doNotValidate) {\n \n var row = delta.start.row;\n var startColumn = delta.start.column;\n var line = docLines[row] || \"\";\n switch (delta.action) {\n case \"insert\":\n var lines = delta.lines;\n if (lines.length === 1) {\n docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n } else {\n var args = [row, 1].concat(delta.lines);\n docLines.splice.apply(docLines, args);\n docLines[row] = line.substring(0, startColumn) + docLines[row];\n docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n }\n break;\n case \"remove\":\n var endColumn = delta.end.column;\n var endRow = delta.end.row;\n if (row === endRow) {\n docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n } else {\n docLines.splice(\n row, endRow - row + 1,\n line.substring(0, startColumn) + docLines[endRow].substring(endColumn)\n );\n }\n break;\n }\n};\n});\n\nace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\n\nvar Anchor = exports.Anchor = function(doc, row, column) {\n this.$onChange = this.onChange.bind(this);\n this.attach(doc);\n \n if (typeof column == \"undefined\")\n this.setPosition(row.row, row.column);\n else\n this.setPosition(row, column);\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.getPosition = function() {\n return this.$clipPositionToDocument(this.row, this.column);\n };\n this.getDocument = function() {\n return this.document;\n };\n this.$insertRight = false;\n this.onChange = function(delta) {\n if (delta.start.row == delta.end.row && delta.start.row != this.row)\n return;\n\n if (delta.start.row > this.row)\n return;\n \n var point = $getTransformedPoint(delta, {row: this.row, column: this.column}, this.$insertRight);\n this.setPosition(point.row, point.column, true);\n };\n \n function $pointsInOrder(point1, point2, equalPointsInOrder) {\n var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n }\n \n function $getTransformedPoint(delta, point, moveIfEqual) {\n var deltaIsInsert = delta.action == \"insert\";\n var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row);\n var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n var deltaStart = delta.start;\n var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n return {\n row: point.row,\n column: point.column\n };\n }\n if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n return {\n row: point.row + deltaRowShift,\n column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n };\n }\n \n return {\n row: deltaStart.row,\n column: deltaStart.column\n };\n }\n this.setPosition = function(row, column, noClip) {\n var pos;\n if (noClip) {\n pos = {\n row: row,\n column: column\n };\n } else {\n pos = this.$clipPositionToDocument(row, column);\n }\n\n if (this.row == pos.row && this.column == pos.column)\n return;\n\n var old = {\n row: this.row,\n column: this.column\n };\n\n this.row = pos.row;\n this.column = pos.column;\n this._signal(\"change\", {\n old: old,\n value: pos\n });\n };\n this.detach = function() {\n this.document.removeEventListener(\"change\", this.$onChange);\n };\n this.attach = function(doc) {\n this.document = doc || this.document;\n this.document.on(\"change\", this.$onChange);\n };\n this.$clipPositionToDocument = function(row, column) {\n var pos = {};\n\n if (row >= this.document.getLength()) {\n pos.row = Math.max(0, this.document.getLength() - 1);\n pos.column = this.document.getLine(pos.row).length;\n }\n else if (row < 0) {\n pos.row = 0;\n pos.column = 0;\n }\n else {\n pos.row = row;\n pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n }\n\n if (column < 0)\n pos.column = 0;\n\n return pos;\n };\n\n}).call(Anchor.prototype);\n\n});\n\nace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar applyDelta = acequire(\"./apply_delta\").applyDelta;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar Range = acequire(\"./range\").Range;\nvar Anchor = acequire(\"./anchor\").Anchor;\n\nvar Document = function(textOrLines) {\n this.$lines = [\"\"];\n if (textOrLines.length === 0) {\n this.$lines = [\"\"];\n } else if (Array.isArray(textOrLines)) {\n this.insertMergedLines({row: 0, column: 0}, textOrLines);\n } else {\n this.insert({row: 0, column:0}, textOrLines);\n }\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.setValue = function(text) {\n var len = this.getLength() - 1;\n this.remove(new Range(0, 0, len, this.getLine(len).length));\n this.insert({row: 0, column: 0}, text);\n };\n this.getValue = function() {\n return this.getAllLines().join(this.getNewLineCharacter());\n };\n this.createAnchor = function(row, column) {\n return new Anchor(this, row, column);\n };\n if (\"aaa\".split(/a/).length === 0) {\n this.$split = function(text) {\n return text.replace(/\\r\\n|\\r/g, \"\\n\").split(\"\\n\");\n };\n } else {\n this.$split = function(text) {\n return text.split(/\\r\\n|\\r|\\n/);\n };\n }\n\n\n this.$detectNewLine = function(text) {\n var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n this.$autoNewLine = match ? match[1] : \"\\n\";\n this._signal(\"changeNewLineMode\");\n };\n this.getNewLineCharacter = function() {\n switch (this.$newLineMode) {\n case \"windows\":\n return \"\\r\\n\";\n case \"unix\":\n return \"\\n\";\n default:\n return this.$autoNewLine || \"\\n\";\n }\n };\n\n this.$autoNewLine = \"\";\n this.$newLineMode = \"auto\";\n this.setNewLineMode = function(newLineMode) {\n if (this.$newLineMode === newLineMode)\n return;\n\n this.$newLineMode = newLineMode;\n this._signal(\"changeNewLineMode\");\n };\n this.getNewLineMode = function() {\n return this.$newLineMode;\n };\n this.isNewLine = function(text) {\n return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n };\n this.getLine = function(row) {\n return this.$lines[row] || \"\";\n };\n this.getLines = function(firstRow, lastRow) {\n return this.$lines.slice(firstRow, lastRow + 1);\n };\n this.getAllLines = function() {\n return this.getLines(0, this.getLength());\n };\n this.getLength = function() {\n return this.$lines.length;\n };\n this.getTextRange = function(range) {\n return this.getLinesForRange(range).join(this.getNewLineCharacter());\n };\n this.getLinesForRange = function(range) {\n var lines;\n if (range.start.row === range.end.row) {\n lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n } else {\n lines = this.getLines(range.start.row, range.end.row);\n lines[0] = (lines[0] || \"\").substring(range.start.column);\n var l = lines.length - 1;\n if (range.end.row - range.start.row == l)\n lines[l] = lines[l].substring(0, range.end.column);\n }\n return lines;\n };\n this.insertLines = function(row, lines) {\n console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n return this.insertFullLines(row, lines);\n };\n this.removeLines = function(firstRow, lastRow) {\n console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n return this.removeFullLines(firstRow, lastRow);\n };\n this.insertNewLine = function(position) {\n console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\");\n return this.insertMergedLines(position, [\"\", \"\"]);\n };\n this.insert = function(position, text) {\n if (this.getLength() <= 1)\n this.$detectNewLine(text);\n \n return this.insertMergedLines(position, this.$split(text));\n };\n this.insertInLine = function(position, text) {\n var start = this.clippedPos(position.row, position.column);\n var end = this.pos(position.row, position.column + text.length);\n \n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: [text]\n }, true);\n \n return this.clonePos(end);\n };\n \n this.clippedPos = function(row, column) {\n var length = this.getLength();\n if (row === undefined) {\n row = length;\n } else if (row < 0) {\n row = 0;\n } else if (row >= length) {\n row = length - 1;\n column = undefined;\n }\n var line = this.getLine(row);\n if (column == undefined)\n column = line.length;\n column = Math.min(Math.max(column, 0), line.length);\n return {row: row, column: column};\n };\n \n this.clonePos = function(pos) {\n return {row: pos.row, column: pos.column};\n };\n \n this.pos = function(row, column) {\n return {row: row, column: column};\n };\n \n this.$clipPosition = function(position) {\n var length = this.getLength();\n if (position.row >= length) {\n position.row = Math.max(0, length - 1);\n position.column = this.getLine(length - 1).length;\n } else {\n position.row = Math.max(0, position.row);\n position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n }\n return position;\n };\n this.insertFullLines = function(row, lines) {\n row = Math.min(Math.max(row, 0), this.getLength());\n var column = 0;\n if (row < this.getLength()) {\n lines = lines.concat([\"\"]);\n column = 0;\n } else {\n lines = [\"\"].concat(lines);\n row--;\n column = this.$lines[row].length;\n }\n this.insertMergedLines({row: row, column: column}, lines);\n }; \n this.insertMergedLines = function(position, lines) {\n var start = this.clippedPos(position.row, position.column);\n var end = {\n row: start.row + lines.length - 1,\n column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n };\n \n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: lines\n });\n \n return this.clonePos(end);\n };\n this.remove = function(range) {\n var start = this.clippedPos(range.start.row, range.start.column);\n var end = this.clippedPos(range.end.row, range.end.column);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({start: start, end: end})\n });\n return this.clonePos(start);\n };\n this.removeInLine = function(row, startColumn, endColumn) {\n var start = this.clippedPos(row, startColumn);\n var end = this.clippedPos(row, endColumn);\n \n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({start: start, end: end})\n }, true);\n \n return this.clonePos(start);\n };\n this.removeFullLines = function(firstRow, lastRow) {\n firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n lastRow = Math.min(Math.max(0, lastRow ), this.getLength() - 1);\n var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n var deleteLastNewLine = lastRow < this.getLength() - 1;\n var startRow = ( deleteFirstNewLine ? firstRow - 1 : firstRow );\n var startCol = ( deleteFirstNewLine ? this.getLine(startRow).length : 0 );\n var endRow = ( deleteLastNewLine ? lastRow + 1 : lastRow );\n var endCol = ( deleteLastNewLine ? 0 : this.getLine(endRow).length ); \n var range = new Range(startRow, startCol, endRow, endCol);\n var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n \n this.applyDelta({\n start: range.start,\n end: range.end,\n action: \"remove\",\n lines: this.getLinesForRange(range)\n });\n return deletedLines;\n };\n this.removeNewLine = function(row) {\n if (row < this.getLength() - 1 && row >= 0) {\n this.applyDelta({\n start: this.pos(row, this.getLine(row).length),\n end: this.pos(row + 1, 0),\n action: \"remove\",\n lines: [\"\", \"\"]\n });\n }\n };\n this.replace = function(range, text) {\n if (!(range instanceof Range))\n range = Range.fromPoints(range.start, range.end);\n if (text.length === 0 && range.isEmpty())\n return range.start;\n if (text == this.getTextRange(range))\n return range.end;\n\n this.remove(range);\n var end;\n if (text) {\n end = this.insert(range.start, text);\n }\n else {\n end = range.start;\n }\n \n return end;\n };\n this.applyDeltas = function(deltas) {\n for (var i=0; i=0; i--) {\n this.revertDelta(deltas[i]);\n }\n };\n this.applyDelta = function(delta, doNotValidate) {\n var isInsert = delta.action == \"insert\";\n if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n : !Range.comparePoints(delta.start, delta.end)) {\n return;\n }\n \n if (isInsert && delta.lines.length > 20000)\n this.$splitAndapplyLargeDelta(delta, 20000);\n applyDelta(this.$lines, delta, doNotValidate);\n this._signal(\"change\", delta);\n };\n \n this.$splitAndapplyLargeDelta = function(delta, MAX) {\n var lines = delta.lines;\n var l = lines.length;\n var row = delta.start.row; \n var column = delta.start.column;\n var from = 0, to = 0;\n do {\n from = to;\n to += MAX - 1;\n var chunk = lines.slice(from, to);\n if (to > l) {\n delta.lines = chunk;\n delta.start.row = row + from;\n delta.start.column = column;\n break;\n }\n chunk.push(\"\");\n this.applyDelta({\n start: this.pos(row + from, column),\n end: this.pos(row + to, column = 0),\n action: delta.action,\n lines: chunk\n }, true);\n } while(true);\n };\n this.revertDelta = function(delta) {\n this.applyDelta({\n start: this.clonePos(delta.start),\n end: this.clonePos(delta.end),\n action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n lines: delta.lines.slice()\n });\n };\n this.indexToPosition = function(index, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n for (var i = startRow || 0, l = lines.length; i < l; i++) {\n index -= lines[i].length + newlineLength;\n if (index < 0)\n return {row: i, column: index + lines[i].length + newlineLength};\n }\n return {row: l-1, column: lines[l-1].length};\n };\n this.positionToIndex = function(pos, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n var index = 0;\n var row = Math.min(pos.row, lines.length);\n for (var i = startRow || 0; i < row; ++i)\n index += lines[i].length + newlineLength;\n\n return index + pos.column;\n };\n\n}).call(Document.prototype);\n\nexports.Document = Document;\n});\n\nace.define(\"ace/background_tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\n\nvar BackgroundTokenizer = function(tokenizer, editor) {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.tokenizer = tokenizer;\n\n var self = this;\n\n this.$worker = function() {\n if (!self.running) { return; }\n\n var workerStart = new Date();\n var currentLine = self.currentLine;\n var endLine = -1;\n var doc = self.doc;\n\n var startLine = currentLine;\n while (self.lines[currentLine])\n currentLine++;\n \n var len = doc.getLength();\n var processedLines = 0;\n self.running = false;\n while (currentLine < len) {\n self.$tokenizeRow(currentLine);\n endLine = currentLine;\n do {\n currentLine++;\n } while (self.lines[currentLine]);\n processedLines ++;\n if ((processedLines % 5 === 0) && (new Date() - workerStart) > 20) { \n self.running = setTimeout(self.$worker, 20);\n break;\n }\n }\n self.currentLine = currentLine;\n \n if (endLine == -1)\n endLine = currentLine;\n\n if (startLine <= endLine)\n self.fireUpdateEvent(startLine, endLine);\n };\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n this.setTokenizer = function(tokenizer) {\n this.tokenizer = tokenizer;\n this.lines = [];\n this.states = [];\n\n this.start(0);\n };\n this.setDocument = function(doc) {\n this.doc = doc;\n this.lines = [];\n this.states = [];\n\n this.stop();\n };\n this.fireUpdateEvent = function(firstRow, lastRow) {\n var data = {\n first: firstRow,\n last: lastRow\n };\n this._signal(\"update\", {data: data});\n };\n this.start = function(startRow) {\n this.currentLine = Math.min(startRow || 0, this.currentLine, this.doc.getLength());\n this.lines.splice(this.currentLine, this.lines.length);\n this.states.splice(this.currentLine, this.states.length);\n\n this.stop();\n this.running = setTimeout(this.$worker, 700);\n };\n \n this.scheduleStart = function() {\n if (!this.running)\n this.running = setTimeout(this.$worker, 700);\n };\n\n this.$updateOnChange = function(delta) {\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n\n if (len === 0) {\n this.lines[startRow] = null;\n } else if (delta.action == \"remove\") {\n this.lines.splice(startRow, len + 1, null);\n this.states.splice(startRow, len + 1, null);\n } else {\n var args = Array(len + 1);\n args.unshift(startRow, 1);\n this.lines.splice.apply(this.lines, args);\n this.states.splice.apply(this.states, args);\n }\n\n this.currentLine = Math.min(startRow, this.currentLine, this.doc.getLength());\n\n this.stop();\n };\n this.stop = function() {\n if (this.running)\n clearTimeout(this.running);\n this.running = false;\n };\n this.getTokens = function(row) {\n return this.lines[row] || this.$tokenizeRow(row);\n };\n this.getState = function(row) {\n if (this.currentLine == row)\n this.$tokenizeRow(row);\n return this.states[row] || \"start\";\n };\n\n this.$tokenizeRow = function(row) {\n var line = this.doc.getLine(row);\n var state = this.states[row - 1];\n\n var data = this.tokenizer.getLineTokens(line, state, row);\n\n if (this.states[row] + \"\" !== data.state + \"\") {\n this.states[row] = data.state;\n this.lines[row + 1] = null;\n if (this.currentLine > row + 1)\n this.currentLine = row + 1;\n } else if (this.currentLine == row) {\n this.currentLine = row + 1;\n }\n\n return this.lines[row] = data.tokens;\n };\n\n}).call(BackgroundTokenizer.prototype);\n\nexports.BackgroundTokenizer = BackgroundTokenizer;\n});\n\nace.define(\"ace/search_highlight\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"./lib/lang\");\nvar oop = acequire(\"./lib/oop\");\nvar Range = acequire(\"./range\").Range;\n\nvar SearchHighlight = function(regExp, clazz, type) {\n this.setRegexp(regExp);\n this.clazz = clazz;\n this.type = type || \"text\";\n};\n\n(function() {\n this.MAX_RANGES = 500;\n \n this.setRegexp = function(regExp) {\n if (this.regExp+\"\" == regExp+\"\")\n return;\n this.regExp = regExp;\n this.cache = [];\n };\n\n this.update = function(html, markerLayer, session, config) {\n if (!this.regExp)\n return;\n var start = config.firstRow, end = config.lastRow;\n\n for (var i = start; i <= end; i++) {\n var ranges = this.cache[i];\n if (ranges == null) {\n ranges = lang.getMatchOffsets(session.getLine(i), this.regExp);\n if (ranges.length > this.MAX_RANGES)\n ranges = ranges.slice(0, this.MAX_RANGES);\n ranges = ranges.map(function(match) {\n return new Range(i, match.offset, i, match.offset + match.length);\n });\n this.cache[i] = ranges.length ? ranges : \"\";\n }\n\n for (var j = ranges.length; j --; ) {\n markerLayer.drawSingleLineMarker(\n html, ranges[j].toScreenRange(session), this.clazz, config);\n }\n }\n };\n\n}).call(SearchHighlight.prototype);\n\nexports.SearchHighlight = SearchHighlight;\n});\n\nace.define(\"ace/edit_session/fold_line\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nfunction FoldLine(foldData, folds) {\n this.foldData = foldData;\n if (Array.isArray(folds)) {\n this.folds = folds;\n } else {\n folds = this.folds = [ folds ];\n }\n\n var last = folds[folds.length - 1];\n this.range = new Range(folds[0].start.row, folds[0].start.column,\n last.end.row, last.end.column);\n this.start = this.range.start;\n this.end = this.range.end;\n\n this.folds.forEach(function(fold) {\n fold.setFoldLine(this);\n }, this);\n}\n\n(function() {\n this.shiftRow = function(shift) {\n this.start.row += shift;\n this.end.row += shift;\n this.folds.forEach(function(fold) {\n fold.start.row += shift;\n fold.end.row += shift;\n });\n };\n\n this.addFold = function(fold) {\n if (fold.sameRow) {\n if (fold.start.row < this.startRow || fold.endRow > this.endRow) {\n throw new Error(\"Can't add a fold to this FoldLine as it has no connection\");\n }\n this.folds.push(fold);\n this.folds.sort(function(a, b) {\n return -a.range.compareEnd(b.start.row, b.start.column);\n });\n if (this.range.compareEnd(fold.start.row, fold.start.column) > 0) {\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n } else if (this.range.compareStart(fold.end.row, fold.end.column) < 0) {\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n } else if (fold.start.row == this.end.row) {\n this.folds.push(fold);\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n } else if (fold.end.row == this.start.row) {\n this.folds.unshift(fold);\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n } else {\n throw new Error(\"Trying to add fold to FoldRow that doesn't have a matching row\");\n }\n fold.foldLine = this;\n };\n\n this.containsRow = function(row) {\n return row >= this.start.row && row <= this.end.row;\n };\n\n this.walk = function(callback, endRow, endColumn) {\n var lastEnd = 0,\n folds = this.folds,\n fold,\n cmp, stop, isNewRow = true;\n\n if (endRow == null) {\n endRow = this.end.row;\n endColumn = this.end.column;\n }\n\n for (var i = 0; i < folds.length; i++) {\n fold = folds[i];\n\n cmp = fold.range.compareStart(endRow, endColumn);\n if (cmp == -1) {\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n return;\n }\n\n stop = callback(null, fold.start.row, fold.start.column, lastEnd, isNewRow);\n stop = !stop && callback(fold.placeholder, fold.start.row, fold.start.column, lastEnd);\n if (stop || cmp === 0) {\n return;\n }\n isNewRow = !fold.sameRow;\n lastEnd = fold.end.column;\n }\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n };\n\n this.getNextFoldTo = function(row, column) {\n var fold, cmp;\n for (var i = 0; i < this.folds.length; i++) {\n fold = this.folds[i];\n cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n return {\n fold: fold,\n kind: \"after\"\n };\n } else if (cmp === 0) {\n return {\n fold: fold,\n kind: \"inside\"\n };\n }\n }\n return null;\n };\n\n this.addRemoveChars = function(row, column, len) {\n var ret = this.getNextFoldTo(row, column),\n fold, folds;\n if (ret) {\n fold = ret.fold;\n if (ret.kind == \"inside\"\n && fold.start.column != column\n && fold.start.row != row)\n {\n window.console && window.console.log(row, column, fold);\n } else if (fold.start.row == row) {\n folds = this.folds;\n var i = folds.indexOf(fold);\n if (i === 0) {\n this.start.column += len;\n }\n for (i; i < folds.length; i++) {\n fold = folds[i];\n fold.start.column += len;\n if (!fold.sameRow) {\n return;\n }\n fold.end.column += len;\n }\n this.end.column += len;\n }\n }\n };\n\n this.split = function(row, column) {\n var pos = this.getNextFoldTo(row, column);\n \n if (!pos || pos.kind == \"inside\")\n return null;\n \n var fold = pos.fold;\n var folds = this.folds;\n var foldData = this.foldData;\n \n var i = folds.indexOf(fold);\n var foldBefore = folds[i - 1];\n this.end.row = foldBefore.end.row;\n this.end.column = foldBefore.end.column;\n folds = folds.splice(i, folds.length - i);\n\n var newFoldLine = new FoldLine(foldData, folds);\n foldData.splice(foldData.indexOf(this) + 1, 0, newFoldLine);\n return newFoldLine;\n };\n\n this.merge = function(foldLineNext) {\n var folds = foldLineNext.folds;\n for (var i = 0; i < folds.length; i++) {\n this.addFold(folds[i]);\n }\n var foldData = this.foldData;\n foldData.splice(foldData.indexOf(foldLineNext), 1);\n };\n\n this.toString = function() {\n var ret = [this.range.toString() + \": [\" ];\n\n this.folds.forEach(function(fold) {\n ret.push(\" \" + fold.toString());\n });\n ret.push(\"]\");\n return ret.join(\"\\n\");\n };\n\n this.idxToPosition = function(idx) {\n var lastFoldEndColumn = 0;\n\n for (var i = 0; i < this.folds.length; i++) {\n var fold = this.folds[i];\n\n idx -= fold.start.column - lastFoldEndColumn;\n if (idx < 0) {\n return {\n row: fold.start.row,\n column: fold.start.column + idx\n };\n }\n\n idx -= fold.placeholder.length;\n if (idx < 0) {\n return fold.start;\n }\n\n lastFoldEndColumn = fold.end.column;\n }\n\n return {\n row: this.end.row,\n column: this.end.column + idx\n };\n };\n}).call(FoldLine.prototype);\n\nexports.FoldLine = FoldLine;\n});\n\nace.define(\"ace/range_list\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\nvar Range = acequire(\"./range\").Range;\nvar comparePoints = Range.comparePoints;\n\nvar RangeList = function() {\n this.ranges = [];\n};\n\n(function() {\n this.comparePoints = comparePoints;\n\n this.pointIndex = function(pos, excludeEdges, startIndex) {\n var list = this.ranges;\n\n for (var i = startIndex || 0; i < list.length; i++) {\n var range = list[i];\n var cmpEnd = comparePoints(pos, range.end);\n if (cmpEnd > 0)\n continue;\n var cmpStart = comparePoints(pos, range.start);\n if (cmpEnd === 0)\n return excludeEdges && cmpStart !== 0 ? -i-2 : i;\n if (cmpStart > 0 || (cmpStart === 0 && !excludeEdges))\n return i;\n\n return -i-1;\n }\n return -i - 1;\n };\n\n this.add = function(range) {\n var excludeEdges = !range.isEmpty();\n var startIndex = this.pointIndex(range.start, excludeEdges);\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n\n var endIndex = this.pointIndex(range.end, excludeEdges, startIndex);\n\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n else\n endIndex++;\n return this.ranges.splice(startIndex, endIndex - startIndex, range);\n };\n\n this.addList = function(list) {\n var removed = [];\n for (var i = list.length; i--; ) {\n removed.push.apply(removed, this.add(list[i]));\n }\n return removed;\n };\n\n this.substractPoint = function(pos) {\n var i = this.pointIndex(pos);\n\n if (i >= 0)\n return this.ranges.splice(i, 1);\n };\n this.merge = function() {\n var removed = [];\n var list = this.ranges;\n \n list = list.sort(function(a, b) {\n return comparePoints(a.start, b.start);\n });\n \n var next = list[0], range;\n for (var i = 1; i < list.length; i++) {\n range = next;\n next = list[i];\n var cmp = comparePoints(range.end, next.start);\n if (cmp < 0)\n continue;\n\n if (cmp == 0 && !range.isEmpty() && !next.isEmpty())\n continue;\n\n if (comparePoints(range.end, next.end) < 0) {\n range.end.row = next.end.row;\n range.end.column = next.end.column;\n }\n\n list.splice(i, 1);\n removed.push(next);\n next = range;\n i--;\n }\n \n this.ranges = list;\n\n return removed;\n };\n\n this.contains = function(row, column) {\n return this.pointIndex({row: row, column: column}) >= 0;\n };\n\n this.containsPoint = function(pos) {\n return this.pointIndex(pos) >= 0;\n };\n\n this.rangeAtPoint = function(pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges[i];\n };\n\n\n this.clipRows = function(startRow, endRow) {\n var list = this.ranges;\n if (list[0].start.row > endRow || list[list.length - 1].start.row < startRow)\n return [];\n\n var startIndex = this.pointIndex({row: startRow, column: 0});\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex({row: endRow, column: 0}, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n\n var clipped = [];\n for (var i = startIndex; i < endIndex; i++) {\n clipped.push(list[i]);\n }\n return clipped;\n };\n\n this.removeAll = function() {\n return this.ranges.splice(0, this.ranges.length);\n };\n\n this.attach = function(session) {\n if (this.session)\n this.detach();\n\n this.session = session;\n this.onChange = this.$onChange.bind(this);\n\n this.session.on('change', this.onChange);\n };\n\n this.detach = function() {\n if (!this.session)\n return;\n this.session.removeListener('change', this.onChange);\n this.session = null;\n };\n\n this.$onChange = function(delta) {\n if (delta.action == \"insert\"){\n var start = delta.start;\n var end = delta.end;\n } else {\n var end = delta.start;\n var start = delta.end;\n }\n var startRow = start.row;\n var endRow = end.row;\n var lineDif = endRow - startRow;\n\n var colDiff = -start.column + end.column;\n var ranges = this.ranges;\n\n for (var i = 0, n = ranges.length; i < n; i++) {\n var r = ranges[i];\n if (r.end.row < startRow)\n continue;\n if (r.start.row > startRow)\n break;\n\n if (r.start.row == startRow && r.start.column >= start.column ) {\n if (r.start.column == start.column && this.$insertRight) {\n } else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n if (r.end.row == startRow && r.end.column >= start.column) {\n if (r.end.column == start.column && this.$insertRight) {\n continue;\n }\n if (r.end.column == start.column && colDiff > 0 && i < n - 1) { \n if (r.end.column > r.start.column && r.end.column == ranges[i+1].start.column)\n r.end.column -= colDiff;\n }\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n\n if (lineDif != 0 && i < n) {\n for (; i < n; i++) {\n var r = ranges[i];\n r.start.row += lineDif;\n r.end.row += lineDif;\n }\n }\n };\n\n}).call(RangeList.prototype);\n\nexports.RangeList = RangeList;\n});\n\nace.define(\"ace/edit_session/fold\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/range_list\",\"ace/lib/oop\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nvar RangeList = acequire(\"../range_list\").RangeList;\nvar oop = acequire(\"../lib/oop\");\nvar Fold = exports.Fold = function(range, placeholder) {\n this.foldLine = null;\n this.placeholder = placeholder;\n this.range = range;\n this.start = range.start;\n this.end = range.end;\n\n this.sameRow = range.start.row == range.end.row;\n this.subFolds = this.ranges = [];\n};\n\noop.inherits(Fold, RangeList);\n\n(function() {\n\n this.toString = function() {\n return '\"' + this.placeholder + '\" ' + this.range.toString();\n };\n\n this.setFoldLine = function(foldLine) {\n this.foldLine = foldLine;\n this.subFolds.forEach(function(fold) {\n fold.setFoldLine(foldLine);\n });\n };\n\n this.clone = function() {\n var range = this.range.clone();\n var fold = new Fold(range, this.placeholder);\n this.subFolds.forEach(function(subFold) {\n fold.subFolds.push(subFold.clone());\n });\n fold.collapseChildren = this.collapseChildren;\n return fold;\n };\n\n this.addSubFold = function(fold) {\n if (this.range.isEqual(fold))\n return;\n\n if (!this.range.containsRange(fold))\n throw new Error(\"A fold can't intersect already existing fold\" + fold.range + this.range);\n consumeRange(fold, this.start);\n\n var row = fold.start.row, column = fold.start.column;\n for (var i = 0, cmp = -1; i < this.subFolds.length; i++) {\n cmp = this.subFolds[i].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n var afterStart = this.subFolds[i];\n\n if (cmp == 0)\n return afterStart.addSubFold(fold);\n var row = fold.range.end.row, column = fold.range.end.column;\n for (var j = i, cmp = -1; j < this.subFolds.length; j++) {\n cmp = this.subFolds[j].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n var afterEnd = this.subFolds[j];\n\n if (cmp == 0)\n throw new Error(\"A fold can't intersect already existing fold\" + fold.range + this.range);\n\n var consumedFolds = this.subFolds.splice(i, j - i, fold);\n fold.setFoldLine(this.foldLine);\n\n return fold;\n };\n \n this.restoreRange = function(range) {\n return restoreRange(range, this.start);\n };\n\n}).call(Fold.prototype);\n\nfunction consumePoint(point, anchor) {\n point.row -= anchor.row;\n if (point.row == 0)\n point.column -= anchor.column;\n}\nfunction consumeRange(range, anchor) {\n consumePoint(range.start, anchor);\n consumePoint(range.end, anchor);\n}\nfunction restorePoint(point, anchor) {\n if (point.row == 0)\n point.column += anchor.column;\n point.row += anchor.row;\n}\nfunction restoreRange(range, anchor) {\n restorePoint(range.start, anchor);\n restorePoint(range.end, anchor);\n}\n\n});\n\nace.define(\"ace/edit_session/folding\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/edit_session/fold_line\",\"ace/edit_session/fold\",\"ace/token_iterator\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nvar FoldLine = acequire(\"./fold_line\").FoldLine;\nvar Fold = acequire(\"./fold\").Fold;\nvar TokenIterator = acequire(\"../token_iterator\").TokenIterator;\n\nfunction Folding() {\n this.getFoldAt = function(row, column, side) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine)\n return null;\n\n var folds = foldLine.folds;\n for (var i = 0; i < folds.length; i++) {\n var fold = folds[i];\n if (fold.range.contains(row, column)) {\n if (side == 1 && fold.range.isEnd(row, column)) {\n continue;\n } else if (side == -1 && fold.range.isStart(row, column)) {\n continue;\n }\n return fold;\n }\n }\n };\n this.getFoldsInRange = function(range) {\n var start = range.start;\n var end = range.end;\n var foldLines = this.$foldData;\n var foundFolds = [];\n\n start.column += 1;\n end.column -= 1;\n\n for (var i = 0; i < foldLines.length; i++) {\n var cmp = foldLines[i].range.compareRange(range);\n if (cmp == 2) {\n continue;\n }\n else if (cmp == -2) {\n break;\n }\n\n var folds = foldLines[i].folds;\n for (var j = 0; j < folds.length; j++) {\n var fold = folds[j];\n cmp = fold.range.compareRange(range);\n if (cmp == -2) {\n break;\n } else if (cmp == 2) {\n continue;\n } else\n if (cmp == 42) {\n break;\n }\n foundFolds.push(fold);\n }\n }\n start.column -= 1;\n end.column += 1;\n\n return foundFolds;\n };\n\n this.getFoldsInRangeList = function(ranges) {\n if (Array.isArray(ranges)) {\n var folds = [];\n ranges.forEach(function(range) {\n folds = folds.concat(this.getFoldsInRange(range));\n }, this);\n } else {\n var folds = this.getFoldsInRange(ranges);\n }\n return folds;\n };\n this.getAllFolds = function() {\n var folds = [];\n var foldLines = this.$foldData;\n \n for (var i = 0; i < foldLines.length; i++)\n for (var j = 0; j < foldLines[i].folds.length; j++)\n folds.push(foldLines[i].folds[j]);\n\n return folds;\n };\n this.getFoldStringAt = function(row, column, trim, foldLine) {\n foldLine = foldLine || this.getFoldLine(row);\n if (!foldLine)\n return null;\n\n var lastFold = {\n end: { column: 0 }\n };\n var str, fold;\n for (var i = 0; i < foldLine.folds.length; i++) {\n fold = foldLine.folds[i];\n var cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n str = this\n .getLine(fold.start.row)\n .substring(lastFold.end.column, fold.start.column);\n break;\n }\n else if (cmp === 0) {\n return null;\n }\n lastFold = fold;\n }\n if (!str)\n str = this.getLine(fold.start.row).substring(lastFold.end.column);\n\n if (trim == -1)\n return str.substring(0, column - lastFold.end.column);\n else if (trim == 1)\n return str.substring(column - lastFold.end.column);\n else\n return str;\n };\n\n this.getFoldLine = function(docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.start.row <= docRow && foldLine.end.row >= docRow) {\n return foldLine;\n } else if (foldLine.end.row > docRow) {\n return null;\n }\n }\n return null;\n };\n this.getNextFoldLine = function(docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.end.row >= docRow) {\n return foldLine;\n }\n }\n return null;\n };\n\n this.getFoldedRowCount = function(first, last) {\n var foldData = this.$foldData, rowCount = last-first+1;\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i],\n end = foldLine.end.row,\n start = foldLine.start.row;\n if (end >= last) {\n if (start < last) {\n if (start >= first)\n rowCount -= last-start;\n else\n rowCount = 0; // in one fold\n }\n break;\n } else if (end >= first){\n if (start >= first) // fold inside range\n rowCount -= end-start;\n else\n rowCount -= end-first+1;\n }\n }\n return rowCount;\n };\n\n this.$addFoldLine = function(foldLine) {\n this.$foldData.push(foldLine);\n this.$foldData.sort(function(a, b) {\n return a.start.row - b.start.row;\n });\n return foldLine;\n };\n this.addFold = function(placeholder, range) {\n var foldData = this.$foldData;\n var added = false;\n var fold;\n \n if (placeholder instanceof Fold)\n fold = placeholder;\n else {\n fold = new Fold(range, placeholder);\n fold.collapseChildren = range.collapseChildren;\n }\n this.$clipRangeToDocument(fold.range);\n\n var startRow = fold.start.row;\n var startColumn = fold.start.column;\n var endRow = fold.end.row;\n var endColumn = fold.end.column;\n if (!(startRow < endRow || \n startRow == endRow && startColumn <= endColumn - 2))\n throw new Error(\"The range has to be at least 2 characters width\");\n\n var startFold = this.getFoldAt(startRow, startColumn, 1);\n var endFold = this.getFoldAt(endRow, endColumn, -1);\n if (startFold && endFold == startFold)\n return startFold.addSubFold(fold);\n\n if (startFold && !startFold.range.isStart(startRow, startColumn))\n this.removeFold(startFold);\n \n if (endFold && !endFold.range.isEnd(endRow, endColumn))\n this.removeFold(endFold);\n var folds = this.getFoldsInRange(fold.range);\n if (folds.length > 0) {\n this.removeFolds(folds);\n folds.forEach(function(subFold) {\n fold.addSubFold(subFold);\n });\n }\n\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (endRow == foldLine.start.row) {\n foldLine.addFold(fold);\n added = true;\n break;\n } else if (startRow == foldLine.end.row) {\n foldLine.addFold(fold);\n added = true;\n if (!fold.sameRow) {\n var foldLineNext = foldData[i + 1];\n if (foldLineNext && foldLineNext.start.row == endRow) {\n foldLine.merge(foldLineNext);\n break;\n }\n }\n break;\n } else if (endRow <= foldLine.start.row) {\n break;\n }\n }\n\n if (!added)\n foldLine = this.$addFoldLine(new FoldLine(this.$foldData, fold));\n\n if (this.$useWrapMode)\n this.$updateWrapData(foldLine.start.row, foldLine.start.row);\n else\n this.$updateRowLengthCache(foldLine.start.row, foldLine.start.row);\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"add\" });\n\n return fold;\n };\n\n this.addFolds = function(folds) {\n folds.forEach(function(fold) {\n this.addFold(fold);\n }, this);\n };\n\n this.removeFold = function(fold) {\n var foldLine = fold.foldLine;\n var startRow = foldLine.start.row;\n var endRow = foldLine.end.row;\n\n var foldLines = this.$foldData;\n var folds = foldLine.folds;\n if (folds.length == 1) {\n foldLines.splice(foldLines.indexOf(foldLine), 1);\n } else\n if (foldLine.range.isEnd(fold.end.row, fold.end.column)) {\n folds.pop();\n foldLine.end.row = folds[folds.length - 1].end.row;\n foldLine.end.column = folds[folds.length - 1].end.column;\n } else\n if (foldLine.range.isStart(fold.start.row, fold.start.column)) {\n folds.shift();\n foldLine.start.row = folds[0].start.row;\n foldLine.start.column = folds[0].start.column;\n } else\n if (fold.sameRow) {\n folds.splice(folds.indexOf(fold), 1);\n } else\n {\n var newFoldLine = foldLine.split(fold.start.row, fold.start.column);\n folds = newFoldLine.folds;\n folds.shift();\n newFoldLine.start.row = folds[0].start.row;\n newFoldLine.start.column = folds[0].start.column;\n }\n\n if (!this.$updating) {\n if (this.$useWrapMode)\n this.$updateWrapData(startRow, endRow);\n else\n this.$updateRowLengthCache(startRow, endRow);\n }\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"remove\" });\n };\n\n this.removeFolds = function(folds) {\n var cloneFolds = [];\n for (var i = 0; i < folds.length; i++) {\n cloneFolds.push(folds[i]);\n }\n\n cloneFolds.forEach(function(fold) {\n this.removeFold(fold);\n }, this);\n this.$modified = true;\n };\n\n this.expandFold = function(fold) {\n this.removeFold(fold);\n fold.subFolds.forEach(function(subFold) {\n fold.restoreRange(subFold);\n this.addFold(subFold);\n }, this);\n if (fold.collapseChildren > 0) {\n this.foldAll(fold.start.row+1, fold.end.row, fold.collapseChildren-1);\n }\n fold.subFolds = [];\n };\n\n this.expandFolds = function(folds) {\n folds.forEach(function(fold) {\n this.expandFold(fold);\n }, this);\n };\n\n this.unfold = function(location, expandInner) {\n var range, folds;\n if (location == null) {\n range = new Range(0, 0, this.getLength(), 0);\n expandInner = true;\n } else if (typeof location == \"number\")\n range = new Range(location, 0, location, this.getLine(location).length);\n else if (\"row\" in location)\n range = Range.fromPoints(location, location);\n else\n range = location;\n \n folds = this.getFoldsInRangeList(range);\n if (expandInner) {\n this.removeFolds(folds);\n } else {\n var subFolds = folds;\n while (subFolds.length) {\n this.expandFolds(subFolds);\n subFolds = this.getFoldsInRangeList(range);\n }\n }\n if (folds.length)\n return folds;\n };\n this.isRowFolded = function(docRow, startFoldRow) {\n return !!this.getFoldLine(docRow, startFoldRow);\n };\n\n this.getRowFoldEnd = function(docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.end.row : docRow;\n };\n\n this.getRowFoldStart = function(docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.start.row : docRow;\n };\n\n this.getFoldDisplayLine = function(foldLine, endRow, endColumn, startRow, startColumn) {\n if (startRow == null)\n startRow = foldLine.start.row;\n if (startColumn == null)\n startColumn = 0;\n if (endRow == null)\n endRow = foldLine.end.row;\n if (endColumn == null)\n endColumn = this.getLine(endRow).length;\n var doc = this.doc;\n var textLine = \"\";\n\n foldLine.walk(function(placeholder, row, column, lastColumn) {\n if (row < startRow)\n return;\n if (row == startRow) {\n if (column < startColumn)\n return;\n lastColumn = Math.max(startColumn, lastColumn);\n }\n\n if (placeholder != null) {\n textLine += placeholder;\n } else {\n textLine += doc.getLine(row).substring(lastColumn, column);\n }\n }, endRow, endColumn);\n return textLine;\n };\n\n this.getDisplayLine = function(row, endColumn, startRow, startColumn) {\n var foldLine = this.getFoldLine(row);\n\n if (!foldLine) {\n var line;\n line = this.doc.getLine(row);\n return line.substring(startColumn || 0, endColumn || line.length);\n } else {\n return this.getFoldDisplayLine(\n foldLine, row, endColumn, startRow, startColumn);\n }\n };\n\n this.$cloneFoldData = function() {\n var fd = [];\n fd = this.$foldData.map(function(foldLine) {\n var folds = foldLine.folds.map(function(fold) {\n return fold.clone();\n });\n return new FoldLine(fd, folds);\n });\n\n return fd;\n };\n\n this.toggleFold = function(tryToUnfold) {\n var selection = this.selection;\n var range = selection.getRange();\n var fold;\n var bracketPos;\n\n if (range.isEmpty()) {\n var cursor = range.start;\n fold = this.getFoldAt(cursor.row, cursor.column);\n\n if (fold) {\n this.expandFold(fold);\n return;\n } else if (bracketPos = this.findMatchingBracket(cursor)) {\n if (range.comparePoint(bracketPos) == 1) {\n range.end = bracketPos;\n } else {\n range.start = bracketPos;\n range.start.column++;\n range.end.column--;\n }\n } else if (bracketPos = this.findMatchingBracket({row: cursor.row, column: cursor.column + 1})) {\n if (range.comparePoint(bracketPos) == 1)\n range.end = bracketPos;\n else\n range.start = bracketPos;\n\n range.start.column++;\n } else {\n range = this.getCommentFoldRange(cursor.row, cursor.column) || range;\n }\n } else {\n var folds = this.getFoldsInRange(range);\n if (tryToUnfold && folds.length) {\n this.expandFolds(folds);\n return;\n } else if (folds.length == 1 ) {\n fold = folds[0];\n }\n }\n\n if (!fold)\n fold = this.getFoldAt(range.start.row, range.start.column);\n\n if (fold && fold.range.toString() == range.toString()) {\n this.expandFold(fold);\n return;\n }\n\n var placeholder = \"...\";\n if (!range.isMultiLine()) {\n placeholder = this.getTextRange(range);\n if (placeholder.length < 4)\n return;\n placeholder = placeholder.trim().substring(0, 2) + \"..\";\n }\n\n this.addFold(placeholder, range);\n };\n\n this.getCommentFoldRange = function(row, column, dir) {\n var iterator = new TokenIterator(this, row, column);\n var token = iterator.getCurrentToken();\n var type = token.type;\n if (token && /^comment|string/.test(type)) {\n type = type.match(/comment|string/)[0];\n if (type == \"comment\")\n type += \"|doc-start\";\n var re = new RegExp(type);\n var range = new Range();\n if (dir != 1) {\n do {\n token = iterator.stepBackward();\n } while (token && re.test(token.type));\n iterator.stepForward();\n }\n \n range.start.row = iterator.getCurrentTokenRow();\n range.start.column = iterator.getCurrentTokenColumn() + 2;\n\n iterator = new TokenIterator(this, row, column);\n \n if (dir != -1) {\n var lastRow = -1;\n do {\n token = iterator.stepForward();\n if (lastRow == -1) {\n var state = this.getState(iterator.$row);\n if (!re.test(state))\n lastRow = iterator.$row;\n } else if (iterator.$row > lastRow) {\n break;\n }\n } while (token && re.test(token.type));\n token = iterator.stepBackward();\n } else\n token = iterator.getCurrentToken();\n\n range.end.row = iterator.getCurrentTokenRow();\n range.end.column = iterator.getCurrentTokenColumn() + token.value.length - 2;\n return range;\n }\n };\n\n this.foldAll = function(startRow, endRow, depth) {\n if (depth == undefined)\n depth = 100000; // JSON.stringify doesn't hanle Infinity\n var foldWidgets = this.foldWidgets;\n if (!foldWidgets)\n return; // mode doesn't support folding\n endRow = endRow || this.getLength();\n startRow = startRow || 0;\n for (var row = startRow; row < endRow; row++) {\n if (foldWidgets[row] == null)\n foldWidgets[row] = this.getFoldWidget(row);\n if (foldWidgets[row] != \"start\")\n continue;\n\n var range = this.getFoldWidgetRange(row);\n if (range && range.isMultiLine()\n && range.end.row <= endRow\n && range.start.row >= startRow\n ) {\n row = range.end.row;\n try {\n var fold = this.addFold(\"...\", range);\n if (fold)\n fold.collapseChildren = depth;\n } catch(e) {}\n }\n }\n };\n this.$foldStyles = {\n \"manual\": 1,\n \"markbegin\": 1,\n \"markbeginend\": 1\n };\n this.$foldStyle = \"markbegin\";\n this.setFoldStyle = function(style) {\n if (!this.$foldStyles[style])\n throw new Error(\"invalid fold style: \" + style + \"[\" + Object.keys(this.$foldStyles).join(\", \") + \"]\");\n \n if (this.$foldStyle == style)\n return;\n\n this.$foldStyle = style;\n \n if (style == \"manual\")\n this.unfold();\n var mode = this.$foldMode;\n this.$setFolding(null);\n this.$setFolding(mode);\n };\n\n this.$setFolding = function(foldMode) {\n if (this.$foldMode == foldMode)\n return;\n \n this.$foldMode = foldMode;\n \n this.off('change', this.$updateFoldWidgets);\n this.off('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n this._signal(\"changeAnnotation\");\n \n if (!foldMode || this.$foldStyle == \"manual\") {\n this.foldWidgets = null;\n return;\n }\n \n this.foldWidgets = [];\n this.getFoldWidget = foldMode.getFoldWidget.bind(foldMode, this, this.$foldStyle);\n this.getFoldWidgetRange = foldMode.getFoldWidgetRange.bind(foldMode, this, this.$foldStyle);\n \n this.$updateFoldWidgets = this.updateFoldWidgets.bind(this);\n this.$tokenizerUpdateFoldWidgets = this.tokenizerUpdateFoldWidgets.bind(this);\n this.on('change', this.$updateFoldWidgets);\n this.on('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n };\n\n this.getParentFoldRangeData = function (row, ignoreCurrent) {\n var fw = this.foldWidgets;\n if (!fw || (ignoreCurrent && fw[row]))\n return {};\n\n var i = row - 1, firstRange;\n while (i >= 0) {\n var c = fw[i];\n if (c == null)\n c = fw[i] = this.getFoldWidget(i);\n\n if (c == \"start\") {\n var range = this.getFoldWidgetRange(i);\n if (!firstRange)\n firstRange = range;\n if (range && range.end.row >= row)\n break;\n }\n i--;\n }\n\n return {\n range: i !== -1 && range,\n firstRange: firstRange\n };\n };\n\n this.onFoldWidgetClick = function(row, e) {\n e = e.domEvent;\n var options = {\n children: e.shiftKey,\n all: e.ctrlKey || e.metaKey,\n siblings: e.altKey\n };\n \n var range = this.$toggleFoldWidget(row, options);\n if (!range) {\n var el = (e.target || e.srcElement);\n if (el && /ace_fold-widget/.test(el.className))\n el.className += \" ace_invalid\";\n }\n };\n \n this.$toggleFoldWidget = function(row, options) {\n if (!this.getFoldWidget)\n return;\n var type = this.getFoldWidget(row);\n var line = this.getLine(row);\n\n var dir = type === \"end\" ? -1 : 1;\n var fold = this.getFoldAt(row, dir === -1 ? 0 : line.length, dir);\n\n if (fold) {\n if (options.children || options.all)\n this.removeFold(fold);\n else\n this.expandFold(fold);\n return fold;\n }\n\n var range = this.getFoldWidgetRange(row, true);\n if (range && !range.isMultiLine()) {\n fold = this.getFoldAt(range.start.row, range.start.column, 1);\n if (fold && range.isEqual(fold.range)) {\n this.removeFold(fold);\n return fold;\n }\n }\n \n if (options.siblings) {\n var data = this.getParentFoldRangeData(row);\n if (data.range) {\n var startRow = data.range.start.row + 1;\n var endRow = data.range.end.row;\n }\n this.foldAll(startRow, endRow, options.all ? 10000 : 0);\n } else if (options.children) {\n endRow = range ? range.end.row : this.getLength();\n this.foldAll(row + 1, endRow, options.all ? 10000 : 0);\n } else if (range) {\n if (options.all) \n range.collapseChildren = 10000;\n this.addFold(\"...\", range);\n }\n \n return range;\n };\n \n \n \n this.toggleFoldWidget = function(toggleParent) {\n var row = this.selection.getCursor().row;\n row = this.getRowFoldStart(row);\n var range = this.$toggleFoldWidget(row, {});\n \n if (range)\n return;\n var data = this.getParentFoldRangeData(row, true);\n range = data.range || data.firstRange;\n \n if (range) {\n row = range.start.row;\n var fold = this.getFoldAt(row, this.getLine(row).length, 1);\n\n if (fold) {\n this.removeFold(fold);\n } else {\n this.addFold(\"...\", range);\n }\n }\n };\n\n this.updateFoldWidgets = function(delta) {\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n\n if (len === 0) {\n this.foldWidgets[firstRow] = null;\n } else if (delta.action == 'remove') {\n this.foldWidgets.splice(firstRow, len + 1, null);\n } else {\n var args = Array(len + 1);\n args.unshift(firstRow, 1);\n this.foldWidgets.splice.apply(this.foldWidgets, args);\n }\n };\n this.tokenizerUpdateFoldWidgets = function(e) {\n var rows = e.data;\n if (rows.first != rows.last) {\n if (this.foldWidgets.length > rows.first)\n this.foldWidgets.splice(rows.first, this.foldWidgets.length);\n }\n };\n}\n\nexports.Folding = Folding;\n\n});\n\nace.define(\"ace/edit_session/bracket_match\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar TokenIterator = acequire(\"../token_iterator\").TokenIterator;\nvar Range = acequire(\"../range\").Range;\n\n\nfunction BracketMatch() {\n\n this.findMatchingBracket = function(position, chr) {\n if (position.column == 0) return null;\n\n var charBeforeCursor = chr || this.getLine(position.row).charAt(position.column-1);\n if (charBeforeCursor == \"\") return null;\n\n var match = charBeforeCursor.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match)\n return null;\n\n if (match[1])\n return this.$findClosingBracket(match[1], position);\n else\n return this.$findOpeningBracket(match[2], position);\n };\n \n this.getBracketRange = function(pos) {\n var line = this.getLine(pos.row);\n var before = true, range;\n\n var chr = line.charAt(pos.column-1);\n var match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match) {\n chr = line.charAt(pos.column);\n pos = {row: pos.row, column: pos.column + 1};\n match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n before = false;\n }\n if (!match)\n return null;\n\n if (match[1]) {\n var bracketPos = this.$findClosingBracket(match[1], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(pos, bracketPos);\n if (!before) {\n range.end.column++;\n range.start.column--;\n }\n range.cursor = range.end;\n } else {\n var bracketPos = this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(bracketPos, pos);\n if (!before) {\n range.start.column++;\n range.end.column--;\n }\n range.cursor = range.start;\n }\n \n return range;\n };\n\n this.$brackets = {\n \")\": \"(\",\n \"(\": \")\",\n \"]\": \"[\",\n \"[\": \"]\",\n \"{\": \"}\",\n \"}\": \"{\"\n };\n\n this.$findOpeningBracket = function(bracket, position, typeRe) {\n var openBracket = this.$brackets[bracket];\n var depth = 1;\n\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n \n if (!typeRe){\n typeRe = new RegExp(\n \"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"rparen\", \".paren\")\n .replace(/\\b(?:end)\\b/, \"(?:start|begin|end)\")\n + \")+\"\n );\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn() - 2;\n var value = token.value;\n \n while (true) {\n \n while (valueIndex >= 0) {\n var chr = value.charAt(valueIndex);\n if (chr == openBracket) {\n depth -= 1;\n if (depth == 0) {\n return {row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn()};\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex -= 1;\n }\n do {\n token = iterator.stepBackward();\n } while (token && !typeRe.test(token.type));\n\n if (token == null)\n break;\n \n value = token.value;\n valueIndex = value.length - 1;\n }\n \n return null;\n };\n\n this.$findClosingBracket = function(bracket, position, typeRe) {\n var closingBracket = this.$brackets[bracket];\n var depth = 1;\n\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n\n if (!typeRe){\n typeRe = new RegExp(\n \"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"lparen\", \".paren\")\n .replace(/\\b(?:start|begin)\\b/, \"(?:start|begin|end)\")\n + \")+\"\n );\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn();\n\n while (true) {\n\n var value = token.value;\n var valueLength = value.length;\n while (valueIndex < valueLength) {\n var chr = value.charAt(valueIndex);\n if (chr == closingBracket) {\n depth -= 1;\n if (depth == 0) {\n return {row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn()};\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex += 1;\n }\n do {\n token = iterator.stepForward();\n } while (token && !typeRe.test(token.type));\n\n if (token == null)\n break;\n\n valueIndex = 0;\n }\n \n return null;\n };\n}\nexports.BracketMatch = BracketMatch;\n\n});\n\nace.define(\"ace/edit_session\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/bidihandler\",\"ace/config\",\"ace/lib/event_emitter\",\"ace/selection\",\"ace/mode/text\",\"ace/range\",\"ace/document\",\"ace/background_tokenizer\",\"ace/search_highlight\",\"ace/edit_session/folding\",\"ace/edit_session/bracket_match\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar lang = acequire(\"./lib/lang\");\nvar BidiHandler = acequire(\"./bidihandler\").BidiHandler;\nvar config = acequire(\"./config\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar Selection = acequire(\"./selection\").Selection;\nvar TextMode = acequire(\"./mode/text\").Mode;\nvar Range = acequire(\"./range\").Range;\nvar Document = acequire(\"./document\").Document;\nvar BackgroundTokenizer = acequire(\"./background_tokenizer\").BackgroundTokenizer;\nvar SearchHighlight = acequire(\"./search_highlight\").SearchHighlight;\n\nvar EditSession = function(text, mode) {\n this.$breakpoints = [];\n this.$decorations = [];\n this.$frontMarkers = {};\n this.$backMarkers = {};\n this.$markerId = 1;\n this.$undoSelect = true;\n\n this.$foldData = [];\n this.id = \"session\" + (++EditSession.$uid);\n this.$foldData.toString = function() {\n return this.join(\"\\n\");\n };\n this.on(\"changeFold\", this.onChangeFold.bind(this));\n this.$onChange = this.onChange.bind(this);\n\n if (typeof text != \"object\" || !text.getLine)\n text = new Document(text);\n\n this.$bidiHandler = new BidiHandler(this);\n this.setDocument(text);\n this.selection = new Selection(this);\n\n config.resetOptions(this);\n this.setMode(mode);\n config._signal(\"session\", this);\n};\n\n\nEditSession.$uid = 0;\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.setDocument = function(doc) {\n if (this.doc)\n this.doc.removeListener(\"change\", this.$onChange);\n\n this.doc = doc;\n doc.on(\"change\", this.$onChange);\n\n if (this.bgTokenizer)\n this.bgTokenizer.setDocument(this.getDocument());\n\n this.resetCaches();\n };\n this.getDocument = function() {\n return this.doc;\n };\n this.$resetRowCache = function(docRow) {\n if (!docRow) {\n this.$docRowCache = [];\n this.$screenRowCache = [];\n return;\n }\n var l = this.$docRowCache.length;\n var i = this.$getRowCacheIndex(this.$docRowCache, docRow) + 1;\n if (l > i) {\n this.$docRowCache.splice(i, l);\n this.$screenRowCache.splice(i, l);\n }\n };\n\n this.$getRowCacheIndex = function(cacheArray, val) {\n var low = 0;\n var hi = cacheArray.length - 1;\n\n while (low <= hi) {\n var mid = (low + hi) >> 1;\n var c = cacheArray[mid];\n\n if (val > c)\n low = mid + 1;\n else if (val < c)\n hi = mid - 1;\n else\n return mid;\n }\n\n return low -1;\n };\n\n this.resetCaches = function() {\n this.$modified = true;\n this.$wrapData = [];\n this.$rowLengthCache = [];\n this.$resetRowCache(0);\n if (this.bgTokenizer)\n this.bgTokenizer.start(0);\n };\n\n this.onChangeFold = function(e) {\n var fold = e.data;\n this.$resetRowCache(fold.start.row);\n };\n\n this.onChange = function(delta) {\n this.$modified = true;\n this.$bidiHandler.onChange(delta);\n this.$resetRowCache(delta.start.row);\n\n var removedFolds = this.$updateInternalDataOnChange(delta);\n if (!this.$fromUndo && this.$undoManager && !delta.ignore) {\n this.$deltasDoc.push(delta);\n if (removedFolds && removedFolds.length != 0) {\n this.$deltasFold.push({\n action: \"removeFolds\",\n folds: removedFolds\n });\n }\n\n this.$informUndoManager.schedule();\n }\n\n this.bgTokenizer && this.bgTokenizer.$updateOnChange(delta);\n this._signal(\"change\", delta);\n };\n this.setValue = function(text) {\n this.doc.setValue(text);\n this.selection.moveTo(0, 0);\n\n this.$resetRowCache(0);\n this.$deltas = [];\n this.$deltasDoc = [];\n this.$deltasFold = [];\n this.setUndoManager(this.$undoManager);\n this.getUndoManager().reset();\n };\n this.getValue =\n this.toString = function() {\n return this.doc.getValue();\n };\n this.getSelection = function() {\n return this.selection;\n };\n this.getState = function(row) {\n return this.bgTokenizer.getState(row);\n };\n this.getTokens = function(row) {\n return this.bgTokenizer.getTokens(row);\n };\n this.getTokenAt = function(row, column) {\n var tokens = this.bgTokenizer.getTokens(row);\n var token, c = 0;\n if (column == null) {\n var i = tokens.length - 1;\n c = this.getLine(row).length;\n } else {\n for (var i = 0; i < tokens.length; i++) {\n c += tokens[i].value.length;\n if (c >= column)\n break;\n }\n }\n token = tokens[i];\n if (!token)\n return null;\n token.index = i;\n token.start = c - token.value.length;\n return token;\n };\n this.setUndoManager = function(undoManager) {\n this.$undoManager = undoManager;\n this.$deltas = [];\n this.$deltasDoc = [];\n this.$deltasFold = [];\n\n if (this.$informUndoManager)\n this.$informUndoManager.cancel();\n\n if (undoManager) {\n var self = this;\n\n this.$syncInformUndoManager = function() {\n self.$informUndoManager.cancel();\n\n if (self.$deltasFold.length) {\n self.$deltas.push({\n group: \"fold\",\n deltas: self.$deltasFold\n });\n self.$deltasFold = [];\n }\n\n if (self.$deltasDoc.length) {\n self.$deltas.push({\n group: \"doc\",\n deltas: self.$deltasDoc\n });\n self.$deltasDoc = [];\n }\n\n if (self.$deltas.length > 0) {\n undoManager.execute({\n action: \"aceupdate\",\n args: [self.$deltas, self],\n merge: self.mergeUndoDeltas\n });\n }\n self.mergeUndoDeltas = false;\n self.$deltas = [];\n };\n this.$informUndoManager = lang.delayedCall(this.$syncInformUndoManager);\n }\n };\n this.markUndoGroup = function() {\n if (this.$syncInformUndoManager)\n this.$syncInformUndoManager();\n };\n \n this.$defaultUndoManager = {\n undo: function() {},\n redo: function() {},\n reset: function() {}\n };\n this.getUndoManager = function() {\n return this.$undoManager || this.$defaultUndoManager;\n };\n this.getTabString = function() {\n if (this.getUseSoftTabs()) {\n return lang.stringRepeat(\" \", this.getTabSize());\n } else {\n return \"\\t\";\n }\n };\n this.setUseSoftTabs = function(val) {\n this.setOption(\"useSoftTabs\", val);\n };\n this.getUseSoftTabs = function() {\n return this.$useSoftTabs && !this.$mode.$indentWithTabs;\n };\n this.setTabSize = function(tabSize) {\n this.setOption(\"tabSize\", tabSize);\n };\n this.getTabSize = function() {\n return this.$tabSize;\n };\n this.isTabStop = function(position) {\n return this.$useSoftTabs && (position.column % this.$tabSize === 0);\n };\n this.setNavigateWithinSoftTabs = function (navigateWithinSoftTabs) {\n this.setOption(\"navigateWithinSoftTabs\", navigateWithinSoftTabs);\n };\n this.getNavigateWithinSoftTabs = function() {\n return this.$navigateWithinSoftTabs;\n };\n\n this.$overwrite = false;\n this.setOverwrite = function(overwrite) {\n this.setOption(\"overwrite\", overwrite);\n };\n this.getOverwrite = function() {\n return this.$overwrite;\n };\n this.toggleOverwrite = function() {\n this.setOverwrite(!this.$overwrite);\n };\n this.addGutterDecoration = function(row, className) {\n if (!this.$decorations[row])\n this.$decorations[row] = \"\";\n this.$decorations[row] += \" \" + className;\n this._signal(\"changeBreakpoint\", {});\n };\n this.removeGutterDecoration = function(row, className) {\n this.$decorations[row] = (this.$decorations[row] || \"\").replace(\" \" + className, \"\");\n this._signal(\"changeBreakpoint\", {});\n };\n this.getBreakpoints = function() {\n return this.$breakpoints;\n };\n this.setBreakpoints = function(rows) {\n this.$breakpoints = [];\n for (var i=0; i 0)\n inToken = !!line.charAt(column - 1).match(this.tokenRe);\n\n if (!inToken)\n inToken = !!line.charAt(column).match(this.tokenRe);\n\n if (inToken)\n var re = this.tokenRe;\n else if (/^\\s+$/.test(line.slice(column-1, column+1)))\n var re = /\\s/;\n else\n var re = this.nonTokenRe;\n\n var start = column;\n if (start > 0) {\n do {\n start--;\n }\n while (start >= 0 && line.charAt(start).match(re));\n start++;\n }\n\n var end = column;\n while (end < line.length && line.charAt(end).match(re)) {\n end++;\n }\n\n return new Range(row, start, row, end);\n };\n this.getAWordRange = function(row, column) {\n var wordRange = this.getWordRange(row, column);\n var line = this.getLine(wordRange.end.row);\n\n while (line.charAt(wordRange.end.column).match(/[ \\t]/)) {\n wordRange.end.column += 1;\n }\n return wordRange;\n };\n this.setNewLineMode = function(newLineMode) {\n this.doc.setNewLineMode(newLineMode);\n };\n this.getNewLineMode = function() {\n return this.doc.getNewLineMode();\n };\n this.setUseWorker = function(useWorker) { this.setOption(\"useWorker\", useWorker); };\n this.getUseWorker = function() { return this.$useWorker; };\n this.onReloadTokenizer = function(e) {\n var rows = e.data;\n this.bgTokenizer.start(rows.first);\n this._signal(\"tokenizerUpdate\", e);\n };\n\n this.$modes = {};\n this.$mode = null;\n this.$modeId = null;\n this.setMode = function(mode, cb) {\n if (mode && typeof mode === \"object\") {\n if (mode.getTokenizer)\n return this.$onChangeMode(mode);\n var options = mode;\n var path = options.path;\n } else {\n path = mode || \"ace/mode/text\";\n }\n if (!this.$modes[\"ace/mode/text\"])\n this.$modes[\"ace/mode/text\"] = new TextMode();\n\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n cb && cb();\n return;\n }\n this.$modeId = path;\n config.loadModule([\"mode\", path], function(m) {\n if (this.$modeId !== path)\n return cb && cb();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n } else if (m && m.Mode) {\n m = new m.Mode(options);\n if (!options) {\n this.$modes[path] = m;\n m.$id = path;\n }\n this.$onChangeMode(m);\n }\n cb && cb();\n }.bind(this));\n if (!this.$mode)\n this.$onChangeMode(this.$modes[\"ace/mode/text\"], true);\n };\n\n this.$onChangeMode = function(mode, $isPlaceholder) {\n if (!$isPlaceholder)\n this.$modeId = mode.$id;\n if (this.$mode === mode) \n return;\n\n this.$mode = mode;\n\n this.$stopWorker();\n\n if (this.$useWorker)\n this.$startWorker();\n\n var tokenizer = mode.getTokenizer();\n\n if(tokenizer.addEventListener !== undefined) {\n var onReloadTokenizer = this.onReloadTokenizer.bind(this);\n tokenizer.addEventListener(\"update\", onReloadTokenizer);\n }\n\n if (!this.bgTokenizer) {\n this.bgTokenizer = new BackgroundTokenizer(tokenizer);\n var _self = this;\n this.bgTokenizer.addEventListener(\"update\", function(e) {\n _self._signal(\"tokenizerUpdate\", e);\n });\n } else {\n this.bgTokenizer.setTokenizer(tokenizer);\n }\n\n this.bgTokenizer.setDocument(this.getDocument());\n\n this.tokenRe = mode.tokenRe;\n this.nonTokenRe = mode.nonTokenRe;\n\n \n if (!$isPlaceholder) {\n if (mode.attachToSession)\n mode.attachToSession(this);\n this.$options.wrapMethod.set.call(this, this.$wrapMethod);\n this.$setFolding(mode.foldingRules);\n this.bgTokenizer.start(0);\n this._emit(\"changeMode\");\n }\n };\n\n this.$stopWorker = function() {\n if (this.$worker) {\n this.$worker.terminate();\n this.$worker = null;\n }\n };\n\n this.$startWorker = function() {\n try {\n this.$worker = this.$mode.createWorker(this);\n } catch (e) {\n config.warn(\"Could not load worker\", e);\n this.$worker = null;\n }\n };\n this.getMode = function() {\n return this.$mode;\n };\n\n this.$scrollTop = 0;\n this.setScrollTop = function(scrollTop) {\n if (this.$scrollTop === scrollTop || isNaN(scrollTop))\n return;\n\n this.$scrollTop = scrollTop;\n this._signal(\"changeScrollTop\", scrollTop);\n };\n this.getScrollTop = function() {\n return this.$scrollTop;\n };\n\n this.$scrollLeft = 0;\n this.setScrollLeft = function(scrollLeft) {\n if (this.$scrollLeft === scrollLeft || isNaN(scrollLeft))\n return;\n\n this.$scrollLeft = scrollLeft;\n this._signal(\"changeScrollLeft\", scrollLeft);\n };\n this.getScrollLeft = function() {\n return this.$scrollLeft;\n };\n this.getScreenWidth = function() {\n this.$computeWidth();\n if (this.lineWidgets) \n return Math.max(this.getLineWidgetMaxWidth(), this.screenWidth);\n return this.screenWidth;\n };\n \n this.getLineWidgetMaxWidth = function() {\n if (this.lineWidgetsWidth != null) return this.lineWidgetsWidth;\n var width = 0;\n this.lineWidgets.forEach(function(w) {\n if (w && w.screenWidth > width)\n width = w.screenWidth;\n });\n return this.lineWidgetWidth = width;\n };\n\n this.$computeWidth = function(force) {\n if (this.$modified || force) {\n this.$modified = false;\n\n if (this.$useWrapMode)\n return this.screenWidth = this.$wrapLimit;\n\n var lines = this.doc.getAllLines();\n var cache = this.$rowLengthCache;\n var longestScreenLine = 0;\n var foldIndex = 0;\n var foldLine = this.$foldData[foldIndex];\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n var len = lines.length;\n\n for (var i = 0; i < len; i++) {\n if (i > foldStart) {\n i = foldLine.end.row + 1;\n if (i >= len)\n break;\n foldLine = this.$foldData[foldIndex++];\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n\n if (cache[i] == null)\n cache[i] = this.$getStringScreenWidth(lines[i])[0];\n\n if (cache[i] > longestScreenLine)\n longestScreenLine = cache[i];\n }\n this.screenWidth = longestScreenLine;\n }\n };\n this.getLine = function(row) {\n return this.doc.getLine(row);\n };\n this.getLines = function(firstRow, lastRow) {\n return this.doc.getLines(firstRow, lastRow);\n };\n this.getLength = function() {\n return this.doc.getLength();\n };\n this.getTextRange = function(range) {\n return this.doc.getTextRange(range || this.selection.getRange());\n };\n this.insert = function(position, text) {\n return this.doc.insert(position, text);\n };\n this.remove = function(range) {\n return this.doc.remove(range);\n };\n this.removeFullLines = function(firstRow, lastRow){\n return this.doc.removeFullLines(firstRow, lastRow);\n };\n this.undoChanges = function(deltas, dontSelect) {\n if (!deltas.length)\n return;\n\n this.$fromUndo = true;\n var lastUndoRange = null;\n for (var i = deltas.length - 1; i != -1; i--) {\n var delta = deltas[i];\n if (delta.group == \"doc\") {\n this.doc.revertDeltas(delta.deltas);\n lastUndoRange =\n this.$getUndoSelection(delta.deltas, true, lastUndoRange);\n } else {\n delta.deltas.forEach(function(foldDelta) {\n this.addFolds(foldDelta.folds);\n }, this);\n }\n }\n this.$fromUndo = false;\n lastUndoRange &&\n this.$undoSelect &&\n !dontSelect &&\n this.selection.setSelectionRange(lastUndoRange);\n return lastUndoRange;\n };\n this.redoChanges = function(deltas, dontSelect) {\n if (!deltas.length)\n return;\n\n this.$fromUndo = true;\n var lastUndoRange = null;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (delta.group == \"doc\") {\n this.doc.applyDeltas(delta.deltas);\n lastUndoRange =\n this.$getUndoSelection(delta.deltas, false, lastUndoRange);\n }\n }\n this.$fromUndo = false;\n lastUndoRange &&\n this.$undoSelect &&\n !dontSelect &&\n this.selection.setSelectionRange(lastUndoRange);\n return lastUndoRange;\n };\n this.setUndoSelect = function(enable) {\n this.$undoSelect = enable;\n };\n\n this.$getUndoSelection = function(deltas, isUndo, lastUndoRange) {\n function isInsert(delta) {\n return isUndo ? delta.action !== \"insert\" : delta.action === \"insert\";\n }\n\n var delta = deltas[0];\n var range, point;\n var lastDeltaIsInsert = false;\n if (isInsert(delta)) {\n range = Range.fromPoints(delta.start, delta.end);\n lastDeltaIsInsert = true;\n } else {\n range = Range.fromPoints(delta.start, delta.start);\n lastDeltaIsInsert = false;\n }\n\n for (var i = 1; i < deltas.length; i++) {\n delta = deltas[i];\n if (isInsert(delta)) {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range.setStart(point);\n }\n point = delta.end;\n if (range.compare(point.row, point.column) == 1) {\n range.setEnd(point);\n }\n lastDeltaIsInsert = true;\n } else {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range = Range.fromPoints(delta.start, delta.start);\n }\n lastDeltaIsInsert = false;\n }\n }\n if (lastUndoRange != null) {\n if (Range.comparePoints(lastUndoRange.start, range.start) === 0) {\n lastUndoRange.start.column += range.end.column - range.start.column;\n lastUndoRange.end.column += range.end.column - range.start.column;\n }\n\n var cmp = lastUndoRange.compareRange(range);\n if (cmp == 1) {\n range.setStart(lastUndoRange.start);\n } else if (cmp == -1) {\n range.setEnd(lastUndoRange.end);\n }\n }\n\n return range;\n };\n this.replace = function(range, text) {\n return this.doc.replace(range, text);\n };\n this.moveText = function(fromRange, toPosition, copy) {\n var text = this.getTextRange(fromRange);\n var folds = this.getFoldsInRange(fromRange);\n\n var toRange = Range.fromPoints(toPosition, toPosition);\n if (!copy) {\n this.remove(fromRange);\n var rowDiff = fromRange.start.row - fromRange.end.row;\n var collDiff = rowDiff ? -fromRange.end.column : fromRange.start.column - fromRange.end.column;\n if (collDiff) {\n if (toRange.start.row == fromRange.end.row && toRange.start.column > fromRange.end.column)\n toRange.start.column += collDiff;\n if (toRange.end.row == fromRange.end.row && toRange.end.column > fromRange.end.column)\n toRange.end.column += collDiff;\n }\n if (rowDiff && toRange.start.row >= fromRange.end.row) {\n toRange.start.row += rowDiff;\n toRange.end.row += rowDiff;\n }\n }\n\n toRange.end = this.insert(toRange.start, text);\n if (folds.length) {\n var oldStart = fromRange.start;\n var newStart = toRange.start;\n var rowDiff = newStart.row - oldStart.row;\n var collDiff = newStart.column - oldStart.column;\n this.addFolds(folds.map(function(x) {\n x = x.clone();\n if (x.start.row == oldStart.row)\n x.start.column += collDiff;\n if (x.end.row == oldStart.row)\n x.end.column += collDiff;\n x.start.row += rowDiff;\n x.end.row += rowDiff;\n return x;\n }));\n }\n\n return toRange;\n };\n this.indentRows = function(startRow, endRow, indentString) {\n indentString = indentString.replace(/\\t/g, this.getTabString());\n for (var row=startRow; row<=endRow; row++)\n this.doc.insertInLine({row: row, column: 0}, indentString);\n };\n this.outdentRows = function (range) {\n var rowRange = range.collapseRows();\n var deleteRange = new Range(0, 0, 0, 0);\n var size = this.getTabSize();\n\n for (var i = rowRange.start.row; i <= rowRange.end.row; ++i) {\n var line = this.getLine(i);\n\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n for (var j = 0; j < size; ++j)\n if (line.charAt(j) != ' ')\n break;\n if (j < size && line.charAt(j) == '\\t') {\n deleteRange.start.column = j;\n deleteRange.end.column = j + 1;\n } else {\n deleteRange.start.column = 0;\n deleteRange.end.column = j;\n }\n this.remove(deleteRange);\n }\n };\n\n this.$moveLines = function(firstRow, lastRow, dir) {\n firstRow = this.getRowFoldStart(firstRow);\n lastRow = this.getRowFoldEnd(lastRow);\n if (dir < 0) {\n var row = this.getRowFoldStart(firstRow + dir);\n if (row < 0) return 0;\n var diff = row-firstRow;\n } else if (dir > 0) {\n var row = this.getRowFoldEnd(lastRow + dir);\n if (row > this.doc.getLength()-1) return 0;\n var diff = row-lastRow;\n } else {\n firstRow = this.$clipRowToDocument(firstRow);\n lastRow = this.$clipRowToDocument(lastRow);\n var diff = lastRow - firstRow + 1;\n }\n\n var range = new Range(firstRow, 0, lastRow, Number.MAX_VALUE);\n var folds = this.getFoldsInRange(range).map(function(x){\n x = x.clone();\n x.start.row += diff;\n x.end.row += diff;\n return x;\n });\n \n var lines = dir == 0\n ? this.doc.getLines(firstRow, lastRow)\n : this.doc.removeFullLines(firstRow, lastRow);\n this.doc.insertFullLines(firstRow+diff, lines);\n folds.length && this.addFolds(folds);\n return diff;\n };\n this.moveLinesUp = function(firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, -1);\n };\n this.moveLinesDown = function(firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 1);\n };\n this.duplicateLines = function(firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 0);\n };\n\n\n this.$clipRowToDocument = function(row) {\n return Math.max(0, Math.min(row, this.doc.getLength()-1));\n };\n\n this.$clipColumnToRow = function(row, column) {\n if (column < 0)\n return 0;\n return Math.min(this.doc.getLine(row).length, column);\n };\n\n\n this.$clipPositionToDocument = function(row, column) {\n column = Math.max(0, column);\n\n if (row < 0) {\n row = 0;\n column = 0;\n } else {\n var len = this.doc.getLength();\n if (row >= len) {\n row = len - 1;\n column = this.doc.getLine(len-1).length;\n } else {\n column = Math.min(this.doc.getLine(row).length, column);\n }\n }\n\n return {\n row: row,\n column: column\n };\n };\n\n this.$clipRangeToDocument = function(range) {\n if (range.start.row < 0) {\n range.start.row = 0;\n range.start.column = 0;\n } else {\n range.start.column = this.$clipColumnToRow(\n range.start.row,\n range.start.column\n );\n }\n\n var len = this.doc.getLength() - 1;\n if (range.end.row > len) {\n range.end.row = len;\n range.end.column = this.doc.getLine(len).length;\n } else {\n range.end.column = this.$clipColumnToRow(\n range.end.row,\n range.end.column\n );\n }\n return range;\n };\n this.$wrapLimit = 80;\n this.$useWrapMode = false;\n this.$wrapLimitRange = {\n min : null,\n max : null\n };\n this.setUseWrapMode = function(useWrapMode) {\n if (useWrapMode != this.$useWrapMode) {\n this.$useWrapMode = useWrapMode;\n this.$modified = true;\n this.$resetRowCache(0);\n if (useWrapMode) {\n var len = this.getLength();\n this.$wrapData = Array(len);\n this.$updateWrapData(0, len - 1);\n }\n\n this._signal(\"changeWrapMode\");\n }\n };\n this.getUseWrapMode = function() {\n return this.$useWrapMode;\n };\n this.setWrapLimitRange = function(min, max) {\n if (this.$wrapLimitRange.min !== min || this.$wrapLimitRange.max !== max) {\n this.$wrapLimitRange = { min: min, max: max };\n this.$modified = true;\n this.$bidiHandler.markAsDirty();\n if (this.$useWrapMode)\n this._signal(\"changeWrapMode\");\n }\n };\n this.adjustWrapLimit = function(desiredLimit, $printMargin) {\n var limits = this.$wrapLimitRange;\n if (limits.max < 0)\n limits = {min: $printMargin, max: $printMargin};\n var wrapLimit = this.$constrainWrapLimit(desiredLimit, limits.min, limits.max);\n if (wrapLimit != this.$wrapLimit && wrapLimit > 1) {\n this.$wrapLimit = wrapLimit;\n this.$modified = true;\n if (this.$useWrapMode) {\n this.$updateWrapData(0, this.getLength() - 1);\n this.$resetRowCache(0);\n this._signal(\"changeWrapLimit\");\n }\n return true;\n }\n return false;\n };\n\n this.$constrainWrapLimit = function(wrapLimit, min, max) {\n if (min)\n wrapLimit = Math.max(min, wrapLimit);\n\n if (max)\n wrapLimit = Math.min(max, wrapLimit);\n\n return wrapLimit;\n };\n this.getWrapLimit = function() {\n return this.$wrapLimit;\n };\n this.setWrapLimit = function (limit) {\n this.setWrapLimitRange(limit, limit);\n };\n this.getWrapLimitRange = function() {\n return {\n min : this.$wrapLimitRange.min,\n max : this.$wrapLimitRange.max\n };\n };\n\n this.$updateInternalDataOnChange = function(delta) {\n var useWrapMode = this.$useWrapMode;\n var action = delta.action;\n var start = delta.start;\n var end = delta.end;\n var firstRow = start.row;\n var lastRow = end.row;\n var len = lastRow - firstRow;\n var removedFolds = null;\n \n this.$updating = true;\n if (len != 0) {\n if (action === \"remove\") {\n this[useWrapMode ? \"$wrapData\" : \"$rowLengthCache\"].splice(firstRow, len);\n\n var foldLines = this.$foldData;\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n\n var foldLine = this.getFoldLine(end.row);\n var idx = 0;\n if (foldLine) {\n foldLine.addRemoveChars(end.row, end.column, start.column - end.column);\n foldLine.shiftRow(-len);\n\n var foldLineBefore = this.getFoldLine(firstRow);\n if (foldLineBefore && foldLineBefore !== foldLine) {\n foldLineBefore.merge(foldLine);\n foldLine = foldLineBefore;\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= end.row) {\n foldLine.shiftRow(-len);\n }\n }\n\n lastRow = firstRow;\n } else {\n var args = Array(len);\n args.unshift(firstRow, 0);\n var arr = useWrapMode ? this.$wrapData : this.$rowLengthCache;\n arr.splice.apply(arr, args);\n var foldLines = this.$foldData;\n var foldLine = this.getFoldLine(firstRow);\n var idx = 0;\n if (foldLine) {\n var cmp = foldLine.range.compareInside(start.row, start.column);\n if (cmp == 0) {\n foldLine = foldLine.split(start.row, start.column);\n if (foldLine) {\n foldLine.shiftRow(len);\n foldLine.addRemoveChars(lastRow, 0, end.column - start.column);\n }\n } else\n if (cmp == -1) {\n foldLine.addRemoveChars(firstRow, 0, end.column - start.column);\n foldLine.shiftRow(len);\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= firstRow) {\n foldLine.shiftRow(len);\n }\n }\n }\n } else {\n len = Math.abs(delta.start.column - delta.end.column);\n if (action === \"remove\") {\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n\n len = -len;\n }\n var foldLine = this.getFoldLine(firstRow);\n if (foldLine) {\n foldLine.addRemoveChars(firstRow, start.column, len);\n }\n }\n\n if (useWrapMode && this.$wrapData.length != this.doc.getLength()) {\n console.error(\"doc.getLength() and $wrapData.length have to be the same!\");\n }\n this.$updating = false;\n\n if (useWrapMode)\n this.$updateWrapData(firstRow, lastRow);\n else\n this.$updateRowLengthCache(firstRow, lastRow);\n\n return removedFolds;\n };\n\n this.$updateRowLengthCache = function(firstRow, lastRow, b) {\n this.$rowLengthCache[firstRow] = null;\n this.$rowLengthCache[lastRow] = null;\n };\n\n this.$updateWrapData = function(firstRow, lastRow) {\n var lines = this.doc.getAllLines();\n var tabSize = this.getTabSize();\n var wrapData = this.$wrapData;\n var wrapLimit = this.$wrapLimit;\n var tokens;\n var foldLine;\n\n var row = firstRow;\n lastRow = Math.min(lastRow, lines.length - 1);\n while (row <= lastRow) {\n foldLine = this.getFoldLine(row, foldLine);\n if (!foldLine) {\n tokens = this.$getDisplayTokens(lines[row]);\n wrapData[row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row ++;\n } else {\n tokens = [];\n foldLine.walk(function(placeholder, row, column, lastColumn) {\n var walkTokens;\n if (placeholder != null) {\n walkTokens = this.$getDisplayTokens(\n placeholder, tokens.length);\n walkTokens[0] = PLACEHOLDER_START;\n for (var i = 1; i < walkTokens.length; i++) {\n walkTokens[i] = PLACEHOLDER_BODY;\n }\n } else {\n walkTokens = this.$getDisplayTokens(\n lines[row].substring(lastColumn, column),\n tokens.length);\n }\n tokens = tokens.concat(walkTokens);\n }.bind(this),\n foldLine.end.row,\n lines[foldLine.end.row].length + 1\n );\n\n wrapData[foldLine.start.row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row = foldLine.end.row + 1;\n }\n }\n };\n var CHAR = 1,\n CHAR_EXT = 2,\n PLACEHOLDER_START = 3,\n PLACEHOLDER_BODY = 4,\n PUNCTUATION = 9,\n SPACE = 10,\n TAB = 11,\n TAB_SPACE = 12;\n\n\n this.$computeWrapSplits = function(tokens, wrapLimit, tabSize) {\n if (tokens.length == 0) {\n return [];\n }\n\n var splits = [];\n var displayLength = tokens.length;\n var lastSplit = 0, lastDocSplit = 0;\n\n var isCode = this.$wrapAsCode;\n\n var indentedSoftWrap = this.$indentedSoftWrap;\n var maxIndent = wrapLimit <= Math.max(2 * tabSize, 8)\n || indentedSoftWrap === false ? 0 : Math.floor(wrapLimit / 2);\n\n function getWrapIndent() {\n var indentation = 0;\n if (maxIndent === 0)\n return indentation;\n if (indentedSoftWrap) {\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token == SPACE)\n indentation += 1;\n else if (token == TAB)\n indentation += tabSize;\n else if (token == TAB_SPACE)\n continue;\n else\n break;\n }\n }\n if (isCode && indentedSoftWrap !== false)\n indentation += tabSize;\n return Math.min(indentation, maxIndent);\n }\n function addSplit(screenPos) {\n var displayed = tokens.slice(lastSplit, screenPos);\n var len = displayed.length;\n displayed.join(\"\")\n .replace(/12/g, function() {\n len -= 1;\n })\n .replace(/2/g, function() {\n len -= 1;\n });\n\n if (!splits.length) {\n indent = getWrapIndent();\n splits.indent = indent;\n }\n lastDocSplit += len;\n splits.push(lastDocSplit);\n lastSplit = screenPos;\n }\n var indent = 0;\n while (displayLength - lastSplit > wrapLimit - indent) {\n var split = lastSplit + wrapLimit - indent;\n if (tokens[split - 1] >= SPACE && tokens[split] >= SPACE) {\n addSplit(split);\n continue;\n }\n if (tokens[split] == PLACEHOLDER_START || tokens[split] == PLACEHOLDER_BODY) {\n for (split; split != lastSplit - 1; split--) {\n if (tokens[split] == PLACEHOLDER_START) {\n break;\n }\n }\n if (split > lastSplit) {\n addSplit(split);\n continue;\n }\n split = lastSplit + wrapLimit;\n for (split; split < tokens.length; split++) {\n if (tokens[split] != PLACEHOLDER_BODY) {\n break;\n }\n }\n if (split == tokens.length) {\n break; // Breaks the while-loop.\n }\n addSplit(split);\n continue;\n }\n var minSplit = Math.max(split - (wrapLimit -(wrapLimit>>2)), lastSplit - 1);\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split --;\n }\n if (isCode) {\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split --;\n }\n while (split > minSplit && tokens[split] == PUNCTUATION) {\n split --;\n }\n } else {\n while (split > minSplit && tokens[split] < SPACE) {\n split --;\n }\n }\n if (split > minSplit) {\n addSplit(++split);\n continue;\n }\n split = lastSplit + wrapLimit;\n if (tokens[split] == CHAR_EXT)\n split--;\n addSplit(split - indent);\n }\n return splits;\n };\n this.$getDisplayTokens = function(str, offset) {\n var arr = [];\n var tabSize;\n offset = offset || 0;\n\n for (var i = 0; i < str.length; i++) {\n var c = str.charCodeAt(i);\n if (c == 9) {\n tabSize = this.getScreenTabSize(arr.length + offset);\n arr.push(TAB);\n for (var n = 1; n < tabSize; n++) {\n arr.push(TAB_SPACE);\n }\n }\n else if (c == 32) {\n arr.push(SPACE);\n } else if((c > 39 && c < 48) || (c > 57 && c < 64)) {\n arr.push(PUNCTUATION);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n arr.push(CHAR, CHAR_EXT);\n } else {\n arr.push(CHAR);\n }\n }\n return arr;\n };\n this.$getStringScreenWidth = function(str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn == 0)\n return [0, 0];\n if (maxScreenColumn == null)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charCodeAt(column);\n if (c == 9) {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n screenColumn += 2;\n } else {\n screenColumn += 1;\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n\n return [screenColumn, column];\n };\n\n this.lineWidgets = null;\n this.getRowLength = function(row) {\n if (this.lineWidgets)\n var h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n else \n h = 0;\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1 + h;\n } else {\n return this.$wrapData[row].length + 1 + h;\n }\n };\n this.getRowLineCount = function(row) {\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1;\n } else {\n return this.$wrapData[row].length + 1;\n }\n };\n\n this.getRowWrapIndent = function(screenRow) {\n if (this.$useWrapMode) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n var splits = this.$wrapData[pos.row];\n return splits.length && splits[0] < pos.column ? splits.indent : 0;\n } else {\n return 0;\n }\n };\n this.getScreenLastRowColumn = function(screenRow) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n return this.documentToScreenColumn(pos.row, pos.column);\n };\n this.getDocumentLastRowColumn = function(docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.getScreenLastRowColumn(screenRow);\n };\n this.getDocumentLastRowColumnPosition = function(docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.screenToDocumentPosition(screenRow, Number.MAX_VALUE / 10);\n };\n this.getRowSplitData = function(row) {\n if (!this.$useWrapMode) {\n return undefined;\n } else {\n return this.$wrapData[row];\n }\n };\n this.getScreenTabSize = function(screenColumn) {\n return this.$tabSize - screenColumn % this.$tabSize;\n };\n\n\n this.screenToDocumentRow = function(screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).row;\n };\n\n\n this.screenToDocumentColumn = function(screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).column;\n };\n this.screenToDocumentPosition = function(screenRow, screenColumn, offsetX) {\n if (screenRow < 0)\n return {row: 0, column: 0};\n\n var line;\n var docRow = 0;\n var docColumn = 0;\n var column;\n var row = 0;\n var rowLength = 0;\n\n var rowCache = this.$screenRowCache;\n var i = this.$getRowCacheIndex(rowCache, screenRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var docRow = this.$docRowCache[i];\n var doCache = screenRow > rowCache[l - 1];\n } else {\n var doCache = !l;\n }\n\n var maxRow = this.getLength() - 1;\n var foldLine = this.getNextFoldLine(docRow);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (row <= screenRow) {\n rowLength = this.getRowLength(docRow);\n if (row + rowLength > screenRow || docRow >= maxRow) {\n break;\n } else {\n row += rowLength;\n docRow++;\n if (docRow > foldStart) {\n docRow = foldLine.end.row+1;\n foldLine = this.getNextFoldLine(docRow, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n }\n\n if (doCache) {\n this.$docRowCache.push(docRow);\n this.$screenRowCache.push(row);\n }\n }\n\n if (foldLine && foldLine.start.row <= docRow) {\n line = this.getFoldDisplayLine(foldLine);\n docRow = foldLine.start.row;\n } else if (row + rowLength <= screenRow || docRow > maxRow) {\n return {\n row: maxRow,\n column: this.getLine(maxRow).length\n };\n } else {\n line = this.getLine(docRow);\n foldLine = null;\n }\n var wrapIndent = 0, splitIndex = Math.floor(screenRow - row);\n if (this.$useWrapMode) {\n var splits = this.$wrapData[docRow];\n if (splits) {\n column = splits[splitIndex];\n if(splitIndex > 0 && splits.length) {\n wrapIndent = splits.indent;\n docColumn = splits[splitIndex - 1] || splits[splits.length - 1];\n line = line.substring(docColumn);\n }\n }\n }\n\n if (offsetX !== undefined && this.$bidiHandler.isBidiRow(row + splitIndex, docRow, splitIndex))\n screenColumn = this.$bidiHandler.offsetToCol(offsetX);\n\n docColumn += this.$getStringScreenWidth(line, screenColumn - wrapIndent)[1];\n if (this.$useWrapMode && docColumn >= column)\n docColumn = column - 1;\n\n if (foldLine)\n return foldLine.idxToPosition(docColumn);\n\n return {row: docRow, column: docColumn};\n };\n this.documentToScreenPosition = function(docRow, docColumn) {\n if (typeof docColumn === \"undefined\")\n var pos = this.$clipPositionToDocument(docRow.row, docRow.column);\n else\n pos = this.$clipPositionToDocument(docRow, docColumn);\n\n docRow = pos.row;\n docColumn = pos.column;\n\n var screenRow = 0;\n var foldStartRow = null;\n var fold = null;\n fold = this.getFoldAt(docRow, docColumn, 1);\n if (fold) {\n docRow = fold.start.row;\n docColumn = fold.start.column;\n }\n\n var rowEnd, row = 0;\n\n\n var rowCache = this.$docRowCache;\n var i = this.$getRowCacheIndex(rowCache, docRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var screenRow = this.$screenRowCache[i];\n var doCache = docRow > rowCache[l - 1];\n } else {\n var doCache = !l;\n }\n\n var foldLine = this.getNextFoldLine(row);\n var foldStart = foldLine ?foldLine.start.row :Infinity;\n\n while (row < docRow) {\n if (row >= foldStart) {\n rowEnd = foldLine.end.row + 1;\n if (rowEnd > docRow)\n break;\n foldLine = this.getNextFoldLine(rowEnd, foldLine);\n foldStart = foldLine ?foldLine.start.row :Infinity;\n }\n else {\n rowEnd = row + 1;\n }\n\n screenRow += this.getRowLength(row);\n row = rowEnd;\n\n if (doCache) {\n this.$docRowCache.push(row);\n this.$screenRowCache.push(screenRow);\n }\n }\n var textLine = \"\";\n if (foldLine && row >= foldStart) {\n textLine = this.getFoldDisplayLine(foldLine, docRow, docColumn);\n foldStartRow = foldLine.start.row;\n } else {\n textLine = this.getLine(docRow).substring(0, docColumn);\n foldStartRow = docRow;\n }\n var wrapIndent = 0;\n if (this.$useWrapMode) {\n var wrapRow = this.$wrapData[foldStartRow];\n if (wrapRow) {\n var screenRowOffset = 0;\n while (textLine.length >= wrapRow[screenRowOffset]) {\n screenRow ++;\n screenRowOffset++;\n }\n textLine = textLine.substring(\n wrapRow[screenRowOffset - 1] || 0, textLine.length\n );\n wrapIndent = screenRowOffset > 0 ? wrapRow.indent : 0;\n }\n }\n\n return {\n row: screenRow,\n column: wrapIndent + this.$getStringScreenWidth(textLine)[0]\n };\n };\n this.documentToScreenColumn = function(row, docColumn) {\n return this.documentToScreenPosition(row, docColumn).column;\n };\n this.documentToScreenRow = function(docRow, docColumn) {\n return this.documentToScreenPosition(docRow, docColumn).row;\n };\n this.getScreenLength = function() {\n var screenRows = 0;\n var fold = null;\n if (!this.$useWrapMode) {\n screenRows = this.getLength();\n var foldData = this.$foldData;\n for (var i = 0; i < foldData.length; i++) {\n fold = foldData[i];\n screenRows -= fold.end.row - fold.start.row;\n }\n } else {\n var lastRow = this.$wrapData.length;\n var row = 0, i = 0;\n var fold = this.$foldData[i++];\n var foldStart = fold ? fold.start.row :Infinity;\n\n while (row < lastRow) {\n var splits = this.$wrapData[row];\n screenRows += splits ? splits.length + 1 : 1;\n row ++;\n if (row > foldStart) {\n row = fold.end.row+1;\n fold = this.$foldData[i++];\n foldStart = fold ?fold.start.row :Infinity;\n }\n }\n }\n if (this.lineWidgets)\n screenRows += this.$getWidgetScreenLength();\n\n return screenRows;\n };\n this.$setFontMetrics = function(fm) {\n if (!this.$enableVarChar) return;\n this.$getStringScreenWidth = function(str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn === 0)\n return [0, 0];\n if (!maxScreenColumn)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n \n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charAt(column);\n if (c === \"\\t\") {\n screenColumn += this.getScreenTabSize(screenColumn);\n } else {\n screenColumn += fm.getCharacterWidth(c);\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n \n return [screenColumn, column];\n };\n };\n \n this.destroy = function() {\n if (this.bgTokenizer) {\n this.bgTokenizer.setDocument(null);\n this.bgTokenizer = null;\n }\n this.$stopWorker();\n };\n\n this.isFullWidth = isFullWidth;\n function isFullWidth(c) {\n if (c < 0x1100)\n return false;\n return c >= 0x1100 && c <= 0x115F ||\n c >= 0x11A3 && c <= 0x11A7 ||\n c >= 0x11FA && c <= 0x11FF ||\n c >= 0x2329 && c <= 0x232A ||\n c >= 0x2E80 && c <= 0x2E99 ||\n c >= 0x2E9B && c <= 0x2EF3 ||\n c >= 0x2F00 && c <= 0x2FD5 ||\n c >= 0x2FF0 && c <= 0x2FFB ||\n c >= 0x3000 && c <= 0x303E ||\n c >= 0x3041 && c <= 0x3096 ||\n c >= 0x3099 && c <= 0x30FF ||\n c >= 0x3105 && c <= 0x312D ||\n c >= 0x3131 && c <= 0x318E ||\n c >= 0x3190 && c <= 0x31BA ||\n c >= 0x31C0 && c <= 0x31E3 ||\n c >= 0x31F0 && c <= 0x321E ||\n c >= 0x3220 && c <= 0x3247 ||\n c >= 0x3250 && c <= 0x32FE ||\n c >= 0x3300 && c <= 0x4DBF ||\n c >= 0x4E00 && c <= 0xA48C ||\n c >= 0xA490 && c <= 0xA4C6 ||\n c >= 0xA960 && c <= 0xA97C ||\n c >= 0xAC00 && c <= 0xD7A3 ||\n c >= 0xD7B0 && c <= 0xD7C6 ||\n c >= 0xD7CB && c <= 0xD7FB ||\n c >= 0xF900 && c <= 0xFAFF ||\n c >= 0xFE10 && c <= 0xFE19 ||\n c >= 0xFE30 && c <= 0xFE52 ||\n c >= 0xFE54 && c <= 0xFE66 ||\n c >= 0xFE68 && c <= 0xFE6B ||\n c >= 0xFF01 && c <= 0xFF60 ||\n c >= 0xFFE0 && c <= 0xFFE6;\n }\n\n}).call(EditSession.prototype);\n\nacequire(\"./edit_session/folding\").Folding.call(EditSession.prototype);\nacequire(\"./edit_session/bracket_match\").BracketMatch.call(EditSession.prototype);\n\n\nconfig.defineOptions(EditSession.prototype, \"session\", {\n wrap: {\n set: function(value) {\n if (!value || value == \"off\")\n value = false;\n else if (value == \"free\")\n value = true;\n else if (value == \"printMargin\")\n value = -1;\n else if (typeof value == \"string\")\n value = parseInt(value, 10) || false;\n\n if (this.$wrap == value)\n return;\n this.$wrap = value;\n if (!value) {\n this.setUseWrapMode(false);\n } else {\n var col = typeof value == \"number\" ? value : null;\n this.setWrapLimitRange(col, col);\n this.setUseWrapMode(true);\n }\n },\n get: function() {\n if (this.getUseWrapMode()) {\n if (this.$wrap == -1)\n return \"printMargin\";\n if (!this.getWrapLimitRange().min)\n return \"free\";\n return this.$wrap;\n }\n return \"off\";\n },\n handlesSet: true\n }, \n wrapMethod: {\n set: function(val) {\n val = val == \"auto\"\n ? this.$mode.type != \"text\"\n : val != \"text\";\n if (val != this.$wrapAsCode) {\n this.$wrapAsCode = val;\n if (this.$useWrapMode) {\n this.$modified = true;\n this.$resetRowCache(0);\n this.$updateWrapData(0, this.getLength() - 1);\n }\n }\n },\n initialValue: \"auto\"\n },\n indentedSoftWrap: { initialValue: true },\n firstLineNumber: {\n set: function() {this._signal(\"changeBreakpoint\");},\n initialValue: 1\n },\n useWorker: {\n set: function(useWorker) {\n this.$useWorker = useWorker;\n\n this.$stopWorker();\n if (useWorker)\n this.$startWorker();\n },\n initialValue: true\n },\n useSoftTabs: {initialValue: true},\n tabSize: {\n set: function(tabSize) {\n if (isNaN(tabSize) || this.$tabSize === tabSize) return;\n\n this.$modified = true;\n this.$rowLengthCache = [];\n this.$tabSize = tabSize;\n this._signal(\"changeTabSize\");\n },\n initialValue: 4,\n handlesSet: true\n },\n navigateWithinSoftTabs: {initialValue: false},\n overwrite: {\n set: function(val) {this._signal(\"changeOverwrite\");},\n initialValue: false\n },\n newLineMode: {\n set: function(val) {this.doc.setNewLineMode(val);},\n get: function() {return this.doc.getNewLineMode();},\n handlesSet: true\n },\n mode: {\n set: function(val) { this.setMode(val); },\n get: function() { return this.$modeId; }\n }\n});\n\nexports.EditSession = EditSession;\n});\n\nace.define(\"ace/search\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"./lib/lang\");\nvar oop = acequire(\"./lib/oop\");\nvar Range = acequire(\"./range\").Range;\n\nvar Search = function() {\n this.$options = {};\n};\n\n(function() {\n this.set = function(options) {\n oop.mixin(this.$options, options);\n return this;\n };\n this.getOptions = function() {\n return lang.copyObject(this.$options);\n };\n this.setOptions = function(options) {\n this.$options = options;\n };\n this.find = function(session) {\n var options = this.$options;\n var iterator = this.$matchIterator(session, options);\n if (!iterator)\n return false;\n\n var firstRange = null;\n iterator.forEach(function(sr, sc, er, ec) {\n firstRange = new Range(sr, sc, er, ec);\n if (sc == ec && options.start && options.start.start\n && options.skipCurrent != false && firstRange.isEqual(options.start)\n ) {\n firstRange = null;\n return false;\n }\n\n return true;\n });\n\n return firstRange;\n };\n this.findAll = function(session) {\n var options = this.$options;\n if (!options.needle)\n return [];\n this.$assembleRegExp(options);\n\n var range = options.range;\n var lines = range\n ? session.getLines(range.start.row, range.end.row)\n : session.doc.getAllLines();\n\n var ranges = [];\n var re = options.re;\n if (options.$isMultiLine) {\n var len = re.length;\n var maxRow = lines.length - len;\n var prevRange;\n outer: for (var row = re.offset || 0; row <= maxRow; row++) {\n for (var j = 0; j < len; j++)\n if (lines[row + j].search(re[j]) == -1)\n continue outer;\n \n var startLine = lines[row];\n var line = lines[row + len - 1];\n var startIndex = startLine.length - startLine.match(re[0])[0].length;\n var endIndex = line.match(re[len - 1])[0].length;\n \n if (prevRange && prevRange.end.row === row &&\n prevRange.end.column > startIndex\n ) {\n continue;\n }\n ranges.push(prevRange = new Range(\n row, startIndex, row + len - 1, endIndex\n ));\n if (len > 2)\n row = row + len - 2;\n }\n } else {\n for (var i = 0; i < lines.length; i++) {\n var matches = lang.getMatchOffsets(lines[i], re);\n for (var j = 0; j < matches.length; j++) {\n var match = matches[j];\n ranges.push(new Range(i, match.offset, i, match.offset + match.length));\n }\n }\n }\n\n if (range) {\n var startColumn = range.start.column;\n var endColumn = range.start.column;\n var i = 0, j = ranges.length - 1;\n while (i < j && ranges[i].start.column < startColumn && ranges[i].start.row == range.start.row)\n i++;\n\n while (i < j && ranges[j].end.column > endColumn && ranges[j].end.row == range.end.row)\n j--;\n \n ranges = ranges.slice(i, j + 1);\n for (i = 0, j = ranges.length; i < j; i++) {\n ranges[i].start.row += range.start.row;\n ranges[i].end.row += range.start.row;\n }\n }\n\n return ranges;\n };\n this.replace = function(input, replacement) {\n var options = this.$options;\n\n var re = this.$assembleRegExp(options);\n if (options.$isMultiLine)\n return replacement;\n\n if (!re)\n return;\n\n var match = re.exec(input);\n if (!match || match[0].length != input.length)\n return null;\n \n replacement = input.replace(re, replacement);\n if (options.preserveCase) {\n replacement = replacement.split(\"\");\n for (var i = Math.min(input.length, input.length); i--; ) {\n var ch = input[i];\n if (ch && ch.toLowerCase() != ch)\n replacement[i] = replacement[i].toUpperCase();\n else\n replacement[i] = replacement[i].toLowerCase();\n }\n replacement = replacement.join(\"\");\n }\n \n return replacement;\n };\n\n this.$assembleRegExp = function(options, $disableFakeMultiline) {\n if (options.needle instanceof RegExp)\n return options.re = options.needle;\n\n var needle = options.needle;\n\n if (!options.needle)\n return options.re = false;\n\n if (!options.regExp)\n needle = lang.escapeRegExp(needle);\n\n if (options.wholeWord)\n needle = addWordBoundary(needle, options);\n\n var modifier = options.caseSensitive ? \"gm\" : \"gmi\";\n\n options.$isMultiLine = !$disableFakeMultiline && /[\\n\\r]/.test(needle);\n if (options.$isMultiLine)\n return options.re = this.$assembleMultilineRegExp(needle, modifier);\n\n try {\n var re = new RegExp(needle, modifier);\n } catch(e) {\n re = false;\n }\n return options.re = re;\n };\n\n this.$assembleMultilineRegExp = function(needle, modifier) {\n var parts = needle.replace(/\\r\\n|\\r|\\n/g, \"$\\n^\").split(\"\\n\");\n var re = [];\n for (var i = 0; i < parts.length; i++) try {\n re.push(new RegExp(parts[i], modifier));\n } catch(e) {\n return false;\n }\n return re;\n };\n\n this.$matchIterator = function(session, options) {\n var re = this.$assembleRegExp(options);\n if (!re)\n return false;\n var backwards = options.backwards == true;\n var skipCurrent = options.skipCurrent != false;\n\n var range = options.range;\n var start = options.start;\n if (!start)\n start = range ? range[backwards ? \"end\" : \"start\"] : session.selection.getRange();\n \n if (start.start)\n start = start[skipCurrent != backwards ? \"end\" : \"start\"];\n\n var firstRow = range ? range.start.row : 0;\n var lastRow = range ? range.end.row : session.getLength() - 1;\n\n if (backwards) {\n var forEach = function(callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row--; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = lastRow, firstRow = start.row; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n };\n }\n else {\n var forEach = function(callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row = row + 1; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = firstRow, lastRow = start.row; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n };\n }\n \n if (options.$isMultiLine) {\n var len = re.length;\n var forEachInLine = function(row, offset, callback) {\n var startRow = backwards ? row - len + 1 : row;\n if (startRow < 0) return;\n var line = session.getLine(startRow);\n var startIndex = line.search(re[0]);\n if (!backwards && startIndex < offset || startIndex === -1) return;\n for (var i = 1; i < len; i++) {\n line = session.getLine(startRow + i);\n if (line.search(re[i]) == -1)\n return;\n }\n var endIndex = line.match(re[len - 1])[0].length;\n if (backwards && endIndex > offset) return;\n if (callback(startRow, startIndex, startRow + len - 1, endIndex))\n return true;\n };\n }\n else if (backwards) {\n var forEachInLine = function(row, endIndex, callback) {\n var line = session.getLine(row);\n var matches = [];\n var m, last = 0;\n re.lastIndex = 0;\n while((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (!length) {\n if (last >= line.length) break;\n re.lastIndex = last += 1;\n }\n if (m.index + length > endIndex)\n break;\n matches.push(m.index, length);\n }\n for (var i = matches.length - 1; i >= 0; i -= 2) {\n var column = matches[i - 1];\n var length = matches[i];\n if (callback(row, column, row, column + length))\n return true;\n }\n };\n }\n else {\n var forEachInLine = function(row, startIndex, callback) {\n var line = session.getLine(row);\n var m;\n var last = startIndex;\n re.lastIndex = startIndex;\n while((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (callback(row, last, row,last + length))\n return true;\n if (!length) {\n re.lastIndex = last += 1;\n if (last >= line.length) return false;\n }\n }\n };\n }\n return {forEach: forEach};\n };\n\n}).call(Search.prototype);\n\nfunction addWordBoundary(needle, options) {\n function wordBoundary(c) {\n if (/\\w/.test(c) || options.regExp) return \"\\\\b\";\n return \"\";\n }\n return wordBoundary(needle[0]) + needle\n + wordBoundary(needle[needle.length - 1]);\n}\n\nexports.Search = Search;\n});\n\nace.define(\"ace/keyboard/hash_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar keyUtil = acequire(\"../lib/keys\");\nvar useragent = acequire(\"../lib/useragent\");\nvar KEY_MODS = keyUtil.KEY_MODS;\n\nfunction HashHandler(config, platform) {\n this.platform = platform || (useragent.isMac ? \"mac\" : \"win\");\n this.commands = {};\n this.commandKeyBinding = {};\n this.addCommands(config);\n this.$singleCommand = true;\n}\n\nfunction MultiHashHandler(config, platform) {\n HashHandler.call(this, config, platform);\n this.$singleCommand = false;\n}\n\nMultiHashHandler.prototype = HashHandler.prototype;\n\n(function() {\n \n\n this.addCommand = function(command) {\n if (this.commands[command.name])\n this.removeCommand(command);\n\n this.commands[command.name] = command;\n\n if (command.bindKey)\n this._buildKeyHash(command);\n };\n\n this.removeCommand = function(command, keepCommand) {\n var name = command && (typeof command === 'string' ? command : command.name);\n command = this.commands[name];\n if (!keepCommand)\n delete this.commands[name];\n var ckb = this.commandKeyBinding;\n for (var keyId in ckb) {\n var cmdGroup = ckb[keyId];\n if (cmdGroup == command) {\n delete ckb[keyId];\n } else if (Array.isArray(cmdGroup)) {\n var i = cmdGroup.indexOf(command);\n if (i != -1) {\n cmdGroup.splice(i, 1);\n if (cmdGroup.length == 1)\n ckb[keyId] = cmdGroup[0];\n }\n }\n }\n };\n\n this.bindKey = function(key, command, position) {\n if (typeof key == \"object\" && key) {\n if (position == undefined)\n position = key.position;\n key = key[this.platform];\n }\n if (!key)\n return;\n if (typeof command == \"function\")\n return this.addCommand({exec: command, bindKey: key, name: command.name || key});\n \n key.split(\"|\").forEach(function(keyPart) {\n var chain = \"\";\n if (keyPart.indexOf(\" \") != -1) {\n var parts = keyPart.split(/\\s+/);\n keyPart = parts.pop();\n parts.forEach(function(keyPart) {\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n chain += (chain ? \" \" : \"\") + id;\n this._addCommandToBinding(chain, \"chainKeys\");\n }, this);\n chain += \" \";\n }\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n this._addCommandToBinding(chain + id, command, position);\n }, this);\n };\n \n function getPosition(command) {\n return typeof command == \"object\" && command.bindKey\n && command.bindKey.position\n || (command.isDefault ? -100 : 0);\n }\n this._addCommandToBinding = function(keyId, command, position) {\n var ckb = this.commandKeyBinding, i;\n if (!command) {\n delete ckb[keyId];\n } else if (!ckb[keyId] || this.$singleCommand) {\n ckb[keyId] = command;\n } else {\n if (!Array.isArray(ckb[keyId])) {\n ckb[keyId] = [ckb[keyId]];\n } else if ((i = ckb[keyId].indexOf(command)) != -1) {\n ckb[keyId].splice(i, 1);\n }\n\n if (typeof position != \"number\") {\n position = getPosition(command);\n }\n\n var commands = ckb[keyId];\n for (i = 0; i < commands.length; i++) {\n var other = commands[i];\n var otherPos = getPosition(other);\n if (otherPos > position)\n break;\n }\n commands.splice(i, 0, command);\n }\n };\n\n this.addCommands = function(commands) {\n commands && Object.keys(commands).forEach(function(name) {\n var command = commands[name];\n if (!command)\n return;\n \n if (typeof command === \"string\")\n return this.bindKey(command, name);\n\n if (typeof command === \"function\")\n command = { exec: command };\n\n if (typeof command !== \"object\")\n return;\n\n if (!command.name)\n command.name = name;\n\n this.addCommand(command);\n }, this);\n };\n\n this.removeCommands = function(commands) {\n Object.keys(commands).forEach(function(name) {\n this.removeCommand(commands[name]);\n }, this);\n };\n\n this.bindKeys = function(keyList) {\n Object.keys(keyList).forEach(function(key) {\n this.bindKey(key, keyList[key]);\n }, this);\n };\n\n this._buildKeyHash = function(command) {\n this.bindKey(command.bindKey, command);\n };\n this.parseKeys = function(keys) {\n var parts = keys.toLowerCase().split(/[\\-\\+]([\\-\\+])?/).filter(function(x){return x;});\n var key = parts.pop();\n\n var keyCode = keyUtil[key];\n if (keyUtil.FUNCTION_KEYS[keyCode])\n key = keyUtil.FUNCTION_KEYS[keyCode].toLowerCase();\n else if (!parts.length)\n return {key: key, hashId: -1};\n else if (parts.length == 1 && parts[0] == \"shift\")\n return {key: key.toUpperCase(), hashId: -1};\n\n var hashId = 0;\n for (var i = parts.length; i--;) {\n var modifier = keyUtil.KEY_MODS[parts[i]];\n if (modifier == null) {\n if (typeof console != \"undefined\")\n console.error(\"invalid modifier \" + parts[i] + \" in \" + keys);\n return false;\n }\n hashId |= modifier;\n }\n return {key: key, hashId: hashId};\n };\n\n this.findKeyCommand = function findKeyCommand(hashId, keyString) {\n var key = KEY_MODS[hashId] + keyString;\n return this.commandKeyBinding[key];\n };\n\n this.handleKeyboard = function(data, hashId, keyString, keyCode) {\n if (keyCode < 0) return;\n var key = KEY_MODS[hashId] + keyString;\n var command = this.commandKeyBinding[key];\n if (data.$keyChain) {\n data.$keyChain += \" \" + key;\n command = this.commandKeyBinding[data.$keyChain] || command;\n }\n \n if (command) {\n if (command == \"chainKeys\" || command[command.length - 1] == \"chainKeys\") {\n data.$keyChain = data.$keyChain || key;\n return {command: \"null\"};\n }\n }\n \n if (data.$keyChain) {\n if ((!hashId || hashId == 4) && keyString.length == 1)\n data.$keyChain = data.$keyChain.slice(0, -key.length - 1); // wait for input\n else if (hashId == -1 || keyCode > 0)\n data.$keyChain = \"\"; // reset keyChain\n }\n return {command: command};\n };\n \n this.getStatusText = function(editor, data) {\n return data.$keyChain || \"\";\n };\n\n}).call(HashHandler.prototype);\n\nexports.HashHandler = HashHandler;\nexports.MultiHashHandler = MultiHashHandler;\n});\n\nace.define(\"ace/commands/command_manager\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar MultiHashHandler = acequire(\"../keyboard/hash_handler\").MultiHashHandler;\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar CommandManager = function(platform, commands) {\n MultiHashHandler.call(this, commands, platform);\n this.byName = this.commands;\n this.setDefaultHandler(\"exec\", function(e) {\n return e.command.exec(e.editor, e.args || {});\n });\n};\n\noop.inherits(CommandManager, MultiHashHandler);\n\n(function() {\n\n oop.implement(this, EventEmitter);\n\n this.exec = function(command, editor, args) {\n if (Array.isArray(command)) {\n for (var i = command.length; i--; ) {\n if (this.exec(command[i], editor, args)) return true;\n }\n return false;\n }\n\n if (typeof command === \"string\")\n command = this.commands[command];\n\n if (!command)\n return false;\n\n if (editor && editor.$readOnly && !command.readOnly)\n return false;\n\n if (command.isAvailable && !command.isAvailable(editor))\n return false;\n\n var e = {editor: editor, command: command, args: args};\n e.returnValue = this._emit(\"exec\", e);\n this._signal(\"afterExec\", e);\n\n return e.returnValue === false ? false : true;\n };\n\n this.toggleRecording = function(editor) {\n if (this.$inReplay)\n return;\n\n editor && editor._emit(\"changeStatus\");\n if (this.recording) {\n this.macro.pop();\n this.removeEventListener(\"exec\", this.$addCommandToMacro);\n\n if (!this.macro.length)\n this.macro = this.oldMacro;\n\n return this.recording = false;\n }\n if (!this.$addCommandToMacro) {\n this.$addCommandToMacro = function(e) {\n this.macro.push([e.command, e.args]);\n }.bind(this);\n }\n\n this.oldMacro = this.macro;\n this.macro = [];\n this.on(\"exec\", this.$addCommandToMacro);\n return this.recording = true;\n };\n\n this.replay = function(editor) {\n if (this.$inReplay || !this.macro)\n return;\n\n if (this.recording)\n return this.toggleRecording(editor);\n\n try {\n this.$inReplay = true;\n this.macro.forEach(function(x) {\n if (typeof x == \"string\")\n this.exec(x, editor);\n else\n this.exec(x[0], editor, x[1]);\n }, this);\n } finally {\n this.$inReplay = false;\n }\n };\n\n this.trimMacro = function(m) {\n return m.map(function(x){\n if (typeof x[0] != \"string\")\n x[0] = x[0].name;\n if (!x[1])\n x = x[0];\n return x;\n });\n };\n\n}).call(CommandManager.prototype);\n\nexports.CommandManager = CommandManager;\n\n});\n\nace.define(\"ace/commands/default_commands\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/config\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"../lib/lang\");\nvar config = acequire(\"../config\");\nvar Range = acequire(\"../range\").Range;\n\nfunction bindKey(win, mac) {\n return {win: win, mac: mac};\n}\nexports.commands = [{\n name: \"showSettingsMenu\",\n bindKey: bindKey(\"Ctrl-,\", \"Command-,\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/settings_menu\", function(module) {\n module.init(editor);\n editor.showSettingsMenu();\n });\n },\n readOnly: true\n}, {\n name: \"goToNextError\",\n bindKey: bindKey(\"Alt-E\", \"F4\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/error_marker\", function(module) {\n module.showErrorMarker(editor, 1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"goToPreviousError\",\n bindKey: bindKey(\"Alt-Shift-E\", \"Shift-F4\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/error_marker\", function(module) {\n module.showErrorMarker(editor, -1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"selectall\",\n bindKey: bindKey(\"Ctrl-A\", \"Command-A\"),\n exec: function(editor) { editor.selectAll(); },\n readOnly: true\n}, {\n name: \"centerselection\",\n bindKey: bindKey(null, \"Ctrl-L\"),\n exec: function(editor) { editor.centerSelection(); },\n readOnly: true\n}, {\n name: \"gotoline\",\n bindKey: bindKey(\"Ctrl-L\", \"Command-L\"),\n exec: function(editor) {\n var line = parseInt(prompt(\"Enter line number:\"), 10);\n if (!isNaN(line)) {\n editor.gotoLine(line);\n }\n },\n readOnly: true\n}, {\n name: \"fold\",\n bindKey: bindKey(\"Alt-L|Ctrl-F1\", \"Command-Alt-L|Command-F1\"),\n exec: function(editor) { editor.session.toggleFold(false); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"unfold\",\n bindKey: bindKey(\"Alt-Shift-L|Ctrl-Shift-F1\", \"Command-Alt-Shift-L|Command-Shift-F1\"),\n exec: function(editor) { editor.session.toggleFold(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"toggleFoldWidget\",\n bindKey: bindKey(\"F2\", \"F2\"),\n exec: function(editor) { editor.session.toggleFoldWidget(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"toggleParentFoldWidget\",\n bindKey: bindKey(\"Alt-F2\", \"Alt-F2\"),\n exec: function(editor) { editor.session.toggleFoldWidget(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"foldall\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function(editor) { editor.session.foldAll(); },\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"foldOther\",\n bindKey: bindKey(\"Alt-0\", \"Command-Option-0\"),\n exec: function(editor) { \n editor.session.foldAll();\n editor.session.unfold(editor.selection.getAllRanges());\n },\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"unfoldall\",\n bindKey: bindKey(\"Alt-Shift-0\", \"Command-Option-Shift-0\"),\n exec: function(editor) { editor.session.unfold(); },\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"findnext\",\n bindKey: bindKey(\"Ctrl-K\", \"Command-G\"),\n exec: function(editor) { editor.findNext(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"findprevious\",\n bindKey: bindKey(\"Ctrl-Shift-K\", \"Command-Shift-G\"),\n exec: function(editor) { editor.findPrevious(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"selectOrFindNext\",\n bindKey: bindKey(\"Alt-K\", \"Ctrl-G\"),\n exec: function(editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findNext(); \n },\n readOnly: true\n}, {\n name: \"selectOrFindPrevious\",\n bindKey: bindKey(\"Alt-Shift-K\", \"Ctrl-Shift-G\"),\n exec: function(editor) { \n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findPrevious();\n },\n readOnly: true\n}, {\n name: \"find\",\n bindKey: bindKey(\"Ctrl-F\", \"Command-F\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/searchbox\", function(e) {e.Search(editor);});\n },\n readOnly: true\n}, {\n name: \"overwrite\",\n bindKey: \"Insert\",\n exec: function(editor) { editor.toggleOverwrite(); },\n readOnly: true\n}, {\n name: \"selecttostart\",\n bindKey: bindKey(\"Ctrl-Shift-Home\", \"Command-Shift-Home|Command-Shift-Up\"),\n exec: function(editor) { editor.getSelection().selectFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"gotostart\",\n bindKey: bindKey(\"Ctrl-Home\", \"Command-Home|Command-Up\"),\n exec: function(editor) { editor.navigateFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"selectup\",\n bindKey: bindKey(\"Shift-Up\", \"Shift-Up|Ctrl-Shift-P\"),\n exec: function(editor) { editor.getSelection().selectUp(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"golineup\",\n bindKey: bindKey(\"Up\", \"Up|Ctrl-P\"),\n exec: function(editor, args) { editor.navigateUp(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selecttoend\",\n bindKey: bindKey(\"Ctrl-Shift-End\", \"Command-Shift-End|Command-Shift-Down\"),\n exec: function(editor) { editor.getSelection().selectFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"gotoend\",\n bindKey: bindKey(\"Ctrl-End\", \"Command-End|Command-Down\"),\n exec: function(editor) { editor.navigateFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"selectdown\",\n bindKey: bindKey(\"Shift-Down\", \"Shift-Down|Ctrl-Shift-N\"),\n exec: function(editor) { editor.getSelection().selectDown(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"golinedown\",\n bindKey: bindKey(\"Down\", \"Down|Ctrl-N\"),\n exec: function(editor, args) { editor.navigateDown(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectwordleft\",\n bindKey: bindKey(\"Ctrl-Shift-Left\", \"Option-Shift-Left\"),\n exec: function(editor) { editor.getSelection().selectWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotowordleft\",\n bindKey: bindKey(\"Ctrl-Left\", \"Option-Left\"),\n exec: function(editor) { editor.navigateWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selecttolinestart\",\n bindKey: bindKey(\"Alt-Shift-Left\", \"Command-Shift-Left|Ctrl-Shift-A\"),\n exec: function(editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotolinestart\",\n bindKey: bindKey(\"Alt-Left|Home\", \"Command-Left|Home|Ctrl-A\"),\n exec: function(editor) { editor.navigateLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectleft\",\n bindKey: bindKey(\"Shift-Left\", \"Shift-Left|Ctrl-Shift-B\"),\n exec: function(editor) { editor.getSelection().selectLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotoleft\",\n bindKey: bindKey(\"Left\", \"Left|Ctrl-B\"),\n exec: function(editor, args) { editor.navigateLeft(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectwordright\",\n bindKey: bindKey(\"Ctrl-Shift-Right\", \"Option-Shift-Right\"),\n exec: function(editor) { editor.getSelection().selectWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotowordright\",\n bindKey: bindKey(\"Ctrl-Right\", \"Option-Right\"),\n exec: function(editor) { editor.navigateWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selecttolineend\",\n bindKey: bindKey(\"Alt-Shift-Right\", \"Command-Shift-Right|Shift-End|Ctrl-Shift-E\"),\n exec: function(editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotolineend\",\n bindKey: bindKey(\"Alt-Right|End\", \"Command-Right|End|Ctrl-E\"),\n exec: function(editor) { editor.navigateLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectright\",\n bindKey: bindKey(\"Shift-Right\", \"Shift-Right\"),\n exec: function(editor) { editor.getSelection().selectRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotoright\",\n bindKey: bindKey(\"Right\", \"Right|Ctrl-F\"),\n exec: function(editor, args) { editor.navigateRight(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectpagedown\",\n bindKey: \"Shift-PageDown\",\n exec: function(editor) { editor.selectPageDown(); },\n readOnly: true\n}, {\n name: \"pagedown\",\n bindKey: bindKey(null, \"Option-PageDown\"),\n exec: function(editor) { editor.scrollPageDown(); },\n readOnly: true\n}, {\n name: \"gotopagedown\",\n bindKey: bindKey(\"PageDown\", \"PageDown|Ctrl-V\"),\n exec: function(editor) { editor.gotoPageDown(); },\n readOnly: true\n}, {\n name: \"selectpageup\",\n bindKey: \"Shift-PageUp\",\n exec: function(editor) { editor.selectPageUp(); },\n readOnly: true\n}, {\n name: \"pageup\",\n bindKey: bindKey(null, \"Option-PageUp\"),\n exec: function(editor) { editor.scrollPageUp(); },\n readOnly: true\n}, {\n name: \"gotopageup\",\n bindKey: \"PageUp\",\n exec: function(editor) { editor.gotoPageUp(); },\n readOnly: true\n}, {\n name: \"scrollup\",\n bindKey: bindKey(\"Ctrl-Up\", null),\n exec: function(e) { e.renderer.scrollBy(0, -2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n}, {\n name: \"scrolldown\",\n bindKey: bindKey(\"Ctrl-Down\", null),\n exec: function(e) { e.renderer.scrollBy(0, 2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n}, {\n name: \"selectlinestart\",\n bindKey: \"Shift-Home\",\n exec: function(editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectlineend\",\n bindKey: \"Shift-End\",\n exec: function(editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"togglerecording\",\n bindKey: bindKey(\"Ctrl-Alt-E\", \"Command-Option-E\"),\n exec: function(editor) { editor.commands.toggleRecording(editor); },\n readOnly: true\n}, {\n name: \"replaymacro\",\n bindKey: bindKey(\"Ctrl-Shift-E\", \"Command-Shift-E\"),\n exec: function(editor) { editor.commands.replay(editor); },\n readOnly: true\n}, {\n name: \"jumptomatching\",\n bindKey: bindKey(\"Ctrl-P\", \"Ctrl-P\"),\n exec: function(editor) { editor.jumpToMatching(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"selecttomatching\",\n bindKey: bindKey(\"Ctrl-Shift-P\", \"Ctrl-Shift-P\"),\n exec: function(editor) { editor.jumpToMatching(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"expandToMatching\",\n bindKey: bindKey(\"Ctrl-Shift-M\", \"Ctrl-Shift-M\"),\n exec: function(editor) { editor.jumpToMatching(true, true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"passKeysToBrowser\",\n bindKey: bindKey(null, null),\n exec: function() {},\n passEvent: true,\n readOnly: true\n}, {\n name: \"copy\",\n exec: function(editor) {\n },\n readOnly: true\n},\n{\n name: \"cut\",\n exec: function(editor) {\n var range = editor.getSelectionRange();\n editor._emit(\"cut\", range);\n\n if (!editor.selection.isEmpty()) {\n editor.session.remove(range);\n editor.clearSelection();\n }\n },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"paste\",\n exec: function(editor, args) {\n editor.$handlePaste(args);\n },\n scrollIntoView: \"cursor\"\n}, {\n name: \"removeline\",\n bindKey: bindKey(\"Ctrl-D\", \"Command-D\"),\n exec: function(editor) { editor.removeLines(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEachLine\"\n}, {\n name: \"duplicateSelection\",\n bindKey: bindKey(\"Ctrl-Shift-D\", \"Command-Shift-D\"),\n exec: function(editor) { editor.duplicateSelection(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"sortlines\",\n bindKey: bindKey(\"Ctrl-Alt-S\", \"Command-Alt-S\"),\n exec: function(editor) { editor.sortLines(); },\n scrollIntoView: \"selection\",\n multiSelectAction: \"forEachLine\"\n}, {\n name: \"togglecomment\",\n bindKey: bindKey(\"Ctrl-/\", \"Command-/\"),\n exec: function(editor) { editor.toggleCommentLines(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"toggleBlockComment\",\n bindKey: bindKey(\"Ctrl-Shift-/\", \"Command-Shift-/\"),\n exec: function(editor) { editor.toggleBlockComment(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"modifyNumberUp\",\n bindKey: bindKey(\"Ctrl-Shift-Up\", \"Alt-Shift-Up\"),\n exec: function(editor) { editor.modifyNumber(1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"modifyNumberDown\",\n bindKey: bindKey(\"Ctrl-Shift-Down\", \"Alt-Shift-Down\"),\n exec: function(editor) { editor.modifyNumber(-1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"replace\",\n bindKey: bindKey(\"Ctrl-H\", \"Command-Option-F\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/searchbox\", function(e) {e.Search(editor, true);});\n }\n}, {\n name: \"undo\",\n bindKey: bindKey(\"Ctrl-Z\", \"Command-Z\"),\n exec: function(editor) { editor.undo(); }\n}, {\n name: \"redo\",\n bindKey: bindKey(\"Ctrl-Shift-Z|Ctrl-Y\", \"Command-Shift-Z|Command-Y\"),\n exec: function(editor) { editor.redo(); }\n}, {\n name: \"copylinesup\",\n bindKey: bindKey(\"Alt-Shift-Up\", \"Command-Option-Up\"),\n exec: function(editor) { editor.copyLinesUp(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"movelinesup\",\n bindKey: bindKey(\"Alt-Up\", \"Option-Up\"),\n exec: function(editor) { editor.moveLinesUp(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"copylinesdown\",\n bindKey: bindKey(\"Alt-Shift-Down\", \"Command-Option-Down\"),\n exec: function(editor) { editor.copyLinesDown(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"movelinesdown\",\n bindKey: bindKey(\"Alt-Down\", \"Option-Down\"),\n exec: function(editor) { editor.moveLinesDown(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"del\",\n bindKey: bindKey(\"Delete\", \"Delete|Ctrl-D|Shift-Delete\"),\n exec: function(editor) { editor.remove(\"right\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"backspace\",\n bindKey: bindKey(\n \"Shift-Backspace|Backspace\",\n \"Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H\"\n ),\n exec: function(editor) { editor.remove(\"left\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"cut_or_delete\",\n bindKey: bindKey(\"Shift-Delete\", null),\n exec: function(editor) { \n if (editor.selection.isEmpty()) {\n editor.remove(\"left\");\n } else {\n return false;\n }\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removetolinestart\",\n bindKey: bindKey(\"Alt-Backspace\", \"Command-Backspace\"),\n exec: function(editor) { editor.removeToLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removetolineend\",\n bindKey: bindKey(\"Alt-Delete\", \"Ctrl-K|Command-Delete\"),\n exec: function(editor) { editor.removeToLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removetolinestarthard\",\n bindKey: bindKey(\"Ctrl-Shift-Backspace\", null),\n exec: function(editor) {\n var range = editor.selection.getRange();\n range.start.column = 0;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removetolineendhard\",\n bindKey: bindKey(\"Ctrl-Shift-Delete\", null),\n exec: function(editor) {\n var range = editor.selection.getRange();\n range.end.column = Number.MAX_VALUE;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removewordleft\",\n bindKey: bindKey(\"Ctrl-Backspace\", \"Alt-Backspace|Ctrl-Alt-Backspace\"),\n exec: function(editor) { editor.removeWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removewordright\",\n bindKey: bindKey(\"Ctrl-Delete\", \"Alt-Delete\"),\n exec: function(editor) { editor.removeWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"outdent\",\n bindKey: bindKey(\"Shift-Tab\", \"Shift-Tab\"),\n exec: function(editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"indent\",\n bindKey: bindKey(\"Tab\", \"Tab\"),\n exec: function(editor) { editor.indent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"blockoutdent\",\n bindKey: bindKey(\"Ctrl-[\", \"Ctrl-[\"),\n exec: function(editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"blockindent\",\n bindKey: bindKey(\"Ctrl-]\", \"Ctrl-]\"),\n exec: function(editor) { editor.blockIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"insertstring\",\n exec: function(editor, str) { editor.insert(str); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"inserttext\",\n exec: function(editor, args) {\n editor.insert(lang.stringRepeat(args.text || \"\", args.times || 1));\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"splitline\",\n bindKey: bindKey(null, \"Ctrl-O\"),\n exec: function(editor) { editor.splitLine(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"transposeletters\",\n bindKey: bindKey(\"Alt-Shift-X\", \"Ctrl-T\"),\n exec: function(editor) { editor.transposeLetters(); },\n multiSelectAction: function(editor) {editor.transposeSelections(1); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"touppercase\",\n bindKey: bindKey(\"Ctrl-U\", \"Ctrl-U\"),\n exec: function(editor) { editor.toUpperCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"tolowercase\",\n bindKey: bindKey(\"Ctrl-Shift-U\", \"Ctrl-Shift-U\"),\n exec: function(editor) { editor.toLowerCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"expandtoline\",\n bindKey: bindKey(\"Ctrl-Shift-L\", \"Command-Shift-L\"),\n exec: function(editor) {\n var range = editor.selection.getRange();\n\n range.start.column = range.end.column = 0;\n range.end.row++;\n editor.selection.setRange(range, false);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"joinlines\",\n bindKey: bindKey(null, null),\n exec: function(editor) {\n var isBackwards = editor.selection.isBackwards();\n var selectionStart = isBackwards ? editor.selection.getSelectionLead() : editor.selection.getSelectionAnchor();\n var selectionEnd = isBackwards ? editor.selection.getSelectionAnchor() : editor.selection.getSelectionLead();\n var firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length;\n var selectedText = editor.session.doc.getTextRange(editor.selection.getRange());\n var selectedCount = selectedText.replace(/\\n\\s*/, \" \").length;\n var insertLine = editor.session.doc.getLine(selectionStart.row);\n\n for (var i = selectionStart.row + 1; i <= selectionEnd.row + 1; i++) {\n var curLine = lang.stringTrimLeft(lang.stringTrimRight(editor.session.doc.getLine(i)));\n if (curLine.length !== 0) {\n curLine = \" \" + curLine;\n }\n insertLine += curLine;\n }\n\n if (selectionEnd.row + 1 < (editor.session.doc.getLength() - 1)) {\n insertLine += editor.session.doc.getNewLineCharacter();\n }\n\n editor.clearSelection();\n editor.session.doc.replace(new Range(selectionStart.row, 0, selectionEnd.row + 2, 0), insertLine);\n\n if (selectedCount > 0) {\n editor.selection.moveCursorTo(selectionStart.row, selectionStart.column);\n editor.selection.selectTo(selectionStart.row, selectionStart.column + selectedCount);\n } else {\n firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length > firstLineEndCol ? (firstLineEndCol + 1) : firstLineEndCol;\n editor.selection.moveCursorTo(selectionStart.row, firstLineEndCol);\n }\n },\n multiSelectAction: \"forEach\",\n readOnly: true\n}, {\n name: \"invertSelection\",\n bindKey: bindKey(null, null),\n exec: function(editor) {\n var endRow = editor.session.doc.getLength() - 1;\n var endCol = editor.session.doc.getLine(endRow).length;\n var ranges = editor.selection.rangeList.ranges;\n var newRanges = [];\n if (ranges.length < 1) {\n ranges = [editor.selection.getRange()];\n }\n\n for (var i = 0; i < ranges.length; i++) {\n if (i == (ranges.length - 1)) {\n if (!(ranges[i].end.row === endRow && ranges[i].end.column === endCol)) {\n newRanges.push(new Range(ranges[i].end.row, ranges[i].end.column, endRow, endCol));\n }\n }\n\n if (i === 0) {\n if (!(ranges[i].start.row === 0 && ranges[i].start.column === 0)) {\n newRanges.push(new Range(0, 0, ranges[i].start.row, ranges[i].start.column));\n }\n } else {\n newRanges.push(new Range(ranges[i-1].end.row, ranges[i-1].end.column, ranges[i].start.row, ranges[i].start.column));\n }\n }\n\n editor.exitMultiSelectMode();\n editor.clearSelection();\n\n for(var i = 0; i < newRanges.length; i++) {\n editor.selection.addRange(newRanges[i], false);\n }\n },\n readOnly: true,\n scrollIntoView: \"none\"\n}];\n\n});\n\nace.define(\"ace/editor\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/keyboard/textinput\",\"ace/mouse/mouse_handler\",\"ace/mouse/fold_handler\",\"ace/keyboard/keybinding\",\"ace/edit_session\",\"ace/search\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/commands/command_manager\",\"ace/commands/default_commands\",\"ace/config\",\"ace/token_iterator\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./lib/fixoldbrowsers\");\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar lang = acequire(\"./lib/lang\");\nvar useragent = acequire(\"./lib/useragent\");\nvar TextInput = acequire(\"./keyboard/textinput\").TextInput;\nvar MouseHandler = acequire(\"./mouse/mouse_handler\").MouseHandler;\nvar FoldHandler = acequire(\"./mouse/fold_handler\").FoldHandler;\nvar KeyBinding = acequire(\"./keyboard/keybinding\").KeyBinding;\nvar EditSession = acequire(\"./edit_session\").EditSession;\nvar Search = acequire(\"./search\").Search;\nvar Range = acequire(\"./range\").Range;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar CommandManager = acequire(\"./commands/command_manager\").CommandManager;\nvar defaultCommands = acequire(\"./commands/default_commands\").commands;\nvar config = acequire(\"./config\");\nvar TokenIterator = acequire(\"./token_iterator\").TokenIterator;\nvar Editor = function(renderer, session) {\n var container = renderer.getContainerElement();\n this.container = container;\n this.renderer = renderer;\n this.id = \"editor\" + (++Editor.$uid);\n\n this.commands = new CommandManager(useragent.isMac ? \"mac\" : \"win\", defaultCommands);\n if (typeof document == \"object\") {\n this.textInput = new TextInput(renderer.getTextAreaContainer(), this);\n this.renderer.textarea = this.textInput.getElement();\n this.$mouseHandler = new MouseHandler(this);\n new FoldHandler(this);\n }\n\n this.keyBinding = new KeyBinding(this);\n\n this.$blockScrolling = 0;\n this.$search = new Search().set({\n wrap: true\n });\n\n this.$historyTracker = this.$historyTracker.bind(this);\n this.commands.on(\"exec\", this.$historyTracker);\n\n this.$initOperationListeners();\n \n this._$emitInputEvent = lang.delayedCall(function() {\n this._signal(\"input\", {});\n if (this.session && this.session.bgTokenizer)\n this.session.bgTokenizer.scheduleStart();\n }.bind(this));\n \n this.on(\"change\", function(_, _self) {\n _self._$emitInputEvent.schedule(31);\n });\n\n this.setSession(session || new EditSession(\"\"));\n config.resetOptions(this);\n config._signal(\"editor\", this);\n};\n\nEditor.$uid = 0;\n\n(function(){\n\n oop.implement(this, EventEmitter);\n\n this.$initOperationListeners = function() {\n function last(a) {return a[a.length - 1];}\n\n this.selections = [];\n this.commands.on(\"exec\", this.startOperation.bind(this), true);\n this.commands.on(\"afterExec\", this.endOperation.bind(this), true);\n\n this.$opResetTimer = lang.delayedCall(this.endOperation.bind(this));\n\n this.on(\"change\", function() {\n this.curOp || this.startOperation();\n this.curOp.docChanged = true;\n }.bind(this), true);\n\n this.on(\"changeSelection\", function() {\n this.curOp || this.startOperation();\n this.curOp.selectionChanged = true;\n }.bind(this), true);\n };\n\n this.curOp = null;\n this.prevOp = {};\n this.startOperation = function(commadEvent) {\n if (this.curOp) {\n if (!commadEvent || this.curOp.command)\n return;\n this.prevOp = this.curOp;\n }\n if (!commadEvent) {\n this.previousCommand = null;\n commadEvent = {};\n }\n\n this.$opResetTimer.schedule();\n this.curOp = {\n command: commadEvent.command || {},\n args: commadEvent.args,\n scrollTop: this.renderer.scrollTop\n };\n if (this.curOp.command.name && this.curOp.command.scrollIntoView !== undefined)\n this.$blockScrolling++;\n };\n\n this.endOperation = function(e) {\n if (this.curOp) {\n if (e && e.returnValue === false)\n return this.curOp = null;\n this._signal(\"beforeEndOperation\");\n var command = this.curOp.command;\n if (command.name && this.$blockScrolling > 0)\n this.$blockScrolling--;\n var scrollIntoView = command && command.scrollIntoView;\n if (scrollIntoView) {\n switch (scrollIntoView) {\n case \"center-animate\":\n scrollIntoView = \"animate\";\n case \"center\":\n this.renderer.scrollCursorIntoView(null, 0.5);\n break;\n case \"animate\":\n case \"cursor\":\n this.renderer.scrollCursorIntoView();\n break;\n case \"selectionPart\":\n var range = this.selection.getRange();\n var config = this.renderer.layerConfig;\n if (range.start.row >= config.lastRow || range.end.row <= config.firstRow) {\n this.renderer.scrollSelectionIntoView(this.selection.anchor, this.selection.lead);\n }\n break;\n default:\n break;\n }\n if (scrollIntoView == \"animate\")\n this.renderer.animateScrolling(this.curOp.scrollTop);\n }\n \n this.prevOp = this.curOp;\n this.curOp = null;\n }\n };\n this.$mergeableCommands = [\"backspace\", \"del\", \"insertstring\"];\n this.$historyTracker = function(e) {\n if (!this.$mergeUndoDeltas)\n return;\n\n var prev = this.prevOp;\n var mergeableCommands = this.$mergeableCommands;\n var shouldMerge = prev.command && (e.command.name == prev.command.name);\n if (e.command.name == \"insertstring\") {\n var text = e.args;\n if (this.mergeNextCommand === undefined)\n this.mergeNextCommand = true;\n\n shouldMerge = shouldMerge\n && this.mergeNextCommand // previous command allows to coalesce with\n && (!/\\s/.test(text) || /\\s/.test(prev.args)); // previous insertion was of same type\n\n this.mergeNextCommand = true;\n } else {\n shouldMerge = shouldMerge\n && mergeableCommands.indexOf(e.command.name) !== -1; // the command is mergeable\n }\n\n if (\n this.$mergeUndoDeltas != \"always\"\n && Date.now() - this.sequenceStartTime > 2000\n ) {\n shouldMerge = false; // the sequence is too long\n }\n\n if (shouldMerge)\n this.session.mergeUndoDeltas = true;\n else if (mergeableCommands.indexOf(e.command.name) !== -1)\n this.sequenceStartTime = Date.now();\n };\n this.setKeyboardHandler = function(keyboardHandler, cb) {\n if (keyboardHandler && typeof keyboardHandler === \"string\") {\n this.$keybindingId = keyboardHandler;\n var _self = this;\n config.loadModule([\"keybinding\", keyboardHandler], function(module) {\n if (_self.$keybindingId == keyboardHandler)\n _self.keyBinding.setKeyboardHandler(module && module.handler);\n cb && cb();\n });\n } else {\n this.$keybindingId = null;\n this.keyBinding.setKeyboardHandler(keyboardHandler);\n cb && cb();\n }\n };\n this.getKeyboardHandler = function() {\n return this.keyBinding.getKeyboardHandler();\n };\n this.setSession = function(session) {\n if (this.session == session)\n return;\n if (this.curOp) this.endOperation();\n this.curOp = {};\n\n var oldSession = this.session;\n if (oldSession) {\n this.session.off(\"change\", this.$onDocumentChange);\n this.session.off(\"changeMode\", this.$onChangeMode);\n this.session.off(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.session.off(\"changeTabSize\", this.$onChangeTabSize);\n this.session.off(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.session.off(\"changeWrapMode\", this.$onChangeWrapMode);\n this.session.off(\"changeFold\", this.$onChangeFold);\n this.session.off(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.session.off(\"changeBackMarker\", this.$onChangeBackMarker);\n this.session.off(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.session.off(\"changeAnnotation\", this.$onChangeAnnotation);\n this.session.off(\"changeOverwrite\", this.$onCursorChange);\n this.session.off(\"changeScrollTop\", this.$onScrollTopChange);\n this.session.off(\"changeScrollLeft\", this.$onScrollLeftChange);\n\n var selection = this.session.getSelection();\n selection.off(\"changeCursor\", this.$onCursorChange);\n selection.off(\"changeSelection\", this.$onSelectionChange);\n }\n\n this.session = session;\n if (session) {\n this.$onDocumentChange = this.onDocumentChange.bind(this);\n session.on(\"change\", this.$onDocumentChange);\n this.renderer.setSession(session);\n \n this.$onChangeMode = this.onChangeMode.bind(this);\n session.on(\"changeMode\", this.$onChangeMode);\n \n this.$onTokenizerUpdate = this.onTokenizerUpdate.bind(this);\n session.on(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n \n this.$onChangeTabSize = this.renderer.onChangeTabSize.bind(this.renderer);\n session.on(\"changeTabSize\", this.$onChangeTabSize);\n \n this.$onChangeWrapLimit = this.onChangeWrapLimit.bind(this);\n session.on(\"changeWrapLimit\", this.$onChangeWrapLimit);\n \n this.$onChangeWrapMode = this.onChangeWrapMode.bind(this);\n session.on(\"changeWrapMode\", this.$onChangeWrapMode);\n \n this.$onChangeFold = this.onChangeFold.bind(this);\n session.on(\"changeFold\", this.$onChangeFold);\n \n this.$onChangeFrontMarker = this.onChangeFrontMarker.bind(this);\n this.session.on(\"changeFrontMarker\", this.$onChangeFrontMarker);\n \n this.$onChangeBackMarker = this.onChangeBackMarker.bind(this);\n this.session.on(\"changeBackMarker\", this.$onChangeBackMarker);\n \n this.$onChangeBreakpoint = this.onChangeBreakpoint.bind(this);\n this.session.on(\"changeBreakpoint\", this.$onChangeBreakpoint);\n \n this.$onChangeAnnotation = this.onChangeAnnotation.bind(this);\n this.session.on(\"changeAnnotation\", this.$onChangeAnnotation);\n \n this.$onCursorChange = this.onCursorChange.bind(this);\n this.session.on(\"changeOverwrite\", this.$onCursorChange);\n \n this.$onScrollTopChange = this.onScrollTopChange.bind(this);\n this.session.on(\"changeScrollTop\", this.$onScrollTopChange);\n \n this.$onScrollLeftChange = this.onScrollLeftChange.bind(this);\n this.session.on(\"changeScrollLeft\", this.$onScrollLeftChange);\n \n this.selection = session.getSelection();\n this.selection.on(\"changeCursor\", this.$onCursorChange);\n \n this.$onSelectionChange = this.onSelectionChange.bind(this);\n this.selection.on(\"changeSelection\", this.$onSelectionChange);\n \n this.onChangeMode();\n \n this.$blockScrolling += 1;\n this.onCursorChange();\n this.$blockScrolling -= 1;\n \n this.onScrollTopChange();\n this.onScrollLeftChange();\n this.onSelectionChange();\n this.onChangeFrontMarker();\n this.onChangeBackMarker();\n this.onChangeBreakpoint();\n this.onChangeAnnotation();\n this.session.getUseWrapMode() && this.renderer.adjustWrapLimit();\n this.renderer.updateFull();\n } else {\n this.selection = null;\n this.renderer.setSession(session);\n }\n\n this._signal(\"changeSession\", {\n session: session,\n oldSession: oldSession\n });\n \n this.curOp = null;\n \n oldSession && oldSession._signal(\"changeEditor\", {oldEditor: this});\n session && session._signal(\"changeEditor\", {editor: this});\n\n if (session && session.bgTokenizer)\n session.bgTokenizer.scheduleStart();\n };\n this.getSession = function() {\n return this.session;\n };\n this.setValue = function(val, cursorPos) {\n this.session.doc.setValue(val);\n\n if (!cursorPos)\n this.selectAll();\n else if (cursorPos == 1)\n this.navigateFileEnd();\n else if (cursorPos == -1)\n this.navigateFileStart();\n\n return val;\n };\n this.getValue = function() {\n return this.session.getValue();\n };\n this.getSelection = function() {\n return this.selection;\n };\n this.resize = function(force) {\n this.renderer.onResize(force);\n };\n this.setTheme = function(theme, cb) {\n this.renderer.setTheme(theme, cb);\n };\n this.getTheme = function() {\n return this.renderer.getTheme();\n };\n this.setStyle = function(style) {\n this.renderer.setStyle(style);\n };\n this.unsetStyle = function(style) {\n this.renderer.unsetStyle(style);\n };\n this.getFontSize = function () {\n return this.getOption(\"fontSize\") ||\n dom.computedStyle(this.container, \"fontSize\");\n };\n this.setFontSize = function(size) {\n this.setOption(\"fontSize\", size);\n };\n\n this.$highlightBrackets = function() {\n if (this.session.$bracketHighlight) {\n this.session.removeMarker(this.session.$bracketHighlight);\n this.session.$bracketHighlight = null;\n }\n\n if (this.$highlightPending) {\n return;\n }\n var self = this;\n this.$highlightPending = true;\n setTimeout(function() {\n self.$highlightPending = false;\n var session = self.session;\n if (!session || !session.bgTokenizer) return;\n var pos = session.findMatchingBracket(self.getCursorPosition());\n if (pos) {\n var range = new Range(pos.row, pos.column, pos.row, pos.column + 1);\n } else if (session.$mode.getMatching) {\n var range = session.$mode.getMatching(self.session);\n }\n if (range)\n session.$bracketHighlight = session.addMarker(range, \"ace_bracket\", \"text\");\n }, 50);\n };\n this.$highlightTags = function() {\n if (this.$highlightTagPending)\n return;\n var self = this;\n this.$highlightTagPending = true;\n setTimeout(function() {\n self.$highlightTagPending = false;\n \n var session = self.session;\n if (!session || !session.bgTokenizer) return;\n \n var pos = self.getCursorPosition();\n var iterator = new TokenIterator(self.session, pos.row, pos.column);\n var token = iterator.getCurrentToken();\n \n if (!token || !/\\b(?:tag-open|tag-name)/.test(token.type)) {\n session.removeMarker(session.$tagHighlight);\n session.$tagHighlight = null;\n return;\n }\n \n if (token.type.indexOf(\"tag-open\") != -1) {\n token = iterator.stepForward();\n if (!token)\n return;\n }\n \n var tag = token.value;\n var depth = 0;\n var prevToken = iterator.stepBackward();\n \n if (prevToken.value == '<'){\n do {\n prevToken = token;\n token = iterator.stepForward();\n \n if (token && token.value === tag && token.type.indexOf('tag-name') !== -1) {\n if (prevToken.value === '<'){\n depth++;\n } else if (prevToken.value === '= 0);\n } else {\n do {\n token = prevToken;\n prevToken = iterator.stepBackward();\n \n if (token && token.value === tag && token.type.indexOf('tag-name') !== -1) {\n if (prevToken.value === '<') {\n depth++;\n } else if (prevToken.value === ' 1))\n highlight = false;\n }\n\n if (session.$highlightLineMarker && !highlight) {\n session.removeMarker(session.$highlightLineMarker.id);\n session.$highlightLineMarker = null;\n } else if (!session.$highlightLineMarker && highlight) {\n var range = new Range(highlight.row, highlight.column, highlight.row, Infinity);\n range.id = session.addMarker(range, \"ace_active-line\", \"screenLine\");\n session.$highlightLineMarker = range;\n } else if (highlight) {\n session.$highlightLineMarker.start.row = highlight.row;\n session.$highlightLineMarker.end.row = highlight.row;\n session.$highlightLineMarker.start.column = highlight.column;\n session._signal(\"changeBackMarker\");\n }\n };\n\n this.onSelectionChange = function(e) {\n var session = this.session;\n\n if (session.$selectionMarker) {\n session.removeMarker(session.$selectionMarker);\n }\n session.$selectionMarker = null;\n\n if (!this.selection.isEmpty()) {\n var range = this.selection.getRange();\n var style = this.getSelectionStyle();\n session.$selectionMarker = session.addMarker(range, \"ace_selection\", style);\n } else {\n this.$updateHighlightActiveLine();\n }\n\n var re = this.$highlightSelectedWord && this.$getSelectionHighLightRegexp();\n this.session.highlight(re);\n\n this._signal(\"changeSelection\");\n };\n\n this.$getSelectionHighLightRegexp = function() {\n var session = this.session;\n\n var selection = this.getSelectionRange();\n if (selection.isEmpty() || selection.isMultiLine())\n return;\n\n var startOuter = selection.start.column - 1;\n var endOuter = selection.end.column + 1;\n var line = session.getLine(selection.start.row);\n var lineCols = line.length;\n var needle = line.substring(Math.max(startOuter, 0),\n Math.min(endOuter, lineCols));\n if ((startOuter >= 0 && /^[\\w\\d]/.test(needle)) ||\n (endOuter <= lineCols && /[\\w\\d]$/.test(needle)))\n return;\n\n needle = line.substring(selection.start.column, selection.end.column);\n if (!/^[\\w\\d]+$/.test(needle))\n return;\n\n var re = this.$search.$assembleRegExp({\n wholeWord: true,\n caseSensitive: true,\n needle: needle\n });\n\n return re;\n };\n\n\n this.onChangeFrontMarker = function() {\n this.renderer.updateFrontMarkers();\n };\n\n this.onChangeBackMarker = function() {\n this.renderer.updateBackMarkers();\n };\n\n\n this.onChangeBreakpoint = function() {\n this.renderer.updateBreakpoints();\n };\n\n this.onChangeAnnotation = function() {\n this.renderer.setAnnotations(this.session.getAnnotations());\n };\n\n\n this.onChangeMode = function(e) {\n this.renderer.updateText();\n this._emit(\"changeMode\", e);\n };\n\n\n this.onChangeWrapLimit = function() {\n this.renderer.updateFull();\n };\n\n this.onChangeWrapMode = function() {\n this.renderer.onResize(true);\n };\n\n\n this.onChangeFold = function() {\n this.$updateHighlightActiveLine();\n this.renderer.updateFull();\n };\n this.getSelectedText = function() {\n return this.session.getTextRange(this.getSelectionRange());\n };\n this.getCopyText = function() {\n var text = this.getSelectedText();\n this._signal(\"copy\", text);\n return text;\n };\n this.onCopy = function() {\n this.commands.exec(\"copy\", this);\n };\n this.onCut = function() {\n this.commands.exec(\"cut\", this);\n };\n this.onPaste = function(text, event) {\n var e = {text: text, event: event};\n this.commands.exec(\"paste\", this, e);\n };\n \n this.$handlePaste = function(e) {\n if (typeof e == \"string\") \n e = {text: e};\n this._signal(\"paste\", e);\n var text = e.text;\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode) {\n this.insert(text);\n } else {\n var lines = text.split(/\\r\\n|\\r|\\n/);\n var ranges = this.selection.rangeList.ranges;\n \n if (lines.length > ranges.length || lines.length < 2 || !lines[1])\n return this.commands.exec(\"insertstring\", this, text);\n \n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.isEmpty())\n this.session.remove(range);\n \n this.session.insert(range.start, lines[i]);\n }\n }\n };\n\n this.execCommand = function(command, args) {\n return this.commands.exec(command, this, args);\n };\n this.insert = function(text, pasted) {\n var session = this.session;\n var mode = session.getMode();\n var cursor = this.getCursorPosition();\n\n if (this.getBehavioursEnabled() && !pasted) {\n var transform = mode.transformAction(session.getState(cursor.row), 'insertion', this, session, text);\n if (transform) {\n if (text !== transform.text) {\n this.session.mergeUndoDeltas = false;\n this.$mergeNextCommand = false;\n }\n text = transform.text;\n\n }\n }\n \n if (text == \"\\t\")\n text = this.session.getTabString();\n if (!this.selection.isEmpty()) {\n var range = this.getSelectionRange();\n cursor = this.session.remove(range);\n this.clearSelection();\n }\n else if (this.session.getOverwrite() && text.indexOf(\"\\n\") == -1) {\n var range = new Range.fromPoints(cursor, cursor);\n range.end.column += text.length;\n this.session.remove(range);\n }\n\n if (text == \"\\n\" || text == \"\\r\\n\") {\n var line = session.getLine(cursor.row);\n if (cursor.column > line.search(/\\S|$/)) {\n var d = line.substr(cursor.column).search(/\\S|$/);\n session.doc.removeInLine(cursor.row, cursor.column, cursor.column + d);\n }\n }\n this.clearSelection();\n\n var start = cursor.column;\n var lineState = session.getState(cursor.row);\n var line = session.getLine(cursor.row);\n var shouldOutdent = mode.checkOutdent(lineState, line, text);\n var end = session.insert(cursor, text);\n\n if (transform && transform.selection) {\n if (transform.selection.length == 2) { // Transform relative to the current column\n this.selection.setSelectionRange(\n new Range(cursor.row, start + transform.selection[0],\n cursor.row, start + transform.selection[1]));\n } else { // Transform relative to the current row.\n this.selection.setSelectionRange(\n new Range(cursor.row + transform.selection[0],\n transform.selection[1],\n cursor.row + transform.selection[2],\n transform.selection[3]));\n }\n }\n\n if (session.getDocument().isNewLine(text)) {\n var lineIndent = mode.getNextLineIndent(lineState, line.slice(0, cursor.column), session.getTabString());\n\n session.insert({row: cursor.row+1, column: 0}, lineIndent);\n }\n if (shouldOutdent)\n mode.autoOutdent(lineState, session, cursor.row);\n };\n\n this.onTextInput = function(text) {\n this.keyBinding.onTextInput(text);\n };\n\n this.onCommandKey = function(e, hashId, keyCode) {\n this.keyBinding.onCommandKey(e, hashId, keyCode);\n };\n this.setOverwrite = function(overwrite) {\n this.session.setOverwrite(overwrite);\n };\n this.getOverwrite = function() {\n return this.session.getOverwrite();\n };\n this.toggleOverwrite = function() {\n this.session.toggleOverwrite();\n };\n this.setScrollSpeed = function(speed) {\n this.setOption(\"scrollSpeed\", speed);\n };\n this.getScrollSpeed = function() {\n return this.getOption(\"scrollSpeed\");\n };\n this.setDragDelay = function(dragDelay) {\n this.setOption(\"dragDelay\", dragDelay);\n };\n this.getDragDelay = function() {\n return this.getOption(\"dragDelay\");\n };\n this.setSelectionStyle = function(val) {\n this.setOption(\"selectionStyle\", val);\n };\n this.getSelectionStyle = function() {\n return this.getOption(\"selectionStyle\");\n };\n this.setHighlightActiveLine = function(shouldHighlight) {\n this.setOption(\"highlightActiveLine\", shouldHighlight);\n };\n this.getHighlightActiveLine = function() {\n return this.getOption(\"highlightActiveLine\");\n };\n this.setHighlightGutterLine = function(shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n\n this.getHighlightGutterLine = function() {\n return this.getOption(\"highlightGutterLine\");\n };\n this.setHighlightSelectedWord = function(shouldHighlight) {\n this.setOption(\"highlightSelectedWord\", shouldHighlight);\n };\n this.getHighlightSelectedWord = function() {\n return this.$highlightSelectedWord;\n };\n\n this.setAnimatedScroll = function(shouldAnimate){\n this.renderer.setAnimatedScroll(shouldAnimate);\n };\n\n this.getAnimatedScroll = function(){\n return this.renderer.getAnimatedScroll();\n };\n this.setShowInvisibles = function(showInvisibles) {\n this.renderer.setShowInvisibles(showInvisibles);\n };\n this.getShowInvisibles = function() {\n return this.renderer.getShowInvisibles();\n };\n\n this.setDisplayIndentGuides = function(display) {\n this.renderer.setDisplayIndentGuides(display);\n };\n\n this.getDisplayIndentGuides = function() {\n return this.renderer.getDisplayIndentGuides();\n };\n this.setShowPrintMargin = function(showPrintMargin) {\n this.renderer.setShowPrintMargin(showPrintMargin);\n };\n this.getShowPrintMargin = function() {\n return this.renderer.getShowPrintMargin();\n };\n this.setPrintMarginColumn = function(showPrintMargin) {\n this.renderer.setPrintMarginColumn(showPrintMargin);\n };\n this.getPrintMarginColumn = function() {\n return this.renderer.getPrintMarginColumn();\n };\n this.setReadOnly = function(readOnly) {\n this.setOption(\"readOnly\", readOnly);\n };\n this.getReadOnly = function() {\n return this.getOption(\"readOnly\");\n };\n this.setBehavioursEnabled = function (enabled) {\n this.setOption(\"behavioursEnabled\", enabled);\n };\n this.getBehavioursEnabled = function () {\n return this.getOption(\"behavioursEnabled\");\n };\n this.setWrapBehavioursEnabled = function (enabled) {\n this.setOption(\"wrapBehavioursEnabled\", enabled);\n };\n this.getWrapBehavioursEnabled = function () {\n return this.getOption(\"wrapBehavioursEnabled\");\n };\n this.setShowFoldWidgets = function(show) {\n this.setOption(\"showFoldWidgets\", show);\n\n };\n this.getShowFoldWidgets = function() {\n return this.getOption(\"showFoldWidgets\");\n };\n\n this.setFadeFoldWidgets = function(fade) {\n this.setOption(\"fadeFoldWidgets\", fade);\n };\n\n this.getFadeFoldWidgets = function() {\n return this.getOption(\"fadeFoldWidgets\");\n };\n this.remove = function(dir) {\n if (this.selection.isEmpty()){\n if (dir == \"left\")\n this.selection.selectLeft();\n else\n this.selection.selectRight();\n }\n\n var range = this.getSelectionRange();\n if (this.getBehavioursEnabled()) {\n var session = this.session;\n var state = session.getState(range.start.row);\n var new_range = session.getMode().transformAction(state, 'deletion', this, session, range);\n\n if (range.end.column === 0) {\n var text = session.getTextRange(range);\n if (text[text.length - 1] == \"\\n\") {\n var line = session.getLine(range.end.row);\n if (/^\\s+$/.test(line)) {\n range.end.column = line.length;\n }\n }\n }\n if (new_range)\n range = new_range;\n }\n\n this.session.remove(range);\n this.clearSelection();\n };\n this.removeWordRight = function() {\n if (this.selection.isEmpty())\n this.selection.selectWordRight();\n\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n this.removeWordLeft = function() {\n if (this.selection.isEmpty())\n this.selection.selectWordLeft();\n\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n this.removeToLineStart = function() {\n if (this.selection.isEmpty())\n this.selection.selectLineStart();\n\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n this.removeToLineEnd = function() {\n if (this.selection.isEmpty())\n this.selection.selectLineEnd();\n\n var range = this.getSelectionRange();\n if (range.start.column == range.end.column && range.start.row == range.end.row) {\n range.end.column = 0;\n range.end.row++;\n }\n\n this.session.remove(range);\n this.clearSelection();\n };\n this.splitLine = function() {\n if (!this.selection.isEmpty()) {\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n }\n\n var cursor = this.getCursorPosition();\n this.insert(\"\\n\");\n this.moveCursorToPosition(cursor);\n };\n this.transposeLetters = function() {\n if (!this.selection.isEmpty()) {\n return;\n }\n\n var cursor = this.getCursorPosition();\n var column = cursor.column;\n if (column === 0)\n return;\n\n var line = this.session.getLine(cursor.row);\n var swap, range;\n if (column < line.length) {\n swap = line.charAt(column) + line.charAt(column-1);\n range = new Range(cursor.row, column-1, cursor.row, column+1);\n }\n else {\n swap = line.charAt(column-1) + line.charAt(column-2);\n range = new Range(cursor.row, column-2, cursor.row, column);\n }\n this.session.replace(range, swap);\n this.session.selection.moveToPosition(range.end);\n };\n this.toLowerCase = function() {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toLowerCase());\n this.selection.setSelectionRange(originalRange);\n };\n this.toUpperCase = function() {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toUpperCase());\n this.selection.setSelectionRange(originalRange);\n };\n this.indent = function() {\n var session = this.session;\n var range = this.getSelectionRange();\n\n if (range.start.row < range.end.row) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n } else if (range.start.column < range.end.column) {\n var text = session.getTextRange(range);\n if (!/^\\s+$/.test(text)) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n }\n \n var line = session.getLine(range.start.row);\n var position = range.start;\n var size = session.getTabSize();\n var column = session.documentToScreenColumn(position.row, position.column);\n\n if (this.session.getUseSoftTabs()) {\n var count = (size - column % size);\n var indentString = lang.stringRepeat(\" \", count);\n } else {\n var count = column % size;\n while (line[range.start.column - 1] == \" \" && count) {\n range.start.column--;\n count--;\n }\n this.selection.setSelectionRange(range);\n indentString = \"\\t\";\n }\n return this.insert(indentString);\n };\n this.blockIndent = function() {\n var rows = this.$getSelectedRows();\n this.session.indentRows(rows.first, rows.last, \"\\t\");\n };\n this.blockOutdent = function() {\n var selection = this.session.getSelection();\n this.session.outdentRows(selection.getRange());\n };\n this.sortLines = function() {\n var rows = this.$getSelectedRows();\n var session = this.session;\n\n var lines = [];\n for (var i = rows.first; i <= rows.last; i++)\n lines.push(session.getLine(i));\n\n lines.sort(function(a, b) {\n if (a.toLowerCase() < b.toLowerCase()) return -1;\n if (a.toLowerCase() > b.toLowerCase()) return 1;\n return 0;\n });\n\n var deleteRange = new Range(0, 0, 0, 0);\n for (var i = rows.first; i <= rows.last; i++) {\n var line = session.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n deleteRange.end.column = line.length;\n session.replace(deleteRange, lines[i-rows.first]);\n }\n };\n this.toggleCommentLines = function() {\n var state = this.session.getState(this.getCursorPosition().row);\n var rows = this.$getSelectedRows();\n this.session.getMode().toggleCommentLines(state, this.session, rows.first, rows.last);\n };\n\n this.toggleBlockComment = function() {\n var cursor = this.getCursorPosition();\n var state = this.session.getState(cursor.row);\n var range = this.getSelectionRange();\n this.session.getMode().toggleBlockComment(state, this.session, range, cursor);\n };\n this.getNumberAt = function(row, column) {\n var _numberRx = /[\\-]?[0-9]+(?:\\.[0-9]+)?/g;\n _numberRx.lastIndex = 0;\n\n var s = this.session.getLine(row);\n while (_numberRx.lastIndex < column) {\n var m = _numberRx.exec(s);\n if(m.index <= column && m.index+m[0].length >= column){\n var number = {\n value: m[0],\n start: m.index,\n end: m.index+m[0].length\n };\n return number;\n }\n }\n return null;\n };\n this.modifyNumber = function(amount) {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n var charRange = new Range(row, column-1, row, column);\n\n var c = this.session.getTextRange(charRange);\n if (!isNaN(parseFloat(c)) && isFinite(c)) {\n var nr = this.getNumberAt(row, column);\n if (nr) {\n var fp = nr.value.indexOf(\".\") >= 0 ? nr.start + nr.value.indexOf(\".\") + 1 : nr.end;\n var decimals = nr.start + nr.value.length - fp;\n\n var t = parseFloat(nr.value);\n t *= Math.pow(10, decimals);\n\n\n if(fp !== nr.end && column < fp){\n amount *= Math.pow(10, nr.end - column - 1);\n } else {\n amount *= Math.pow(10, nr.end - column);\n }\n\n t += amount;\n t /= Math.pow(10, decimals);\n var nnr = t.toFixed(decimals);\n var replaceRange = new Range(row, nr.start, row, nr.end);\n this.session.replace(replaceRange, nnr);\n this.moveCursorTo(row, Math.max(nr.start +1, column + nnr.length - nr.value.length));\n\n }\n }\n };\n this.removeLines = function() {\n var rows = this.$getSelectedRows();\n this.session.removeFullLines(rows.first, rows.last);\n this.clearSelection();\n };\n\n this.duplicateSelection = function() {\n var sel = this.selection;\n var doc = this.session;\n var range = sel.getRange();\n var reverse = sel.isBackwards();\n if (range.isEmpty()) {\n var row = range.start.row;\n doc.duplicateLines(row, row);\n } else {\n var point = reverse ? range.start : range.end;\n var endPoint = doc.insert(point, doc.getTextRange(range), false);\n range.start = point;\n range.end = endPoint;\n\n sel.setSelectionRange(range, reverse);\n }\n };\n this.moveLinesDown = function() {\n this.$moveLines(1, false);\n };\n this.moveLinesUp = function() {\n this.$moveLines(-1, false);\n };\n this.moveText = function(range, toPosition, copy) {\n return this.session.moveText(range, toPosition, copy);\n };\n this.copyLinesUp = function() {\n this.$moveLines(-1, true);\n };\n this.copyLinesDown = function() {\n this.$moveLines(1, true);\n };\n this.$moveLines = function(dir, copy) {\n var rows, moved;\n var selection = this.selection;\n if (!selection.inMultiSelectMode || this.inVirtualSelectionMode) {\n var range = selection.toOrientedRange();\n rows = this.$getSelectedRows(range);\n moved = this.session.$moveLines(rows.first, rows.last, copy ? 0 : dir);\n if (copy && dir == -1) moved = 0;\n range.moveBy(moved, 0);\n selection.fromOrientedRange(range);\n } else {\n var ranges = selection.rangeList.ranges;\n selection.rangeList.detach(this.session);\n this.inVirtualSelectionMode = true;\n \n var diff = 0;\n var totalDiff = 0;\n var l = ranges.length;\n for (var i = 0; i < l; i++) {\n var rangeIndex = i;\n ranges[i].moveBy(diff, 0);\n rows = this.$getSelectedRows(ranges[i]);\n var first = rows.first;\n var last = rows.last;\n while (++i < l) {\n if (totalDiff) ranges[i].moveBy(totalDiff, 0);\n var subRows = this.$getSelectedRows(ranges[i]);\n if (copy && subRows.first != last)\n break;\n else if (!copy && subRows.first > last + 1)\n break;\n last = subRows.last;\n }\n i--;\n diff = this.session.$moveLines(first, last, copy ? 0 : dir);\n if (copy && dir == -1) rangeIndex = i + 1;\n while (rangeIndex <= i) {\n ranges[rangeIndex].moveBy(diff, 0);\n rangeIndex++;\n }\n if (!copy) diff = 0;\n totalDiff += diff;\n }\n \n selection.fromOrientedRange(selection.ranges[0]);\n selection.rangeList.attach(this.session);\n this.inVirtualSelectionMode = false;\n }\n };\n this.$getSelectedRows = function(range) {\n range = (range || this.getSelectionRange()).collapseRows();\n\n return {\n first: this.session.getRowFoldStart(range.start.row),\n last: this.session.getRowFoldEnd(range.end.row)\n };\n };\n\n this.onCompositionStart = function(text) {\n this.renderer.showComposition(this.getCursorPosition());\n };\n\n this.onCompositionUpdate = function(text) {\n this.renderer.setCompositionText(text);\n };\n\n this.onCompositionEnd = function() {\n this.renderer.hideComposition();\n };\n this.getFirstVisibleRow = function() {\n return this.renderer.getFirstVisibleRow();\n };\n this.getLastVisibleRow = function() {\n return this.renderer.getLastVisibleRow();\n };\n this.isRowVisible = function(row) {\n return (row >= this.getFirstVisibleRow() && row <= this.getLastVisibleRow());\n };\n this.isRowFullyVisible = function(row) {\n return (row >= this.renderer.getFirstFullyVisibleRow() && row <= this.renderer.getLastFullyVisibleRow());\n };\n this.$getVisibleRowCount = function() {\n return this.renderer.getScrollBottomRow() - this.renderer.getScrollTopRow() + 1;\n };\n\n this.$moveByPage = function(dir, select) {\n var renderer = this.renderer;\n var config = this.renderer.layerConfig;\n var rows = dir * Math.floor(config.height / config.lineHeight);\n\n this.$blockScrolling++;\n if (select === true) {\n this.selection.$moveSelection(function(){\n this.moveCursorBy(rows, 0);\n });\n } else if (select === false) {\n this.selection.moveCursorBy(rows, 0);\n this.selection.clearSelection();\n }\n this.$blockScrolling--;\n\n var scrollTop = renderer.scrollTop;\n\n renderer.scrollBy(0, rows * config.lineHeight);\n if (select != null)\n renderer.scrollCursorIntoView(null, 0.5);\n\n renderer.animateScrolling(scrollTop);\n };\n this.selectPageDown = function() {\n this.$moveByPage(1, true);\n };\n this.selectPageUp = function() {\n this.$moveByPage(-1, true);\n };\n this.gotoPageDown = function() {\n this.$moveByPage(1, false);\n };\n this.gotoPageUp = function() {\n this.$moveByPage(-1, false);\n };\n this.scrollPageDown = function() {\n this.$moveByPage(1);\n };\n this.scrollPageUp = function() {\n this.$moveByPage(-1);\n };\n this.scrollToRow = function(row) {\n this.renderer.scrollToRow(row);\n };\n this.scrollToLine = function(line, center, animate, callback) {\n this.renderer.scrollToLine(line, center, animate, callback);\n };\n this.centerSelection = function() {\n var range = this.getSelectionRange();\n var pos = {\n row: Math.floor(range.start.row + (range.end.row - range.start.row) / 2),\n column: Math.floor(range.start.column + (range.end.column - range.start.column) / 2)\n };\n this.renderer.alignCursor(pos, 0.5);\n };\n this.getCursorPosition = function() {\n return this.selection.getCursor();\n };\n this.getCursorPositionScreen = function() {\n return this.session.documentToScreenPosition(this.getCursorPosition());\n };\n this.getSelectionRange = function() {\n return this.selection.getRange();\n };\n this.selectAll = function() {\n this.$blockScrolling += 1;\n this.selection.selectAll();\n this.$blockScrolling -= 1;\n };\n this.clearSelection = function() {\n this.selection.clearSelection();\n };\n this.moveCursorTo = function(row, column) {\n this.selection.moveCursorTo(row, column);\n };\n this.moveCursorToPosition = function(pos) {\n this.selection.moveCursorToPosition(pos);\n };\n this.jumpToMatching = function(select, expand) {\n var cursor = this.getCursorPosition();\n var iterator = new TokenIterator(this.session, cursor.row, cursor.column);\n var prevToken = iterator.getCurrentToken();\n var token = prevToken || iterator.stepForward();\n\n if (!token) return;\n var matchType;\n var found = false;\n var depth = {};\n var i = cursor.column - token.start;\n var bracketType;\n var brackets = {\n \")\": \"(\",\n \"(\": \"(\",\n \"]\": \"[\",\n \"[\": \"[\",\n \"{\": \"{\",\n \"}\": \"{\"\n };\n \n do {\n if (token.value.match(/[{}()\\[\\]]/g)) {\n for (; i < token.value.length && !found; i++) {\n if (!brackets[token.value[i]]) {\n continue;\n }\n\n bracketType = brackets[token.value[i]] + '.' + token.type.replace(\"rparen\", \"lparen\");\n\n if (isNaN(depth[bracketType])) {\n depth[bracketType] = 0;\n }\n\n switch (token.value[i]) {\n case '(':\n case '[':\n case '{':\n depth[bracketType]++;\n break;\n case ')':\n case ']':\n case '}':\n depth[bracketType]--;\n\n if (depth[bracketType] === -1) {\n matchType = 'bracket';\n found = true;\n }\n break;\n }\n }\n }\n else if (token && token.type.indexOf('tag-name') !== -1) {\n if (isNaN(depth[token.value])) {\n depth[token.value] = 0;\n }\n \n if (prevToken.value === '<') {\n depth[token.value]++;\n }\n else if (prevToken.value === '= 0; --i) {\n if(this.$tryReplace(ranges[i], replacement)) {\n replaced++;\n }\n }\n\n this.selection.setSelectionRange(selection);\n this.$blockScrolling -= 1;\n\n return replaced;\n };\n\n this.$tryReplace = function(range, replacement) {\n var input = this.session.getTextRange(range);\n replacement = this.$search.replace(input, replacement);\n if (replacement !== null) {\n range.end = this.session.replace(range, replacement);\n return range;\n } else {\n return null;\n }\n };\n this.getLastSearchOptions = function() {\n return this.$search.getOptions();\n };\n this.find = function(needle, options, animate) {\n if (!options)\n options = {};\n\n if (typeof needle == \"string\" || needle instanceof RegExp)\n options.needle = needle;\n else if (typeof needle == \"object\")\n oop.mixin(options, needle);\n\n var range = this.selection.getRange();\n if (options.needle == null) {\n needle = this.session.getTextRange(range)\n || this.$search.$options.needle;\n if (!needle) {\n range = this.session.getWordRange(range.start.row, range.start.column);\n needle = this.session.getTextRange(range);\n }\n this.$search.set({needle: needle});\n }\n\n this.$search.set(options);\n if (!options.start)\n this.$search.set({start: range});\n\n var newRange = this.$search.find(this.session);\n if (options.preventScroll)\n return newRange;\n if (newRange) {\n this.revealRange(newRange, animate);\n return newRange;\n }\n if (options.backwards)\n range.start = range.end;\n else\n range.end = range.start;\n this.selection.setRange(range);\n };\n this.findNext = function(options, animate) {\n this.find({skipCurrent: true, backwards: false}, options, animate);\n };\n this.findPrevious = function(options, animate) {\n this.find(options, {skipCurrent: true, backwards: true}, animate);\n };\n\n this.revealRange = function(range, animate) {\n this.$blockScrolling += 1;\n this.session.unfold(range);\n this.selection.setSelectionRange(range);\n this.$blockScrolling -= 1;\n\n var scrollTop = this.renderer.scrollTop;\n this.renderer.scrollSelectionIntoView(range.start, range.end, 0.5);\n if (animate !== false)\n this.renderer.animateScrolling(scrollTop);\n };\n this.undo = function() {\n this.$blockScrolling++;\n this.session.getUndoManager().undo();\n this.$blockScrolling--;\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n this.redo = function() {\n this.$blockScrolling++;\n this.session.getUndoManager().redo();\n this.$blockScrolling--;\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n this.destroy = function() {\n this.renderer.destroy();\n this._signal(\"destroy\", this);\n if (this.session) {\n this.session.destroy();\n }\n };\n this.setAutoScrollEditorIntoView = function(enable) {\n if (!enable)\n return;\n var rect;\n var self = this;\n var shouldScroll = false;\n if (!this.$scrollAnchor)\n this.$scrollAnchor = document.createElement(\"div\");\n var scrollAnchor = this.$scrollAnchor;\n scrollAnchor.style.cssText = \"position:absolute\";\n this.container.insertBefore(scrollAnchor, this.container.firstChild);\n var onChangeSelection = this.on(\"changeSelection\", function() {\n shouldScroll = true;\n });\n var onBeforeRender = this.renderer.on(\"beforeRender\", function() {\n if (shouldScroll)\n rect = self.renderer.container.getBoundingClientRect();\n });\n var onAfterRender = this.renderer.on(\"afterRender\", function() {\n if (shouldScroll && rect && (self.isFocused()\n || self.searchBox && self.searchBox.isFocused())\n ) {\n var renderer = self.renderer;\n var pos = renderer.$cursorLayer.$pixelPos;\n var config = renderer.layerConfig;\n var top = pos.top - config.offset;\n if (pos.top >= 0 && top + rect.top < 0) {\n shouldScroll = true;\n } else if (pos.top < config.height &&\n pos.top + rect.top + config.lineHeight > window.innerHeight) {\n shouldScroll = false;\n } else {\n shouldScroll = null;\n }\n if (shouldScroll != null) {\n scrollAnchor.style.top = top + \"px\";\n scrollAnchor.style.left = pos.left + \"px\";\n scrollAnchor.style.height = config.lineHeight + \"px\";\n scrollAnchor.scrollIntoView(shouldScroll);\n }\n shouldScroll = rect = null;\n }\n });\n this.setAutoScrollEditorIntoView = function(enable) {\n if (enable)\n return;\n delete this.setAutoScrollEditorIntoView;\n this.off(\"changeSelection\", onChangeSelection);\n this.renderer.off(\"afterRender\", onAfterRender);\n this.renderer.off(\"beforeRender\", onBeforeRender);\n };\n };\n\n\n this.$resetCursorStyle = function() {\n var style = this.$cursorStyle || \"ace\";\n var cursorLayer = this.renderer.$cursorLayer;\n if (!cursorLayer)\n return;\n cursorLayer.setSmoothBlinking(/smooth/.test(style));\n cursorLayer.isBlinking = !this.$readOnly && style != \"wide\";\n dom.setCssClass(cursorLayer.element, \"ace_slim-cursors\", /slim/.test(style));\n };\n\n}).call(Editor.prototype);\n\n\n\nconfig.defineOptions(Editor.prototype, \"editor\", {\n selectionStyle: {\n set: function(style) {\n this.onSelectionChange();\n this._signal(\"changeSelectionStyle\", {data: style});\n },\n initialValue: \"line\"\n },\n highlightActiveLine: {\n set: function() {this.$updateHighlightActiveLine();},\n initialValue: true\n },\n highlightSelectedWord: {\n set: function(shouldHighlight) {this.$onSelectionChange();},\n initialValue: true\n },\n readOnly: {\n set: function(readOnly) {\n this.$resetCursorStyle(); \n },\n initialValue: false\n },\n cursorStyle: {\n set: function(val) { this.$resetCursorStyle(); },\n values: [\"ace\", \"slim\", \"smooth\", \"wide\"],\n initialValue: \"ace\"\n },\n mergeUndoDeltas: {\n values: [false, true, \"always\"],\n initialValue: true\n },\n behavioursEnabled: {initialValue: true},\n wrapBehavioursEnabled: {initialValue: true},\n autoScrollEditorIntoView: {\n set: function(val) {this.setAutoScrollEditorIntoView(val);}\n },\n keyboardHandler: {\n set: function(val) { this.setKeyboardHandler(val); },\n get: function() { return this.keybindingId; },\n handlesSet: true\n },\n\n hScrollBarAlwaysVisible: \"renderer\",\n vScrollBarAlwaysVisible: \"renderer\",\n highlightGutterLine: \"renderer\",\n animatedScroll: \"renderer\",\n showInvisibles: \"renderer\",\n showPrintMargin: \"renderer\",\n printMarginColumn: \"renderer\",\n printMargin: \"renderer\",\n fadeFoldWidgets: \"renderer\",\n showFoldWidgets: \"renderer\",\n showLineNumbers: \"renderer\",\n showGutter: \"renderer\",\n displayIndentGuides: \"renderer\",\n fontSize: \"renderer\",\n fontFamily: \"renderer\",\n maxLines: \"renderer\",\n minLines: \"renderer\",\n scrollPastEnd: \"renderer\",\n fixedWidthGutter: \"renderer\",\n theme: \"renderer\",\n\n scrollSpeed: \"$mouseHandler\",\n dragDelay: \"$mouseHandler\",\n dragEnabled: \"$mouseHandler\",\n focusTimout: \"$mouseHandler\",\n tooltipFollowsMouse: \"$mouseHandler\",\n\n firstLineNumber: \"session\",\n overwrite: \"session\",\n newLineMode: \"session\",\n useWorker: \"session\",\n useSoftTabs: \"session\",\n tabSize: \"session\",\n wrap: \"session\",\n indentedSoftWrap: \"session\",\n foldStyle: \"session\",\n mode: \"session\"\n});\n\nexports.Editor = Editor;\n});\n\nace.define(\"ace/undomanager\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nvar UndoManager = function() {\n this.reset();\n};\n\n(function() {\n this.execute = function(options) {\n var deltaSets = options.args[0];\n this.$doc = options.args[1];\n if (options.merge && this.hasUndo()){\n this.dirtyCounter--;\n deltaSets = this.$undoStack.pop().concat(deltaSets);\n }\n this.$undoStack.push(deltaSets);\n this.$redoStack = [];\n if (this.dirtyCounter < 0) {\n this.dirtyCounter = NaN;\n }\n this.dirtyCounter++;\n };\n this.undo = function(dontSelect) {\n var deltaSets = this.$undoStack.pop();\n var undoSelectionRange = null;\n if (deltaSets) {\n undoSelectionRange = this.$doc.undoChanges(deltaSets, dontSelect);\n this.$redoStack.push(deltaSets);\n this.dirtyCounter--;\n }\n\n return undoSelectionRange;\n };\n this.redo = function(dontSelect) {\n var deltaSets = this.$redoStack.pop();\n var redoSelectionRange = null;\n if (deltaSets) {\n redoSelectionRange =\n this.$doc.redoChanges(this.$deserializeDeltas(deltaSets), dontSelect);\n this.$undoStack.push(deltaSets);\n this.dirtyCounter++;\n }\n return redoSelectionRange;\n };\n this.reset = function() {\n this.$undoStack = [];\n this.$redoStack = [];\n this.dirtyCounter = 0;\n };\n this.hasUndo = function() {\n return this.$undoStack.length > 0;\n };\n this.hasRedo = function() {\n return this.$redoStack.length > 0;\n };\n this.markClean = function() {\n this.dirtyCounter = 0;\n };\n this.isClean = function() {\n return this.dirtyCounter === 0;\n };\n this.$serializeDeltas = function(deltaSets) {\n return cloneDeltaSetsObj(deltaSets, $serializeDelta);\n };\n this.$deserializeDeltas = function(deltaSets) {\n return cloneDeltaSetsObj(deltaSets, $deserializeDelta);\n };\n \n function $serializeDelta(delta){\n return {\n action: delta.action,\n start: delta.start,\n end: delta.end,\n lines: delta.lines.length == 1 ? null : delta.lines,\n text: delta.lines.length == 1 ? delta.lines[0] : null\n };\n }\n \n function $deserializeDelta(delta) {\n return {\n action: delta.action,\n start: delta.start,\n end: delta.end,\n lines: delta.lines || [delta.text]\n };\n }\n \n function cloneDeltaSetsObj(deltaSets_old, fnGetModifiedDelta) {\n var deltaSets_new = new Array(deltaSets_old.length);\n for (var i = 0; i < deltaSets_old.length; i++) {\n var deltaSet_old = deltaSets_old[i];\n var deltaSet_new = { group: deltaSet_old.group, deltas: new Array(deltaSet_old.length)};\n \n for (var j = 0; j < deltaSet_old.deltas.length; j++) {\n var delta_old = deltaSet_old.deltas[j];\n deltaSet_new.deltas[j] = fnGetModifiedDelta(delta_old);\n }\n \n deltaSets_new[i] = deltaSet_new;\n }\n return deltaSets_new;\n }\n \n}).call(UndoManager.prototype);\n\nexports.UndoManager = UndoManager;\n});\n\nace.define(\"ace/layer/gutter\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar oop = acequire(\"../lib/oop\");\nvar lang = acequire(\"../lib/lang\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar Gutter = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_gutter-layer\";\n parentEl.appendChild(this.element);\n this.setShowFoldWidgets(this.$showFoldWidgets);\n \n this.gutterWidth = 0;\n\n this.$annotations = [];\n this.$updateAnnotations = this.$updateAnnotations.bind(this);\n\n this.$cells = [];\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n\n this.setSession = function(session) {\n if (this.session)\n this.session.removeEventListener(\"change\", this.$updateAnnotations);\n this.session = session;\n if (session)\n session.on(\"change\", this.$updateAnnotations);\n };\n\n this.addGutterDecoration = function(row, className){\n if (window.console)\n console.warn && console.warn(\"deprecated use session.addGutterDecoration\");\n this.session.addGutterDecoration(row, className);\n };\n\n this.removeGutterDecoration = function(row, className){\n if (window.console)\n console.warn && console.warn(\"deprecated use session.removeGutterDecoration\");\n this.session.removeGutterDecoration(row, className);\n };\n\n this.setAnnotations = function(annotations) {\n this.$annotations = [];\n for (var i = 0; i < annotations.length; i++) {\n var annotation = annotations[i];\n var row = annotation.row;\n var rowInfo = this.$annotations[row];\n if (!rowInfo)\n rowInfo = this.$annotations[row] = {text: []};\n \n var annoText = annotation.text;\n annoText = annoText ? lang.escapeHTML(annoText) : annotation.html || \"\";\n\n if (rowInfo.text.indexOf(annoText) === -1)\n rowInfo.text.push(annoText);\n\n var type = annotation.type;\n if (type == \"error\")\n rowInfo.className = \" ace_error\";\n else if (type == \"warning\" && rowInfo.className != \" ace_error\")\n rowInfo.className = \" ace_warning\";\n else if (type == \"info\" && (!rowInfo.className))\n rowInfo.className = \" ace_info\";\n }\n };\n\n this.$updateAnnotations = function (delta) {\n if (!this.$annotations.length)\n return;\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n } else if (delta.action == 'remove') {\n this.$annotations.splice(firstRow, len + 1, null);\n } else {\n var args = new Array(len + 1);\n args.unshift(firstRow, 1);\n this.$annotations.splice.apply(this.$annotations, args);\n }\n };\n\n this.update = function(config) {\n var session = this.session;\n var firstRow = config.firstRow;\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n session.getLength() - 1);\n var fold = session.getNextFoldLine(firstRow);\n var foldStart = fold ? fold.start.row : Infinity;\n var foldWidgets = this.$showFoldWidgets && session.foldWidgets;\n var breakpoints = session.$breakpoints;\n var decorations = session.$decorations;\n var firstLineNumber = session.$firstLineNumber;\n var lastLineNumber = 0;\n \n var gutterRenderer = session.gutterRenderer || this.$renderer;\n\n var cell = null;\n var index = -1;\n var row = firstRow;\n while (true) {\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = session.getNextFoldLine(row, fold);\n foldStart = fold ? fold.start.row : Infinity;\n }\n if (row > lastRow) {\n while (this.$cells.length > index + 1) {\n cell = this.$cells.pop();\n this.element.removeChild(cell.element);\n }\n break;\n }\n\n cell = this.$cells[++index];\n if (!cell) {\n cell = {element: null, textNode: null, foldWidget: null};\n cell.element = dom.createElement(\"div\");\n cell.textNode = document.createTextNode('');\n cell.element.appendChild(cell.textNode);\n this.element.appendChild(cell.element);\n this.$cells[index] = cell;\n }\n\n var className = \"ace_gutter-cell \";\n if (breakpoints[row])\n className += breakpoints[row];\n if (decorations[row])\n className += decorations[row];\n if (this.$annotations[row])\n className += this.$annotations[row].className;\n if (cell.element.className != className)\n cell.element.className = className;\n\n var height = session.getRowLength(row) * config.lineHeight + \"px\";\n if (height != cell.element.style.height)\n cell.element.style.height = height;\n\n if (foldWidgets) {\n var c = foldWidgets[row];\n if (c == null)\n c = foldWidgets[row] = session.getFoldWidget(row);\n }\n\n if (c) {\n if (!cell.foldWidget) {\n cell.foldWidget = dom.createElement(\"span\");\n cell.element.appendChild(cell.foldWidget);\n }\n var className = \"ace_fold-widget ace_\" + c;\n if (c == \"start\" && row == foldStart && row < fold.end.row)\n className += \" ace_closed\";\n else\n className += \" ace_open\";\n if (cell.foldWidget.className != className)\n cell.foldWidget.className = className;\n\n var height = config.lineHeight + \"px\";\n if (cell.foldWidget.style.height != height)\n cell.foldWidget.style.height = height;\n } else {\n if (cell.foldWidget) {\n cell.element.removeChild(cell.foldWidget);\n cell.foldWidget = null;\n }\n }\n \n var text = lastLineNumber = gutterRenderer\n ? gutterRenderer.getText(session, row)\n : row + firstLineNumber;\n if (text !== cell.textNode.data)\n cell.textNode.data = text;\n\n row++;\n }\n\n this.element.style.height = config.minHeight + \"px\";\n\n if (this.$fixedWidth || session.$useWrapMode)\n lastLineNumber = session.getLength() + firstLineNumber;\n\n var gutterWidth = gutterRenderer \n ? gutterRenderer.getWidth(session, lastLineNumber, config)\n : lastLineNumber.toString().length * config.characterWidth;\n \n var padding = this.$padding || this.$computePadding();\n gutterWidth += padding.left + padding.right;\n if (gutterWidth !== this.gutterWidth && !isNaN(gutterWidth)) {\n this.gutterWidth = gutterWidth;\n this.element.style.width = Math.ceil(this.gutterWidth) + \"px\";\n this._emit(\"changeGutterWidth\", gutterWidth);\n }\n };\n\n this.$fixedWidth = false;\n \n this.$showLineNumbers = true;\n this.$renderer = \"\";\n this.setShowLineNumbers = function(show) {\n this.$renderer = !show && {\n getWidth: function() {return \"\";},\n getText: function() {return \"\";}\n };\n };\n \n this.getShowLineNumbers = function() {\n return this.$showLineNumbers;\n };\n \n this.$showFoldWidgets = true;\n this.setShowFoldWidgets = function(show) {\n if (show)\n dom.addCssClass(this.element, \"ace_folding-enabled\");\n else\n dom.removeCssClass(this.element, \"ace_folding-enabled\");\n\n this.$showFoldWidgets = show;\n this.$padding = null;\n };\n \n this.getShowFoldWidgets = function() {\n return this.$showFoldWidgets;\n };\n\n this.$computePadding = function() {\n if (!this.element.firstChild)\n return {left: 0, right: 0};\n var style = dom.computedStyle(this.element.firstChild);\n this.$padding = {};\n this.$padding.left = parseInt(style.paddingLeft) + 1 || 0;\n this.$padding.right = parseInt(style.paddingRight) || 0;\n return this.$padding;\n };\n\n this.getRegion = function(point) {\n var padding = this.$padding || this.$computePadding();\n var rect = this.element.getBoundingClientRect();\n if (point.x < padding.left + rect.left)\n return \"markers\";\n if (this.$showFoldWidgets && point.x > rect.right - padding.right)\n return \"foldWidgets\";\n };\n\n}).call(Gutter.prototype);\n\nexports.Gutter = Gutter;\n\n});\n\nace.define(\"ace/layer/marker\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nvar dom = acequire(\"../lib/dom\");\n\nvar Marker = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_marker-layer\";\n parentEl.appendChild(this.element);\n};\n\n(function() {\n\n this.$padding = 0;\n\n this.setPadding = function(padding) {\n this.$padding = padding;\n };\n this.setSession = function(session) {\n this.session = session;\n };\n \n this.setMarkers = function(markers) {\n this.markers = markers;\n };\n\n this.update = function(config) {\n if (!config) return;\n\n this.config = config;\n\n\n var html = [];\n for (var key in this.markers) {\n var marker = this.markers[key];\n\n if (!marker.range) {\n marker.update(html, this, this.session, config);\n continue;\n }\n\n var range = marker.range.clipRows(config.firstRow, config.lastRow);\n if (range.isEmpty()) continue;\n\n range = range.toScreenRange(this.session);\n if (marker.renderer) {\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + (this.session.$bidiHandler.isBidiRow(range.start.row)\n ? this.session.$bidiHandler.getPosLeft(range.start.column)\n : range.start.column * config.characterWidth);\n marker.renderer(html, range, left, top, config);\n } else if (marker.type == \"fullLine\") {\n this.drawFullLineMarker(html, range, marker.clazz, config);\n } else if (marker.type == \"screenLine\") {\n this.drawScreenLineMarker(html, range, marker.clazz, config);\n } else if (range.isMultiLine()) {\n if (marker.type == \"text\")\n this.drawTextMarker(html, range, marker.clazz, config);\n else\n this.drawMultiLineMarker(html, range, marker.clazz, config);\n } else {\n if (this.session.$bidiHandler.isBidiRow(range.start.row)) {\n this.drawBidiSingleLineMarker(html, range, marker.clazz + \" ace_start\" + \" ace_br15\", config);\n } else {\n this.drawSingleLineMarker(html, range, marker.clazz + \" ace_start\" + \" ace_br15\", config);\n }\n }\n }\n this.element.innerHTML = html.join(\"\");\n };\n\n this.$getTop = function(row, layerConfig) {\n return (row - layerConfig.firstRowScreen) * layerConfig.lineHeight;\n };\n\n function getBorderClass(tl, tr, br, bl) {\n return (tl ? 1 : 0) | (tr ? 2 : 0) | (br ? 4 : 0) | (bl ? 8 : 0);\n }\n this.drawTextMarker = function(stringBuilder, range, clazz, layerConfig, extraStyle) {\n var session = this.session;\n var start = range.start.row;\n var end = range.end.row;\n var row = start;\n var prev = 0; \n var curr = 0;\n var next = session.getScreenLastRowColumn(row);\n var clazzModified = null;\n var lineRange = new Range(row, range.start.column, row, curr);\n for (; row <= end; row++) {\n lineRange.start.row = lineRange.end.row = row;\n lineRange.start.column = row == start ? range.start.column : session.getRowWrapIndent(row);\n lineRange.end.column = next;\n prev = curr;\n curr = next;\n next = row + 1 < end ? session.getScreenLastRowColumn(row + 1) : row == end ? 0 : range.end.column;\n clazzModified = clazz + (row == start ? \" ace_start\" : \"\") + \" ace_br\"\n + getBorderClass(row == start || row == start + 1 && range.start.column, prev < curr, curr > next, row == end);\n\n if (this.session.$bidiHandler.isBidiRow(row)) {\n this.drawBidiSingleLineMarker(stringBuilder, lineRange, clazzModified,\n layerConfig, row == end ? 0 : 1, extraStyle);\n } else {\n this.drawSingleLineMarker(stringBuilder, lineRange, clazzModified,\n layerConfig, row == end ? 0 : 1, extraStyle);\n }\n }\n };\n this.drawMultiLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n var padding = this.$padding;\n var height, top, left;\n extraStyle = extraStyle || \"\";\n if (this.session.$bidiHandler.isBidiRow(range.start.row)) {\n var range1 = range.clone();\n range1.end.row = range1.start.row;\n range1.end.column = this.session.getLine(range1.start.row).length;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br1 ace_start\", config, null, extraStyle);\n } else {\n height = config.lineHeight;\n top = this.$getTop(range.start.row, config);\n left = padding + range.start.column * config.characterWidth;\n stringBuilder.push(\n \"
\"\n );\n }\n if (this.session.$bidiHandler.isBidiRow(range.end.row)) {\n var range1 = range.clone();\n range1.start.row = range1.end.row;\n range1.start.column = 0;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br12\", config, null, extraStyle);\n } else {\n var width = range.end.column * config.characterWidth;\n height = config.lineHeight;\n top = this.$getTop(range.end.row, config);\n stringBuilder.push(\n \"
\"\n );\n }\n height = (range.end.row - range.start.row - 1) * config.lineHeight;\n if (height <= 0)\n return;\n top = this.$getTop(range.start.row + 1, config);\n \n var radiusClass = (range.start.column ? 1 : 0) | (range.end.column ? 0 : 8);\n\n stringBuilder.push(\n \"
\"\n );\n };\n this.drawSingleLineMarker = function(stringBuilder, range, clazz, config, extraLength, extraStyle) {\n var height = config.lineHeight;\n var width = (range.end.column + (extraLength || 0) - range.start.column) * config.characterWidth;\n\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n\n stringBuilder.push(\n \"
\"\n );\n };\n this.drawBidiSingleLineMarker = function(stringBuilder, range, clazz, config, extraLength, extraStyle) {\n var height = config.lineHeight, top = this.$getTop(range.start.row, config), padding = this.$padding;\n var selections = this.session.$bidiHandler.getSelections(range.start.column, range.end.column);\n\n selections.forEach(function(selection) {\n stringBuilder.push(\n \"
\"\n );\n });\n };\n\n this.drawFullLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n if (range.start.row != range.end.row)\n height += this.$getTop(range.end.row, config) - top;\n\n stringBuilder.push(\n \"
\"\n );\n };\n \n this.drawScreenLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n\n stringBuilder.push(\n \"
\"\n );\n };\n\n}).call(Marker.prototype);\n\nexports.Marker = Marker;\n\n});\n\nace.define(\"ace/layer/text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar dom = acequire(\"../lib/dom\");\nvar lang = acequire(\"../lib/lang\");\nvar useragent = acequire(\"../lib/useragent\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar Text = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_text-layer\";\n parentEl.appendChild(this.element);\n this.$updateEolChar = this.$updateEolChar.bind(this);\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n\n this.EOF_CHAR = \"\\xB6\";\n this.EOL_CHAR_LF = \"\\xAC\";\n this.EOL_CHAR_CRLF = \"\\xa4\";\n this.EOL_CHAR = this.EOL_CHAR_LF;\n this.TAB_CHAR = \"\\u2014\"; //\"\\u21E5\";\n this.SPACE_CHAR = \"\\xB7\";\n this.$padding = 0;\n\n this.$updateEolChar = function() {\n var EOL_CHAR = this.session.doc.getNewLineCharacter() == \"\\n\"\n ? this.EOL_CHAR_LF\n : this.EOL_CHAR_CRLF;\n if (this.EOL_CHAR != EOL_CHAR) {\n this.EOL_CHAR = EOL_CHAR;\n return true;\n }\n };\n\n this.setPadding = function(padding) {\n this.$padding = padding;\n this.element.style.padding = \"0 \" + padding + \"px\";\n };\n\n this.getLineHeight = function() {\n return this.$fontMetrics.$characterSize.height || 0;\n };\n\n this.getCharacterWidth = function() {\n return this.$fontMetrics.$characterSize.width || 0;\n };\n \n this.$setFontMetrics = function(measure) {\n this.$fontMetrics = measure;\n this.$fontMetrics.on(\"changeCharacterSize\", function(e) {\n this._signal(\"changeCharacterSize\", e);\n }.bind(this));\n this.$pollSizeChanges();\n };\n\n this.checkForSizeChanges = function() {\n this.$fontMetrics.checkForSizeChanges();\n };\n this.$pollSizeChanges = function() {\n return this.$pollSizeChangesTimer = this.$fontMetrics.$pollSizeChanges();\n };\n this.setSession = function(session) {\n this.session = session;\n if (session)\n this.$computeTabString();\n };\n\n this.showInvisibles = false;\n this.setShowInvisibles = function(showInvisibles) {\n if (this.showInvisibles == showInvisibles)\n return false;\n\n this.showInvisibles = showInvisibles;\n this.$computeTabString();\n return true;\n };\n\n this.displayIndentGuides = true;\n this.setDisplayIndentGuides = function(display) {\n if (this.displayIndentGuides == display)\n return false;\n\n this.displayIndentGuides = display;\n this.$computeTabString();\n return true;\n };\n\n this.$tabStrings = [];\n this.onChangeTabSize =\n this.$computeTabString = function() {\n var tabSize = this.session.getTabSize();\n this.tabSize = tabSize;\n var tabStr = this.$tabStrings = [0];\n for (var i = 1; i < tabSize + 1; i++) {\n if (this.showInvisibles) {\n tabStr.push(\"\"\n + lang.stringRepeat(this.TAB_CHAR, i)\n + \"\");\n } else {\n tabStr.push(lang.stringRepeat(\" \", i));\n }\n }\n if (this.displayIndentGuides) {\n this.$indentGuideRe = /\\s\\S| \\t|\\t |\\s$/;\n var className = \"ace_indent-guide\";\n var spaceClass = \"\";\n var tabClass = \"\";\n if (this.showInvisibles) {\n className += \" ace_invisible\";\n spaceClass = \" ace_invisible_space\";\n tabClass = \" ace_invisible_tab\";\n var spaceContent = lang.stringRepeat(this.SPACE_CHAR, this.tabSize);\n var tabContent = lang.stringRepeat(this.TAB_CHAR, this.tabSize);\n } else{\n var spaceContent = lang.stringRepeat(\" \", this.tabSize);\n var tabContent = spaceContent;\n }\n\n this.$tabStrings[\" \"] = \"\" + spaceContent + \"\";\n this.$tabStrings[\"\\t\"] = \"\" + tabContent + \"\";\n }\n };\n\n this.updateLines = function(config, firstRow, lastRow) {\n if (this.config.lastRow != config.lastRow ||\n this.config.firstRow != config.firstRow) {\n this.scrollLines(config);\n }\n this.config = config;\n\n var first = Math.max(firstRow, config.firstRow);\n var last = Math.min(lastRow, config.lastRow);\n\n var lineElements = this.element.childNodes;\n var lineElementsIdx = 0;\n\n for (var row = config.firstRow; row < first; row++) {\n var foldLine = this.session.getFoldLine(row);\n if (foldLine) {\n if (foldLine.containsRow(first)) {\n first = foldLine.start.row;\n break;\n } else {\n row = foldLine.end.row;\n }\n }\n lineElementsIdx ++;\n }\n\n var row = first;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row+1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row :Infinity;\n }\n if (row > last)\n break;\n\n var lineElement = lineElements[lineElementsIdx++];\n if (lineElement) {\n var html = [];\n this.$renderLine(\n html, row, !this.$useLineGroups(), row == foldStart ? foldLine : false\n );\n lineElement.style.height = config.lineHeight * this.session.getRowLength(row) + \"px\";\n lineElement.innerHTML = html.join(\"\");\n }\n row++;\n }\n };\n\n this.scrollLines = function(config) {\n var oldConfig = this.config;\n this.config = config;\n\n if (!oldConfig || oldConfig.lastRow < config.firstRow)\n return this.update(config);\n\n if (config.lastRow < oldConfig.firstRow)\n return this.update(config);\n\n var el = this.element;\n if (oldConfig.firstRow < config.firstRow)\n for (var row=this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row>0; row--)\n el.removeChild(el.firstChild);\n\n if (oldConfig.lastRow > config.lastRow)\n for (var row=this.session.getFoldedRowCount(config.lastRow + 1, oldConfig.lastRow); row>0; row--)\n el.removeChild(el.lastChild);\n\n if (config.firstRow < oldConfig.firstRow) {\n var fragment = this.$renderLinesFragment(config, config.firstRow, oldConfig.firstRow - 1);\n if (el.firstChild)\n el.insertBefore(fragment, el.firstChild);\n else\n el.appendChild(fragment);\n }\n\n if (config.lastRow > oldConfig.lastRow) {\n var fragment = this.$renderLinesFragment(config, oldConfig.lastRow + 1, config.lastRow);\n el.appendChild(fragment);\n }\n };\n\n this.$renderLinesFragment = function(config, firstRow, lastRow) {\n var fragment = this.element.ownerDocument.createDocumentFragment();\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row+1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n\n var container = dom.createElement(\"div\");\n\n var html = [];\n this.$renderLine(html, row, false, row == foldStart ? foldLine : false);\n container.innerHTML = html.join(\"\");\n if (this.$useLineGroups()) {\n container.className = 'ace_line_group';\n fragment.appendChild(container);\n container.style.height = config.lineHeight * this.session.getRowLength(row) + \"px\";\n\n } else {\n while(container.firstChild)\n fragment.appendChild(container.firstChild);\n }\n\n row++;\n }\n return fragment;\n };\n\n this.update = function(config) {\n this.config = config;\n\n var html = [];\n var firstRow = config.firstRow, lastRow = config.lastRow;\n\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row+1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row :Infinity;\n }\n if (row > lastRow)\n break;\n\n if (this.$useLineGroups())\n html.push(\"
\");\n\n this.$renderLine(html, row, false, row == foldStart ? foldLine : false);\n\n if (this.$useLineGroups())\n html.push(\"
\"); // end the line group\n\n row++;\n }\n this.element.innerHTML = html.join(\"\");\n };\n\n this.$textToken = {\n \"text\": true,\n \"rparen\": true,\n \"lparen\": true\n };\n\n this.$renderToken = function(stringBuilder, screenColumn, token, value) {\n var self = this;\n var replaceReg = /\\t|&|<|>|( +)|([\\x00-\\x1f\\x80-\\xa0\\xad\\u1680\\u180E\\u2000-\\u200f\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF\\uFFF9-\\uFFFC])|[\\u1100-\\u115F\\u11A3-\\u11A7\\u11FA-\\u11FF\\u2329-\\u232A\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3000-\\u303E\\u3041-\\u3096\\u3099-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u3190-\\u31BA\\u31C0-\\u31E3\\u31F0-\\u321E\\u3220-\\u3247\\u3250-\\u32FE\\u3300-\\u4DBF\\u4E00-\\uA48C\\uA490-\\uA4C6\\uA960-\\uA97C\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFAFF\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFF01-\\uFF60\\uFFE0-\\uFFE6]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n var replaceFunc = function(c, a, b, tabIdx, idx4) {\n if (a) {\n return self.showInvisibles\n ? \"\" + lang.stringRepeat(self.SPACE_CHAR, c.length) + \"\"\n : c;\n } else if (c == \"&\") {\n return \"&\";\n } else if (c == \"<\") {\n return \"<\";\n } else if (c == \">\") {\n return \">\";\n } else if (c == \"\\t\") {\n var tabSize = self.session.getScreenTabSize(screenColumn + tabIdx);\n screenColumn += tabSize - 1;\n return self.$tabStrings[tabSize];\n } else if (c == \"\\u3000\") {\n var classToUse = self.showInvisibles ? \"ace_cjk ace_invisible ace_invisible_space\" : \"ace_cjk\";\n var space = self.showInvisibles ? self.SPACE_CHAR : \"\";\n screenColumn += 1;\n return \"\" + space + \"\";\n } else if (b) {\n return \"\" + self.SPACE_CHAR + \"\";\n } else {\n screenColumn += 1;\n return \"\" + c + \"\";\n }\n };\n\n var output = value.replace(replaceReg, replaceFunc);\n\n if (!this.$textToken[token.type]) {\n var classes = \"ace_\" + token.type.replace(/\\./g, \" ace_\");\n var style = \"\";\n if (token.type == \"fold\")\n style = \" style='width:\" + (token.value.length * this.config.characterWidth) + \"px;' \";\n stringBuilder.push(\"\", output, \"\");\n }\n else {\n stringBuilder.push(output);\n }\n return screenColumn + value.length;\n };\n\n this.renderIndentGuide = function(stringBuilder, value, max) {\n var cols = value.search(this.$indentGuideRe);\n if (cols <= 0 || cols >= max)\n return value;\n if (value[0] == \" \") {\n cols -= cols % this.tabSize;\n stringBuilder.push(lang.stringRepeat(this.$tabStrings[\" \"], cols/this.tabSize));\n return value.substr(cols);\n } else if (value[0] == \"\\t\") {\n stringBuilder.push(lang.stringRepeat(this.$tabStrings[\"\\t\"], cols));\n return value.substr(cols);\n }\n return value;\n };\n\n this.$renderWrappedLine = function(stringBuilder, tokens, splits, onlyContents) {\n var chars = 0;\n var split = 0;\n var splitChars = splits[0];\n var screenColumn = 0;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n chars = value.length;\n value = this.renderIndentGuide(stringBuilder, value, splitChars);\n if (!value)\n continue;\n chars -= value.length;\n }\n\n if (chars + value.length < splitChars) {\n screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n chars += value.length;\n } else {\n while (chars + value.length >= splitChars) {\n screenColumn = this.$renderToken(\n stringBuilder, screenColumn,\n token, value.substring(0, splitChars - chars)\n );\n value = value.substring(splitChars - chars);\n chars = splitChars;\n\n if (!onlyContents) {\n stringBuilder.push(\"\",\n \"
\"\n );\n }\n\n stringBuilder.push(lang.stringRepeat(\"\\xa0\", splits.indent));\n\n split ++;\n screenColumn = 0;\n splitChars = splits[split] || Number.MAX_VALUE;\n }\n if (value.length != 0) {\n chars += value.length;\n screenColumn = this.$renderToken(\n stringBuilder, screenColumn, token, value\n );\n }\n }\n }\n };\n\n this.$renderSimpleLine = function(stringBuilder, tokens) {\n var screenColumn = 0;\n var token = tokens[0];\n var value = token.value;\n if (this.displayIndentGuides)\n value = this.renderIndentGuide(stringBuilder, value);\n if (value)\n screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n for (var i = 1; i < tokens.length; i++) {\n token = tokens[i];\n value = token.value;\n screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n }\n };\n this.$renderLine = function(stringBuilder, row, onlyContents, foldLine) {\n if (!foldLine && foldLine != false)\n foldLine = this.session.getFoldLine(row);\n\n if (foldLine)\n var tokens = this.$getFoldLineTokens(row, foldLine);\n else\n var tokens = this.session.getTokens(row);\n\n\n if (!onlyContents) {\n stringBuilder.push(\n \"
\"\n );\n }\n\n if (tokens.length) {\n var splits = this.session.getRowSplitData(row);\n if (splits && splits.length)\n this.$renderWrappedLine(stringBuilder, tokens, splits, onlyContents);\n else\n this.$renderSimpleLine(stringBuilder, tokens);\n }\n\n if (this.showInvisibles) {\n if (foldLine)\n row = foldLine.end.row;\n\n stringBuilder.push(\n \"\",\n row == this.session.getLength() - 1 ? this.EOF_CHAR : this.EOL_CHAR,\n \"\"\n );\n }\n if (!onlyContents)\n stringBuilder.push(\"
\");\n };\n\n this.$getFoldLineTokens = function(row, foldLine) {\n var session = this.session;\n var renderTokens = [];\n\n function addTokens(tokens, from, to) {\n var idx = 0, col = 0;\n while ((col + tokens[idx].value.length) < from) {\n col += tokens[idx].value.length;\n idx++;\n\n if (idx == tokens.length)\n return;\n }\n if (col != from) {\n var value = tokens[idx].value.substring(from - col);\n if (value.length > (to - from))\n value = value.substring(0, to - from);\n\n renderTokens.push({\n type: tokens[idx].type,\n value: value\n });\n\n col = from + value.length;\n idx += 1;\n }\n\n while (col < to && idx < tokens.length) {\n var value = tokens[idx].value;\n if (value.length + col > to) {\n renderTokens.push({\n type: tokens[idx].type,\n value: value.substring(0, to - col)\n });\n } else\n renderTokens.push(tokens[idx]);\n col += value.length;\n idx += 1;\n }\n }\n\n var tokens = session.getTokens(row);\n foldLine.walk(function(placeholder, row, column, lastColumn, isNewRow) {\n if (placeholder != null) {\n renderTokens.push({\n type: \"fold\",\n value: placeholder\n });\n } else {\n if (isNewRow)\n tokens = session.getTokens(row);\n\n if (tokens.length)\n addTokens(tokens, lastColumn, column);\n }\n }, foldLine.end.row, this.session.getLine(foldLine.end.row).length);\n\n return renderTokens;\n };\n\n this.$useLineGroups = function() {\n return this.session.getUseWrapMode();\n };\n\n this.destroy = function() {\n clearInterval(this.$pollSizeChangesTimer);\n if (this.$measureNode)\n this.$measureNode.parentNode.removeChild(this.$measureNode);\n delete this.$measureNode;\n };\n\n}).call(Text.prototype);\n\nexports.Text = Text;\n\n});\n\nace.define(\"ace/layer/cursor\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar isIE8;\n\nvar Cursor = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_cursor-layer\";\n parentEl.appendChild(this.element);\n \n if (isIE8 === undefined)\n isIE8 = !(\"opacity\" in this.element.style);\n\n this.isVisible = false;\n this.isBlinking = true;\n this.blinkInterval = 1000;\n this.smoothBlinking = false;\n\n this.cursors = [];\n this.cursor = this.addCursor();\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.$updateCursors = (isIE8\n ? this.$updateVisibility\n : this.$updateOpacity).bind(this);\n};\n\n(function() {\n \n this.$updateVisibility = function(val) {\n var cursors = this.cursors;\n for (var i = cursors.length; i--; )\n cursors[i].style.visibility = val ? \"\" : \"hidden\";\n };\n this.$updateOpacity = function(val) {\n var cursors = this.cursors;\n for (var i = cursors.length; i--; )\n cursors[i].style.opacity = val ? \"\" : \"0\";\n };\n \n\n this.$padding = 0;\n this.setPadding = function(padding) {\n this.$padding = padding;\n };\n\n this.setSession = function(session) {\n this.session = session;\n };\n\n this.setBlinking = function(blinking) {\n if (blinking != this.isBlinking){\n this.isBlinking = blinking;\n this.restartTimer();\n }\n };\n\n this.setBlinkInterval = function(blinkInterval) {\n if (blinkInterval != this.blinkInterval){\n this.blinkInterval = blinkInterval;\n this.restartTimer();\n }\n };\n\n this.setSmoothBlinking = function(smoothBlinking) {\n if (smoothBlinking != this.smoothBlinking && !isIE8) {\n this.smoothBlinking = smoothBlinking;\n dom.setCssClass(this.element, \"ace_smooth-blinking\", smoothBlinking);\n this.$updateCursors(true);\n this.$updateCursors = (this.$updateOpacity).bind(this);\n this.restartTimer();\n }\n };\n\n this.addCursor = function() {\n var el = dom.createElement(\"div\");\n el.className = \"ace_cursor\";\n this.element.appendChild(el);\n this.cursors.push(el);\n return el;\n };\n\n this.removeCursor = function() {\n if (this.cursors.length > 1) {\n var el = this.cursors.pop();\n el.parentNode.removeChild(el);\n return el;\n }\n };\n\n this.hideCursor = function() {\n this.isVisible = false;\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n\n this.showCursor = function() {\n this.isVisible = true;\n dom.removeCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n\n this.restartTimer = function() {\n var update = this.$updateCursors;\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n if (this.smoothBlinking) {\n dom.removeCssClass(this.element, \"ace_smooth-blinking\");\n }\n \n update(true);\n\n if (!this.isBlinking || !this.blinkInterval || !this.isVisible)\n return;\n\n if (this.smoothBlinking) {\n setTimeout(function(){\n dom.addCssClass(this.element, \"ace_smooth-blinking\");\n }.bind(this));\n }\n \n var blink = function(){\n this.timeoutId = setTimeout(function() {\n update(false);\n }, 0.6 * this.blinkInterval);\n }.bind(this);\n\n this.intervalId = setInterval(function() {\n update(true);\n blink();\n }, this.blinkInterval);\n\n blink();\n };\n\n this.getPixelPosition = function(position, onScreen) {\n if (!this.config || !this.session)\n return {left : 0, top : 0};\n\n if (!position)\n position = this.session.selection.getCursor();\n var pos = this.session.documentToScreenPosition(position);\n var cursorLeft = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, position.row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : pos.column * this.config.characterWidth);\n\n var cursorTop = (pos.row - (onScreen ? this.config.firstRowScreen : 0)) *\n this.config.lineHeight;\n\n return {left : cursorLeft, top : cursorTop};\n };\n\n this.update = function(config) {\n this.config = config;\n\n var selections = this.session.$selectionMarkers;\n var i = 0, cursorIndex = 0;\n\n if (selections === undefined || selections.length === 0){\n selections = [{cursor: null}];\n }\n\n for (var i = 0, n = selections.length; i < n; i++) {\n var pixelPos = this.getPixelPosition(selections[i].cursor, true);\n if ((pixelPos.top > config.height + config.offset ||\n pixelPos.top < 0) && i > 1) {\n continue;\n }\n\n var style = (this.cursors[cursorIndex++] || this.addCursor()).style;\n \n if (!this.drawCursor) {\n style.left = pixelPos.left + \"px\";\n style.top = pixelPos.top + \"px\";\n style.width = config.characterWidth + \"px\";\n style.height = config.lineHeight + \"px\";\n } else {\n this.drawCursor(style, pixelPos, config, selections[i], this.session);\n }\n }\n while (this.cursors.length > cursorIndex)\n this.removeCursor();\n\n var overwrite = this.session.getOverwrite();\n this.$setOverwrite(overwrite);\n this.$pixelPos = pixelPos;\n this.restartTimer();\n };\n \n this.drawCursor = null;\n\n this.$setOverwrite = function(overwrite) {\n if (overwrite != this.overwrite) {\n this.overwrite = overwrite;\n if (overwrite)\n dom.addCssClass(this.element, \"ace_overwrite-cursors\");\n else\n dom.removeCssClass(this.element, \"ace_overwrite-cursors\");\n }\n };\n\n this.destroy = function() {\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n };\n\n}).call(Cursor.prototype);\n\nexports.Cursor = Cursor;\n\n});\n\nace.define(\"ace/scrollbar\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar event = acequire(\"./lib/event\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar MAX_SCROLL_H = 0x8000;\nvar ScrollBar = function(parent) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_scrollbar ace_scrollbar\" + this.classSuffix;\n\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"ace_scrollbar-inner\";\n this.element.appendChild(this.inner);\n\n parent.appendChild(this.element);\n\n this.setVisible(false);\n this.skipEvent = false;\n\n event.addListener(this.element, \"scroll\", this.onScroll.bind(this));\n event.addListener(this.element, \"mousedown\", event.preventDefault);\n};\n\n(function() {\n oop.implement(this, EventEmitter);\n\n this.setVisible = function(isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n this.coeff = 1;\n };\n}).call(ScrollBar.prototype);\nvar VScrollBar = function(parent, renderer) {\n ScrollBar.call(this, parent);\n this.scrollTop = 0;\n this.scrollHeight = 0;\n renderer.$scrollbarWidth = \n this.width = dom.scrollbarWidth(parent.ownerDocument);\n this.inner.style.width =\n this.element.style.width = (this.width || 15) + 5 + \"px\";\n this.$minWidth = 0;\n};\n\noop.inherits(VScrollBar, ScrollBar);\n\n(function() {\n\n this.classSuffix = '-v';\n this.onScroll = function() {\n if (!this.skipEvent) {\n this.scrollTop = this.element.scrollTop;\n if (this.coeff != 1) {\n var h = this.element.clientHeight / this.scrollHeight;\n this.scrollTop = this.scrollTop * (1 - h) / (this.coeff - h);\n }\n this._emit(\"scroll\", {data: this.scrollTop});\n }\n this.skipEvent = false;\n };\n this.getWidth = function() {\n return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0);\n };\n this.setHeight = function(height) {\n this.element.style.height = height + \"px\";\n };\n this.setInnerHeight =\n this.setScrollHeight = function(height) {\n this.scrollHeight = height;\n if (height > MAX_SCROLL_H) {\n this.coeff = MAX_SCROLL_H / height;\n height = MAX_SCROLL_H;\n } else if (this.coeff != 1) {\n this.coeff = 1;\n }\n this.inner.style.height = height + \"px\";\n };\n this.setScrollTop = function(scrollTop) {\n if (this.scrollTop != scrollTop) {\n this.skipEvent = true;\n this.scrollTop = scrollTop;\n this.element.scrollTop = scrollTop * this.coeff;\n }\n };\n\n}).call(VScrollBar.prototype);\nvar HScrollBar = function(parent, renderer) {\n ScrollBar.call(this, parent);\n this.scrollLeft = 0;\n this.height = renderer.$scrollbarWidth;\n this.inner.style.height =\n this.element.style.height = (this.height || 15) + 5 + \"px\";\n};\n\noop.inherits(HScrollBar, ScrollBar);\n\n(function() {\n\n this.classSuffix = '-h';\n this.onScroll = function() {\n if (!this.skipEvent) {\n this.scrollLeft = this.element.scrollLeft;\n this._emit(\"scroll\", {data: this.scrollLeft});\n }\n this.skipEvent = false;\n };\n this.getHeight = function() {\n return this.isVisible ? this.height : 0;\n };\n this.setWidth = function(width) {\n this.element.style.width = width + \"px\";\n };\n this.setInnerWidth = function(width) {\n this.inner.style.width = width + \"px\";\n };\n this.setScrollWidth = function(width) {\n this.inner.style.width = width + \"px\";\n };\n this.setScrollLeft = function(scrollLeft) {\n if (this.scrollLeft != scrollLeft) {\n this.skipEvent = true;\n this.scrollLeft = this.element.scrollLeft = scrollLeft;\n }\n };\n\n}).call(HScrollBar.prototype);\n\n\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\n\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n});\n\nace.define(\"ace/renderloop\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar event = acequire(\"./lib/event\");\n\n\nvar RenderLoop = function(onRender, win) {\n this.onRender = onRender;\n this.pending = false;\n this.changes = 0;\n this.window = win || window;\n};\n\n(function() {\n\n\n this.schedule = function(change) {\n this.changes = this.changes | change;\n if (!this.pending && this.changes) {\n this.pending = true;\n var _self = this;\n event.nextFrame(function() {\n _self.pending = false;\n var changes;\n while (changes = _self.changes) {\n _self.changes = 0;\n _self.onRender(changes);\n }\n }, this.window);\n }\n };\n\n}).call(RenderLoop.prototype);\n\nexports.RenderLoop = RenderLoop;\n});\n\nace.define(\"ace/layer/font_metrics\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\nvar oop = acequire(\"../lib/oop\");\nvar dom = acequire(\"../lib/dom\");\nvar lang = acequire(\"../lib/lang\");\nvar useragent = acequire(\"../lib/useragent\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar CHAR_COUNT = 0;\n\nvar FontMetrics = exports.FontMetrics = function(parentEl) {\n this.el = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.el.style, true);\n \n this.$main = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$main.style);\n \n this.$measureNode = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$measureNode.style);\n \n \n this.el.appendChild(this.$main);\n this.el.appendChild(this.$measureNode);\n parentEl.appendChild(this.el);\n \n if (!CHAR_COUNT)\n this.$testFractionalRect();\n this.$measureNode.innerHTML = lang.stringRepeat(\"X\", CHAR_COUNT);\n \n this.$characterSize = {width: 0, height: 0};\n this.checkForSizeChanges();\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n \n this.$characterSize = {width: 0, height: 0};\n \n this.$testFractionalRect = function() {\n var el = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(el.style);\n el.style.width = \"0.2px\";\n document.documentElement.appendChild(el);\n var w = el.getBoundingClientRect().width;\n if (w > 0 && w < 1)\n CHAR_COUNT = 50;\n else\n CHAR_COUNT = 100;\n el.parentNode.removeChild(el);\n };\n \n this.$setMeasureNodeStyles = function(style, isRoot) {\n style.width = style.height = \"auto\";\n style.left = style.top = \"0px\";\n style.visibility = \"hidden\";\n style.position = \"absolute\";\n style.whiteSpace = \"pre\";\n\n if (useragent.isIE < 8) {\n style[\"font-family\"] = \"inherit\";\n } else {\n style.font = \"inherit\";\n }\n style.overflow = isRoot ? \"hidden\" : \"visible\";\n };\n\n this.checkForSizeChanges = function() {\n var size = this.$measureSizes();\n if (size && (this.$characterSize.width !== size.width || this.$characterSize.height !== size.height)) {\n this.$measureNode.style.fontWeight = \"bold\";\n var boldSize = this.$measureSizes();\n this.$measureNode.style.fontWeight = \"\";\n this.$characterSize = size;\n this.charSizes = Object.create(null);\n this.allowBoldFonts = boldSize && boldSize.width === size.width && boldSize.height === size.height;\n this._emit(\"changeCharacterSize\", {data: size});\n }\n };\n\n this.$pollSizeChanges = function() {\n if (this.$pollSizeChangesTimer)\n return this.$pollSizeChangesTimer;\n var self = this;\n return this.$pollSizeChangesTimer = setInterval(function() {\n self.checkForSizeChanges();\n }, 500);\n };\n \n this.setPolling = function(val) {\n if (val) {\n this.$pollSizeChanges();\n } else if (this.$pollSizeChangesTimer) {\n clearInterval(this.$pollSizeChangesTimer);\n this.$pollSizeChangesTimer = 0;\n }\n };\n\n this.$measureSizes = function() {\n if (CHAR_COUNT === 50) {\n var rect = null;\n try { \n rect = this.$measureNode.getBoundingClientRect();\n } catch(e) {\n rect = {width: 0, height:0 };\n }\n var size = {\n height: rect.height,\n width: rect.width / CHAR_COUNT\n };\n } else {\n var size = {\n height: this.$measureNode.clientHeight,\n width: this.$measureNode.clientWidth / CHAR_COUNT\n };\n }\n if (size.width === 0 || size.height === 0)\n return null;\n return size;\n };\n\n this.$measureCharWidth = function(ch) {\n this.$main.innerHTML = lang.stringRepeat(ch, CHAR_COUNT);\n var rect = this.$main.getBoundingClientRect();\n return rect.width / CHAR_COUNT;\n };\n \n this.getCharacterWidth = function(ch) {\n var w = this.charSizes[ch];\n if (w === undefined) {\n w = this.charSizes[ch] = this.$measureCharWidth(ch) / this.$characterSize.width;\n }\n return w;\n };\n\n this.destroy = function() {\n clearInterval(this.$pollSizeChangesTimer);\n if (this.el && this.el.parentNode)\n this.el.parentNode.removeChild(this.el);\n };\n\n}).call(FontMetrics.prototype);\n\n});\n\nace.define(\"ace/virtual_renderer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/config\",\"ace/lib/useragent\",\"ace/layer/gutter\",\"ace/layer/marker\",\"ace/layer/text\",\"ace/layer/cursor\",\"ace/scrollbar\",\"ace/scrollbar\",\"ace/renderloop\",\"ace/layer/font_metrics\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar config = acequire(\"./config\");\nvar useragent = acequire(\"./lib/useragent\");\nvar GutterLayer = acequire(\"./layer/gutter\").Gutter;\nvar MarkerLayer = acequire(\"./layer/marker\").Marker;\nvar TextLayer = acequire(\"./layer/text\").Text;\nvar CursorLayer = acequire(\"./layer/cursor\").Cursor;\nvar HScrollBar = acequire(\"./scrollbar\").HScrollBar;\nvar VScrollBar = acequire(\"./scrollbar\").VScrollBar;\nvar RenderLoop = acequire(\"./renderloop\").RenderLoop;\nvar FontMetrics = acequire(\"./layer/font_metrics\").FontMetrics;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar editorCss = \".ace_editor {\\\nposition: relative;\\\noverflow: hidden;\\\nfont: 12px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;\\\ndirection: ltr;\\\ntext-align: left;\\\n-webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\\n}\\\n.ace_scroller {\\\nposition: absolute;\\\noverflow: hidden;\\\ntop: 0;\\\nbottom: 0;\\\nbackground-color: inherit;\\\n-ms-user-select: none;\\\n-moz-user-select: none;\\\n-webkit-user-select: none;\\\nuser-select: none;\\\ncursor: text;\\\n}\\\n.ace_content {\\\nposition: absolute;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nmin-width: 100%;\\\n}\\\n.ace_dragging .ace_scroller:before{\\\nposition: absolute;\\\ntop: 0;\\\nleft: 0;\\\nright: 0;\\\nbottom: 0;\\\ncontent: '';\\\nbackground: rgba(250, 250, 250, 0.01);\\\nz-index: 1000;\\\n}\\\n.ace_dragging.ace_dark .ace_scroller:before{\\\nbackground: rgba(0, 0, 0, 0.01);\\\n}\\\n.ace_selecting, .ace_selecting * {\\\ncursor: text !important;\\\n}\\\n.ace_gutter {\\\nposition: absolute;\\\noverflow : hidden;\\\nwidth: auto;\\\ntop: 0;\\\nbottom: 0;\\\nleft: 0;\\\ncursor: default;\\\nz-index: 4;\\\n-ms-user-select: none;\\\n-moz-user-select: none;\\\n-webkit-user-select: none;\\\nuser-select: none;\\\n}\\\n.ace_gutter-active-line {\\\nposition: absolute;\\\nleft: 0;\\\nright: 0;\\\n}\\\n.ace_scroller.ace_scroll-left {\\\nbox-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\\\n}\\\n.ace_gutter-cell {\\\npadding-left: 19px;\\\npadding-right: 6px;\\\nbackground-repeat: no-repeat;\\\n}\\\n.ace_gutter-cell.ace_error {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==\\\");\\\nbackground-repeat: no-repeat;\\\nbackground-position: 2px center;\\\n}\\\n.ace_gutter-cell.ace_warning {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==\\\");\\\nbackground-position: 2px center;\\\n}\\\n.ace_gutter-cell.ace_info {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=\\\");\\\nbackground-position: 2px center;\\\n}\\\n.ace_dark .ace_gutter-cell.ace_info {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC\\\");\\\n}\\\n.ace_scrollbar {\\\nposition: absolute;\\\nright: 0;\\\nbottom: 0;\\\nz-index: 6;\\\n}\\\n.ace_scrollbar-inner {\\\nposition: absolute;\\\ncursor: text;\\\nleft: 0;\\\ntop: 0;\\\n}\\\n.ace_scrollbar-v{\\\noverflow-x: hidden;\\\noverflow-y: scroll;\\\ntop: 0;\\\n}\\\n.ace_scrollbar-h {\\\noverflow-x: scroll;\\\noverflow-y: hidden;\\\nleft: 0;\\\n}\\\n.ace_print-margin {\\\nposition: absolute;\\\nheight: 100%;\\\n}\\\n.ace_text-input {\\\nposition: absolute;\\\nz-index: 0;\\\nwidth: 0.5em;\\\nheight: 1em;\\\nopacity: 0;\\\nbackground: transparent;\\\n-moz-appearance: none;\\\nappearance: none;\\\nborder: none;\\\nresize: none;\\\noutline: none;\\\noverflow: hidden;\\\nfont: inherit;\\\npadding: 0 1px;\\\nmargin: 0 -1px;\\\ntext-indent: -1em;\\\n-ms-user-select: text;\\\n-moz-user-select: text;\\\n-webkit-user-select: text;\\\nuser-select: text;\\\nwhite-space: pre!important;\\\n}\\\n.ace_text-input.ace_composition {\\\nbackground: inherit;\\\ncolor: inherit;\\\nz-index: 1000;\\\nopacity: 1;\\\ntext-indent: 0;\\\n}\\\n.ace_layer {\\\nz-index: 1;\\\nposition: absolute;\\\noverflow: hidden;\\\nword-wrap: normal;\\\nwhite-space: pre;\\\nheight: 100%;\\\nwidth: 100%;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\npointer-events: none;\\\n}\\\n.ace_gutter-layer {\\\nposition: relative;\\\nwidth: auto;\\\ntext-align: right;\\\npointer-events: auto;\\\n}\\\n.ace_text-layer {\\\nfont: inherit !important;\\\n}\\\n.ace_cjk {\\\ndisplay: inline-block;\\\ntext-align: center;\\\n}\\\n.ace_cursor-layer {\\\nz-index: 4;\\\n}\\\n.ace_cursor {\\\nz-index: 4;\\\nposition: absolute;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nborder-left: 2px solid;\\\ntransform: translatez(0);\\\n}\\\n.ace_multiselect .ace_cursor {\\\nborder-left-width: 1px;\\\n}\\\n.ace_slim-cursors .ace_cursor {\\\nborder-left-width: 1px;\\\n}\\\n.ace_overwrite-cursors .ace_cursor {\\\nborder-left-width: 0;\\\nborder-bottom: 1px solid;\\\n}\\\n.ace_hidden-cursors .ace_cursor {\\\nopacity: 0.2;\\\n}\\\n.ace_smooth-blinking .ace_cursor {\\\n-webkit-transition: opacity 0.18s;\\\ntransition: opacity 0.18s;\\\n}\\\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\\\nposition: absolute;\\\nz-index: 3;\\\n}\\\n.ace_marker-layer .ace_selection {\\\nposition: absolute;\\\nz-index: 5;\\\n}\\\n.ace_marker-layer .ace_bracket {\\\nposition: absolute;\\\nz-index: 6;\\\n}\\\n.ace_marker-layer .ace_active-line {\\\nposition: absolute;\\\nz-index: 2;\\\n}\\\n.ace_marker-layer .ace_selected-word {\\\nposition: absolute;\\\nz-index: 4;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\n}\\\n.ace_line .ace_fold {\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\ndisplay: inline-block;\\\nheight: 11px;\\\nmargin-top: -2px;\\\nvertical-align: middle;\\\nbackground-image:\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=\\\");\\\nbackground-repeat: no-repeat, repeat-x;\\\nbackground-position: center center, top left;\\\ncolor: transparent;\\\nborder: 1px solid black;\\\nborder-radius: 2px;\\\ncursor: pointer;\\\npointer-events: auto;\\\n}\\\n.ace_dark .ace_fold {\\\n}\\\n.ace_fold:hover{\\\nbackground-image:\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC\\\");\\\n}\\\n.ace_tooltip {\\\nbackground-color: #FFF;\\\nbackground-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));\\\nbackground-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));\\\nborder: 1px solid gray;\\\nborder-radius: 1px;\\\nbox-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\\\ncolor: black;\\\nmax-width: 100%;\\\npadding: 3px 4px;\\\nposition: fixed;\\\nz-index: 999999;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\ncursor: default;\\\nwhite-space: pre;\\\nword-wrap: break-word;\\\nline-height: normal;\\\nfont-style: normal;\\\nfont-weight: normal;\\\nletter-spacing: normal;\\\npointer-events: none;\\\n}\\\n.ace_folding-enabled > .ace_gutter-cell {\\\npadding-right: 13px;\\\n}\\\n.ace_fold-widget {\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nmargin: 0 -12px 0 1px;\\\ndisplay: none;\\\nwidth: 11px;\\\nvertical-align: top;\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==\\\");\\\nbackground-repeat: no-repeat;\\\nbackground-position: center;\\\nborder-radius: 3px;\\\nborder: 1px solid transparent;\\\ncursor: pointer;\\\n}\\\n.ace_folding-enabled .ace_fold-widget {\\\ndisplay: inline-block; \\\n}\\\n.ace_fold-widget.ace_end {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==\\\");\\\n}\\\n.ace_fold-widget.ace_closed {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==\\\");\\\n}\\\n.ace_fold-widget:hover {\\\nborder: 1px solid rgba(0, 0, 0, 0.3);\\\nbackground-color: rgba(255, 255, 255, 0.2);\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\\\n}\\\n.ace_fold-widget:active {\\\nborder: 1px solid rgba(0, 0, 0, 0.4);\\\nbackground-color: rgba(0, 0, 0, 0.05);\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\\\n}\\\n.ace_dark .ace_fold-widget {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\\\");\\\n}\\\n.ace_dark .ace_fold-widget.ace_end {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\\\");\\\n}\\\n.ace_dark .ace_fold-widget.ace_closed {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\\\");\\\n}\\\n.ace_dark .ace_fold-widget:hover {\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\\nbackground-color: rgba(255, 255, 255, 0.1);\\\n}\\\n.ace_dark .ace_fold-widget:active {\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\\n}\\\n.ace_fold-widget.ace_invalid {\\\nbackground-color: #FFB4B4;\\\nborder-color: #DE5555;\\\n}\\\n.ace_fade-fold-widgets .ace_fold-widget {\\\n-webkit-transition: opacity 0.4s ease 0.05s;\\\ntransition: opacity 0.4s ease 0.05s;\\\nopacity: 0;\\\n}\\\n.ace_fade-fold-widgets:hover .ace_fold-widget {\\\n-webkit-transition: opacity 0.05s ease 0.05s;\\\ntransition: opacity 0.05s ease 0.05s;\\\nopacity:1;\\\n}\\\n.ace_underline {\\\ntext-decoration: underline;\\\n}\\\n.ace_bold {\\\nfont-weight: bold;\\\n}\\\n.ace_nobold .ace_bold {\\\nfont-weight: normal;\\\n}\\\n.ace_italic {\\\nfont-style: italic;\\\n}\\\n.ace_error-marker {\\\nbackground-color: rgba(255, 0, 0,0.2);\\\nposition: absolute;\\\nz-index: 9;\\\n}\\\n.ace_highlight-marker {\\\nbackground-color: rgba(255, 255, 0,0.2);\\\nposition: absolute;\\\nz-index: 8;\\\n}\\\n.ace_br1 {border-top-left-radius : 3px;}\\\n.ace_br2 {border-top-right-radius : 3px;}\\\n.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\\\n.ace_br4 {border-bottom-right-radius: 3px;}\\\n.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\\\n.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\\\n.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\\\n.ace_br8 {border-bottom-left-radius : 3px;}\\\n.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\\\n.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\\\n.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_text-input-ios {\\\nposition: absolute !important;\\\ntop: -100000px !important;\\\nleft: -100000px !important;\\\n}\\\n\";\n\ndom.importCssString(editorCss, \"ace_editor.css\");\n\nvar VirtualRenderer = function(container, theme) {\n var _self = this;\n\n this.container = container || dom.createElement(\"div\");\n this.$keepTextAreaAtCursor = !useragent.isOldIE;\n\n dom.addCssClass(this.container, \"ace_editor\");\n\n this.setTheme(theme);\n\n this.$gutter = dom.createElement(\"div\");\n this.$gutter.className = \"ace_gutter\";\n this.container.appendChild(this.$gutter);\n this.$gutter.setAttribute(\"aria-hidden\", true);\n\n this.scroller = dom.createElement(\"div\");\n this.scroller.className = \"ace_scroller\";\n this.container.appendChild(this.scroller);\n\n this.content = dom.createElement(\"div\");\n this.content.className = \"ace_content\";\n this.scroller.appendChild(this.content);\n\n this.$gutterLayer = new GutterLayer(this.$gutter);\n this.$gutterLayer.on(\"changeGutterWidth\", this.onGutterResize.bind(this));\n\n this.$markerBack = new MarkerLayer(this.content);\n\n var textLayer = this.$textLayer = new TextLayer(this.content);\n this.canvas = textLayer.element;\n\n this.$markerFront = new MarkerLayer(this.content);\n\n this.$cursorLayer = new CursorLayer(this.content);\n this.$horizScroll = false;\n this.$vScroll = false;\n\n this.scrollBar = \n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.addEventListener(\"scroll\", function(e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function(e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n\n this.scrollTop = 0;\n this.scrollLeft = 0;\n\n this.cursorPos = {\n row : 0,\n column : 0\n };\n\n this.$fontMetrics = new FontMetrics(this.container);\n this.$textLayer.$setFontMetrics(this.$fontMetrics);\n this.$textLayer.addEventListener(\"changeCharacterSize\", function(e) {\n _self.updateCharacterSize();\n _self.onResize(true, _self.gutterWidth, _self.$size.width, _self.$size.height);\n _self._signal(\"changeCharacterSize\", e);\n });\n\n this.$size = {\n width: 0,\n height: 0,\n scrollerHeight: 0,\n scrollerWidth: 0,\n $dirty: true\n };\n\n this.layerConfig = {\n width : 1,\n padding : 0,\n firstRow : 0,\n firstRowScreen: 0,\n lastRow : 0,\n lineHeight : 0,\n characterWidth : 0,\n minHeight : 1,\n maxHeight : 1,\n offset : 0,\n height : 1,\n gutterOffset: 1\n };\n \n this.scrollMargin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n\n this.$loop = new RenderLoop(\n this.$renderChanges.bind(this),\n this.container.ownerDocument.defaultView\n );\n this.$loop.schedule(this.CHANGE_FULL);\n\n this.updateCharacterSize();\n this.setPadding(4);\n config.resetOptions(this);\n config._emit(\"renderer\", this);\n};\n\n(function() {\n\n this.CHANGE_CURSOR = 1;\n this.CHANGE_MARKER = 2;\n this.CHANGE_GUTTER = 4;\n this.CHANGE_SCROLL = 8;\n this.CHANGE_LINES = 16;\n this.CHANGE_TEXT = 32;\n this.CHANGE_SIZE = 64;\n this.CHANGE_MARKER_BACK = 128;\n this.CHANGE_MARKER_FRONT = 256;\n this.CHANGE_FULL = 512;\n this.CHANGE_H_SCROLL = 1024;\n\n oop.implement(this, EventEmitter);\n\n this.updateCharacterSize = function() {\n if (this.$textLayer.allowBoldFonts != this.$allowBoldFonts) {\n this.$allowBoldFonts = this.$textLayer.allowBoldFonts;\n this.setStyle(\"ace_nobold\", !this.$allowBoldFonts);\n }\n\n this.layerConfig.characterWidth =\n this.characterWidth = this.$textLayer.getCharacterWidth();\n this.layerConfig.lineHeight =\n this.lineHeight = this.$textLayer.getLineHeight();\n this.$updatePrintMargin();\n };\n this.setSession = function(session) {\n if (this.session)\n this.session.doc.off(\"changeNewLineMode\", this.onChangeNewLineMode);\n \n this.session = session;\n if (session && this.scrollMargin.top && session.getScrollTop() <= 0)\n session.setScrollTop(-this.scrollMargin.top);\n\n this.$cursorLayer.setSession(session);\n this.$markerBack.setSession(session);\n this.$markerFront.setSession(session);\n this.$gutterLayer.setSession(session);\n this.$textLayer.setSession(session);\n if (!session)\n return;\n \n this.$loop.schedule(this.CHANGE_FULL);\n this.session.$setFontMetrics(this.$fontMetrics);\n this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null;\n \n this.onChangeNewLineMode = this.onChangeNewLineMode.bind(this);\n this.onChangeNewLineMode();\n this.session.doc.on(\"changeNewLineMode\", this.onChangeNewLineMode);\n };\n this.updateLines = function(firstRow, lastRow, force) {\n if (lastRow === undefined)\n lastRow = Infinity;\n\n if (!this.$changedLines) {\n this.$changedLines = {\n firstRow: firstRow,\n lastRow: lastRow\n };\n }\n else {\n if (this.$changedLines.firstRow > firstRow)\n this.$changedLines.firstRow = firstRow;\n\n if (this.$changedLines.lastRow < lastRow)\n this.$changedLines.lastRow = lastRow;\n }\n if (this.$changedLines.lastRow < this.layerConfig.firstRow) {\n if (force)\n this.$changedLines.lastRow = this.layerConfig.lastRow;\n else\n return;\n }\n if (this.$changedLines.firstRow > this.layerConfig.lastRow)\n return;\n this.$loop.schedule(this.CHANGE_LINES);\n };\n\n this.onChangeNewLineMode = function() {\n this.$loop.schedule(this.CHANGE_TEXT);\n this.$textLayer.$updateEolChar();\n this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR);\n };\n \n this.onChangeTabSize = function() {\n this.$loop.schedule(this.CHANGE_TEXT | this.CHANGE_MARKER);\n this.$textLayer.onChangeTabSize();\n };\n this.updateText = function() {\n this.$loop.schedule(this.CHANGE_TEXT);\n };\n this.updateFull = function(force) {\n if (force)\n this.$renderChanges(this.CHANGE_FULL, true);\n else\n this.$loop.schedule(this.CHANGE_FULL);\n };\n this.updateFontSize = function() {\n this.$textLayer.checkForSizeChanges();\n };\n\n this.$changes = 0;\n this.$updateSizeAsync = function() {\n if (this.$loop.pending)\n this.$size.$dirty = true;\n else\n this.onResize();\n };\n this.onResize = function(force, gutterWidth, width, height) {\n if (this.resizing > 2)\n return;\n else if (this.resizing > 0)\n this.resizing++;\n else\n this.resizing = force ? 1 : 0;\n var el = this.container;\n if (!height)\n height = el.clientHeight || el.scrollHeight;\n if (!width)\n width = el.clientWidth || el.scrollWidth;\n var changes = this.$updateCachedSize(force, gutterWidth, width, height);\n\n \n if (!this.$size.scrollerHeight || (!width && !height))\n return this.resizing = 0;\n\n if (force)\n this.$gutterLayer.$padding = null;\n\n if (force)\n this.$renderChanges(changes | this.$changes, true);\n else\n this.$loop.schedule(changes | this.$changes);\n\n if (this.resizing)\n this.resizing = 0;\n this.scrollBarV.scrollLeft = this.scrollBarV.scrollTop = null;\n };\n \n this.$updateCachedSize = function(force, gutterWidth, width, height) {\n height -= (this.$extraHeight || 0);\n var changes = 0;\n var size = this.$size;\n var oldSize = {\n width: size.width,\n height: size.height,\n scrollerHeight: size.scrollerHeight,\n scrollerWidth: size.scrollerWidth\n };\n if (height && (force || size.height != height)) {\n size.height = height;\n changes |= this.CHANGE_SIZE;\n\n size.scrollerHeight = size.height;\n if (this.$horizScroll)\n size.scrollerHeight -= this.scrollBarH.getHeight();\n this.scrollBarV.element.style.bottom = this.scrollBarH.getHeight() + \"px\";\n\n changes = changes | this.CHANGE_SCROLL;\n }\n\n if (width && (force || size.width != width)) {\n changes |= this.CHANGE_SIZE;\n size.width = width;\n \n if (gutterWidth == null)\n gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n \n this.gutterWidth = gutterWidth;\n \n this.scrollBarH.element.style.left = \n this.scroller.style.left = gutterWidth + \"px\";\n size.scrollerWidth = Math.max(0, width - gutterWidth - this.scrollBarV.getWidth()); \n \n this.scrollBarH.element.style.right = \n this.scroller.style.right = this.scrollBarV.getWidth() + \"px\";\n this.scroller.style.bottom = this.scrollBarH.getHeight() + \"px\";\n\n if (this.session && this.session.getUseWrapMode() && this.adjustWrapLimit() || force)\n changes |= this.CHANGE_FULL;\n }\n \n size.$dirty = !width || !height;\n\n if (changes)\n this._signal(\"resize\", oldSize);\n\n return changes;\n };\n\n this.onGutterResize = function() {\n var gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n if (gutterWidth != this.gutterWidth)\n this.$changes |= this.$updateCachedSize(true, gutterWidth, this.$size.width, this.$size.height);\n\n if (this.session.getUseWrapMode() && this.adjustWrapLimit()) {\n this.$loop.schedule(this.CHANGE_FULL);\n } else if (this.$size.$dirty) {\n this.$loop.schedule(this.CHANGE_FULL);\n } else {\n this.$computeLayerConfig();\n this.$loop.schedule(this.CHANGE_MARKER);\n }\n };\n this.adjustWrapLimit = function() {\n var availableWidth = this.$size.scrollerWidth - this.$padding * 2;\n var limit = Math.floor(availableWidth / this.characterWidth);\n return this.session.adjustWrapLimit(limit, this.$showPrintMargin && this.$printMarginColumn);\n };\n this.setAnimatedScroll = function(shouldAnimate){\n this.setOption(\"animatedScroll\", shouldAnimate);\n };\n this.getAnimatedScroll = function() {\n return this.$animatedScroll;\n };\n this.setShowInvisibles = function(showInvisibles) {\n this.setOption(\"showInvisibles\", showInvisibles);\n this.session.$bidiHandler.setShowInvisibles(showInvisibles);\n };\n this.getShowInvisibles = function() {\n return this.getOption(\"showInvisibles\");\n };\n this.getDisplayIndentGuides = function() {\n return this.getOption(\"displayIndentGuides\");\n };\n\n this.setDisplayIndentGuides = function(display) {\n this.setOption(\"displayIndentGuides\", display);\n };\n this.setShowPrintMargin = function(showPrintMargin) {\n this.setOption(\"showPrintMargin\", showPrintMargin);\n };\n this.getShowPrintMargin = function() {\n return this.getOption(\"showPrintMargin\");\n };\n this.setPrintMarginColumn = function(showPrintMargin) {\n this.setOption(\"printMarginColumn\", showPrintMargin);\n };\n this.getPrintMarginColumn = function() {\n return this.getOption(\"printMarginColumn\");\n };\n this.getShowGutter = function(){\n return this.getOption(\"showGutter\");\n };\n this.setShowGutter = function(show){\n return this.setOption(\"showGutter\", show);\n };\n\n this.getFadeFoldWidgets = function(){\n return this.getOption(\"fadeFoldWidgets\");\n };\n\n this.setFadeFoldWidgets = function(show) {\n this.setOption(\"fadeFoldWidgets\", show);\n };\n\n this.setHighlightGutterLine = function(shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n\n this.getHighlightGutterLine = function() {\n return this.getOption(\"highlightGutterLine\");\n };\n\n this.$updateGutterLineHighlight = function() {\n var pos = this.$cursorLayer.$pixelPos;\n var height = this.layerConfig.lineHeight;\n if (this.session.getUseWrapMode()) {\n var cursor = this.session.selection.getCursor();\n cursor.column = 0;\n pos = this.$cursorLayer.getPixelPosition(cursor, true);\n height *= this.session.getRowLength(cursor.row);\n }\n this.$gutterLineHighlight.style.top = pos.top - this.layerConfig.offset + \"px\";\n this.$gutterLineHighlight.style.height = height + \"px\";\n };\n\n this.$updatePrintMargin = function() {\n if (!this.$showPrintMargin && !this.$printMarginEl)\n return;\n\n if (!this.$printMarginEl) {\n var containerEl = dom.createElement(\"div\");\n containerEl.className = \"ace_layer ace_print-margin-layer\";\n this.$printMarginEl = dom.createElement(\"div\");\n this.$printMarginEl.className = \"ace_print-margin\";\n containerEl.appendChild(this.$printMarginEl);\n this.content.insertBefore(containerEl, this.content.firstChild);\n }\n\n var style = this.$printMarginEl.style;\n style.left = ((this.characterWidth * this.$printMarginColumn) + this.$padding) + \"px\";\n style.visibility = this.$showPrintMargin ? \"visible\" : \"hidden\";\n \n if (this.session && this.session.$wrap == -1)\n this.adjustWrapLimit();\n };\n this.getContainerElement = function() {\n return this.container;\n };\n this.getMouseEventTarget = function() {\n return this.scroller;\n };\n this.getTextAreaContainer = function() {\n return this.container;\n };\n this.$moveTextAreaToCursor = function() {\n if (!this.$keepTextAreaAtCursor)\n return;\n var config = this.layerConfig;\n var posTop = this.$cursorLayer.$pixelPos.top;\n var posLeft = this.$cursorLayer.$pixelPos.left;\n posTop -= config.offset;\n\n var style = this.textarea.style;\n var h = this.lineHeight;\n if (posTop < 0 || posTop > config.height - h) {\n style.top = style.left = \"0\";\n return;\n }\n\n var w = this.characterWidth;\n if (this.$composition) {\n var val = this.textarea.value.replace(/^\\x01+/, \"\");\n w *= (this.session.$getStringScreenWidth(val)[0]+2);\n h += 2;\n }\n posLeft -= this.scrollLeft;\n if (posLeft > this.$size.scrollerWidth - w)\n posLeft = this.$size.scrollerWidth - w;\n\n posLeft += this.gutterWidth;\n style.height = h + \"px\";\n style.width = w + \"px\";\n style.left = Math.min(posLeft, this.$size.scrollerWidth - w) + \"px\";\n style.top = Math.min(posTop, this.$size.height - h) + \"px\";\n };\n this.getFirstVisibleRow = function() {\n return this.layerConfig.firstRow;\n };\n this.getFirstFullyVisibleRow = function() {\n return this.layerConfig.firstRow + (this.layerConfig.offset === 0 ? 0 : 1);\n };\n this.getLastFullyVisibleRow = function() {\n var config = this.layerConfig;\n var lastRow = config.lastRow;\n var top = this.session.documentToScreenRow(lastRow, 0) * config.lineHeight;\n if (top - this.session.getScrollTop() > config.height - config.lineHeight)\n return lastRow - 1;\n return lastRow;\n };\n this.getLastVisibleRow = function() {\n return this.layerConfig.lastRow;\n };\n\n this.$padding = null;\n this.setPadding = function(padding) {\n this.$padding = padding;\n this.$textLayer.setPadding(padding);\n this.$cursorLayer.setPadding(padding);\n this.$markerFront.setPadding(padding);\n this.$markerBack.setPadding(padding);\n this.$loop.schedule(this.CHANGE_FULL);\n this.$updatePrintMargin();\n };\n \n this.setScrollMargin = function(top, bottom, left, right) {\n var sm = this.scrollMargin;\n sm.top = top|0;\n sm.bottom = bottom|0;\n sm.right = right|0;\n sm.left = left|0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n if (sm.top && this.scrollTop <= 0 && this.session)\n this.session.setScrollTop(-sm.top);\n this.updateFull();\n };\n this.getHScrollBarAlwaysVisible = function() {\n return this.$hScrollBarAlwaysVisible;\n };\n this.setHScrollBarAlwaysVisible = function(alwaysVisible) {\n this.setOption(\"hScrollBarAlwaysVisible\", alwaysVisible);\n };\n this.getVScrollBarAlwaysVisible = function() {\n return this.$vScrollBarAlwaysVisible;\n };\n this.setVScrollBarAlwaysVisible = function(alwaysVisible) {\n this.setOption(\"vScrollBarAlwaysVisible\", alwaysVisible);\n };\n\n this.$updateScrollBarV = function() {\n var scrollHeight = this.layerConfig.maxHeight;\n var scrollerHeight = this.$size.scrollerHeight;\n if (!this.$maxLines && this.$scrollPastEnd) {\n scrollHeight -= (scrollerHeight - this.lineHeight) * this.$scrollPastEnd;\n if (this.scrollTop > scrollHeight - scrollerHeight) {\n scrollHeight = this.scrollTop + scrollerHeight;\n this.scrollBarV.scrollTop = null;\n }\n }\n this.scrollBarV.setScrollHeight(scrollHeight + this.scrollMargin.v);\n this.scrollBarV.setScrollTop(this.scrollTop + this.scrollMargin.top);\n };\n this.$updateScrollBarH = function() {\n this.scrollBarH.setScrollWidth(this.layerConfig.width + 2 * this.$padding + this.scrollMargin.h);\n this.scrollBarH.setScrollLeft(this.scrollLeft + this.scrollMargin.left);\n };\n \n this.$frozen = false;\n this.freeze = function() {\n this.$frozen = true;\n };\n \n this.unfreeze = function() {\n this.$frozen = false;\n };\n\n this.$renderChanges = function(changes, force) {\n if (this.$changes) {\n changes |= this.$changes;\n this.$changes = 0;\n }\n if ((!this.session || !this.container.offsetWidth || this.$frozen) || (!changes && !force)) {\n this.$changes |= changes;\n return; \n } \n if (this.$size.$dirty) {\n this.$changes |= changes;\n return this.onResize(true);\n }\n if (!this.lineHeight) {\n this.$textLayer.checkForSizeChanges();\n }\n \n this._signal(\"beforeRender\");\n\n if (this.session && this.session.$bidiHandler)\n this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);\n\n var config = this.layerConfig;\n if (changes & this.CHANGE_FULL ||\n changes & this.CHANGE_SIZE ||\n changes & this.CHANGE_TEXT ||\n changes & this.CHANGE_LINES ||\n changes & this.CHANGE_SCROLL ||\n changes & this.CHANGE_H_SCROLL\n ) {\n changes |= this.$computeLayerConfig();\n if (config.firstRow != this.layerConfig.firstRow && config.firstRowScreen == this.layerConfig.firstRowScreen) {\n var st = this.scrollTop + (config.firstRow - this.layerConfig.firstRow) * this.lineHeight;\n if (st > 0) {\n this.scrollTop = st;\n changes = changes | this.CHANGE_SCROLL;\n changes |= this.$computeLayerConfig();\n }\n }\n config = this.layerConfig;\n this.$updateScrollBarV();\n if (changes & this.CHANGE_H_SCROLL)\n this.$updateScrollBarH();\n this.$gutterLayer.element.style.marginTop = (-config.offset) + \"px\";\n this.content.style.marginTop = (-config.offset) + \"px\";\n this.content.style.width = config.width + 2 * this.$padding + \"px\";\n this.content.style.height = config.minHeight + \"px\";\n }\n if (changes & this.CHANGE_H_SCROLL) {\n this.content.style.marginLeft = -this.scrollLeft + \"px\";\n this.scroller.className = this.scrollLeft <= 0 ? \"ace_scroller\" : \"ace_scroller ace_scroll-left\";\n }\n if (changes & this.CHANGE_FULL) {\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this.$highlightGutterLine && this.$updateGutterLineHighlight();\n this._signal(\"afterRender\");\n return;\n }\n if (changes & this.CHANGE_SCROLL) {\n if (changes & this.CHANGE_TEXT || changes & this.CHANGE_LINES)\n this.$textLayer.update(config);\n else\n this.$textLayer.scrollLines(config);\n\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$highlightGutterLine && this.$updateGutterLineHighlight();\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\");\n return;\n }\n\n if (changes & this.CHANGE_TEXT) {\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n }\n else if (changes & this.CHANGE_LINES) {\n if (this.$updateLines() || (changes & this.CHANGE_GUTTER) && this.$showGutter)\n this.$gutterLayer.update(config);\n }\n else if (changes & this.CHANGE_TEXT || changes & this.CHANGE_GUTTER) {\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n }\n\n if (changes & this.CHANGE_CURSOR) {\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this.$highlightGutterLine && this.$updateGutterLineHighlight();\n }\n\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_FRONT)) {\n this.$markerFront.update(config);\n }\n\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_BACK)) {\n this.$markerBack.update(config);\n }\n\n this._signal(\"afterRender\");\n };\n\n \n this.$autosize = function() {\n var height = this.session.getScreenLength() * this.lineHeight;\n var maxHeight = this.$maxLines * this.lineHeight;\n var desiredHeight = Math.min(maxHeight,\n Math.max((this.$minLines || 1) * this.lineHeight, height)\n ) + this.scrollMargin.v + (this.$extraHeight || 0);\n if (this.$horizScroll)\n desiredHeight += this.scrollBarH.getHeight();\n if (this.$maxPixelHeight && desiredHeight > this.$maxPixelHeight)\n desiredHeight = this.$maxPixelHeight;\n var vScroll = height > maxHeight;\n \n if (desiredHeight != this.desiredHeight ||\n this.$size.height != this.desiredHeight || vScroll != this.$vScroll) {\n if (vScroll != this.$vScroll) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n \n var w = this.container.clientWidth;\n this.container.style.height = desiredHeight + \"px\";\n this.$updateCachedSize(true, this.$gutterWidth, w, desiredHeight);\n this.desiredHeight = desiredHeight;\n \n this._signal(\"autosize\");\n }\n };\n \n this.$computeLayerConfig = function() {\n var session = this.session;\n var size = this.$size;\n \n var hideScrollbars = size.height <= 2 * this.lineHeight;\n var screenLines = this.session.getScreenLength();\n var maxHeight = screenLines * this.lineHeight;\n\n var longestLine = this.$getLongestLine();\n \n var horizScroll = !hideScrollbars && (this.$hScrollBarAlwaysVisible ||\n size.scrollerWidth - longestLine - 2 * this.$padding < 0);\n\n var hScrollChanged = this.$horizScroll !== horizScroll;\n if (hScrollChanged) {\n this.$horizScroll = horizScroll;\n this.scrollBarH.setVisible(horizScroll);\n }\n var vScrollBefore = this.$vScroll; // autosize can change vscroll value in which case we need to update longestLine\n if (this.$maxLines && this.lineHeight > 1)\n this.$autosize();\n\n var offset = this.scrollTop % this.lineHeight;\n var minHeight = size.scrollerHeight + this.lineHeight;\n \n var scrollPastEnd = !this.$maxLines && this.$scrollPastEnd\n ? (size.scrollerHeight - this.lineHeight) * this.$scrollPastEnd\n : 0;\n maxHeight += scrollPastEnd;\n \n var sm = this.scrollMargin;\n this.session.setScrollTop(Math.max(-sm.top,\n Math.min(this.scrollTop, maxHeight - size.scrollerHeight + sm.bottom)));\n\n this.session.setScrollLeft(Math.max(-sm.left, Math.min(this.scrollLeft, \n longestLine + 2 * this.$padding - size.scrollerWidth + sm.right)));\n \n var vScroll = !hideScrollbars && (this.$vScrollBarAlwaysVisible ||\n size.scrollerHeight - maxHeight + scrollPastEnd < 0 || this.scrollTop > sm.top);\n var vScrollChanged = vScrollBefore !== vScroll;\n if (vScrollChanged) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n\n var lineCount = Math.ceil(minHeight / this.lineHeight) - 1;\n var firstRow = Math.max(0, Math.round((this.scrollTop - offset) / this.lineHeight));\n var lastRow = firstRow + lineCount;\n var firstRowScreen, firstRowHeight;\n var lineHeight = this.lineHeight;\n firstRow = session.screenToDocumentRow(firstRow, 0);\n var foldLine = session.getFoldLine(firstRow);\n if (foldLine) {\n firstRow = foldLine.start.row;\n }\n\n firstRowScreen = session.documentToScreenRow(firstRow, 0);\n firstRowHeight = session.getRowLength(firstRow) * lineHeight;\n\n lastRow = Math.min(session.screenToDocumentRow(lastRow, 0), session.getLength() - 1);\n minHeight = size.scrollerHeight + session.getRowLength(lastRow) * lineHeight +\n firstRowHeight;\n\n offset = this.scrollTop - firstRowScreen * lineHeight;\n\n var changes = 0;\n if (this.layerConfig.width != longestLine) \n changes = this.CHANGE_H_SCROLL;\n if (hScrollChanged || vScrollChanged) {\n changes = this.$updateCachedSize(true, this.gutterWidth, size.width, size.height);\n this._signal(\"scrollbarVisibilityChanged\");\n if (vScrollChanged)\n longestLine = this.$getLongestLine();\n }\n \n this.layerConfig = {\n width : longestLine,\n padding : this.$padding,\n firstRow : firstRow,\n firstRowScreen: firstRowScreen,\n lastRow : lastRow,\n lineHeight : lineHeight,\n characterWidth : this.characterWidth,\n minHeight : minHeight,\n maxHeight : maxHeight,\n offset : offset,\n gutterOffset : lineHeight ? Math.max(0, Math.ceil((offset + size.height - size.scrollerHeight) / lineHeight)) : 0,\n height : this.$size.scrollerHeight\n };\n\n return changes;\n };\n\n this.$updateLines = function() {\n if (!this.$changedLines) return;\n var firstRow = this.$changedLines.firstRow;\n var lastRow = this.$changedLines.lastRow;\n this.$changedLines = null;\n\n var layerConfig = this.layerConfig;\n\n if (firstRow > layerConfig.lastRow + 1) { return; }\n if (lastRow < layerConfig.firstRow) { return; }\n if (lastRow === Infinity) {\n if (this.$showGutter)\n this.$gutterLayer.update(layerConfig);\n this.$textLayer.update(layerConfig);\n return;\n }\n this.$textLayer.updateLines(layerConfig, firstRow, lastRow);\n return true;\n };\n\n this.$getLongestLine = function() {\n var charCount = this.session.getScreenWidth();\n if (this.showInvisibles && !this.session.$useWrapMode)\n charCount += 1;\n\n return Math.max(this.$size.scrollerWidth - 2 * this.$padding, Math.round(charCount * this.characterWidth));\n };\n this.updateFrontMarkers = function() {\n this.$markerFront.setMarkers(this.session.getMarkers(true));\n this.$loop.schedule(this.CHANGE_MARKER_FRONT);\n };\n this.updateBackMarkers = function() {\n this.$markerBack.setMarkers(this.session.getMarkers());\n this.$loop.schedule(this.CHANGE_MARKER_BACK);\n };\n this.addGutterDecoration = function(row, className){\n this.$gutterLayer.addGutterDecoration(row, className);\n };\n this.removeGutterDecoration = function(row, className){\n this.$gutterLayer.removeGutterDecoration(row, className);\n };\n this.updateBreakpoints = function(rows) {\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n this.setAnnotations = function(annotations) {\n this.$gutterLayer.setAnnotations(annotations);\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n this.updateCursor = function() {\n this.$loop.schedule(this.CHANGE_CURSOR);\n };\n this.hideCursor = function() {\n this.$cursorLayer.hideCursor();\n };\n this.showCursor = function() {\n this.$cursorLayer.showCursor();\n };\n\n this.scrollSelectionIntoView = function(anchor, lead, offset) {\n this.scrollCursorIntoView(anchor, offset);\n this.scrollCursorIntoView(lead, offset);\n };\n this.scrollCursorIntoView = function(cursor, offset, $viewMargin) {\n if (this.$size.scrollerHeight === 0)\n return;\n\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n\n var left = pos.left;\n var top = pos.top;\n \n var topMargin = $viewMargin && $viewMargin.top || 0;\n var bottomMargin = $viewMargin && $viewMargin.bottom || 0;\n \n var scrollTop = this.$scrollAnimation ? this.session.getScrollTop() : this.scrollTop;\n \n if (scrollTop + topMargin > top) {\n if (offset && scrollTop + topMargin > top + this.lineHeight)\n top -= offset * this.$size.scrollerHeight;\n if (top === 0)\n top = -this.scrollMargin.top;\n this.session.setScrollTop(top);\n } else if (scrollTop + this.$size.scrollerHeight - bottomMargin < top + this.lineHeight) {\n if (offset && scrollTop + this.$size.scrollerHeight - bottomMargin < top - this.lineHeight)\n top += offset * this.$size.scrollerHeight;\n this.session.setScrollTop(top + this.lineHeight - this.$size.scrollerHeight);\n }\n\n var scrollLeft = this.scrollLeft;\n\n if (scrollLeft > left) {\n if (left < this.$padding + 2 * this.layerConfig.characterWidth)\n left = -this.scrollMargin.left;\n this.session.setScrollLeft(left);\n } else if (scrollLeft + this.$size.scrollerWidth < left + this.characterWidth) {\n this.session.setScrollLeft(Math.round(left + this.characterWidth - this.$size.scrollerWidth));\n } else if (scrollLeft <= this.$padding && left - scrollLeft < this.characterWidth) {\n this.session.setScrollLeft(0);\n }\n };\n this.getScrollTop = function() {\n return this.session.getScrollTop();\n };\n this.getScrollLeft = function() {\n return this.session.getScrollLeft();\n };\n this.getScrollTopRow = function() {\n return this.scrollTop / this.lineHeight;\n };\n this.getScrollBottomRow = function() {\n return Math.max(0, Math.floor((this.scrollTop + this.$size.scrollerHeight) / this.lineHeight) - 1);\n };\n this.scrollToRow = function(row) {\n this.session.setScrollTop(row * this.lineHeight);\n };\n\n this.alignCursor = function(cursor, alignment) {\n if (typeof cursor == \"number\")\n cursor = {row: cursor, column: 0};\n\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var h = this.$size.scrollerHeight - this.lineHeight;\n var offset = pos.top - h * (alignment || 0);\n\n this.session.setScrollTop(offset);\n return offset;\n };\n\n this.STEPS = 8;\n this.$calcSteps = function(fromValue, toValue){\n var i = 0;\n var l = this.STEPS;\n var steps = [];\n\n var func = function(t, x_min, dx) {\n return dx * (Math.pow(t - 1, 3) + 1) + x_min;\n };\n\n for (i = 0; i < l; ++i)\n steps.push(func(i / this.STEPS, fromValue, toValue - fromValue));\n\n return steps;\n };\n this.scrollToLine = function(line, center, animate, callback) {\n var pos = this.$cursorLayer.getPixelPosition({row: line, column: 0});\n var offset = pos.top;\n if (center)\n offset -= this.$size.scrollerHeight / 2;\n\n var initialScroll = this.scrollTop;\n this.session.setScrollTop(offset);\n if (animate !== false)\n this.animateScrolling(initialScroll, callback);\n };\n\n this.animateScrolling = function(fromValue, callback) {\n var toValue = this.scrollTop;\n if (!this.$animatedScroll)\n return;\n var _self = this;\n \n if (fromValue == toValue)\n return;\n \n if (this.$scrollAnimation) {\n var oldSteps = this.$scrollAnimation.steps;\n if (oldSteps.length) {\n fromValue = oldSteps[0];\n if (fromValue == toValue)\n return;\n }\n }\n \n var steps = _self.$calcSteps(fromValue, toValue);\n this.$scrollAnimation = {from: fromValue, to: toValue, steps: steps};\n\n clearInterval(this.$timer);\n\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n this.$timer = setInterval(function() {\n if (steps.length) {\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n } else if (toValue != null) {\n _self.session.$scrollTop = -1;\n _self.session.setScrollTop(toValue);\n toValue = null;\n } else {\n _self.$timer = clearInterval(_self.$timer);\n _self.$scrollAnimation = null;\n callback && callback();\n }\n }, 10);\n };\n this.scrollToY = function(scrollTop) {\n if (this.scrollTop !== scrollTop) {\n this.$loop.schedule(this.CHANGE_SCROLL);\n this.scrollTop = scrollTop;\n }\n };\n this.scrollToX = function(scrollLeft) {\n if (this.scrollLeft !== scrollLeft)\n this.scrollLeft = scrollLeft;\n this.$loop.schedule(this.CHANGE_H_SCROLL);\n };\n this.scrollTo = function(x, y) {\n this.session.setScrollTop(y);\n this.session.setScrollLeft(y);\n };\n this.scrollBy = function(deltaX, deltaY) {\n deltaY && this.session.setScrollTop(this.session.getScrollTop() + deltaY);\n deltaX && this.session.setScrollLeft(this.session.getScrollLeft() + deltaX);\n };\n this.isScrollableBy = function(deltaX, deltaY) {\n if (deltaY < 0 && this.session.getScrollTop() >= 1 - this.scrollMargin.top)\n return true;\n if (deltaY > 0 && this.session.getScrollTop() + this.$size.scrollerHeight\n - this.layerConfig.maxHeight < -1 + this.scrollMargin.bottom)\n return true;\n if (deltaX < 0 && this.session.getScrollLeft() >= 1 - this.scrollMargin.left)\n return true;\n if (deltaX > 0 && this.session.getScrollLeft() + this.$size.scrollerWidth\n - this.layerConfig.width < -1 + this.scrollMargin.right)\n return true;\n };\n\n this.pixelToScreenCoordinates = function(x, y) {\n var canvasPos = this.scroller.getBoundingClientRect();\n\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n var offset = offsetX / this.characterWidth;\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n var col = Math.round(offset);\n\n return {row: row, column: col, side: offset - col > 0 ? 1 : -1, offsetX: offsetX};\n };\n\n this.screenToTextCoordinates = function(x, y) {\n var canvasPos = this.scroller.getBoundingClientRect();\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n\n var col = Math.round(offsetX / this.characterWidth);\n\n var row = (y + this.scrollTop - canvasPos.top) / this.lineHeight;\n\n return this.session.screenToDocumentPosition(row, Math.max(col, 0), offsetX);\n };\n this.textToScreenCoordinates = function(row, column) {\n var canvasPos = this.scroller.getBoundingClientRect();\n var pos = this.session.documentToScreenPosition(row, column);\n\n var x = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : Math.round(pos.column * this.characterWidth));\n\n var y = pos.row * this.lineHeight;\n\n return {\n pageX: canvasPos.left + x - this.scrollLeft,\n pageY: canvasPos.top + y - this.scrollTop\n };\n };\n this.visualizeFocus = function() {\n dom.addCssClass(this.container, \"ace_focus\");\n };\n this.visualizeBlur = function() {\n dom.removeCssClass(this.container, \"ace_focus\");\n };\n this.showComposition = function(position) {\n if (!this.$composition)\n this.$composition = {\n keepTextAreaAtCursor: this.$keepTextAreaAtCursor,\n cssText: this.textarea.style.cssText\n };\n\n this.$keepTextAreaAtCursor = true;\n dom.addCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = \"\";\n this.$moveTextAreaToCursor();\n };\n this.setCompositionText = function(text) {\n this.$moveTextAreaToCursor();\n };\n this.hideComposition = function() {\n if (!this.$composition)\n return;\n\n dom.removeCssClass(this.textarea, \"ace_composition\");\n this.$keepTextAreaAtCursor = this.$composition.keepTextAreaAtCursor;\n this.textarea.style.cssText = this.$composition.cssText;\n this.$composition = null;\n };\n this.setTheme = function(theme, cb) {\n var _self = this;\n this.$themeId = theme;\n _self._dispatchEvent('themeChange',{theme:theme});\n\n if (!theme || typeof theme == \"string\") {\n var moduleName = theme || this.$options.theme.initialValue;\n config.loadModule([\"theme\", moduleName], afterLoad);\n } else {\n afterLoad(theme);\n }\n\n function afterLoad(module) {\n if (_self.$themeId != theme)\n return cb && cb();\n if (!module || !module.cssClass)\n throw new Error(\"couldn't load module \" + theme + \" or it didn't call define\");\n dom.importCssString(\n module.cssText,\n module.cssClass,\n _self.container.ownerDocument\n );\n\n if (_self.theme)\n dom.removeCssClass(_self.container, _self.theme.cssClass);\n\n var padding = \"padding\" in module ? module.padding \n : \"padding\" in (_self.theme || {}) ? 4 : _self.$padding;\n if (_self.$padding && padding != _self.$padding)\n _self.setPadding(padding);\n _self.$theme = module.cssClass;\n\n _self.theme = module;\n dom.addCssClass(_self.container, module.cssClass);\n dom.setCssClass(_self.container, \"ace_dark\", module.isDark);\n if (_self.$size) {\n _self.$size.width = 0;\n _self.$updateSizeAsync();\n }\n\n _self._dispatchEvent('themeLoaded', {theme:module});\n cb && cb();\n }\n };\n this.getTheme = function() {\n return this.$themeId;\n };\n this.setStyle = function(style, include) {\n dom.setCssClass(this.container, style, include !== false);\n };\n this.unsetStyle = function(style) {\n dom.removeCssClass(this.container, style);\n };\n \n this.setCursorStyle = function(style) {\n if (this.scroller.style.cursor != style)\n this.scroller.style.cursor = style;\n };\n this.setMouseCursor = function(cursorStyle) {\n this.scroller.style.cursor = cursorStyle;\n };\n this.destroy = function() {\n this.$textLayer.destroy();\n this.$cursorLayer.destroy();\n };\n\n}).call(VirtualRenderer.prototype);\n\n\nconfig.defineOptions(VirtualRenderer.prototype, \"renderer\", {\n animatedScroll: {initialValue: false},\n showInvisibles: {\n set: function(value) {\n if (this.$textLayer.setShowInvisibles(value))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: false\n },\n showPrintMargin: {\n set: function() { this.$updatePrintMargin(); },\n initialValue: true\n },\n printMarginColumn: {\n set: function() { this.$updatePrintMargin(); },\n initialValue: 80\n },\n printMargin: {\n set: function(val) {\n if (typeof val == \"number\")\n this.$printMarginColumn = val;\n this.$showPrintMargin = !!val;\n this.$updatePrintMargin();\n },\n get: function() {\n return this.$showPrintMargin && this.$printMarginColumn; \n }\n },\n showGutter: {\n set: function(show){\n this.$gutter.style.display = show ? \"block\" : \"none\";\n this.$loop.schedule(this.CHANGE_FULL);\n this.onGutterResize();\n },\n initialValue: true\n },\n fadeFoldWidgets: {\n set: function(show) {\n dom.setCssClass(this.$gutter, \"ace_fade-fold-widgets\", show);\n },\n initialValue: false\n },\n showFoldWidgets: {\n set: function(show) {this.$gutterLayer.setShowFoldWidgets(show);},\n initialValue: true\n },\n showLineNumbers: {\n set: function(show) {\n this.$gutterLayer.setShowLineNumbers(show);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n displayIndentGuides: {\n set: function(show) {\n if (this.$textLayer.setDisplayIndentGuides(show))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: true\n },\n highlightGutterLine: {\n set: function(shouldHighlight) {\n if (!this.$gutterLineHighlight) {\n this.$gutterLineHighlight = dom.createElement(\"div\");\n this.$gutterLineHighlight.className = \"ace_gutter-active-line\";\n this.$gutter.appendChild(this.$gutterLineHighlight);\n return;\n }\n\n this.$gutterLineHighlight.style.display = shouldHighlight ? \"\" : \"none\";\n if (this.$cursorLayer.$pixelPos)\n this.$updateGutterLineHighlight();\n },\n initialValue: false,\n value: true\n },\n hScrollBarAlwaysVisible: {\n set: function(val) {\n if (!this.$hScrollBarAlwaysVisible || !this.$horizScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n vScrollBarAlwaysVisible: {\n set: function(val) {\n if (!this.$vScrollBarAlwaysVisible || !this.$vScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n fontSize: {\n set: function(size) {\n if (typeof size == \"number\")\n size = size + \"px\";\n this.container.style.fontSize = size;\n this.updateFontSize();\n },\n initialValue: 12\n },\n fontFamily: {\n set: function(name) {\n this.container.style.fontFamily = name;\n this.updateFontSize();\n }\n },\n maxLines: {\n set: function(val) {\n this.updateFull();\n }\n },\n minLines: {\n set: function(val) {\n this.updateFull();\n }\n },\n maxPixelHeight: {\n set: function(val) {\n this.updateFull();\n },\n initialValue: 0\n },\n scrollPastEnd: {\n set: function(val) {\n val = +val || 0;\n if (this.$scrollPastEnd == val)\n return;\n this.$scrollPastEnd = val;\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: 0,\n handlesSet: true\n },\n fixedWidthGutter: {\n set: function(val) {\n this.$gutterLayer.$fixedWidth = !!val;\n this.$loop.schedule(this.CHANGE_GUTTER);\n }\n },\n theme: {\n set: function(val) { this.setTheme(val); },\n get: function() { return this.$themeId || this.theme; },\n initialValue: \"./theme/textmate\",\n handlesSet: true\n }\n});\n\nexports.VirtualRenderer = VirtualRenderer;\n});\n\nace.define(\"ace/worker/worker_client\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/event_emitter\",\"ace/config\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar net = acequire(\"../lib/net\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\nvar config = acequire(\"../config\");\n\nfunction $workerBlob(workerUrl, mod) {\n var script = mod.src;\"importScripts('\" + net.qualifyURL(workerUrl) + \"');\";\n try {\n return new Blob([script], {\"type\": \"application/javascript\"});\n } catch (e) { // Backwards-compatibility\n var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;\n var blobBuilder = new BlobBuilder();\n blobBuilder.append(script);\n return blobBuilder.getBlob(\"application/javascript\");\n }\n}\n\nfunction createWorker(workerUrl, mod) {\n var blob = $workerBlob(workerUrl, mod);\n var URL = window.URL || window.webkitURL;\n var blobURL = URL.createObjectURL(blob);\n return new Worker(blobURL);\n}\n\nvar WorkerClient = function(topLevelNamespaces, mod, classname, workerUrl, importScripts) {\n this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n this.changeListener = this.changeListener.bind(this);\n this.onMessage = this.onMessage.bind(this);\n if (acequire.nameToUrl && !acequire.toUrl)\n acequire.toUrl = acequire.nameToUrl;\n \n if (config.get(\"packaged\") || !acequire.toUrl) {\n workerUrl = workerUrl || config.moduleUrl(mod.id, \"worker\");\n } else {\n var normalizePath = this.$normalizePath;\n workerUrl = workerUrl || normalizePath(acequire.toUrl(\"ace/worker/worker.js\", null, \"_\"));\n\n var tlns = {};\n topLevelNamespaces.forEach(function(ns) {\n tlns[ns] = normalizePath(acequire.toUrl(ns, null, \"_\").replace(/(\\.js)?(\\?.*)?$/, \"\"));\n });\n }\n\n this.$worker = createWorker(workerUrl, mod);\n if (importScripts) {\n this.send(\"importScripts\", importScripts);\n }\n this.$worker.postMessage({\n init : true,\n tlns : tlns,\n module : mod.id,\n classname : classname\n });\n\n this.callbackId = 1;\n this.callbacks = {};\n\n this.$worker.onmessage = this.onMessage;\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n\n this.onMessage = function(e) {\n var msg = e.data;\n switch (msg.type) {\n case \"event\":\n this._signal(msg.name, {data: msg.data});\n break;\n case \"call\":\n var callback = this.callbacks[msg.id];\n if (callback) {\n callback(msg.data);\n delete this.callbacks[msg.id];\n }\n break;\n case \"error\":\n this.reportError(msg.data);\n break;\n case \"log\":\n window.console && console.log && console.log.apply(console, msg.data);\n break;\n }\n };\n \n this.reportError = function(err) {\n window.console && console.error && console.error(err);\n };\n\n this.$normalizePath = function(path) {\n return net.qualifyURL(path);\n };\n\n this.terminate = function() {\n this._signal(\"terminate\", {});\n this.deltaQueue = null;\n this.$worker.terminate();\n this.$worker = null;\n if (this.$doc)\n this.$doc.off(\"change\", this.changeListener);\n this.$doc = null;\n };\n\n this.send = function(cmd, args) {\n this.$worker.postMessage({command: cmd, args: args});\n };\n\n this.call = function(cmd, args, callback) {\n if (callback) {\n var id = this.callbackId++;\n this.callbacks[id] = callback;\n args.push(id);\n }\n this.send(cmd, args);\n };\n\n this.emit = function(event, data) {\n try {\n this.$worker.postMessage({event: event, data: {data: data.data}});\n }\n catch(ex) {\n console.error(ex.stack);\n }\n };\n\n this.attachToDocument = function(doc) {\n if (this.$doc)\n this.terminate();\n\n this.$doc = doc;\n this.call(\"setValue\", [doc.getValue()]);\n doc.on(\"change\", this.changeListener);\n };\n\n this.changeListener = function(delta) {\n if (!this.deltaQueue) {\n this.deltaQueue = [];\n setTimeout(this.$sendDeltaQueue, 0);\n }\n if (delta.action == \"insert\")\n this.deltaQueue.push(delta.start, delta.lines);\n else\n this.deltaQueue.push(delta.start, delta.end);\n };\n\n this.$sendDeltaQueue = function() {\n var q = this.deltaQueue;\n if (!q) return;\n this.deltaQueue = null;\n if (q.length > 50 && q.length > this.$doc.getLength() >> 1) {\n this.call(\"setValue\", [this.$doc.getValue()]);\n } else\n this.emit(\"change\", {data: q});\n };\n\n}).call(WorkerClient.prototype);\n\n\nvar UIWorkerClient = function(topLevelNamespaces, mod, classname) {\n this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n this.changeListener = this.changeListener.bind(this);\n this.callbackId = 1;\n this.callbacks = {};\n this.messageBuffer = [];\n\n var main = null;\n var emitSync = false;\n var sender = Object.create(EventEmitter);\n var _self = this;\n\n this.$worker = {};\n this.$worker.terminate = function() {};\n this.$worker.postMessage = function(e) {\n _self.messageBuffer.push(e);\n if (main) {\n if (emitSync)\n setTimeout(processNext);\n else\n processNext();\n }\n };\n this.setEmitSync = function(val) { emitSync = val; };\n\n var processNext = function() {\n var msg = _self.messageBuffer.shift();\n if (msg.command)\n main[msg.command].apply(main, msg.args);\n else if (msg.event)\n sender._signal(msg.event, msg.data);\n };\n\n sender.postMessage = function(msg) {\n _self.onMessage({data: msg});\n };\n sender.callback = function(data, callbackId) {\n this.postMessage({type: \"call\", id: callbackId, data: data});\n };\n sender.emit = function(name, data) {\n this.postMessage({type: \"event\", name: name, data: data});\n };\n\n config.loadModule([\"worker\", mod], function(Main) {\n main = new Main[classname](sender);\n while (_self.messageBuffer.length)\n processNext();\n });\n};\n\nUIWorkerClient.prototype = WorkerClient.prototype;\n\nexports.UIWorkerClient = UIWorkerClient;\nexports.WorkerClient = WorkerClient;\nexports.createWorker = createWorker;\n\n\n});\n\nace.define(\"ace/placeholder\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/oop\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"./range\").Range;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar oop = acequire(\"./lib/oop\");\n\nvar PlaceHolder = function(session, length, pos, others, mainClass, othersClass) {\n var _self = this;\n this.length = length;\n this.session = session;\n this.doc = session.getDocument();\n this.mainClass = mainClass;\n this.othersClass = othersClass;\n this.$onUpdate = this.onUpdate.bind(this);\n this.doc.on(\"change\", this.$onUpdate);\n this.$others = others;\n \n this.$onCursorChange = function() {\n setTimeout(function() {\n _self.onCursorChange();\n });\n };\n \n this.$pos = pos;\n var undoStack = session.getUndoManager().$undoStack || session.getUndoManager().$undostack || {length: -1};\n this.$undoStackDepth = undoStack.length;\n this.setup();\n\n session.selection.on(\"changeCursor\", this.$onCursorChange);\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.setup = function() {\n var _self = this;\n var doc = this.doc;\n var session = this.session;\n \n this.selectionBefore = session.selection.toJSON();\n if (session.selection.inMultiSelectMode)\n session.selection.toSingleRange();\n\n this.pos = doc.createAnchor(this.$pos.row, this.$pos.column);\n var pos = this.pos;\n pos.$insertRight = true;\n pos.detach();\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + this.length), this.mainClass, null, false);\n this.others = [];\n this.$others.forEach(function(other) {\n var anchor = doc.createAnchor(other.row, other.column);\n anchor.$insertRight = true;\n anchor.detach();\n _self.others.push(anchor);\n });\n session.setUndoSelect(false);\n };\n this.showOtherMarkers = function() {\n if (this.othersActive) return;\n var session = this.session;\n var _self = this;\n this.othersActive = true;\n this.others.forEach(function(anchor) {\n anchor.markerId = session.addMarker(new Range(anchor.row, anchor.column, anchor.row, anchor.column+_self.length), _self.othersClass, null, false);\n });\n };\n this.hideOtherMarkers = function() {\n if (!this.othersActive) return;\n this.othersActive = false;\n for (var i = 0; i < this.others.length; i++) {\n this.session.removeMarker(this.others[i].markerId);\n }\n };\n this.onUpdate = function(delta) {\n if (this.$updating)\n return this.updateAnchors(delta);\n \n var range = delta;\n if (range.start.row !== range.end.row) return;\n if (range.start.row !== this.pos.row) return;\n this.$updating = true;\n var lengthDiff = delta.action === \"insert\" ? range.end.column - range.start.column : range.start.column - range.end.column;\n var inMainRange = range.start.column >= this.pos.column && range.start.column <= this.pos.column + this.length + 1;\n var distanceFromStart = range.start.column - this.pos.column;\n \n this.updateAnchors(delta);\n \n if (inMainRange)\n this.length += lengthDiff;\n\n if (inMainRange && !this.session.$fromUndo) {\n if (delta.action === 'insert') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = {row: otherPos.row, column: otherPos.column + distanceFromStart};\n this.doc.insertMergedLines(newPos, delta.lines);\n }\n } else if (delta.action === 'remove') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = {row: otherPos.row, column: otherPos.column + distanceFromStart};\n this.doc.remove(new Range(newPos.row, newPos.column, newPos.row, newPos.column - lengthDiff));\n }\n }\n }\n \n this.$updating = false;\n this.updateMarkers();\n };\n \n this.updateAnchors = function(delta) {\n this.pos.onChange(delta);\n for (var i = this.others.length; i--;)\n this.others[i].onChange(delta);\n this.updateMarkers();\n };\n \n this.updateMarkers = function() {\n if (this.$updating)\n return;\n var _self = this;\n var session = this.session;\n var updateMarker = function(pos, className) {\n session.removeMarker(pos.markerId);\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column+_self.length), className, null, false);\n };\n updateMarker(this.pos, this.mainClass);\n for (var i = this.others.length; i--;)\n updateMarker(this.others[i], this.othersClass);\n };\n\n this.onCursorChange = function(event) {\n if (this.$updating || !this.session) return;\n var pos = this.session.selection.getCursor();\n if (pos.row === this.pos.row && pos.column >= this.pos.column && pos.column <= this.pos.column + this.length) {\n this.showOtherMarkers();\n this._emit(\"cursorEnter\", event);\n } else {\n this.hideOtherMarkers();\n this._emit(\"cursorLeave\", event);\n }\n }; \n this.detach = function() {\n this.session.removeMarker(this.pos && this.pos.markerId);\n this.hideOtherMarkers();\n this.doc.removeEventListener(\"change\", this.$onUpdate);\n this.session.selection.removeEventListener(\"changeCursor\", this.$onCursorChange);\n this.session.setUndoSelect(true);\n this.session = null;\n };\n this.cancel = function() {\n if (this.$undoStackDepth === -1)\n return;\n var undoManager = this.session.getUndoManager();\n var undosRequired = (undoManager.$undoStack || undoManager.$undostack).length - this.$undoStackDepth;\n for (var i = 0; i < undosRequired; i++) {\n undoManager.undo(true);\n }\n if (this.selectionBefore)\n this.session.selection.fromJSON(this.selectionBefore);\n };\n}).call(PlaceHolder.prototype);\n\n\nexports.PlaceHolder = PlaceHolder;\n});\n\nace.define(\"ace/mouse/multi_select_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\n\nfunction onMouseDown(e) {\n var ev = e.domEvent;\n var alt = ev.altKey;\n var shift = ev.shiftKey;\n var ctrl = ev.ctrlKey;\n var accel = e.getAccelKey();\n var button = e.getButton();\n \n if (ctrl && useragent.isMac)\n button = ev.button;\n\n if (e.editor.inMultiSelectMode && button == 2) {\n e.editor.textInput.onContextMenu(e.domEvent);\n return;\n }\n \n if (!ctrl && !alt && !accel) {\n if (button === 0 && e.editor.inMultiSelectMode)\n e.editor.exitMultiSelectMode();\n return;\n }\n \n if (button !== 0)\n return;\n\n var editor = e.editor;\n var selection = editor.selection;\n var isMultiSelect = editor.inMultiSelectMode;\n var pos = e.getDocumentPosition();\n var cursor = selection.getCursor();\n var inSelection = e.inSelection() || (selection.isEmpty() && isSamePoint(pos, cursor));\n\n var mouseX = e.x, mouseY = e.y;\n var onMouseSelection = function(e) {\n mouseX = e.clientX;\n mouseY = e.clientY;\n };\n \n var session = editor.session;\n var screenAnchor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var screenCursor = screenAnchor;\n \n var selectionMode;\n if (editor.$mouseHandler.$enableJumpToDef) {\n if (ctrl && alt || accel && alt)\n selectionMode = shift ? \"block\" : \"add\";\n else if (alt && editor.$blockSelectEnabled)\n selectionMode = \"block\";\n } else {\n if (accel && !alt) {\n selectionMode = \"add\";\n if (!isMultiSelect && shift)\n return;\n } else if (alt && editor.$blockSelectEnabled) {\n selectionMode = \"block\";\n }\n }\n \n if (selectionMode && useragent.isMac && ev.ctrlKey) {\n editor.$mouseHandler.cancelContextMenu();\n }\n\n if (selectionMode == \"add\") {\n if (!isMultiSelect && inSelection)\n return; // dragging\n\n if (!isMultiSelect) {\n var range = selection.toOrientedRange();\n editor.addSelectionMarker(range);\n }\n\n var oldRange = selection.rangeList.rangeAtPoint(pos);\n \n \n editor.$blockScrolling++;\n editor.inVirtualSelectionMode = true;\n \n if (shift) {\n oldRange = null;\n range = selection.ranges[0] || range;\n editor.removeSelectionMarker(range);\n }\n editor.once(\"mouseup\", function() {\n var tmpSel = selection.toOrientedRange();\n\n if (oldRange && tmpSel.isEmpty() && isSamePoint(oldRange.cursor, tmpSel.cursor))\n selection.substractPoint(tmpSel.cursor);\n else {\n if (shift) {\n selection.substractPoint(range.cursor);\n } else if (range) {\n editor.removeSelectionMarker(range);\n selection.addRange(range);\n }\n selection.addRange(tmpSel);\n }\n editor.$blockScrolling--;\n editor.inVirtualSelectionMode = false;\n });\n\n } else if (selectionMode == \"block\") {\n e.stop();\n editor.inVirtualSelectionMode = true; \n var initialRange;\n var rectSel = [];\n var blockSelect = function() {\n var newCursor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var cursor = session.screenToDocumentPosition(newCursor.row, newCursor.column, newCursor.offsetX);\n\n if (isSamePoint(screenCursor, newCursor) && isSamePoint(cursor, selection.lead))\n return;\n screenCursor = newCursor;\n \n editor.$blockScrolling++;\n editor.selection.moveToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n\n editor.removeSelectionMarkers(rectSel);\n rectSel = selection.rectangularRangeBlock(screenCursor, screenAnchor);\n if (editor.$mouseHandler.$clickSelection && rectSel.length == 1 && rectSel[0].isEmpty())\n rectSel[0] = editor.$mouseHandler.$clickSelection.clone();\n rectSel.forEach(editor.addSelectionMarker, editor);\n editor.updateSelectionMarkers();\n editor.$blockScrolling--;\n };\n editor.$blockScrolling++;\n if (isMultiSelect && !accel) {\n selection.toSingleRange();\n } else if (!isMultiSelect && accel) {\n initialRange = selection.toOrientedRange();\n editor.addSelectionMarker(initialRange);\n }\n \n if (shift)\n screenAnchor = session.documentToScreenPosition(selection.lead); \n else\n selection.moveToPosition(pos);\n editor.$blockScrolling--;\n \n screenCursor = {row: -1, column: -1};\n\n var onMouseSelectionEnd = function(e) {\n clearInterval(timerId);\n editor.removeSelectionMarkers(rectSel);\n if (!rectSel.length)\n rectSel = [selection.toOrientedRange()];\n editor.$blockScrolling++;\n if (initialRange) {\n editor.removeSelectionMarker(initialRange);\n selection.toSingleRange(initialRange);\n }\n for (var i = 0; i < rectSel.length; i++)\n selection.addRange(rectSel[i]);\n editor.inVirtualSelectionMode = false;\n editor.$mouseHandler.$clickSelection = null;\n editor.$blockScrolling--;\n };\n\n var onSelectionInterval = blockSelect;\n\n event.capture(editor.container, onMouseSelection, onMouseSelectionEnd);\n var timerId = setInterval(function() {onSelectionInterval();}, 20);\n\n return e.preventDefault();\n }\n}\n\n\nexports.onMouseDown = onMouseDown;\n\n});\n\nace.define(\"ace/commands/multi_select_commands\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\"], function(acequire, exports, module) {\nexports.defaultCommands = [{\n name: \"addCursorAbove\",\n exec: function(editor) { editor.selectMoreLines(-1); },\n bindKey: {win: \"Ctrl-Alt-Up\", mac: \"Ctrl-Alt-Up\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"addCursorBelow\",\n exec: function(editor) { editor.selectMoreLines(1); },\n bindKey: {win: \"Ctrl-Alt-Down\", mac: \"Ctrl-Alt-Down\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"addCursorAboveSkipCurrent\",\n exec: function(editor) { editor.selectMoreLines(-1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Up\", mac: \"Ctrl-Alt-Shift-Up\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"addCursorBelowSkipCurrent\",\n exec: function(editor) { editor.selectMoreLines(1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Down\", mac: \"Ctrl-Alt-Shift-Down\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectMoreBefore\",\n exec: function(editor) { editor.selectMore(-1); },\n bindKey: {win: \"Ctrl-Alt-Left\", mac: \"Ctrl-Alt-Left\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectMoreAfter\",\n exec: function(editor) { editor.selectMore(1); },\n bindKey: {win: \"Ctrl-Alt-Right\", mac: \"Ctrl-Alt-Right\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectNextBefore\",\n exec: function(editor) { editor.selectMore(-1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Left\", mac: \"Ctrl-Alt-Shift-Left\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectNextAfter\",\n exec: function(editor) { editor.selectMore(1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Right\", mac: \"Ctrl-Alt-Shift-Right\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"splitIntoLines\",\n exec: function(editor) { editor.multiSelect.splitIntoLines(); },\n bindKey: {win: \"Ctrl-Alt-L\", mac: \"Ctrl-Alt-L\"},\n readOnly: true\n}, {\n name: \"alignCursors\",\n exec: function(editor) { editor.alignCursors(); },\n bindKey: {win: \"Ctrl-Alt-A\", mac: \"Ctrl-Alt-A\"},\n scrollIntoView: \"cursor\"\n}, {\n name: \"findAll\",\n exec: function(editor) { editor.findAll(); },\n bindKey: {win: \"Ctrl-Alt-K\", mac: \"Ctrl-Alt-G\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}];\nexports.multiSelectCommands = [{\n name: \"singleSelection\",\n bindKey: \"esc\",\n exec: function(editor) { editor.exitMultiSelectMode(); },\n scrollIntoView: \"cursor\",\n readOnly: true,\n isAvailable: function(editor) {return editor && editor.inMultiSelectMode;}\n}];\n\nvar HashHandler = acequire(\"../keyboard/hash_handler\").HashHandler;\nexports.keyboardHandler = new HashHandler(exports.multiSelectCommands);\n\n});\n\nace.define(\"ace/multi_select\",[\"require\",\"exports\",\"module\",\"ace/range_list\",\"ace/range\",\"ace/selection\",\"ace/mouse/multi_select_handler\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/commands/multi_select_commands\",\"ace/search\",\"ace/edit_session\",\"ace/editor\",\"ace/config\"], function(acequire, exports, module) {\n\nvar RangeList = acequire(\"./range_list\").RangeList;\nvar Range = acequire(\"./range\").Range;\nvar Selection = acequire(\"./selection\").Selection;\nvar onMouseDown = acequire(\"./mouse/multi_select_handler\").onMouseDown;\nvar event = acequire(\"./lib/event\");\nvar lang = acequire(\"./lib/lang\");\nvar commands = acequire(\"./commands/multi_select_commands\");\nexports.commands = commands.defaultCommands.concat(commands.multiSelectCommands);\nvar Search = acequire(\"./search\").Search;\nvar search = new Search();\n\nfunction find(session, needle, dir) {\n search.$options.wrap = true;\n search.$options.needle = needle;\n search.$options.backwards = dir == -1;\n return search.find(session);\n}\nvar EditSession = acequire(\"./edit_session\").EditSession;\n(function() {\n this.getSelectionMarkers = function() {\n return this.$selectionMarkers;\n };\n}).call(EditSession.prototype);\n(function() {\n this.ranges = null;\n this.rangeList = null;\n this.addRange = function(range, $blockChangeEvents) {\n if (!range)\n return;\n\n if (!this.inMultiSelectMode && this.rangeCount === 0) {\n var oldRange = this.toOrientedRange();\n this.rangeList.add(oldRange);\n this.rangeList.add(range);\n if (this.rangeList.ranges.length != 2) {\n this.rangeList.removeAll();\n return $blockChangeEvents || this.fromOrientedRange(range);\n }\n this.rangeList.removeAll();\n this.rangeList.add(oldRange);\n this.$onAddRange(oldRange);\n }\n\n if (!range.cursor)\n range.cursor = range.end;\n\n var removed = this.rangeList.add(range);\n\n this.$onAddRange(range);\n\n if (removed.length)\n this.$onRemoveRange(removed);\n\n if (this.rangeCount > 1 && !this.inMultiSelectMode) {\n this._signal(\"multiSelect\");\n this.inMultiSelectMode = true;\n this.session.$undoSelect = false;\n this.rangeList.attach(this.session);\n }\n\n return $blockChangeEvents || this.fromOrientedRange(range);\n };\n\n this.toSingleRange = function(range) {\n range = range || this.ranges[0];\n var removed = this.rangeList.removeAll();\n if (removed.length)\n this.$onRemoveRange(removed);\n\n range && this.fromOrientedRange(range);\n };\n this.substractPoint = function(pos) {\n var removed = this.rangeList.substractPoint(pos);\n if (removed) {\n this.$onRemoveRange(removed);\n return removed[0];\n }\n };\n this.mergeOverlappingRanges = function() {\n var removed = this.rangeList.merge();\n if (removed.length)\n this.$onRemoveRange(removed);\n else if(this.ranges[0])\n this.fromOrientedRange(this.ranges[0]);\n };\n\n this.$onAddRange = function(range) {\n this.rangeCount = this.rangeList.ranges.length;\n this.ranges.unshift(range);\n this._signal(\"addRange\", {range: range});\n };\n\n this.$onRemoveRange = function(removed) {\n this.rangeCount = this.rangeList.ranges.length;\n if (this.rangeCount == 1 && this.inMultiSelectMode) {\n var lastRange = this.rangeList.ranges.pop();\n removed.push(lastRange);\n this.rangeCount = 0;\n }\n\n for (var i = removed.length; i--; ) {\n var index = this.ranges.indexOf(removed[i]);\n this.ranges.splice(index, 1);\n }\n\n this._signal(\"removeRange\", {ranges: removed});\n\n if (this.rangeCount === 0 && this.inMultiSelectMode) {\n this.inMultiSelectMode = false;\n this._signal(\"singleSelect\");\n this.session.$undoSelect = true;\n this.rangeList.detach(this.session);\n }\n\n lastRange = lastRange || this.ranges[0];\n if (lastRange && !lastRange.isEqual(this.getRange()))\n this.fromOrientedRange(lastRange);\n };\n this.$initRangeList = function() {\n if (this.rangeList)\n return;\n\n this.rangeList = new RangeList();\n this.ranges = [];\n this.rangeCount = 0;\n };\n this.getAllRanges = function() {\n return this.rangeCount ? this.rangeList.ranges.concat() : [this.getRange()];\n };\n\n this.splitIntoLines = function () {\n if (this.rangeCount > 1) {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n } else {\n var range = this.getRange();\n var isBackwards = this.isBackwards();\n var startRow = range.start.row;\n var endRow = range.end.row;\n if (startRow == endRow) {\n if (isBackwards)\n var start = range.end, end = range.start;\n else\n var start = range.start, end = range.end;\n \n this.addRange(Range.fromPoints(end, end));\n this.addRange(Range.fromPoints(start, start));\n return;\n }\n\n var rectSel = [];\n var r = this.getLineRange(startRow, true);\n r.start.column = range.start.column;\n rectSel.push(r);\n\n for (var i = startRow + 1; i < endRow; i++)\n rectSel.push(this.getLineRange(i, true));\n\n r = this.getLineRange(endRow, true);\n r.end.column = range.end.column;\n rectSel.push(r);\n\n rectSel.forEach(this.addRange, this);\n }\n };\n this.toggleBlockSelection = function () {\n if (this.rangeCount > 1) {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n } else {\n var cursor = this.session.documentToScreenPosition(this.selectionLead);\n var anchor = this.session.documentToScreenPosition(this.selectionAnchor);\n\n var rectSel = this.rectangularRangeBlock(cursor, anchor);\n rectSel.forEach(this.addRange, this);\n }\n };\n this.rectangularRangeBlock = function(screenCursor, screenAnchor, includeEmptyLines) {\n var rectSel = [];\n\n var xBackwards = screenCursor.column < screenAnchor.column;\n if (xBackwards) {\n var startColumn = screenCursor.column;\n var endColumn = screenAnchor.column;\n var startOffsetX = screenCursor.offsetX;\n var endOffsetX = screenAnchor.offsetX;\n } else {\n var startColumn = screenAnchor.column;\n var endColumn = screenCursor.column;\n var startOffsetX = screenAnchor.offsetX;\n var endOffsetX = screenCursor.offsetX;\n }\n\n var yBackwards = screenCursor.row < screenAnchor.row;\n if (yBackwards) {\n var startRow = screenCursor.row;\n var endRow = screenAnchor.row;\n } else {\n var startRow = screenAnchor.row;\n var endRow = screenCursor.row;\n }\n\n if (startColumn < 0)\n startColumn = 0;\n if (startRow < 0)\n startRow = 0;\n\n if (startRow == endRow)\n includeEmptyLines = true;\n\n for (var row = startRow; row <= endRow; row++) {\n var range = Range.fromPoints(\n this.session.screenToDocumentPosition(row, startColumn, startOffsetX),\n this.session.screenToDocumentPosition(row, endColumn, endOffsetX)\n );\n if (range.isEmpty()) {\n if (docEnd && isSamePoint(range.end, docEnd))\n break;\n var docEnd = range.end;\n }\n range.cursor = xBackwards ? range.start : range.end;\n rectSel.push(range);\n }\n\n if (yBackwards)\n rectSel.reverse();\n\n if (!includeEmptyLines) {\n var end = rectSel.length - 1;\n while (rectSel[end].isEmpty() && end > 0)\n end--;\n if (end > 0) {\n var start = 0;\n while (rectSel[start].isEmpty())\n start++;\n }\n for (var i = end; i >= start; i--) {\n if (rectSel[i].isEmpty())\n rectSel.splice(i, 1);\n }\n }\n\n return rectSel;\n };\n}).call(Selection.prototype);\nvar Editor = acequire(\"./editor\").Editor;\n(function() {\n this.updateSelectionMarkers = function() {\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.addSelectionMarker = function(orientedRange) {\n if (!orientedRange.cursor)\n orientedRange.cursor = orientedRange.end;\n\n var style = this.getSelectionStyle();\n orientedRange.marker = this.session.addMarker(orientedRange, \"ace_selection\", style);\n\n this.session.$selectionMarkers.push(orientedRange);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n return orientedRange;\n };\n this.removeSelectionMarker = function(range) {\n if (!range.marker)\n return;\n this.session.removeMarker(range.marker);\n var index = this.session.$selectionMarkers.indexOf(range);\n if (index != -1)\n this.session.$selectionMarkers.splice(index, 1);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n };\n\n this.removeSelectionMarkers = function(ranges) {\n var markerList = this.session.$selectionMarkers;\n for (var i = ranges.length; i--; ) {\n var range = ranges[i];\n if (!range.marker)\n continue;\n this.session.removeMarker(range.marker);\n var index = markerList.indexOf(range);\n if (index != -1)\n markerList.splice(index, 1);\n }\n this.session.selectionMarkerCount = markerList.length;\n };\n\n this.$onAddRange = function(e) {\n this.addSelectionMarker(e.range);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n\n this.$onRemoveRange = function(e) {\n this.removeSelectionMarkers(e.ranges);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n\n this.$onMultiSelect = function(e) {\n if (this.inMultiSelectMode)\n return;\n this.inMultiSelectMode = true;\n\n this.setStyle(\"ace_multiselect\");\n this.keyBinding.addKeyboardHandler(commands.keyboardHandler);\n this.commands.setDefaultHandler(\"exec\", this.$onMultiSelectExec);\n\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n\n this.$onSingleSelect = function(e) {\n if (this.session.multiSelect.inVirtualMode)\n return;\n this.inMultiSelectMode = false;\n\n this.unsetStyle(\"ace_multiselect\");\n this.keyBinding.removeKeyboardHandler(commands.keyboardHandler);\n\n this.commands.removeDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n this._emit(\"changeSelection\");\n };\n\n this.$onMultiSelectExec = function(e) {\n var command = e.command;\n var editor = e.editor;\n if (!editor.multiSelect)\n return;\n if (!command.multiSelectAction) {\n var result = command.exec(editor, e.args || {});\n editor.multiSelect.addRange(editor.multiSelect.toOrientedRange());\n editor.multiSelect.mergeOverlappingRanges();\n } else if (command.multiSelectAction == \"forEach\") {\n result = editor.forEachSelection(command, e.args);\n } else if (command.multiSelectAction == \"forEachLine\") {\n result = editor.forEachSelection(command, e.args, true);\n } else if (command.multiSelectAction == \"single\") {\n editor.exitMultiSelectMode();\n result = command.exec(editor, e.args || {});\n } else {\n result = command.multiSelectAction(editor, e.args || {});\n }\n return result;\n }; \n this.forEachSelection = function(cmd, args, options) {\n if (this.inVirtualSelectionMode)\n return;\n var keepOrder = options && options.keepOrder;\n var $byLines = options == true || options && options.$byLines;\n var session = this.session;\n var selection = this.selection;\n var rangeList = selection.rangeList;\n var ranges = (keepOrder ? selection : rangeList).ranges;\n var result;\n \n if (!ranges.length)\n return cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n \n var reg = selection._eventRegistry;\n selection._eventRegistry = {};\n\n var tmpSel = new Selection(session);\n this.inVirtualSelectionMode = true;\n for (var i = ranges.length; i--;) {\n if ($byLines) {\n while (i > 0 && ranges[i].start.row == ranges[i - 1].end.row)\n i--;\n }\n tmpSel.fromOrientedRange(ranges[i]);\n tmpSel.index = i;\n this.selection = session.selection = tmpSel;\n var cmdResult = cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n if (!result && cmdResult !== undefined)\n result = cmdResult;\n tmpSel.toOrientedRange(ranges[i]);\n }\n tmpSel.detach();\n\n this.selection = session.selection = selection;\n this.inVirtualSelectionMode = false;\n selection._eventRegistry = reg;\n selection.mergeOverlappingRanges();\n \n var anim = this.renderer.$scrollAnimation;\n this.onCursorChange();\n this.onSelectionChange();\n if (anim && anim.from == anim.to)\n this.renderer.animateScrolling(anim.from);\n \n return result;\n };\n this.exitMultiSelectMode = function() {\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode)\n return;\n this.multiSelect.toSingleRange();\n };\n\n this.getSelectedText = function() {\n var text = \"\";\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var ranges = this.multiSelect.rangeList.ranges;\n var buf = [];\n for (var i = 0; i < ranges.length; i++) {\n buf.push(this.session.getTextRange(ranges[i]));\n }\n var nl = this.session.getDocument().getNewLineCharacter();\n text = buf.join(nl);\n if (text.length == (buf.length - 1) * nl.length)\n text = \"\";\n } else if (!this.selection.isEmpty()) {\n text = this.session.getTextRange(this.getSelectionRange());\n }\n return text;\n };\n \n this.$checkMultiselectChange = function(e, anchor) {\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var range = this.multiSelect.ranges[0];\n if (this.multiSelect.isEmpty() && anchor == this.multiSelect.anchor)\n return;\n var pos = anchor == this.multiSelect.anchor\n ? range.cursor == range.start ? range.end : range.start\n : range.cursor;\n if (pos.row != anchor.row \n || this.session.$clipPositionToDocument(pos.row, pos.column).column != anchor.column)\n this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange());\n }\n };\n this.findAll = function(needle, options, additive) {\n options = options || {};\n options.needle = needle || options.needle;\n if (options.needle == undefined) {\n var range = this.selection.isEmpty()\n ? this.selection.getWordRange()\n : this.selection.getRange();\n options.needle = this.session.getTextRange(range);\n } \n this.$search.set(options);\n \n var ranges = this.$search.findAll(this.session);\n if (!ranges.length)\n return 0;\n\n this.$blockScrolling += 1;\n var selection = this.multiSelect;\n\n if (!additive)\n selection.toSingleRange(ranges[0]);\n\n for (var i = ranges.length; i--; )\n selection.addRange(ranges[i], true);\n if (range && selection.rangeList.rangeAtPoint(range.start))\n selection.addRange(range, true);\n \n this.$blockScrolling -= 1;\n\n return ranges.length;\n };\n this.selectMoreLines = function(dir, skip) {\n var range = this.selection.toOrientedRange();\n var isBackwards = range.cursor == range.end;\n\n var screenLead = this.session.documentToScreenPosition(range.cursor);\n if (this.selection.$desiredColumn)\n screenLead.column = this.selection.$desiredColumn;\n\n var lead = this.session.screenToDocumentPosition(screenLead.row + dir, screenLead.column);\n\n if (!range.isEmpty()) {\n var screenAnchor = this.session.documentToScreenPosition(isBackwards ? range.end : range.start);\n var anchor = this.session.screenToDocumentPosition(screenAnchor.row + dir, screenAnchor.column);\n } else {\n var anchor = lead;\n }\n\n if (isBackwards) {\n var newRange = Range.fromPoints(lead, anchor);\n newRange.cursor = newRange.start;\n } else {\n var newRange = Range.fromPoints(anchor, lead);\n newRange.cursor = newRange.end;\n }\n\n newRange.desiredColumn = screenLead.column;\n if (!this.selection.inMultiSelectMode) {\n this.selection.addRange(range);\n } else {\n if (skip)\n var toRemove = range.cursor;\n }\n\n this.selection.addRange(newRange);\n if (toRemove)\n this.selection.substractPoint(toRemove);\n };\n this.transposeSelections = function(dir) {\n var session = this.session;\n var sel = session.multiSelect;\n var all = sel.ranges;\n\n for (var i = all.length; i--; ) {\n var range = all[i];\n if (range.isEmpty()) {\n var tmp = session.getWordRange(range.start.row, range.start.column);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n range.end.row = tmp.end.row;\n range.end.column = tmp.end.column;\n }\n }\n sel.mergeOverlappingRanges();\n\n var words = [];\n for (var i = all.length; i--; ) {\n var range = all[i];\n words.unshift(session.getTextRange(range));\n }\n\n if (dir < 0)\n words.unshift(words.pop());\n else\n words.push(words.shift());\n\n for (var i = all.length; i--; ) {\n var range = all[i];\n var tmp = range.clone();\n session.replace(range, words[i]);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n }\n };\n this.selectMore = function(dir, skip, stopAtFirst) {\n var session = this.session;\n var sel = session.multiSelect;\n\n var range = sel.toOrientedRange();\n if (range.isEmpty()) {\n range = session.getWordRange(range.start.row, range.start.column);\n range.cursor = dir == -1 ? range.start : range.end;\n this.multiSelect.addRange(range);\n if (stopAtFirst)\n return;\n }\n var needle = session.getTextRange(range);\n\n var newRange = find(session, needle, dir);\n if (newRange) {\n newRange.cursor = dir == -1 ? newRange.start : newRange.end;\n this.$blockScrolling += 1;\n this.session.unfold(newRange);\n this.multiSelect.addRange(newRange);\n this.$blockScrolling -= 1;\n this.renderer.scrollCursorIntoView(null, 0.5);\n }\n if (skip)\n this.multiSelect.substractPoint(range.cursor);\n };\n this.alignCursors = function() {\n var session = this.session;\n var sel = session.multiSelect;\n var ranges = sel.ranges;\n var row = -1;\n var sameRowRanges = ranges.filter(function(r) {\n if (r.cursor.row == row)\n return true;\n row = r.cursor.row;\n });\n \n if (!ranges.length || sameRowRanges.length == ranges.length - 1) {\n var range = this.selection.getRange();\n var fr = range.start.row, lr = range.end.row;\n var guessRange = fr == lr;\n if (guessRange) {\n var max = this.session.getLength();\n var line;\n do {\n line = this.session.getLine(lr);\n } while (/[=:]/.test(line) && ++lr < max);\n do {\n line = this.session.getLine(fr);\n } while (/[=:]/.test(line) && --fr > 0);\n \n if (fr < 0) fr = 0;\n if (lr >= max) lr = max - 1;\n }\n var lines = this.session.removeFullLines(fr, lr);\n lines = this.$reAlignText(lines, guessRange);\n this.session.insert({row: fr, column: 0}, lines.join(\"\\n\") + \"\\n\");\n if (!guessRange) {\n range.start.column = 0;\n range.end.column = lines[lines.length - 1].length;\n }\n this.selection.setRange(range);\n } else {\n sameRowRanges.forEach(function(r) {\n sel.substractPoint(r.cursor);\n });\n\n var maxCol = 0;\n var minSpace = Infinity;\n var spaceOffsets = ranges.map(function(r) {\n var p = r.cursor;\n var line = session.getLine(p.row);\n var spaceOffset = line.substr(p.column).search(/\\S/g);\n if (spaceOffset == -1)\n spaceOffset = 0;\n\n if (p.column > maxCol)\n maxCol = p.column;\n if (spaceOffset < minSpace)\n minSpace = spaceOffset;\n return spaceOffset;\n });\n ranges.forEach(function(r, i) {\n var p = r.cursor;\n var l = maxCol - p.column;\n var d = spaceOffsets[i] - minSpace;\n if (l > d)\n session.insert(p, lang.stringRepeat(\" \", l - d));\n else\n session.remove(new Range(p.row, p.column, p.row, p.column - l + d));\n\n r.start.column = r.end.column = maxCol;\n r.start.row = r.end.row = p.row;\n r.cursor = r.end;\n });\n sel.fromOrientedRange(ranges[0]);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n }\n };\n\n this.$reAlignText = function(lines, forceLeft) {\n var isLeftAligned = true, isRightAligned = true;\n var startW, textW, endW;\n\n return lines.map(function(line) {\n var m = line.match(/(\\s*)(.*?)(\\s*)([=:].*)/);\n if (!m)\n return [line];\n\n if (startW == null) {\n startW = m[1].length;\n textW = m[2].length;\n endW = m[3].length;\n return m;\n }\n\n if (startW + textW + endW != m[1].length + m[2].length + m[3].length)\n isRightAligned = false;\n if (startW != m[1].length)\n isLeftAligned = false;\n\n if (startW > m[1].length)\n startW = m[1].length;\n if (textW < m[2].length)\n textW = m[2].length;\n if (endW > m[3].length)\n endW = m[3].length;\n\n return m;\n }).map(forceLeft ? alignLeft :\n isLeftAligned ? isRightAligned ? alignRight : alignLeft : unAlign);\n\n function spaces(n) {\n return lang.stringRepeat(\" \", n);\n }\n\n function alignLeft(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(textW - m[2].length + endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function alignRight(m) {\n return !m[2] ? m[0] : spaces(startW + textW - m[2].length) + m[2]\n + spaces(endW, \" \")\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function unAlign(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n };\n}).call(Editor.prototype);\n\n\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nexports.onSessionChange = function(e) {\n var session = e.session;\n if (session && !session.multiSelect) {\n session.$selectionMarkers = [];\n session.selection.$initRangeList();\n session.multiSelect = session.selection;\n }\n this.multiSelect = session && session.multiSelect;\n\n var oldSession = e.oldSession;\n if (oldSession) {\n oldSession.multiSelect.off(\"addRange\", this.$onAddRange);\n oldSession.multiSelect.off(\"removeRange\", this.$onRemoveRange);\n oldSession.multiSelect.off(\"multiSelect\", this.$onMultiSelect);\n oldSession.multiSelect.off(\"singleSelect\", this.$onSingleSelect);\n oldSession.multiSelect.lead.off(\"change\", this.$checkMultiselectChange);\n oldSession.multiSelect.anchor.off(\"change\", this.$checkMultiselectChange);\n }\n\n if (session) {\n session.multiSelect.on(\"addRange\", this.$onAddRange);\n session.multiSelect.on(\"removeRange\", this.$onRemoveRange);\n session.multiSelect.on(\"multiSelect\", this.$onMultiSelect);\n session.multiSelect.on(\"singleSelect\", this.$onSingleSelect);\n session.multiSelect.lead.on(\"change\", this.$checkMultiselectChange);\n session.multiSelect.anchor.on(\"change\", this.$checkMultiselectChange);\n }\n\n if (session && this.inMultiSelectMode != session.selection.inMultiSelectMode) {\n if (session.selection.inMultiSelectMode)\n this.$onMultiSelect();\n else\n this.$onSingleSelect();\n }\n};\nfunction MultiSelect(editor) {\n if (editor.$multiselectOnSessionChange)\n return;\n editor.$onAddRange = editor.$onAddRange.bind(editor);\n editor.$onRemoveRange = editor.$onRemoveRange.bind(editor);\n editor.$onMultiSelect = editor.$onMultiSelect.bind(editor);\n editor.$onSingleSelect = editor.$onSingleSelect.bind(editor);\n editor.$multiselectOnSessionChange = exports.onSessionChange.bind(editor);\n editor.$checkMultiselectChange = editor.$checkMultiselectChange.bind(editor);\n\n editor.$multiselectOnSessionChange(editor);\n editor.on(\"changeSession\", editor.$multiselectOnSessionChange);\n\n editor.on(\"mousedown\", onMouseDown);\n editor.commands.addCommands(commands.defaultCommands);\n\n addAltCursorListeners(editor);\n}\n\nfunction addAltCursorListeners(editor){\n var el = editor.textInput.getElement();\n var altCursor = false;\n event.addListener(el, \"keydown\", function(e) {\n var altDown = e.keyCode == 18 && !(e.ctrlKey || e.shiftKey || e.metaKey);\n if (editor.$blockSelectEnabled && altDown) {\n if (!altCursor) {\n editor.renderer.setMouseCursor(\"crosshair\");\n altCursor = true;\n }\n } else if (altCursor) {\n reset();\n }\n });\n\n event.addListener(el, \"keyup\", reset);\n event.addListener(el, \"blur\", reset);\n function reset(e) {\n if (altCursor) {\n editor.renderer.setMouseCursor(\"\");\n altCursor = false;\n }\n }\n}\n\nexports.MultiSelect = MultiSelect;\n\n\nacequire(\"./config\").defineOptions(Editor.prototype, \"editor\", {\n enableMultiselect: {\n set: function(val) {\n MultiSelect(this);\n if (val) {\n this.on(\"changeSession\", this.$multiselectOnSessionChange);\n this.on(\"mousedown\", onMouseDown);\n } else {\n this.off(\"changeSession\", this.$multiselectOnSessionChange);\n this.off(\"mousedown\", onMouseDown);\n }\n },\n value: true\n },\n enableBlockSelect: {\n set: function(val) {\n this.$blockSelectEnabled = val;\n },\n value: true\n }\n});\n\n\n\n});\n\nace.define(\"ace/mode/folding/fold_mode\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\n\n(function() {\n\n this.foldingStartMarker = null;\n this.foldingStopMarker = null;\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.foldingStartMarker.test(line))\n return \"start\";\n if (foldStyle == \"markbeginend\"\n && this.foldingStopMarker\n && this.foldingStopMarker.test(line))\n return \"end\";\n return \"\";\n };\n\n this.getFoldWidgetRange = function(session, foldStyle, row) {\n return null;\n };\n\n this.indentationBlock = function(session, row, column) {\n var re = /\\S/;\n var line = session.getLine(row);\n var startLevel = line.search(re);\n if (startLevel == -1)\n return;\n\n var startColumn = column || line.length;\n var maxRow = session.getLength();\n var startRow = row;\n var endRow = row;\n\n while (++row < maxRow) {\n var level = session.getLine(row).search(re);\n\n if (level == -1)\n continue;\n\n if (level <= startLevel)\n break;\n\n endRow = row;\n }\n\n if (endRow > startRow) {\n var endColumn = session.getLine(endRow).length;\n return new Range(startRow, startColumn, endRow, endColumn);\n }\n };\n\n this.openingBracketBlock = function(session, bracket, row, column, typeRe) {\n var start = {row: row, column: column + 1};\n var end = session.$findClosingBracket(bracket, start, typeRe);\n if (!end)\n return;\n\n var fw = session.foldWidgets[end.row];\n if (fw == null)\n fw = session.getFoldWidget(end.row);\n\n if (fw == \"start\" && end.row > start.row) {\n end.row --;\n end.column = session.getLine(end.row).length;\n }\n return Range.fromPoints(start, end);\n };\n\n this.closingBracketBlock = function(session, bracket, row, column, typeRe) {\n var end = {row: row, column: column};\n var start = session.$findOpeningBracket(bracket, end);\n\n if (!start)\n return;\n\n start.column++;\n end.column--;\n\n return Range.fromPoints(start, end);\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nexports.isDark = false;\nexports.cssClass = \"ace-tm\";\nexports.cssText = \".ace-tm .ace_gutter {\\\nbackground: #f0f0f0;\\\ncolor: #333;\\\n}\\\n.ace-tm .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #e8e8e8;\\\n}\\\n.ace-tm .ace_fold {\\\nbackground-color: #6B72E6;\\\n}\\\n.ace-tm {\\\nbackground-color: #FFFFFF;\\\ncolor: black;\\\n}\\\n.ace-tm .ace_cursor {\\\ncolor: black;\\\n}\\\n.ace-tm .ace_invisible {\\\ncolor: rgb(191, 191, 191);\\\n}\\\n.ace-tm .ace_storage,\\\n.ace-tm .ace_keyword {\\\ncolor: blue;\\\n}\\\n.ace-tm .ace_constant {\\\ncolor: rgb(197, 6, 11);\\\n}\\\n.ace-tm .ace_constant.ace_buildin {\\\ncolor: rgb(88, 72, 246);\\\n}\\\n.ace-tm .ace_constant.ace_language {\\\ncolor: rgb(88, 92, 246);\\\n}\\\n.ace-tm .ace_constant.ace_library {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-tm .ace_invalid {\\\nbackground-color: rgba(255, 0, 0, 0.1);\\\ncolor: red;\\\n}\\\n.ace-tm .ace_support.ace_function {\\\ncolor: rgb(60, 76, 114);\\\n}\\\n.ace-tm .ace_support.ace_constant {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-tm .ace_support.ace_type,\\\n.ace-tm .ace_support.ace_class {\\\ncolor: rgb(109, 121, 222);\\\n}\\\n.ace-tm .ace_keyword.ace_operator {\\\ncolor: rgb(104, 118, 135);\\\n}\\\n.ace-tm .ace_string {\\\ncolor: rgb(3, 106, 7);\\\n}\\\n.ace-tm .ace_comment {\\\ncolor: rgb(76, 136, 107);\\\n}\\\n.ace-tm .ace_comment.ace_doc {\\\ncolor: rgb(0, 102, 255);\\\n}\\\n.ace-tm .ace_comment.ace_doc.ace_tag {\\\ncolor: rgb(128, 159, 191);\\\n}\\\n.ace-tm .ace_constant.ace_numeric {\\\ncolor: rgb(0, 0, 205);\\\n}\\\n.ace-tm .ace_variable {\\\ncolor: rgb(49, 132, 149);\\\n}\\\n.ace-tm .ace_xml-pe {\\\ncolor: rgb(104, 104, 91);\\\n}\\\n.ace-tm .ace_entity.ace_name.ace_function {\\\ncolor: #0000A2;\\\n}\\\n.ace-tm .ace_heading {\\\ncolor: rgb(12, 7, 255);\\\n}\\\n.ace-tm .ace_list {\\\ncolor:rgb(185, 6, 144);\\\n}\\\n.ace-tm .ace_meta.ace_tag {\\\ncolor:rgb(0, 22, 142);\\\n}\\\n.ace-tm .ace_string.ace_regex {\\\ncolor: rgb(255, 0, 0)\\\n}\\\n.ace-tm .ace_marker-layer .ace_selection {\\\nbackground: rgb(181, 213, 255);\\\n}\\\n.ace-tm.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px white;\\\n}\\\n.ace-tm .ace_marker-layer .ace_step {\\\nbackground: rgb(252, 255, 0);\\\n}\\\n.ace-tm .ace_marker-layer .ace_stack {\\\nbackground: rgb(164, 229, 101);\\\n}\\\n.ace-tm .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid rgb(192, 192, 192);\\\n}\\\n.ace-tm .ace_marker-layer .ace_active-line {\\\nbackground: rgba(0, 0, 0, 0.07);\\\n}\\\n.ace-tm .ace_gutter-active-line {\\\nbackground-color : #dcdcdc;\\\n}\\\n.ace-tm .ace_marker-layer .ace_selected-word {\\\nbackground: rgb(250, 250, 255);\\\nborder: 1px solid rgb(200, 200, 250);\\\n}\\\n.ace-tm .ace_indent-guide {\\\nbackground: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\\n}\\\n\";\n\nvar dom = acequire(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n\nace.define(\"ace/line_widgets\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar Range = acequire(\"./range\").Range;\n\n\nfunction LineWidgets(session) {\n this.session = session;\n this.session.widgetManager = this;\n this.session.getRowLength = this.getRowLength;\n this.session.$getWidgetScreenLength = this.$getWidgetScreenLength;\n this.updateOnChange = this.updateOnChange.bind(this);\n this.renderWidgets = this.renderWidgets.bind(this);\n this.measureWidgets = this.measureWidgets.bind(this);\n this.session._changedWidgets = [];\n this.$onChangeEditor = this.$onChangeEditor.bind(this);\n \n this.session.on(\"change\", this.updateOnChange);\n this.session.on(\"changeFold\", this.updateOnFold);\n this.session.on(\"changeEditor\", this.$onChangeEditor);\n}\n\n(function() {\n this.getRowLength = function(row) {\n var h;\n if (this.lineWidgets)\n h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n else \n h = 0;\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1 + h;\n } else {\n return this.$wrapData[row].length + 1 + h;\n }\n };\n\n this.$getWidgetScreenLength = function() {\n var screenRows = 0;\n this.lineWidgets.forEach(function(w){\n if (w && w.rowCount && !w.hidden)\n screenRows += w.rowCount;\n });\n return screenRows;\n }; \n \n this.$onChangeEditor = function(e) {\n this.attach(e.editor);\n };\n \n this.attach = function(editor) {\n if (editor && editor.widgetManager && editor.widgetManager != this)\n editor.widgetManager.detach();\n\n if (this.editor == editor)\n return;\n\n this.detach();\n this.editor = editor;\n \n if (editor) {\n editor.widgetManager = this;\n editor.renderer.on(\"beforeRender\", this.measureWidgets);\n editor.renderer.on(\"afterRender\", this.renderWidgets);\n }\n };\n this.detach = function(e) {\n var editor = this.editor;\n if (!editor)\n return;\n \n this.editor = null;\n editor.widgetManager = null;\n \n editor.renderer.off(\"beforeRender\", this.measureWidgets);\n editor.renderer.off(\"afterRender\", this.renderWidgets);\n var lineWidgets = this.session.lineWidgets;\n lineWidgets && lineWidgets.forEach(function(w) {\n if (w && w.el && w.el.parentNode) {\n w._inDocument = false;\n w.el.parentNode.removeChild(w.el);\n }\n });\n };\n\n this.updateOnFold = function(e, session) {\n var lineWidgets = session.lineWidgets;\n if (!lineWidgets || !e.action)\n return;\n var fold = e.data;\n var start = fold.start.row;\n var end = fold.end.row;\n var hide = e.action == \"add\";\n for (var i = start + 1; i < end; i++) {\n if (lineWidgets[i])\n lineWidgets[i].hidden = hide;\n }\n if (lineWidgets[end]) {\n if (hide) {\n if (!lineWidgets[start])\n lineWidgets[start] = lineWidgets[end];\n else\n lineWidgets[end].hidden = hide;\n } else {\n if (lineWidgets[start] == lineWidgets[end])\n lineWidgets[start] = undefined;\n lineWidgets[end].hidden = hide;\n }\n }\n };\n \n this.updateOnChange = function(delta) {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets) return;\n \n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n\n if (len === 0) {\n } else if (delta.action == 'remove') {\n var removed = lineWidgets.splice(startRow + 1, len);\n removed.forEach(function(w) {\n w && this.removeLineWidget(w);\n }, this);\n this.$updateRows();\n } else {\n var args = new Array(len);\n args.unshift(startRow, 0);\n lineWidgets.splice.apply(lineWidgets, args);\n this.$updateRows();\n }\n };\n \n this.$updateRows = function() {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets) return;\n var noWidgets = true;\n lineWidgets.forEach(function(w, i) {\n if (w) {\n noWidgets = false;\n w.row = i;\n while (w.$oldWidget) {\n w.$oldWidget.row = i;\n w = w.$oldWidget;\n }\n }\n });\n if (noWidgets)\n this.session.lineWidgets = null;\n };\n\n this.addLineWidget = function(w) {\n if (!this.session.lineWidgets)\n this.session.lineWidgets = new Array(this.session.getLength());\n \n var old = this.session.lineWidgets[w.row];\n if (old) {\n w.$oldWidget = old;\n if (old.el && old.el.parentNode) {\n old.el.parentNode.removeChild(old.el);\n old._inDocument = false;\n }\n }\n \n this.session.lineWidgets[w.row] = w;\n \n w.session = this.session;\n \n var renderer = this.editor.renderer;\n if (w.html && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.innerHTML = w.html;\n }\n if (w.el) {\n dom.addCssClass(w.el, \"ace_lineWidgetContainer\");\n w.el.style.position = \"absolute\";\n w.el.style.zIndex = 5;\n renderer.container.appendChild(w.el);\n w._inDocument = true;\n }\n \n if (!w.coverGutter) {\n w.el.style.zIndex = 3;\n }\n if (w.pixelHeight == null) {\n w.pixelHeight = w.el.offsetHeight;\n }\n if (w.rowCount == null) {\n w.rowCount = w.pixelHeight / renderer.layerConfig.lineHeight;\n }\n \n var fold = this.session.getFoldAt(w.row, 0);\n w.$fold = fold;\n if (fold) {\n var lineWidgets = this.session.lineWidgets;\n if (w.row == fold.end.row && !lineWidgets[fold.start.row])\n lineWidgets[fold.start.row] = w;\n else\n w.hidden = true;\n }\n \n this.session._emit(\"changeFold\", {data:{start:{row: w.row}}});\n \n this.$updateRows();\n this.renderWidgets(null, renderer);\n this.onWidgetChanged(w);\n return w;\n };\n \n this.removeLineWidget = function(w) {\n w._inDocument = false;\n w.session = null;\n if (w.el && w.el.parentNode)\n w.el.parentNode.removeChild(w.el);\n if (w.editor && w.editor.destroy) try {\n w.editor.destroy();\n } catch(e){}\n if (this.session.lineWidgets) {\n var w1 = this.session.lineWidgets[w.row];\n if (w1 == w) {\n this.session.lineWidgets[w.row] = w.$oldWidget;\n if (w.$oldWidget)\n this.onWidgetChanged(w.$oldWidget);\n } else {\n while (w1) {\n if (w1.$oldWidget == w) {\n w1.$oldWidget = w.$oldWidget;\n break;\n }\n w1 = w1.$oldWidget;\n }\n }\n }\n this.session._emit(\"changeFold\", {data:{start:{row: w.row}}});\n this.$updateRows();\n };\n \n this.getWidgetsAtRow = function(row) {\n var lineWidgets = this.session.lineWidgets;\n var w = lineWidgets && lineWidgets[row];\n var list = [];\n while (w) {\n list.push(w);\n w = w.$oldWidget;\n }\n return list;\n };\n \n this.onWidgetChanged = function(w) {\n this.session._changedWidgets.push(w);\n this.editor && this.editor.renderer.updateFull();\n };\n \n this.measureWidgets = function(e, renderer) {\n var changedWidgets = this.session._changedWidgets;\n var config = renderer.layerConfig;\n \n if (!changedWidgets || !changedWidgets.length) return;\n var min = Infinity;\n for (var i = 0; i < changedWidgets.length; i++) {\n var w = changedWidgets[i];\n if (!w || !w.el) continue;\n if (w.session != this.session) continue;\n if (!w._inDocument) {\n if (this.session.lineWidgets[w.row] != w)\n continue;\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n \n w.h = w.el.offsetHeight;\n \n if (!w.fixedWidth) {\n w.w = w.el.offsetWidth;\n w.screenWidth = Math.ceil(w.w / config.characterWidth);\n }\n \n var rowCount = w.h / config.lineHeight;\n if (w.coverLine) {\n rowCount -= this.session.getRowLineCount(w.row);\n if (rowCount < 0)\n rowCount = 0;\n }\n if (w.rowCount != rowCount) {\n w.rowCount = rowCount;\n if (w.row < min)\n min = w.row;\n }\n }\n if (min != Infinity) {\n this.session._emit(\"changeFold\", {data:{start:{row: min}}});\n this.session.lineWidgetWidth = null;\n }\n this.session._changedWidgets = [];\n };\n \n this.renderWidgets = function(e, renderer) {\n var config = renderer.layerConfig;\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var first = Math.min(this.firstRow, config.firstRow);\n var last = Math.max(this.lastRow, config.lastRow, lineWidgets.length);\n \n while (first > 0 && !lineWidgets[first])\n first--;\n \n this.firstRow = config.firstRow;\n this.lastRow = config.lastRow;\n\n renderer.$cursorLayer.config = config;\n for (var i = first; i <= last; i++) {\n var w = lineWidgets[i];\n if (!w || !w.el) continue;\n if (w.hidden) {\n w.el.style.top = -100 - (w.pixelHeight || 0) + \"px\";\n continue;\n }\n if (!w._inDocument) {\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n var top = renderer.$cursorLayer.getPixelPosition({row: i, column:0}, true).top;\n if (!w.coverLine)\n top += config.lineHeight * this.session.getRowLineCount(w.row);\n w.el.style.top = top - config.offset + \"px\";\n \n var left = w.coverGutter ? 0 : renderer.gutterWidth;\n if (!w.fixedWidth)\n left -= renderer.scrollLeft;\n w.el.style.left = left + \"px\";\n \n if (w.fullWidth && w.screenWidth) {\n w.el.style.minWidth = config.width + 2 * config.padding + \"px\";\n }\n \n if (w.fixedWidth) {\n w.el.style.right = renderer.scrollBar.getWidth() + \"px\";\n } else {\n w.el.style.right = \"\";\n }\n }\n };\n \n}).call(LineWidgets.prototype);\n\n\nexports.LineWidgets = LineWidgets;\n\n});\n\nace.define(\"ace/ext/error_marker\",[\"require\",\"exports\",\"module\",\"ace/line_widgets\",\"ace/lib/dom\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\nvar LineWidgets = acequire(\"../line_widgets\").LineWidgets;\nvar dom = acequire(\"../lib/dom\");\nvar Range = acequire(\"../range\").Range;\n\nfunction binarySearch(array, needle, comparator) {\n var first = 0;\n var last = array.length - 1;\n\n while (first <= last) {\n var mid = (first + last) >> 1;\n var c = comparator(needle, array[mid]);\n if (c > 0)\n first = mid + 1;\n else if (c < 0)\n last = mid - 1;\n else\n return mid;\n }\n return -(first + 1);\n}\n\nfunction findAnnotations(session, row, dir) {\n var annotations = session.getAnnotations().sort(Range.comparePoints);\n if (!annotations.length)\n return;\n \n var i = binarySearch(annotations, {row: row, column: -1}, Range.comparePoints);\n if (i < 0)\n i = -i - 1;\n \n if (i >= annotations.length)\n i = dir > 0 ? 0 : annotations.length - 1;\n else if (i === 0 && dir < 0)\n i = annotations.length - 1;\n \n var annotation = annotations[i];\n if (!annotation || !dir)\n return;\n\n if (annotation.row === row) {\n do {\n annotation = annotations[i += dir];\n } while (annotation && annotation.row === row);\n if (!annotation)\n return annotations.slice();\n }\n \n \n var matched = [];\n row = annotation.row;\n do {\n matched[dir < 0 ? \"unshift\" : \"push\"](annotation);\n annotation = annotations[i += dir];\n } while (annotation && annotation.row == row);\n return matched.length && matched;\n}\n\nexports.showErrorMarker = function(editor, dir) {\n var session = editor.session;\n if (!session.widgetManager) {\n session.widgetManager = new LineWidgets(session);\n session.widgetManager.attach(editor);\n }\n \n var pos = editor.getCursorPosition();\n var row = pos.row;\n var oldWidget = session.widgetManager.getWidgetsAtRow(row).filter(function(w) {\n return w.type == \"errorMarker\";\n })[0];\n if (oldWidget) {\n oldWidget.destroy();\n } else {\n row -= dir;\n }\n var annotations = findAnnotations(session, row, dir);\n var gutterAnno;\n if (annotations) {\n var annotation = annotations[0];\n pos.column = (annotation.pos && typeof annotation.column != \"number\"\n ? annotation.pos.sc\n : annotation.column) || 0;\n pos.row = annotation.row;\n gutterAnno = editor.renderer.$gutterLayer.$annotations[pos.row];\n } else if (oldWidget) {\n return;\n } else {\n gutterAnno = {\n text: [\"Looks good!\"],\n className: \"ace_ok\"\n };\n }\n editor.session.unfold(pos.row);\n editor.selection.moveToPosition(pos);\n \n var w = {\n row: pos.row, \n fixedWidth: true,\n coverGutter: true,\n el: dom.createElement(\"div\"),\n type: \"errorMarker\"\n };\n var el = w.el.appendChild(dom.createElement(\"div\"));\n var arrow = w.el.appendChild(dom.createElement(\"div\"));\n arrow.className = \"error_widget_arrow \" + gutterAnno.className;\n \n var left = editor.renderer.$cursorLayer\n .getPixelPosition(pos).left;\n arrow.style.left = left + editor.renderer.gutterWidth - 5 + \"px\";\n \n w.el.className = \"error_widget_wrapper\";\n el.className = \"error_widget \" + gutterAnno.className;\n el.innerHTML = gutterAnno.text.join(\"
\");\n \n el.appendChild(dom.createElement(\"div\"));\n \n var kb = function(_, hashId, keyString) {\n if (hashId === 0 && (keyString === \"esc\" || keyString === \"return\")) {\n w.destroy();\n return {command: \"null\"};\n }\n };\n \n w.destroy = function() {\n if (editor.$mouseHandler.isMousePressed)\n return;\n editor.keyBinding.removeKeyboardHandler(kb);\n session.widgetManager.removeLineWidget(w);\n editor.off(\"changeSelection\", w.destroy);\n editor.off(\"changeSession\", w.destroy);\n editor.off(\"mouseup\", w.destroy);\n editor.off(\"change\", w.destroy);\n };\n \n editor.keyBinding.addKeyboardHandler(kb);\n editor.on(\"changeSelection\", w.destroy);\n editor.on(\"changeSession\", w.destroy);\n editor.on(\"mouseup\", w.destroy);\n editor.on(\"change\", w.destroy);\n \n editor.session.widgetManager.addLineWidget(w);\n \n w.el.onmousedown = editor.focus.bind(editor);\n \n editor.renderer.scrollCursorIntoView(null, 0.5, {bottom: w.el.offsetHeight});\n};\n\n\ndom.importCssString(\"\\\n .error_widget_wrapper {\\\n background: inherit;\\\n color: inherit;\\\n border:none\\\n }\\\n .error_widget {\\\n border-top: solid 2px;\\\n border-bottom: solid 2px;\\\n margin: 5px 0;\\\n padding: 10px 40px;\\\n white-space: pre-wrap;\\\n }\\\n .error_widget.ace_error, .error_widget_arrow.ace_error{\\\n border-color: #ff5a5a\\\n }\\\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\\\n border-color: #F1D817\\\n }\\\n .error_widget.ace_info, .error_widget_arrow.ace_info{\\\n border-color: #5a5a5a\\\n }\\\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\\\n border-color: #5aaa5a\\\n }\\\n .error_widget_arrow {\\\n position: absolute;\\\n border: solid 5px;\\\n border-top-color: transparent!important;\\\n border-right-color: transparent!important;\\\n border-left-color: transparent!important;\\\n top: -5px;\\\n }\\\n\", \"\");\n\n});\n\nace.define(\"ace/ace\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/editor\",\"ace/edit_session\",\"ace/undomanager\",\"ace/virtual_renderer\",\"ace/worker/worker_client\",\"ace/keyboard/hash_handler\",\"ace/placeholder\",\"ace/multi_select\",\"ace/mode/folding/fold_mode\",\"ace/theme/textmate\",\"ace/ext/error_marker\",\"ace/config\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./lib/fixoldbrowsers\");\n\nvar dom = acequire(\"./lib/dom\");\nvar event = acequire(\"./lib/event\");\n\nvar Editor = acequire(\"./editor\").Editor;\nvar EditSession = acequire(\"./edit_session\").EditSession;\nvar UndoManager = acequire(\"./undomanager\").UndoManager;\nvar Renderer = acequire(\"./virtual_renderer\").VirtualRenderer;\nacequire(\"./worker/worker_client\");\nacequire(\"./keyboard/hash_handler\");\nacequire(\"./placeholder\");\nacequire(\"./multi_select\");\nacequire(\"./mode/folding/fold_mode\");\nacequire(\"./theme/textmate\");\nacequire(\"./ext/error_marker\");\n\nexports.config = acequire(\"./config\");\nexports.acequire = acequire;\n\nif (typeof define === \"function\")\n exports.define = define;\nexports.edit = function(el) {\n if (typeof el == \"string\") {\n var _id = el;\n el = document.getElementById(_id);\n if (!el)\n throw new Error(\"ace.edit can't find div #\" + _id);\n }\n\n if (el && el.env && el.env.editor instanceof Editor)\n return el.env.editor;\n\n var value = \"\";\n if (el && /input|textarea/i.test(el.tagName)) {\n var oldNode = el;\n value = oldNode.value;\n el = dom.createElement(\"pre\");\n oldNode.parentNode.replaceChild(el, oldNode);\n } else if (el) {\n value = dom.getInnerText(el);\n el.innerHTML = \"\";\n }\n\n var doc = exports.createEditSession(value);\n\n var editor = new Editor(new Renderer(el));\n editor.setSession(doc);\n\n var env = {\n document: doc,\n editor: editor,\n onResize: editor.resize.bind(editor, null)\n };\n if (oldNode) env.textarea = oldNode;\n event.addListener(window, \"resize\", env.onResize);\n editor.on(\"destroy\", function() {\n event.removeListener(window, \"resize\", env.onResize);\n env.editor.container.env = null; // prevent memory leak on old ie\n });\n editor.container.env = editor.env = env;\n return editor;\n};\nexports.createEditSession = function(text, mode) {\n var doc = new EditSession(text, mode);\n doc.setUndoManager(new UndoManager());\n return doc;\n};\nexports.EditSession = EditSession;\nexports.UndoManager = UndoManager;\nexports.version = \"1.2.9\";\n});\n (function() {\n ace.acequire([\"ace/ace\"], function(a) {\n if (a) {\n a.config.init(true);\n a.define = ace.define;\n }\n if (!window.ace)\n window.ace = a;\n for (var key in a) if (a.hasOwnProperty(key))\n window.ace[key] = a[key];\n });\n })();\n \nmodule.exports = window.ace.acequire(\"ace/ace\");","\n\n
\n
\n
\n","ace.define(\"ace/snippets\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\",\"ace/lib/lang\",\"ace/range\",\"ace/anchor\",\"ace/keyboard/hash_handler\",\"ace/tokenizer\",\"ace/lib/dom\",\"ace/editor\"], function(acequire, exports, module) {\n\"use strict\";\nvar oop = acequire(\"./lib/oop\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar lang = acequire(\"./lib/lang\");\nvar Range = acequire(\"./range\").Range;\nvar Anchor = acequire(\"./anchor\").Anchor;\nvar HashHandler = acequire(\"./keyboard/hash_handler\").HashHandler;\nvar Tokenizer = acequire(\"./tokenizer\").Tokenizer;\nvar comparePoints = Range.comparePoints;\n\nvar SnippetManager = function() {\n this.snippetMap = {};\n this.snippetNameMap = {};\n};\n\n(function() {\n oop.implement(this, EventEmitter);\n \n this.getTokenizer = function() {\n function TabstopToken(str, _, stack) {\n str = str.substr(1);\n if (/^\\d+$/.test(str) && !stack.inFormatString)\n return [{tabstopId: parseInt(str, 10)}];\n return [{text: str}];\n }\n function escape(ch) {\n return \"(?:[^\\\\\\\\\" + ch + \"]|\\\\\\\\.)\";\n }\n SnippetManager.$tokenizer = new Tokenizer({\n start: [\n {regex: /:/, onMatch: function(val, state, stack) {\n if (stack.length && stack[0].expectIf) {\n stack[0].expectIf = false;\n stack[0].elseBranch = stack[0];\n return [stack[0]];\n }\n return \":\";\n }},\n {regex: /\\\\./, onMatch: function(val, state, stack) {\n var ch = val[1];\n if (ch == \"}\" && stack.length) {\n val = ch;\n }else if (\"`$\\\\\".indexOf(ch) != -1) {\n val = ch;\n } else if (stack.inFormatString) {\n if (ch == \"n\")\n val = \"\\n\";\n else if (ch == \"t\")\n val = \"\\n\";\n else if (\"ulULE\".indexOf(ch) != -1) {\n val = {changeCase: ch, local: ch > \"a\"};\n }\n }\n\n return [val];\n }},\n {regex: /}/, onMatch: function(val, state, stack) {\n return [stack.length ? stack.shift() : val];\n }},\n {regex: /\\$(?:\\d+|\\w+)/, onMatch: TabstopToken},\n {regex: /\\$\\{[\\dA-Z_a-z]+/, onMatch: function(str, state, stack) {\n var t = TabstopToken(str.substr(1), state, stack);\n stack.unshift(t[0]);\n return t;\n }, next: \"snippetVar\"},\n {regex: /\\n/, token: \"newline\", merge: false}\n ],\n snippetVar: [\n {regex: \"\\\\|\" + escape(\"\\\\|\") + \"*\\\\|\", onMatch: function(val, state, stack) {\n stack[0].choices = val.slice(1, -1).split(\",\");\n }, next: \"start\"},\n {regex: \"/(\" + escape(\"/\") + \"+)/(?:(\" + escape(\"/\") + \"*)/)(\\\\w*):?\",\n onMatch: function(val, state, stack) {\n var ts = stack[0];\n ts.fmtString = val;\n\n val = this.splitRegex.exec(val);\n ts.guard = val[1];\n ts.fmt = val[2];\n ts.flag = val[3];\n return \"\";\n }, next: \"start\"},\n {regex: \"`\" + escape(\"`\") + \"*`\", onMatch: function(val, state, stack) {\n stack[0].code = val.splice(1, -1);\n return \"\";\n }, next: \"start\"},\n {regex: \"\\\\?\", onMatch: function(val, state, stack) {\n if (stack[0])\n stack[0].expectIf = true;\n }, next: \"start\"},\n {regex: \"([^:}\\\\\\\\]|\\\\\\\\.)*:?\", token: \"\", next: \"start\"}\n ],\n formatString: [\n {regex: \"/(\" + escape(\"/\") + \"+)/\", token: \"regex\"},\n {regex: \"\", onMatch: function(val, state, stack) {\n stack.inFormatString = true;\n }, next: \"start\"}\n ]\n });\n SnippetManager.prototype.getTokenizer = function() {\n return SnippetManager.$tokenizer;\n };\n return SnippetManager.$tokenizer;\n };\n\n this.tokenizeTmSnippet = function(str, startState) {\n return this.getTokenizer().getLineTokens(str, startState).tokens.map(function(x) {\n return x.value || x;\n });\n };\n\n this.$getDefaultValue = function(editor, name) {\n if (/^[A-Z]\\d+$/.test(name)) {\n var i = name.substr(1);\n return (this.variables[name[0] + \"__\"] || {})[i];\n }\n if (/^\\d+$/.test(name)) {\n return (this.variables.__ || {})[name];\n }\n name = name.replace(/^TM_/, \"\");\n\n if (!editor)\n return;\n var s = editor.session;\n switch(name) {\n case \"CURRENT_WORD\":\n var r = s.getWordRange();\n case \"SELECTION\":\n case \"SELECTED_TEXT\":\n return s.getTextRange(r);\n case \"CURRENT_LINE\":\n return s.getLine(editor.getCursorPosition().row);\n case \"PREV_LINE\": // not possible in textmate\n return s.getLine(editor.getCursorPosition().row - 1);\n case \"LINE_INDEX\":\n return editor.getCursorPosition().column;\n case \"LINE_NUMBER\":\n return editor.getCursorPosition().row + 1;\n case \"SOFT_TABS\":\n return s.getUseSoftTabs() ? \"YES\" : \"NO\";\n case \"TAB_SIZE\":\n return s.getTabSize();\n case \"FILENAME\":\n case \"FILEPATH\":\n return \"\";\n case \"FULLNAME\":\n return \"Ace\";\n }\n };\n this.variables = {};\n this.getVariableValue = function(editor, varName) {\n if (this.variables.hasOwnProperty(varName))\n return this.variables[varName](editor, varName) || \"\";\n return this.$getDefaultValue(editor, varName) || \"\";\n };\n this.tmStrFormat = function(str, ch, editor) {\n var flag = ch.flag || \"\";\n var re = ch.guard;\n re = new RegExp(re, flag.replace(/[^gi]/, \"\"));\n var fmtTokens = this.tokenizeTmSnippet(ch.fmt, \"formatString\");\n var _self = this;\n var formatted = str.replace(re, function() {\n _self.variables.__ = arguments;\n var fmtParts = _self.resolveVariables(fmtTokens, editor);\n var gChangeCase = \"E\";\n for (var i = 0; i < fmtParts.length; i++) {\n var ch = fmtParts[i];\n if (typeof ch == \"object\") {\n fmtParts[i] = \"\";\n if (ch.changeCase && ch.local) {\n var next = fmtParts[i + 1];\n if (next && typeof next == \"string\") {\n if (ch.changeCase == \"u\")\n fmtParts[i] = next[0].toUpperCase();\n else\n fmtParts[i] = next[0].toLowerCase();\n fmtParts[i + 1] = next.substr(1);\n }\n } else if (ch.changeCase) {\n gChangeCase = ch.changeCase;\n }\n } else if (gChangeCase == \"U\") {\n fmtParts[i] = ch.toUpperCase();\n } else if (gChangeCase == \"L\") {\n fmtParts[i] = ch.toLowerCase();\n }\n }\n return fmtParts.join(\"\");\n });\n this.variables.__ = null;\n return formatted;\n };\n\n this.resolveVariables = function(snippet, editor) {\n var result = [];\n for (var i = 0; i < snippet.length; i++) {\n var ch = snippet[i];\n if (typeof ch == \"string\") {\n result.push(ch);\n } else if (typeof ch != \"object\") {\n continue;\n } else if (ch.skip) {\n gotoNext(ch);\n } else if (ch.processed < i) {\n continue;\n } else if (ch.text) {\n var value = this.getVariableValue(editor, ch.text);\n if (value && ch.fmtString)\n value = this.tmStrFormat(value, ch);\n ch.processed = i;\n if (ch.expectIf == null) {\n if (value) {\n result.push(value);\n gotoNext(ch);\n }\n } else {\n if (value) {\n ch.skip = ch.elseBranch;\n } else\n gotoNext(ch);\n }\n } else if (ch.tabstopId != null) {\n result.push(ch);\n } else if (ch.changeCase != null) {\n result.push(ch);\n }\n }\n function gotoNext(ch) {\n var i1 = snippet.indexOf(ch, i + 1);\n if (i1 != -1)\n i = i1;\n }\n return result;\n };\n\n this.insertSnippetForSelection = function(editor, snippetText) {\n var cursor = editor.getCursorPosition();\n var line = editor.session.getLine(cursor.row);\n var tabString = editor.session.getTabString();\n var indentString = line.match(/^\\s*/)[0];\n \n if (cursor.column < indentString.length)\n indentString = indentString.slice(0, cursor.column);\n\n snippetText = snippetText.replace(/\\r/g, \"\");\n var tokens = this.tokenizeTmSnippet(snippetText);\n tokens = this.resolveVariables(tokens, editor);\n tokens = tokens.map(function(x) {\n if (x == \"\\n\")\n return x + indentString;\n if (typeof x == \"string\")\n return x.replace(/\\t/g, tabString);\n return x;\n });\n var tabstops = [];\n tokens.forEach(function(p, i) {\n if (typeof p != \"object\")\n return;\n var id = p.tabstopId;\n var ts = tabstops[id];\n if (!ts) {\n ts = tabstops[id] = [];\n ts.index = id;\n ts.value = \"\";\n }\n if (ts.indexOf(p) !== -1)\n return;\n ts.push(p);\n var i1 = tokens.indexOf(p, i + 1);\n if (i1 === -1)\n return;\n\n var value = tokens.slice(i + 1, i1);\n var isNested = value.some(function(t) {return typeof t === \"object\";});\n if (isNested && !ts.value) {\n ts.value = value;\n } else if (value.length && (!ts.value || typeof ts.value !== \"string\")) {\n ts.value = value.join(\"\");\n }\n });\n tabstops.forEach(function(ts) {ts.length = 0;});\n var expanding = {};\n function copyValue(val) {\n var copy = [];\n for (var i = 0; i < val.length; i++) {\n var p = val[i];\n if (typeof p == \"object\") {\n if (expanding[p.tabstopId])\n continue;\n var j = val.lastIndexOf(p, i - 1);\n p = copy[j] || {tabstopId: p.tabstopId};\n }\n copy[i] = p;\n }\n return copy;\n }\n for (var i = 0; i < tokens.length; i++) {\n var p = tokens[i];\n if (typeof p != \"object\")\n continue;\n var id = p.tabstopId;\n var i1 = tokens.indexOf(p, i + 1);\n if (expanding[id]) {\n if (expanding[id] === p)\n expanding[id] = null;\n continue;\n }\n \n var ts = tabstops[id];\n var arg = typeof ts.value == \"string\" ? [ts.value] : copyValue(ts.value);\n arg.unshift(i + 1, Math.max(0, i1 - i));\n arg.push(p);\n expanding[id] = p;\n tokens.splice.apply(tokens, arg);\n\n if (ts.indexOf(p) === -1)\n ts.push(p);\n }\n var row = 0, column = 0;\n var text = \"\";\n tokens.forEach(function(t) {\n if (typeof t === \"string\") {\n var lines = t.split(\"\\n\");\n if (lines.length > 1){\n column = lines[lines.length - 1].length;\n row += lines.length - 1;\n } else\n column += t.length;\n text += t;\n } else {\n if (!t.start)\n t.start = {row: row, column: column};\n else\n t.end = {row: row, column: column};\n }\n });\n var range = editor.getSelectionRange();\n var end = editor.session.replace(range, text);\n\n var tabstopManager = new TabstopManager(editor);\n var selectionId = editor.inVirtualSelectionMode && editor.selection.index;\n tabstopManager.addTabstops(tabstops, range.start, end, selectionId);\n };\n \n this.insertSnippet = function(editor, snippetText) {\n var self = this;\n if (editor.inVirtualSelectionMode)\n return self.insertSnippetForSelection(editor, snippetText);\n \n editor.forEachSelection(function() {\n self.insertSnippetForSelection(editor, snippetText);\n }, null, {keepOrder: true});\n \n if (editor.tabstopManager)\n editor.tabstopManager.tabNext();\n };\n\n this.$getScope = function(editor) {\n var scope = editor.session.$mode.$id || \"\";\n scope = scope.split(\"/\").pop();\n if (scope === \"html\" || scope === \"php\") {\n if (scope === \"php\" && !editor.session.$mode.inlinePhp) \n scope = \"html\";\n var c = editor.getCursorPosition();\n var state = editor.session.getState(c.row);\n if (typeof state === \"object\") {\n state = state[0];\n }\n if (state.substring) {\n if (state.substring(0, 3) == \"js-\")\n scope = \"javascript\";\n else if (state.substring(0, 4) == \"css-\")\n scope = \"css\";\n else if (state.substring(0, 4) == \"php-\")\n scope = \"php\";\n }\n }\n \n return scope;\n };\n\n this.getActiveScopes = function(editor) {\n var scope = this.$getScope(editor);\n var scopes = [scope];\n var snippetMap = this.snippetMap;\n if (snippetMap[scope] && snippetMap[scope].includeScopes) {\n scopes.push.apply(scopes, snippetMap[scope].includeScopes);\n }\n scopes.push(\"_\");\n return scopes;\n };\n\n this.expandWithTab = function(editor, options) {\n var self = this;\n var result = editor.forEachSelection(function() {\n return self.expandSnippetForSelection(editor, options);\n }, null, {keepOrder: true});\n if (result && editor.tabstopManager)\n editor.tabstopManager.tabNext();\n return result;\n };\n \n this.expandSnippetForSelection = function(editor, options) {\n var cursor = editor.getCursorPosition();\n var line = editor.session.getLine(cursor.row);\n var before = line.substring(0, cursor.column);\n var after = line.substr(cursor.column);\n\n var snippetMap = this.snippetMap;\n var snippet;\n this.getActiveScopes(editor).some(function(scope) {\n var snippets = snippetMap[scope];\n if (snippets)\n snippet = this.findMatchingSnippet(snippets, before, after);\n return !!snippet;\n }, this);\n if (!snippet)\n return false;\n if (options && options.dryRun)\n return true;\n editor.session.doc.removeInLine(cursor.row,\n cursor.column - snippet.replaceBefore.length,\n cursor.column + snippet.replaceAfter.length\n );\n\n this.variables.M__ = snippet.matchBefore;\n this.variables.T__ = snippet.matchAfter;\n this.insertSnippetForSelection(editor, snippet.content);\n\n this.variables.M__ = this.variables.T__ = null;\n return true;\n };\n\n this.findMatchingSnippet = function(snippetList, before, after) {\n for (var i = snippetList.length; i--;) {\n var s = snippetList[i];\n if (s.startRe && !s.startRe.test(before))\n continue;\n if (s.endRe && !s.endRe.test(after))\n continue;\n if (!s.startRe && !s.endRe)\n continue;\n\n s.matchBefore = s.startRe ? s.startRe.exec(before) : [\"\"];\n s.matchAfter = s.endRe ? s.endRe.exec(after) : [\"\"];\n s.replaceBefore = s.triggerRe ? s.triggerRe.exec(before)[0] : \"\";\n s.replaceAfter = s.endTriggerRe ? s.endTriggerRe.exec(after)[0] : \"\";\n return s;\n }\n };\n\n this.snippetMap = {};\n this.snippetNameMap = {};\n this.register = function(snippets, scope) {\n var snippetMap = this.snippetMap;\n var snippetNameMap = this.snippetNameMap;\n var self = this;\n \n if (!snippets) \n snippets = [];\n \n function wrapRegexp(src) {\n if (src && !/^\\^?\\(.*\\)\\$?$|^\\\\b$/.test(src))\n src = \"(?:\" + src + \")\";\n\n return src || \"\";\n }\n function guardedRegexp(re, guard, opening) {\n re = wrapRegexp(re);\n guard = wrapRegexp(guard);\n if (opening) {\n re = guard + re;\n if (re && re[re.length - 1] != \"$\")\n re = re + \"$\";\n } else {\n re = re + guard;\n if (re && re[0] != \"^\")\n re = \"^\" + re;\n }\n return new RegExp(re);\n }\n\n function addSnippet(s) {\n if (!s.scope)\n s.scope = scope || \"_\";\n scope = s.scope;\n if (!snippetMap[scope]) {\n snippetMap[scope] = [];\n snippetNameMap[scope] = {};\n }\n\n var map = snippetNameMap[scope];\n if (s.name) {\n var old = map[s.name];\n if (old)\n self.unregister(old);\n map[s.name] = s;\n }\n snippetMap[scope].push(s);\n\n if (s.tabTrigger && !s.trigger) {\n if (!s.guard && /^\\w/.test(s.tabTrigger))\n s.guard = \"\\\\b\";\n s.trigger = lang.escapeRegExp(s.tabTrigger);\n }\n \n if (!s.trigger && !s.guard && !s.endTrigger && !s.endGuard)\n return;\n \n s.startRe = guardedRegexp(s.trigger, s.guard, true);\n s.triggerRe = new RegExp(s.trigger, \"\", true);\n\n s.endRe = guardedRegexp(s.endTrigger, s.endGuard, true);\n s.endTriggerRe = new RegExp(s.endTrigger, \"\", true);\n }\n\n if (snippets && snippets.content)\n addSnippet(snippets);\n else if (Array.isArray(snippets))\n snippets.forEach(addSnippet);\n \n this._signal(\"registerSnippets\", {scope: scope});\n };\n this.unregister = function(snippets, scope) {\n var snippetMap = this.snippetMap;\n var snippetNameMap = this.snippetNameMap;\n\n function removeSnippet(s) {\n var nameMap = snippetNameMap[s.scope||scope];\n if (nameMap && nameMap[s.name]) {\n delete nameMap[s.name];\n var map = snippetMap[s.scope||scope];\n var i = map && map.indexOf(s);\n if (i >= 0)\n map.splice(i, 1);\n }\n }\n if (snippets.content)\n removeSnippet(snippets);\n else if (Array.isArray(snippets))\n snippets.forEach(removeSnippet);\n };\n this.parseSnippetFile = function(str) {\n str = str.replace(/\\r/g, \"\");\n var list = [], snippet = {};\n var re = /^#.*|^({[\\s\\S]*})\\s*$|^(\\S+) (.*)$|^((?:\\n*\\t.*)+)/gm;\n var m;\n while (m = re.exec(str)) {\n if (m[1]) {\n try {\n snippet = JSON.parse(m[1]);\n list.push(snippet);\n } catch (e) {}\n } if (m[4]) {\n snippet.content = m[4].replace(/^\\t/gm, \"\");\n list.push(snippet);\n snippet = {};\n } else {\n var key = m[2], val = m[3];\n if (key == \"regex\") {\n var guardRe = /\\/((?:[^\\/\\\\]|\\\\.)*)|$/g;\n snippet.guard = guardRe.exec(val)[1];\n snippet.trigger = guardRe.exec(val)[1];\n snippet.endTrigger = guardRe.exec(val)[1];\n snippet.endGuard = guardRe.exec(val)[1];\n } else if (key == \"snippet\") {\n snippet.tabTrigger = val.match(/^\\S*/)[0];\n if (!snippet.name)\n snippet.name = val;\n } else {\n snippet[key] = val;\n }\n }\n }\n return list;\n };\n this.getSnippetByName = function(name, editor) {\n var snippetMap = this.snippetNameMap;\n var snippet;\n this.getActiveScopes(editor).some(function(scope) {\n var snippets = snippetMap[scope];\n if (snippets)\n snippet = snippets[name];\n return !!snippet;\n }, this);\n return snippet;\n };\n\n}).call(SnippetManager.prototype);\n\n\nvar TabstopManager = function(editor) {\n if (editor.tabstopManager)\n return editor.tabstopManager;\n editor.tabstopManager = this;\n this.$onChange = this.onChange.bind(this);\n this.$onChangeSelection = lang.delayedCall(this.onChangeSelection.bind(this)).schedule;\n this.$onChangeSession = this.onChangeSession.bind(this);\n this.$onAfterExec = this.onAfterExec.bind(this);\n this.attach(editor);\n};\n(function() {\n this.attach = function(editor) {\n this.index = 0;\n this.ranges = [];\n this.tabstops = [];\n this.$openTabstops = null;\n this.selectedTabstop = null;\n\n this.editor = editor;\n this.editor.on(\"change\", this.$onChange);\n this.editor.on(\"changeSelection\", this.$onChangeSelection);\n this.editor.on(\"changeSession\", this.$onChangeSession);\n this.editor.commands.on(\"afterExec\", this.$onAfterExec);\n this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler);\n };\n this.detach = function() {\n this.tabstops.forEach(this.removeTabstopMarkers, this);\n this.ranges = null;\n this.tabstops = null;\n this.selectedTabstop = null;\n this.editor.removeListener(\"change\", this.$onChange);\n this.editor.removeListener(\"changeSelection\", this.$onChangeSelection);\n this.editor.removeListener(\"changeSession\", this.$onChangeSession);\n this.editor.commands.removeListener(\"afterExec\", this.$onAfterExec);\n this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler);\n this.editor.tabstopManager = null;\n this.editor = null;\n };\n\n this.onChange = function(delta) {\n var changeRange = delta;\n var isRemove = delta.action[0] == \"r\";\n var start = delta.start;\n var end = delta.end;\n var startRow = start.row;\n var endRow = end.row;\n var lineDif = endRow - startRow;\n var colDiff = end.column - start.column;\n\n if (isRemove) {\n lineDif = -lineDif;\n colDiff = -colDiff;\n }\n if (!this.$inChange && isRemove) {\n var ts = this.selectedTabstop;\n var changedOutside = ts && !ts.some(function(r) {\n return comparePoints(r.start, start) <= 0 && comparePoints(r.end, end) >= 0;\n });\n if (changedOutside)\n return this.detach();\n }\n var ranges = this.ranges;\n for (var i = 0; i < ranges.length; i++) {\n var r = ranges[i];\n if (r.end.row < start.row)\n continue;\n\n if (isRemove && comparePoints(start, r.start) < 0 && comparePoints(end, r.end) > 0) {\n this.removeRange(r);\n i--;\n continue;\n }\n\n if (r.start.row == startRow && r.start.column > start.column)\n r.start.column += colDiff;\n if (r.end.row == startRow && r.end.column >= start.column)\n r.end.column += colDiff;\n if (r.start.row >= startRow)\n r.start.row += lineDif;\n if (r.end.row >= startRow)\n r.end.row += lineDif;\n\n if (comparePoints(r.start, r.end) > 0)\n this.removeRange(r);\n }\n if (!ranges.length)\n this.detach();\n };\n this.updateLinkedFields = function() {\n var ts = this.selectedTabstop;\n if (!ts || !ts.hasLinkedRanges)\n return;\n this.$inChange = true;\n var session = this.editor.session;\n var text = session.getTextRange(ts.firstNonLinked);\n for (var i = ts.length; i--;) {\n var range = ts[i];\n if (!range.linked)\n continue;\n var fmt = exports.snippetManager.tmStrFormat(text, range.original);\n session.replace(range, fmt);\n }\n this.$inChange = false;\n };\n this.onAfterExec = function(e) {\n if (e.command && !e.command.readOnly)\n this.updateLinkedFields();\n };\n this.onChangeSelection = function() {\n if (!this.editor)\n return;\n var lead = this.editor.selection.lead;\n var anchor = this.editor.selection.anchor;\n var isEmpty = this.editor.selection.isEmpty();\n for (var i = this.ranges.length; i--;) {\n if (this.ranges[i].linked)\n continue;\n var containsLead = this.ranges[i].contains(lead.row, lead.column);\n var containsAnchor = isEmpty || this.ranges[i].contains(anchor.row, anchor.column);\n if (containsLead && containsAnchor)\n return;\n }\n this.detach();\n };\n this.onChangeSession = function() {\n this.detach();\n };\n this.tabNext = function(dir) {\n var max = this.tabstops.length;\n var index = this.index + (dir || 1);\n index = Math.min(Math.max(index, 1), max);\n if (index == max)\n index = 0;\n this.selectTabstop(index);\n if (index === 0)\n this.detach();\n };\n this.selectTabstop = function(index) {\n this.$openTabstops = null;\n var ts = this.tabstops[this.index];\n if (ts)\n this.addTabstopMarkers(ts);\n this.index = index;\n ts = this.tabstops[this.index];\n if (!ts || !ts.length)\n return;\n \n this.selectedTabstop = ts;\n if (!this.editor.inVirtualSelectionMode) { \n var sel = this.editor.multiSelect;\n sel.toSingleRange(ts.firstNonLinked.clone());\n for (var i = ts.length; i--;) {\n if (ts.hasLinkedRanges && ts[i].linked)\n continue;\n sel.addRange(ts[i].clone(), true);\n }\n if (sel.ranges[0])\n sel.addRange(sel.ranges[0].clone());\n } else {\n this.editor.selection.setRange(ts.firstNonLinked);\n }\n \n this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler);\n };\n this.addTabstops = function(tabstops, start, end) {\n if (!this.$openTabstops)\n this.$openTabstops = [];\n if (!tabstops[0]) {\n var p = Range.fromPoints(end, end);\n moveRelative(p.start, start);\n moveRelative(p.end, start);\n tabstops[0] = [p];\n tabstops[0].index = 0;\n }\n\n var i = this.index;\n var arg = [i + 1, 0];\n var ranges = this.ranges;\n tabstops.forEach(function(ts, index) {\n var dest = this.$openTabstops[index] || ts;\n \n for (var i = ts.length; i--;) {\n var p = ts[i];\n var range = Range.fromPoints(p.start, p.end || p.start);\n movePoint(range.start, start);\n movePoint(range.end, start);\n range.original = p;\n range.tabstop = dest;\n ranges.push(range);\n if (dest != ts)\n dest.unshift(range);\n else\n dest[i] = range;\n if (p.fmtString) {\n range.linked = true;\n dest.hasLinkedRanges = true;\n } else if (!dest.firstNonLinked)\n dest.firstNonLinked = range;\n }\n if (!dest.firstNonLinked)\n dest.hasLinkedRanges = false;\n if (dest === ts) {\n arg.push(dest);\n this.$openTabstops[index] = dest;\n }\n this.addTabstopMarkers(dest);\n }, this);\n \n if (arg.length > 2) {\n if (this.tabstops.length)\n arg.push(arg.splice(2, 1)[0]);\n this.tabstops.splice.apply(this.tabstops, arg);\n }\n };\n\n this.addTabstopMarkers = function(ts) {\n var session = this.editor.session;\n ts.forEach(function(range) {\n if (!range.markerId)\n range.markerId = session.addMarker(range, \"ace_snippet-marker\", \"text\");\n });\n };\n this.removeTabstopMarkers = function(ts) {\n var session = this.editor.session;\n ts.forEach(function(range) {\n session.removeMarker(range.markerId);\n range.markerId = null;\n });\n };\n this.removeRange = function(range) {\n var i = range.tabstop.indexOf(range);\n range.tabstop.splice(i, 1);\n i = this.ranges.indexOf(range);\n this.ranges.splice(i, 1);\n this.editor.session.removeMarker(range.markerId);\n if (!range.tabstop.length) {\n i = this.tabstops.indexOf(range.tabstop);\n if (i != -1)\n this.tabstops.splice(i, 1);\n if (!this.tabstops.length)\n this.detach();\n }\n };\n\n this.keyboardHandler = new HashHandler();\n this.keyboardHandler.bindKeys({\n \"Tab\": function(ed) {\n if (exports.snippetManager && exports.snippetManager.expandWithTab(ed)) {\n return;\n }\n\n ed.tabstopManager.tabNext(1);\n },\n \"Shift-Tab\": function(ed) {\n ed.tabstopManager.tabNext(-1);\n },\n \"Esc\": function(ed) {\n ed.tabstopManager.detach();\n },\n \"Return\": function(ed) {\n return false;\n }\n });\n}).call(TabstopManager.prototype);\n\n\n\nvar changeTracker = {};\nchangeTracker.onChange = Anchor.prototype.onChange;\nchangeTracker.setPosition = function(row, column) {\n this.pos.row = row;\n this.pos.column = column;\n};\nchangeTracker.update = function(pos, delta, $insertRight) {\n this.$insertRight = $insertRight;\n this.pos = pos; \n this.onChange(delta);\n};\n\nvar movePoint = function(point, diff) {\n if (point.row == 0)\n point.column += diff.column;\n point.row += diff.row;\n};\n\nvar moveRelative = function(point, start) {\n if (point.row == start.row)\n point.column -= start.column;\n point.row -= start.row;\n};\n\n\nacequire(\"./lib/dom\").importCssString(\"\\\n.ace_snippet-marker {\\\n -moz-box-sizing: border-box;\\\n box-sizing: border-box;\\\n background: rgba(194, 193, 208, 0.09);\\\n border: 1px dotted rgba(211, 208, 235, 0.62);\\\n position: absolute;\\\n}\");\n\nexports.snippetManager = new SnippetManager();\n\n\nvar Editor = acequire(\"./editor\").Editor;\n(function() {\n this.insertSnippet = function(content, options) {\n return exports.snippetManager.insertSnippet(this, content, options);\n };\n this.expandSnippet = function(options) {\n return exports.snippetManager.expandWithTab(this, options);\n };\n}).call(Editor.prototype);\n\n});\n\nace.define(\"ace/ext/emmet\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\",\"ace/editor\",\"ace/snippets\",\"ace/range\",\"resources\",\"resources\",\"tabStops\",\"resources\",\"utils\",\"actions\",\"ace/config\",\"ace/config\"], function(acequire, exports, module) {\n\"use strict\";\nvar HashHandler = acequire(\"ace/keyboard/hash_handler\").HashHandler;\nvar Editor = acequire(\"ace/editor\").Editor;\nvar snippetManager = acequire(\"ace/snippets\").snippetManager;\nvar Range = acequire(\"ace/range\").Range;\nvar emmet, emmetPath;\nfunction AceEmmetEditor() {}\n\nAceEmmetEditor.prototype = {\n setupContext: function(editor) {\n this.ace = editor;\n this.indentation = editor.session.getTabString();\n if (!emmet)\n emmet = window.emmet;\n var resources = emmet.resources || emmet.require(\"resources\");\n resources.setVariable(\"indentation\", this.indentation);\n this.$syntax = null;\n this.$syntax = this.getSyntax();\n },\n getSelectionRange: function() {\n var range = this.ace.getSelectionRange();\n var doc = this.ace.session.doc;\n return {\n start: doc.positionToIndex(range.start),\n end: doc.positionToIndex(range.end)\n };\n },\n createSelection: function(start, end) {\n var doc = this.ace.session.doc;\n this.ace.selection.setRange({\n start: doc.indexToPosition(start),\n end: doc.indexToPosition(end)\n });\n },\n getCurrentLineRange: function() {\n var ace = this.ace;\n var row = ace.getCursorPosition().row;\n var lineLength = ace.session.getLine(row).length;\n var index = ace.session.doc.positionToIndex({row: row, column: 0});\n return {\n start: index,\n end: index + lineLength\n };\n },\n getCaretPos: function(){\n var pos = this.ace.getCursorPosition();\n return this.ace.session.doc.positionToIndex(pos);\n },\n setCaretPos: function(index){\n var pos = this.ace.session.doc.indexToPosition(index);\n this.ace.selection.moveToPosition(pos);\n },\n getCurrentLine: function() {\n var row = this.ace.getCursorPosition().row;\n return this.ace.session.getLine(row);\n },\n replaceContent: function(value, start, end, noIndent) {\n if (end == null)\n end = start == null ? this.getContent().length : start;\n if (start == null)\n start = 0; \n \n var editor = this.ace;\n var doc = editor.session.doc;\n var range = Range.fromPoints(doc.indexToPosition(start), doc.indexToPosition(end));\n editor.session.remove(range);\n \n range.end = range.start;\n \n value = this.$updateTabstops(value);\n snippetManager.insertSnippet(editor, value);\n },\n getContent: function(){\n return this.ace.getValue();\n },\n getSyntax: function() {\n if (this.$syntax)\n return this.$syntax;\n var syntax = this.ace.session.$modeId.split(\"/\").pop();\n if (syntax == \"html\" || syntax == \"php\") {\n var cursor = this.ace.getCursorPosition();\n var state = this.ace.session.getState(cursor.row);\n if (typeof state != \"string\")\n state = state[0];\n if (state) {\n state = state.split(\"-\");\n if (state.length > 1)\n syntax = state[0];\n else if (syntax == \"php\")\n syntax = \"html\";\n }\n }\n return syntax;\n },\n getProfileName: function() {\n var resources = emmet.resources || emmet.require(\"resources\");\n switch (this.getSyntax()) {\n case \"css\": return \"css\";\n case \"xml\":\n case \"xsl\":\n return \"xml\";\n case \"html\":\n var profile = resources.getVariable(\"profile\");\n if (!profile)\n profile = this.ace.session.getLines(0,2).join(\"\").search(/]+XHTML/i) != -1 ? \"xhtml\": \"html\";\n return profile;\n default:\n var mode = this.ace.session.$mode;\n return mode.emmetConfig && mode.emmetConfig.profile || \"xhtml\";\n }\n },\n prompt: function(title) {\n return prompt(title);\n },\n getSelection: function() {\n return this.ace.session.getTextRange();\n },\n getFilePath: function() {\n return \"\";\n },\n $updateTabstops: function(value) {\n var base = 1000;\n var zeroBase = 0;\n var lastZero = null;\n var ts = emmet.tabStops || emmet.require('tabStops');\n var resources = emmet.resources || emmet.require(\"resources\");\n var settings = resources.getVocabulary(\"user\");\n var tabstopOptions = {\n tabstop: function(data) {\n var group = parseInt(data.group, 10);\n var isZero = group === 0;\n if (isZero)\n group = ++zeroBase;\n else\n group += base;\n\n var placeholder = data.placeholder;\n if (placeholder) {\n placeholder = ts.processText(placeholder, tabstopOptions);\n }\n\n var result = '${' + group + (placeholder ? ':' + placeholder : '') + '}';\n\n if (isZero) {\n lastZero = [data.start, result];\n }\n\n return result;\n },\n escape: function(ch) {\n if (ch == '$') return '\\\\$';\n if (ch == '\\\\') return '\\\\\\\\';\n return ch;\n }\n };\n\n value = ts.processText(value, tabstopOptions);\n\n if (settings.variables['insert_final_tabstop'] && !/\\$\\{0\\}$/.test(value)) {\n value += '${0}';\n } else if (lastZero) {\n var common = emmet.utils ? emmet.utils.common : emmet.require('utils');\n value = common.replaceSubstring(value, '${0}', lastZero[0], lastZero[1]);\n }\n \n return value;\n }\n};\n\n\nvar keymap = {\n expand_abbreviation: {\"mac\": \"ctrl+alt+e\", \"win\": \"alt+e\"},\n match_pair_outward: {\"mac\": \"ctrl+d\", \"win\": \"ctrl+,\"},\n match_pair_inward: {\"mac\": \"ctrl+j\", \"win\": \"ctrl+shift+0\"},\n matching_pair: {\"mac\": \"ctrl+alt+j\", \"win\": \"alt+j\"},\n next_edit_point: \"alt+right\",\n prev_edit_point: \"alt+left\",\n toggle_comment: {\"mac\": \"command+/\", \"win\": \"ctrl+/\"},\n split_join_tag: {\"mac\": \"shift+command+'\", \"win\": \"shift+ctrl+`\"},\n remove_tag: {\"mac\": \"command+'\", \"win\": \"shift+ctrl+;\"},\n evaluate_math_expression: {\"mac\": \"shift+command+y\", \"win\": \"shift+ctrl+y\"},\n increment_number_by_1: \"ctrl+up\",\n decrement_number_by_1: \"ctrl+down\",\n increment_number_by_01: \"alt+up\",\n decrement_number_by_01: \"alt+down\",\n increment_number_by_10: {\"mac\": \"alt+command+up\", \"win\": \"shift+alt+up\"},\n decrement_number_by_10: {\"mac\": \"alt+command+down\", \"win\": \"shift+alt+down\"},\n select_next_item: {\"mac\": \"shift+command+.\", \"win\": \"shift+ctrl+.\"},\n select_previous_item: {\"mac\": \"shift+command+,\", \"win\": \"shift+ctrl+,\"},\n reflect_css_value: {\"mac\": \"shift+command+r\", \"win\": \"shift+ctrl+r\"},\n\n encode_decode_data_url: {\"mac\": \"shift+ctrl+d\", \"win\": \"ctrl+'\"},\n expand_abbreviation_with_tab: \"Tab\",\n wrap_with_abbreviation: {\"mac\": \"shift+ctrl+a\", \"win\": \"shift+ctrl+a\"}\n};\n\nvar editorProxy = new AceEmmetEditor();\nexports.commands = new HashHandler();\nexports.runEmmetCommand = function runEmmetCommand(editor) {\n try {\n editorProxy.setupContext(editor);\n var actions = emmet.actions || emmet.require(\"actions\");\n \n if (this.action == \"expand_abbreviation_with_tab\") {\n if (!editor.selection.isEmpty())\n return false;\n var pos = editor.selection.lead;\n var token = editor.session.getTokenAt(pos.row, pos.column);\n if (token && /\\btag\\b/.test(token.type))\n return false;\n }\n \n if (this.action == \"wrap_with_abbreviation\") {\n return setTimeout(function() {\n actions.run(\"wrap_with_abbreviation\", editorProxy);\n }, 0);\n }\n \n var result = actions.run(this.action, editorProxy);\n } catch(e) {\n if (!emmet) {\n load(runEmmetCommand.bind(this, editor));\n return true;\n }\n editor._signal(\"changeStatus\", typeof e == \"string\" ? e : e.message);\n console.log(e);\n result = false;\n }\n return result;\n};\n\nfor (var command in keymap) {\n exports.commands.addCommand({\n name: \"emmet:\" + command,\n action: command,\n bindKey: keymap[command],\n exec: exports.runEmmetCommand,\n multiSelectAction: \"forEach\"\n });\n}\n\nexports.updateCommands = function(editor, enabled) {\n if (enabled) {\n editor.keyBinding.addKeyboardHandler(exports.commands);\n } else {\n editor.keyBinding.removeKeyboardHandler(exports.commands);\n }\n};\n\nexports.isSupportedMode = function(mode) {\n if (!mode) return false;\n if (mode.emmetConfig) return true;\n var id = mode.$id || mode;\n return /css|less|scss|sass|stylus|html|php|twig|ejs|handlebars/.test(id);\n};\n\nexports.isAvailable = function(editor, command) {\n if (/(evaluate_math_expression|expand_abbreviation)$/.test(command))\n return true;\n var mode = editor.session.$mode;\n var isSupported = exports.isSupportedMode(mode);\n if (isSupported && mode.$modes) {\n try {\n editorProxy.setupContext(editor);\n if (/js|php/.test(editorProxy.getSyntax()))\n isSupported = false;\n } catch(e) {}\n }\n return isSupported;\n};\n\nvar onChangeMode = function(e, target) {\n var editor = target;\n if (!editor)\n return;\n var enabled = exports.isSupportedMode(editor.session.$mode);\n if (e.enableEmmet === false)\n enabled = false;\n if (enabled)\n load();\n exports.updateCommands(editor, enabled);\n};\n\nvar load = function(cb) {\n if (typeof emmetPath == \"string\") {\n acequire(\"ace/config\").loadModule(emmetPath, function() {\n emmetPath = null;\n cb && cb();\n });\n }\n};\n\nexports.AceEmmetEditor = AceEmmetEditor;\nacequire(\"ace/config\").defineOptions(Editor.prototype, \"editor\", {\n enableEmmet: {\n set: function(val) {\n this[val ? \"on\" : \"removeListener\"](\"changeMode\", onChangeMode);\n onChangeMode({enableEmmet: !!val}, this);\n },\n value: true\n }\n});\n\nexports.setCore = function(e) {\n if (typeof e == \"string\")\n emmetPath = e;\n else\n emmet = e;\n};\n});\n (function() {\n ace.acequire([\"ace/ext/emmet\"], function() {});\n })();\n ","/*\n\n Copyright The Closure Library Authors.\n SPDX-License-Identifier: Apache-2.0\n*/\nvar n;function aa(a){var b=0;return function(){return bc&&(c=Math.max(c+f,0));c>>0),ua=0;function va(a,b,c){return a.call.apply(a.bind,arguments)}\nfunction wa(a,b,c){if(!a)throw Error();if(2b?1:0};var J;a:{var Pa=w.navigator;if(Pa){var Qa=Pa.userAgent;if(Qa){J=Qa;break a}}J=\"\"};function Ra(a,b){for(var c in a)b.call(void 0,a[c],c,a)}function Sa(a,b){var c={},d;for(d in a)c[d]=b.call(void 0,a[d],d,a);return c}var Ta=\"constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf\".split(\" \");function Ua(a,b){for(var c,d,f=1;fparseFloat(eb)){db=String(gb);break a}}db=eb}var Ya={};\nfunction ib(){return Xa(function(){for(var a=0,b=Na(String(db)).split(\".\"),c=Na(\"9\").split(\".\"),d=Math.max(b.length,c.length),f=0;0==a&&f>>0);function Ab(a){if(\"function\"===typeof a)return a;a[Ib]||(a[Ib]=function(b){return a.handleEvent(b)});return a[Ib]};function M(){jb.call(this);this.f=new sb(this);this.U=this}B(M,jb);M.prototype[ob]=!0;M.prototype.addEventListener=function(a,b,c,d){yb(this,a,b,c,d)};M.prototype.removeEventListener=function(a,b,c,d){Gb(this,a,b,c,d)};function O(a,b){a=a.U;var c=b.type||b;if(\"string\"===typeof b)b=new K(b,a);else if(b instanceof K)b.target=b.target||a;else{var d=b;b=new K(c,a);Ua(b,d)}a=b.a=a;Jb(a,c,!0,b);Jb(a,c,!1,b)}\nfunction Jb(a,b,c,d){if(b=a.f.a[String(b)]){b=b.concat();for(var f=!0,g=0;g=f.value}d&&(b=b||Nb,d=$b(ac(),a.getName()),\"function\"===typeof c&&(c=c()),Sb||(Sb=new Rb),a=a.getName(),a=new Ub(b,c,a),Xb(d,a))}function P(a,b){a&&bc(a,Qb,b)};function cc(){}cc.prototype.a=null;function dc(a){var b;(b=a.a)||(b={},ec(a)&&(b[0]=!0,b[1]=!0),b=a.a=b);return b};var fc;function gc(){}B(gc,cc);function hc(a){return(a=ec(a))?new ActiveXObject(a):new XMLHttpRequest}function ec(a){if(!a.b&&\"undefined\"==typeof XMLHttpRequest&&\"undefined\"!=typeof ActiveXObject){for(var b=[\"MSXML2.XMLHTTP.6.0\",\"MSXML2.XMLHTTP.3.0\",\"MSXML2.XMLHTTP\",\"Microsoft.XMLHTTP\"],c=0;c2*this.size&&oc(this),!0):!1};function oc(a){if(a.size!=a.j.length){for(var b=0,c=0;b=d.j.length)throw kc;var g=d.j[b++];return a?g:d.o[g]};f.next=f.a.bind(f);return f};function U(a,b){return Object.prototype.hasOwnProperty.call(a,b)};var pc=/^(?:([^:/?#.]+):)?(?:\\/\\/(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$/;function qc(a){M.call(this);this.headers=new nc;this.C=a||null;this.c=!1;this.J=this.a=null;this.P=this.v=\"\";this.g=0;this.l=\"\";this.i=this.N=this.s=this.L=!1;this.h=0;this.w=null;this.m=rc;this.I=this.M=!1}B(qc,M);var rc=\"\";qc.prototype.b=$b(ac(),\"goog.net.XhrIo\",void 0).g;var sc=/^https?$/i,tc=[\"POST\",\"PUT\"];\nfunction uc(a,b,c){if(a.a)throw Error(\"[goog.net.XhrIo] Object is active with another request=\"+a.v+\"; newUri=\"+b);a.v=b;a.l=\"\";a.g=0;a.P=\"POST\";a.L=!1;a.c=!0;a.a=a.C?hc(a.C):hc(fc);a.J=a.C?dc(a.C):dc(fc);a.a.onreadystatechange=A(a.R,a);try{P(a.b,V(a,\"Opening Xhr\")),a.N=!0,a.a.open(\"POST\",String(b),!0),a.N=!1}catch(g){P(a.b,V(a,\"Error opening Xhr: \"+g.message));vc(a,g);return}b=c||\"\";c=a.headers.clone();var d=c.G().find(function(g){return\"content-type\"==g.toLowerCase()}),f=w.FormData&&b instanceof\nw.FormData;!(0<=Ma(tc,\"POST\"))||d||f||c.set(\"Content-Type\",\"application/x-www-form-urlencoded;charset=utf-8\");c.forEach(function(g,e){this.a.setRequestHeader(e,g)},a);a.m&&(a.a.responseType=a.m);\"withCredentials\"in a.a&&a.a.withCredentials!==a.M&&(a.a.withCredentials=a.M);try{wc(a),0>4);64!=e&&(b(g<<4&240|e>>2),64!=h&&b(e<<6&192|h))}}\nfunction Ic(){if(!Fc){Fc={};for(var a=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\".split(\"\"),b=[\"+/=\",\"+/\",\"-_=\",\"-_.\",\"-_\"],c=0;5>c;c++){var d=a.concat(b[c].split(\"\"));Ec[c]=d;for(var f=0;fh&&(h=f.length),e=f.indexOf(\"?\"),0>e||e>h?(e=h,k=\"\"):k=f.substring(e+1,h),f=[f.substr(0,e),k,f.substr(h)],h=f[1],f[1]=m?h?h+\"&\"+m:m:h,f=f[0]+(f[1]?\"?\"+f[1]:\"\")+f[2]}else f.a(\"$httpHeaders\",h)}b=d.getRequestSerializeFn()(b.getRequestMessage());d=b.length;m=[0,0,0,0];h=new Uint8Array(5+d);for(e=3;0<=e;e--)m[e]=d%256,d>>>=8;h.set(new Uint8Array(m),1);h.set(b,5);b=h;if(\"text\"==a.a){a=b;var p;void 0===p&&(p=0);Ic();p=Ec[p];b=Array(Math.floor(a.length/3));d=p[64]||\"\";for(m=h=0;h>2];l=p[(l&3)<<4|q>>4];q=p[(q&15)<<2|k>>6];k=p[k&63];b[m++]=e+l+q+k}e=0;k=d;switch(a.length-h){case 2:e=a[h+1],k=p[(e&15)<<2]||d;case 1:a=a[h],b[m]=p[a>>2]+p[(a&3)<<4|e>>4]+k+d}b=b.join(\"\")}else\"binary\"==a.a&&(c.m=\"arraybuffer\");uc(c,f,b);return g}\nfunction Qc(a,b,c){var d=!1,f=null,g=!1;a.on(\"data\",function(e){d=!0;f=e});a.on(\"error\",function(e){0==e.code||g||(g=!0,b(e,null))});a.on(\"status\",function(e){0==e.code||g?c&&b(null,null,e):(g=!0,b({code:e.code,message:e.details,metadata:e.metadata},null))});if(c)a.on(\"metadata\",function(e){b(null,null,null,e)});a.on(\"end\",function(){g||(d?b(null,f):b({code:2,message:\"Incomplete response\"}));c&&b(null,null)})}\nfunction Oc(a,b){var c=a;b.forEach(function(d){var f=c;c=function(g){return d.intercept(g,f)}});return c}Z.prototype.serverStreaming=Z.prototype.Y;Z.prototype.unaryCall=Z.prototype.unaryCall;Z.prototype.thenableCall=Z.prototype.S;Z.prototype.rpcCall=Z.prototype.X;module.exports.CallOptions=xa;module.exports.MethodDescriptor=E;module.exports.GrpcWebClientBase=Z;module.exports.RpcError=F;module.exports.StatusCode={OK:0,CANCELLED:1,UNKNOWN:2,INVALID_ARGUMENT:3,DEADLINE_EXCEEDED:4,NOT_FOUND:5,ALREADY_EXISTS:6,PERMISSION_DENIED:7,UNAUTHENTICATED:16,RESOURCE_EXHAUSTED:8,FAILED_PRECONDITION:9,ABORTED:10,OUT_OF_RANGE:11,UNIMPLEMENTED:12,INTERNAL:13,UNAVAILABLE:14,DATA_LOSS:15};module.exports.MethodType={UNARY:\"unary\",SERVER_STREAMING:\"server_streaming\",BIDI_STREAMING:\"bidi_streaming\"};\nKb=\"undefined\"!==typeof globalThis&&globalThis||self;\n","var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(a,b,c){a instanceof String&&(a=String(a));for(var d=a.length,e=0;e=e}},\"es6\",\"es3\");$jscomp.polyfill(\"Array.prototype.find\",function(a){return a?a:function(a,c){return $jscomp.findInternal(this,a,c).v}},\"es6\",\"es3\");\n$jscomp.polyfill(\"String.prototype.startsWith\",function(a){return a?a:function(a,c){var b=$jscomp.checkStringArgs(this,a,\"startsWith\");a+=\"\";var e=b.length,f=a.length;c=Math.max(0,Math.min(c|0,b.length));for(var g=0;g=f}},\"es6\",\"es3\");\n$jscomp.polyfill(\"String.prototype.repeat\",function(a){return a?a:function(a){var b=$jscomp.checkStringArgs(this,null,\"repeat\");if(0>a||1342177279>>=1)b+=b;return d}},\"es6\",\"es3\");var COMPILED=!0,goog=goog||{};goog.global=this||self;goog.isDef=function(a){return void 0!==a};goog.isString=function(a){return\"string\"==typeof a};goog.isBoolean=function(a){return\"boolean\"==typeof a};\ngoog.isNumber=function(a){return\"number\"==typeof a};goog.exportPath_=function(a,b,c){a=a.split(\".\");c=c||goog.global;a[0]in c||\"undefined\"==typeof c.execScript||c.execScript(\"var \"+a[0]);for(var d;a.length&&(d=a.shift());)!a.length&&goog.isDef(b)?c[d]=b:c=c[d]&&c[d]!==Object.prototype[d]?c[d]:c[d]={}};\ngoog.define=function(a,b){if(!COMPILED){var c=goog.global.CLOSURE_UNCOMPILED_DEFINES,d=goog.global.CLOSURE_DEFINES;c&&void 0===c.nodeType&&Object.prototype.hasOwnProperty.call(c,a)?b=c[a]:d&&void 0===d.nodeType&&Object.prototype.hasOwnProperty.call(d,a)&&(b=d[a])}return b};goog.FEATURESET_YEAR=2012;goog.DEBUG=!0;goog.LOCALE=\"en\";goog.TRUSTED_SITE=!0;goog.STRICT_MODE_COMPATIBLE=!1;goog.DISALLOW_TEST_ONLY_CODE=COMPILED&&!goog.DEBUG;goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1;\ngoog.provide=function(a){if(goog.isInModuleLoader_())throw Error(\"goog.provide cannot be used within a module.\");if(!COMPILED&&goog.isProvided_(a))throw Error('Namespace \"'+a+'\" already declared.');goog.constructNamespace_(a)};goog.constructNamespace_=function(a,b){if(!COMPILED){delete goog.implicitNamespaces_[a];for(var c=a;(c=c.substring(0,c.lastIndexOf(\".\")))&&!goog.getObjectByName(c);)goog.implicitNamespaces_[c]=!0}goog.exportPath_(a,b)};\ngoog.getScriptNonce=function(a){if(a&&a!=goog.global)return goog.getScriptNonce_(a.document);null===goog.cspNonce_&&(goog.cspNonce_=goog.getScriptNonce_(goog.global.document));return goog.cspNonce_};goog.NONCE_PATTERN_=/^[\\w+/_-]+[=]{0,2}$/;goog.cspNonce_=null;goog.getScriptNonce_=function(a){return(a=a.querySelector&&a.querySelector(\"script[nonce]\"))&&(a=a.nonce||a.getAttribute(\"nonce\"))&&goog.NONCE_PATTERN_.test(a)?a:\"\"};goog.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/;\ngoog.module=function(a){if(!goog.isString(a)||!a||-1==a.search(goog.VALID_MODULE_RE_))throw Error(\"Invalid module identifier\");if(!goog.isInGoogModuleLoader_())throw Error(\"Module \"+a+\" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.\");\nif(goog.moduleLoaderState_.moduleName)throw Error(\"goog.module may only be called once per module.\");goog.moduleLoaderState_.moduleName=a;if(!COMPILED){if(goog.isProvided_(a))throw Error('Namespace \"'+a+'\" already declared.');delete goog.implicitNamespaces_[a]}};goog.module.get=function(a){return goog.module.getInternal_(a)};\ngoog.module.getInternal_=function(a){if(!COMPILED){if(a in goog.loadedModules_)return goog.loadedModules_[a].exports;if(!goog.implicitNamespaces_[a])return a=goog.getObjectByName(a),null!=a?a:null}return null};goog.ModuleType={ES6:\"es6\",GOOG:\"goog\"};goog.moduleLoaderState_=null;goog.isInModuleLoader_=function(){return goog.isInGoogModuleLoader_()||goog.isInEs6ModuleLoader_()};goog.isInGoogModuleLoader_=function(){return!!goog.moduleLoaderState_&&goog.moduleLoaderState_.type==goog.ModuleType.GOOG};\ngoog.isInEs6ModuleLoader_=function(){if(goog.moduleLoaderState_&&goog.moduleLoaderState_.type==goog.ModuleType.ES6)return!0;var a=goog.global.$jscomp;return a?\"function\"!=typeof a.getCurrentModulePath?!1:!!a.getCurrentModulePath():!1};\ngoog.module.declareLegacyNamespace=function(){if(!COMPILED&&!goog.isInGoogModuleLoader_())throw Error(\"goog.module.declareLegacyNamespace must be called from within a goog.module\");if(!COMPILED&&!goog.moduleLoaderState_.moduleName)throw Error(\"goog.module must be called prior to goog.module.declareLegacyNamespace.\");goog.moduleLoaderState_.declareLegacyNamespace=!0};\ngoog.declareModuleId=function(a){if(!COMPILED){if(!goog.isInEs6ModuleLoader_())throw Error(\"goog.declareModuleId may only be called from within an ES6 module\");if(goog.moduleLoaderState_&&goog.moduleLoaderState_.moduleName)throw Error(\"goog.declareModuleId may only be called once per module.\");if(a in goog.loadedModules_)throw Error('Module with namespace \"'+a+'\" already exists.');}if(goog.moduleLoaderState_)goog.moduleLoaderState_.moduleName=a;else{var b=goog.global.$jscomp;if(!b||\"function\"!=typeof b.getCurrentModulePath)throw Error('Module with namespace \"'+\na+'\" has been loaded incorrectly.');b=b.require(b.getCurrentModulePath());goog.loadedModules_[a]={exports:b,type:goog.ModuleType.ES6,moduleId:a}}};goog.setTestOnly=function(a){if(goog.DISALLOW_TEST_ONLY_CODE)throw a=a||\"\",Error(\"Importing test-only code into non-debug environment\"+(a?\": \"+a:\".\"));};goog.forwardDeclare=function(a){};\nCOMPILED||(goog.isProvided_=function(a){return a in goog.loadedModules_||!goog.implicitNamespaces_[a]&&goog.isDefAndNotNull(goog.getObjectByName(a))},goog.implicitNamespaces_={\"goog.module\":!0});goog.getObjectByName=function(a,b){a=a.split(\".\");b=b||goog.global;for(var c=0;c>>0);goog.uidCounter_=0;goog.getHashCode=goog.getUid;\ngoog.removeHashCode=goog.removeUid;goog.cloneObject=function(a){var b=goog.typeOf(a);if(\"object\"==b||\"array\"==b){if(\"function\"===typeof a.clone)return a.clone();b=\"array\"==b?[]:{};for(var c in a)b[c]=goog.cloneObject(a[c]);return b}return a};goog.bindNative_=function(a,b,c){return a.call.apply(a.bind,arguments)};\ngoog.bindJs_=function(a,b,c){if(!a)throw Error();if(2{\"use strict\";class X{constructor(){if(new.target!=String)throw 1;this.x=42}}let q=Reflect.construct(X,[],String);if(q.x!=42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a==2)continue;function f(z={a}){let a=0;return z.a}{function f(){return 0;}}return f()==3}})()')});\na(\"es7\",function(){return b(\"2 ** 2 == 4\")});a(\"es8\",function(){return b(\"async () => 1, true\")});a(\"es9\",function(){return b(\"({...rest} = {}), true\")});a(\"es_next\",function(){return!1});return{target:c,map:d}},goog.Transpiler.prototype.needsTranspile=function(a,b){if(\"always\"==goog.TRANSPILE)return!0;if(\"never\"==goog.TRANSPILE)return!1;if(!this.requiresTranspilation_){var c=this.createRequiresTranspilation_();this.requiresTranspilation_=c.map;this.transpilationTarget_=this.transpilationTarget_||\nc.target}if(a in this.requiresTranspilation_)return this.requiresTranspilation_[a]?!0:!goog.inHtmlDocument_()||\"es6\"!=b||\"noModule\"in goog.global.document.createElement(\"script\")?!1:!0;throw Error(\"Unknown language mode: \"+a);},goog.Transpiler.prototype.transpile=function(a,b){return goog.transpile_(a,b,this.transpilationTarget_)},goog.transpiler_=new goog.Transpiler,goog.protectScriptTag_=function(a){return a.replace(/<\\/(SCRIPT)/ig,\"\\\\x3c/$1\")},goog.DebugLoader_=function(){this.dependencies_={};\nthis.idToPath_={};this.written_={};this.loadingDeps_=[];this.depsToLoad_=[];this.paused_=!1;this.factory_=new goog.DependencyFactory(goog.transpiler_);this.deferredCallbacks_={};this.deferredQueue_=[]},goog.DebugLoader_.prototype.bootstrap=function(a,b){function c(){d&&(goog.global.setTimeout(d,0),d=null)}var d=b;if(a.length){b=[];for(var e=0;e\\x3c/script>\";b.write(goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createHTML(d):d)}else{var e=b.createElement(\"script\");e.defer=goog.Dependency.defer_;e.async=!1;e.type=\"text/javascript\";(d=goog.getScriptNonce())&&e.setAttribute(\"nonce\",d);goog.DebugLoader_.IS_OLD_IE_?\n(a.pause(),e.onreadystatechange=function(){if(\"loaded\"==e.readyState||\"complete\"==e.readyState)a.loaded(),a.resume()}):e.onload=function(){e.onload=null;a.loaded()};e.src=goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createScriptURL(this.path):this.path;b.head.appendChild(e)}}else goog.logToConsole_(\"Cannot use default debug loader outside of HTML documents.\"),\"deps.js\"==this.relativePath?(goog.logToConsole_(\"Consider setting CLOSURE_IMPORT_SCRIPT before loading base.js, or setting CLOSURE_NO_DEPS to true.\"),\na.loaded()):a.pause()},goog.Es6ModuleDependency=function(a,b,c,d,e){goog.Dependency.call(this,a,b,c,d,e)},goog.inherits(goog.Es6ModuleDependency,goog.Dependency),goog.Es6ModuleDependency.prototype.load=function(a){function b(a,b){a=b?'\n\n\n\n{#if i[4]}\n \n \n \n {#if typeof i[4] == 'string'}\n \n {:else}\n \n \n {/if}\n \n \n \n{/if}\n","/**\n * Expand/Shrink child nodes\n * @param {HTMLElement} node\n * @param {HTMLElement} child\n * @param {HTMLElement} reverse reverse denotes shrink\n */\nexport function fixClickedElementCSS (node, child, reverse) {\n if (!reverse) {\n child.style.transform = 'scale(1,1)'\n child.style.height = 'auto'\n } else {\n child.style.transform = 'scale(1,0)'\n child.style.height = '0px'\n }\n fixArrowPositioning(node, reverse)\n}\n\n/**\n * rotates chevronon the basis on a flag named reverse\n * @param {HTMLElement} node\n * @param {HTMLElement} reverse reverse denotes shrink\n */\nexport function fixArrowPositioning (node, reverse) {\n if (!reverse) {\n node.style.transform = 'rotate(90deg)'\n } else {\n node.style.transform = ''\n }\n}\n","import { fixClickedElementCSS } from './domhelpers'\n/**\n * fetches the currenty clicked node\n * looks for the very first child node\n * applies CSS to rotate the chevron and expand the child node\n * @param {DOM Click} event\n */\nexport function clickHandler (event) {\n const node = event.currentTarget\n // nodeParent will give us the complete node so that we can query for\n // the child nodes\n const nodeParent = node.parentNode\n const treeChild = nodeParent.querySelector('.tree-child')\n const nodeDesc = nodeParent.querySelector('.node-desc .chev-right')\n // CTO -> boolean\n // True -> child node is in expanded state\n // False -> child node is in shrinked state\n if (node.CTO) {\n node.CTO = !node.CTO\n treeChild && fixClickedElementCSS(nodeDesc, treeChild, true)\n return\n }\n node.CTO = true\n treeChild && fixClickedElementCSS(nodeDesc, treeChild)\n}\n","/*!\n * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\nvar prefix = \"fas\";\nvar faAd = {\n prefix: 'fas',\n iconName: 'ad',\n icon: [512, 512, [], \"f641\", \"M157.52 272h36.96L176 218.78 157.52 272zM352 256c-13.23 0-24 10.77-24 24s10.77 24 24 24 24-10.77 24-24-10.77-24-24-24zM464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM250.58 352h-16.94c-6.81 0-12.88-4.32-15.12-10.75L211.15 320h-70.29l-7.38 21.25A16 16 0 0 1 118.36 352h-16.94c-11.01 0-18.73-10.85-15.12-21.25L140 176.12A23.995 23.995 0 0 1 162.67 160h26.66A23.99 23.99 0 0 1 212 176.13l53.69 154.62c3.61 10.4-4.11 21.25-15.11 21.25zM424 336c0 8.84-7.16 16-16 16h-16c-4.85 0-9.04-2.27-11.98-5.68-8.62 3.66-18.09 5.68-28.02 5.68-39.7 0-72-32.3-72-72s32.3-72 72-72c8.46 0 16.46 1.73 24 4.42V176c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v160z\"]\n};\nvar faAddressBook = {\n prefix: 'fas',\n iconName: 'address-book',\n icon: [448, 512, [], \"f2b9\", \"M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"]\n};\nvar faAddressCard = {\n prefix: 'fas',\n iconName: 'address-card',\n icon: [576, 512, [], \"f2bb\", \"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-352 96c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H86.4C74 384 64 375.4 64 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2zM512 312c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faAdjust = {\n prefix: 'fas',\n iconName: 'adjust',\n icon: [512, 512, [], \"f042\", \"M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z\"]\n};\nvar faAirFreshener = {\n prefix: 'fas',\n iconName: 'air-freshener',\n icon: [512, 512, [], \"f5d0\", \"M224 160H96C43 160 0 203 0 256V480C0 497.625 14.375 512 32 512H288C305.625 512 320 497.625 320 480V256C320 203 277 160 224 160ZM160 416C115.875 416 80 380.125 80 336S115.875 256 160 256S240 291.875 240 336S204.125 416 160 416ZM224 32C224 14.375 209.625 0 192 0H128C110.375 0 96 14.375 96 32V128H224V32ZM381.781 51.578C383 50.969 384 49.359 384 48C384 46.625 383 45.031 381.781 44.422L352 32L339.562 2.219C338.969 1 337.375 0 336 0S333.031 1 332.406 2.219L320 32L290.219 44.422C289 45.031 288 46.625 288 48C288 49.359 289 50.969 290.219 51.578L320 64L332.406 93.781C333.031 95 334.625 96 336 96S338.969 95 339.562 93.781L352 64L381.781 51.578ZM448 64L460.406 93.781C461.031 95 462.625 96 464 96S466.969 95 467.562 93.781L480 64L509.781 51.578C511 50.969 512 49.359 512 48C512 46.625 511 45.031 509.781 44.422L480 32L467.562 2.219C466.969 1 465.375 0 464 0S461.031 1 460.406 2.219L448 32L418.219 44.422C417 45.031 416 46.625 416 48C416 49.359 417 50.969 418.219 51.578L448 64ZM480 224L467.562 194.219C466.969 193 465.375 192 464 192S461.031 193 460.406 194.219L448 224L418.219 236.422C417 237.031 416 238.625 416 240C416 241.359 417 242.969 418.219 243.578L448 256L460.406 285.781C461.031 287 462.625 288 464 288S466.969 287 467.562 285.781L480 256L509.781 243.578C511 242.969 512 241.359 512 240C512 238.625 511 237.031 509.781 236.422L480 224ZM445.781 147.578C447 146.969 448 145.359 448 144C448 142.625 447 141.031 445.781 140.422L416 128L403.562 98.219C402.969 97 401.375 96 400 96S397.031 97 396.406 98.219L384 128L354.219 140.422C353 141.031 352 142.625 352 144C352 145.359 353 146.969 354.219 147.578L384 160L396.406 189.781C397.031 191 398.625 192 400 192S402.969 191 403.562 189.781L416 160L445.781 147.578Z\"]\n};\nvar faAlignCenter = {\n prefix: 'fas',\n iconName: 'align-center',\n icon: [448, 512, [], \"f037\", \"M432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM108.1 96h231.81A12.09 12.09 0 0 0 352 83.9V44.09A12.09 12.09 0 0 0 339.91 32H108.1A12.09 12.09 0 0 0 96 44.09V83.9A12.1 12.1 0 0 0 108.1 96zm231.81 256A12.09 12.09 0 0 0 352 339.9v-39.81A12.09 12.09 0 0 0 339.91 288H108.1A12.09 12.09 0 0 0 96 300.09v39.81a12.1 12.1 0 0 0 12.1 12.1z\"]\n};\nvar faAlignJustify = {\n prefix: 'fas',\n iconName: 'align-justify',\n icon: [448, 512, [], \"f039\", \"M432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faAlignLeft = {\n prefix: 'fas',\n iconName: 'align-left',\n icon: [448, 512, [], \"f036\", \"M12.83 352h262.34A12.82 12.82 0 0 0 288 339.17v-38.34A12.82 12.82 0 0 0 275.17 288H12.83A12.82 12.82 0 0 0 0 300.83v38.34A12.82 12.82 0 0 0 12.83 352zm0-256h262.34A12.82 12.82 0 0 0 288 83.17V44.83A12.82 12.82 0 0 0 275.17 32H12.83A12.82 12.82 0 0 0 0 44.83v38.34A12.82 12.82 0 0 0 12.83 96zM432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faAlignRight = {\n prefix: 'fas',\n iconName: 'align-right',\n icon: [448, 512, [], \"f038\", \"M16 224h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm416 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-384H172.83A12.82 12.82 0 0 0 160 44.83v38.34A12.82 12.82 0 0 0 172.83 96h262.34A12.82 12.82 0 0 0 448 83.17V44.83A12.82 12.82 0 0 0 435.17 32zm0 256H172.83A12.82 12.82 0 0 0 160 300.83v38.34A12.82 12.82 0 0 0 172.83 352h262.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288z\"]\n};\nvar faAllergies = {\n prefix: 'fas',\n iconName: 'allergies',\n icon: [448, 512, [], \"f461\", \"M416 112c-17.6 0-32 14.4-32 32v72c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32s-32 14.4-32 32v152c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V32c0-17.6-14.4-32-32-32s-32 14.4-32 32v184c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32S96 46.4 96 64v241l-23.6-32.5c-13-17.9-38-21.8-55.9-8.8s-21.8 38-8.8 55.9l125.6 172.7c9 12.4 23.5 19.8 38.8 19.8h197.6c22.3 0 41.6-15.3 46.7-37l26.5-112.7c3.2-13.7 4.9-28.3 5.1-42.3V144c0-17.6-14.4-32-32-32zM176 416c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 32c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32-128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faAmbulance = {\n prefix: 'fas',\n iconName: 'ambulance',\n icon: [640, 512, [], \"f0f9\", \"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144-248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm176 248c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"]\n};\nvar faAmericanSignLanguageInterpreting = {\n prefix: 'fas',\n iconName: 'american-sign-language-interpreting',\n icon: [640, 512, [], \"f2a3\", \"M290.547 189.039c-20.295-10.149-44.147-11.199-64.739-3.89 42.606 0 71.208 20.475 85.578 50.576 8.576 17.899-5.148 38.071-23.617 38.071 18.429 0 32.211 20.136 23.617 38.071-14.725 30.846-46.123 50.854-80.298 50.854-.557 0-94.471-8.615-94.471-8.615l-66.406 33.347c-9.384 4.693-19.815.379-23.895-7.781L1.86 290.747c-4.167-8.615-1.111-18.897 6.946-23.621l58.072-33.069L108 159.861c6.39-57.245 34.731-109.767 79.743-146.726 11.391-9.448 28.341-7.781 37.51 3.613 9.446 11.394 7.78 28.067-3.612 37.516-12.503 10.559-23.618 22.509-32.509 35.57 21.672-14.729 46.679-24.732 74.186-28.067 14.725-1.945 28.063 8.336 29.73 23.065 1.945 14.728-8.336 28.067-23.062 29.734-16.116 1.945-31.12 7.503-44.178 15.284 26.114-5.713 58.712-3.138 88.079 11.115 13.336 6.669 18.893 22.509 12.224 35.848-6.389 13.06-22.504 18.617-35.564 12.226zm-27.229 69.472c-6.112-12.505-18.338-20.286-32.231-20.286a35.46 35.46 0 0 0-35.565 35.57c0 21.428 17.808 35.57 35.565 35.57 13.893 0 26.119-7.781 32.231-20.286 4.446-9.449 13.614-15.006 23.339-15.284-9.725-.277-18.893-5.835-23.339-15.284zm374.821-37.237c4.168 8.615 1.111 18.897-6.946 23.621l-58.071 33.069L532 352.16c-6.39 57.245-34.731 109.767-79.743 146.726-10.932 9.112-27.799 8.144-37.51-3.613-9.446-11.394-7.78-28.067 3.613-37.516 12.503-10.559 23.617-22.509 32.508-35.57-21.672 14.729-46.679 24.732-74.186 28.067-10.021 2.506-27.552-5.643-29.73-23.065-1.945-14.728 8.336-28.067 23.062-29.734 16.116-1.946 31.12-7.503 44.178-15.284-26.114 5.713-58.712 3.138-88.079-11.115-13.336-6.669-18.893-22.509-12.224-35.848 6.389-13.061 22.505-18.619 35.565-12.227 20.295 10.149 44.147 11.199 64.739 3.89-42.606 0-71.208-20.475-85.578-50.576-8.576-17.899 5.148-38.071 23.617-38.071-18.429 0-32.211-20.136-23.617-38.071 14.033-29.396 44.039-50.887 81.966-50.854l92.803 8.615 66.406-33.347c9.408-4.704 19.828-.354 23.894 7.781l44.455 88.926zm-229.227-18.618c-13.893 0-26.119 7.781-32.231 20.286-4.446 9.449-13.614 15.006-23.339 15.284 9.725.278 18.893 5.836 23.339 15.284 6.112 12.505 18.338 20.286 32.231 20.286a35.46 35.46 0 0 0 35.565-35.57c0-21.429-17.808-35.57-35.565-35.57z\"]\n};\nvar faAnchor = {\n prefix: 'fas',\n iconName: 'anchor',\n icon: [576, 512, [], \"f13d\", \"M12.971 352h32.394C67.172 454.735 181.944 512 288 512c106.229 0 220.853-57.38 242.635-160h32.394c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h35.146c-20.29 54.317-84.963 86.588-144.117 94.015V256h52c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-52v-5.47c37.281-13.178 63.995-48.725 64-90.518C384.005 43.772 341.605.738 289.37.01 235.723-.739 192 42.525 192 96c0 41.798 26.716 77.35 64 90.53V192h-52c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v190.015c-58.936-7.399-123.82-39.679-144.117-94.015h35.146c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0L4.485 331.515C-3.074 339.074 2.28 352 12.971 352zM288 64c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32z\"]\n};\nvar faAngleDoubleDown = {\n prefix: 'fas',\n iconName: 'angle-double-down',\n icon: [320, 512, [], \"f103\", \"M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z\"]\n};\nvar faAngleDoubleLeft = {\n prefix: 'fas',\n iconName: 'angle-double-left',\n icon: [448, 512, [], \"f100\", \"M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z\"]\n};\nvar faAngleDoubleRight = {\n prefix: 'fas',\n iconName: 'angle-double-right',\n icon: [448, 512, [], \"f101\", \"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z\"]\n};\nvar faAngleDoubleUp = {\n prefix: 'fas',\n iconName: 'angle-double-up',\n icon: [320, 512, [], \"f102\", \"M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z\"]\n};\nvar faAngleDown = {\n prefix: 'fas',\n iconName: 'angle-down',\n icon: [320, 512, [], \"f107\", \"M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z\"]\n};\nvar faAngleLeft = {\n prefix: 'fas',\n iconName: 'angle-left',\n icon: [256, 512, [], \"f104\", \"M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z\"]\n};\nvar faAngleRight = {\n prefix: 'fas',\n iconName: 'angle-right',\n icon: [256, 512, [], \"f105\", \"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"]\n};\nvar faAngleUp = {\n prefix: 'fas',\n iconName: 'angle-up',\n icon: [320, 512, [], \"f106\", \"M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z\"]\n};\nvar faAngry = {\n prefix: 'fas',\n iconName: 'angry',\n icon: [496, 512, [], \"f556\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 240c0-9.3 4.1-17.5 10.5-23.4l-31-9.3c-8.5-2.5-13.3-11.5-10.7-19.9 2.5-8.5 11.4-13.2 19.9-10.7l80 24c8.5 2.5 13.3 11.5 10.7 19.9-2.1 6.9-8.4 11.4-15.3 11.4-.5 0-1.1-.2-1.7-.2.7 2.7 1.7 5.3 1.7 8.2 0 17.7-14.3 32-32 32S136 257.7 136 240zm168 154.2c-27.8-33.4-84.2-33.4-112.1 0-13.5 16.3-38.2-4.2-24.6-20.5 20-24 49.4-37.8 80.6-37.8s60.6 13.8 80.6 37.8c13.8 16.5-11.1 36.6-24.5 20.5zm76.6-186.9l-31 9.3c6.3 5.8 10.5 14.1 10.5 23.4 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-2.9.9-5.6 1.7-8.2-.6.1-1.1.2-1.7.2-6.9 0-13.2-4.5-15.3-11.4-2.5-8.5 2.3-17.4 10.7-19.9l80-24c8.4-2.5 17.4 2.3 19.9 10.7 2.5 8.5-2.3 17.4-10.8 19.9z\"]\n};\nvar faAnkh = {\n prefix: 'fas',\n iconName: 'ankh',\n icon: [320, 512, [], \"f644\", \"M296 256h-44.62C272.46 222.01 288 181.65 288 144 288 55.63 230.69 0 160 0S32 55.63 32 144c0 37.65 15.54 78.01 36.62 112H24c-13.25 0-24 10.74-24 24v32c0 13.25 10.75 24 24 24h96v152c0 13.25 10.75 24 24 24h32c13.25 0 24-10.75 24-24V336h96c13.25 0 24-10.75 24-24v-32c0-13.26-10.75-24-24-24zM160 80c29.61 0 48 24.52 48 64 0 34.66-27.14 78.14-48 100.87-20.86-22.72-48-66.21-48-100.87 0-39.48 18.39-64 48-64z\"]\n};\nvar faAppleAlt = {\n prefix: 'fas',\n iconName: 'apple-alt',\n icon: [448, 512, [], \"f5d1\", \"M350.85 129c25.97 4.67 47.27 18.67 63.92 42 14.65 20.67 24.64 46.67 29.96 78 4.67 28.67 4.32 57.33-1 86-7.99 47.33-23.97 87-47.94 119-28.64 38.67-64.59 58-107.87 58-10.66 0-22.3-3.33-34.96-10-8.66-5.33-18.31-8-28.97-8s-20.3 2.67-28.97 8c-12.66 6.67-24.3 10-34.96 10-43.28 0-79.23-19.33-107.87-58-23.97-32-39.95-71.67-47.94-119-5.32-28.67-5.67-57.33-1-86 5.32-31.33 15.31-57.33 29.96-78 16.65-23.33 37.95-37.33 63.92-42 15.98-2.67 37.95-.33 65.92 7 23.97 6.67 44.28 14.67 60.93 24 16.65-9.33 36.96-17.33 60.93-24 27.98-7.33 49.96-9.67 65.94-7zm-54.94-41c-9.32 8.67-21.65 15-36.96 19-10.66 3.33-22.3 5-34.96 5l-14.98-1c-1.33-9.33-1.33-20 0-32 2.67-24 10.32-42.33 22.97-55 9.32-8.67 21.65-15 36.96-19 10.66-3.33 22.3-5 34.96-5l14.98 1 1 15c0 12.67-1.67 24.33-4.99 35-3.99 15.33-10.31 27.67-18.98 37z\"]\n};\nvar faArchive = {\n prefix: 'fas',\n iconName: 'archive',\n icon: [512, 512, [], \"f187\", \"M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z\"]\n};\nvar faArchway = {\n prefix: 'fas',\n iconName: 'archway',\n icon: [576, 512, [], \"f557\", \"M560 448h-16V96H32v352H16.02c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16H176c8.84 0 16-7.16 16-16V320c0-53.02 42.98-96 96-96s96 42.98 96 96l.02 160v16c0 8.84 7.16 16 16 16H560c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm0-448H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h544c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z\"]\n};\nvar faArrowAltCircleDown = {\n prefix: 'fas',\n iconName: 'arrow-alt-circle-down',\n icon: [512, 512, [], \"f358\", \"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM212 140v116h-70.9c-10.7 0-16.1 13-8.5 20.5l114.9 114.3c4.7 4.7 12.2 4.7 16.9 0l114.9-114.3c7.6-7.6 2.2-20.5-8.5-20.5H300V140c0-6.6-5.4-12-12-12h-64c-6.6 0-12 5.4-12 12z\"]\n};\nvar faArrowAltCircleLeft = {\n prefix: 'fas',\n iconName: 'arrow-alt-circle-left',\n icon: [512, 512, [], \"f359\", \"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm116-292H256v-70.9c0-10.7-13-16.1-20.5-8.5L121.2 247.5c-4.7 4.7-4.7 12.2 0 16.9l114.3 114.9c7.6 7.6 20.5 2.2 20.5-8.5V300h116c6.6 0 12-5.4 12-12v-64c0-6.6-5.4-12-12-12z\"]\n};\nvar faArrowAltCircleRight = {\n prefix: 'fas',\n iconName: 'arrow-alt-circle-right',\n icon: [512, 512, [], \"f35a\", \"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zM140 300h116v70.9c0 10.7 13 16.1 20.5 8.5l114.3-114.9c4.7-4.7 4.7-12.2 0-16.9l-114.3-115c-7.6-7.6-20.5-2.2-20.5 8.5V212H140c-6.6 0-12 5.4-12 12v64c0 6.6 5.4 12 12 12z\"]\n};\nvar faArrowAltCircleUp = {\n prefix: 'fas',\n iconName: 'arrow-alt-circle-up',\n icon: [512, 512, [], \"f35b\", \"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm292 116V256h70.9c10.7 0 16.1-13 8.5-20.5L264.5 121.2c-4.7-4.7-12.2-4.7-16.9 0l-115 114.3c-7.6 7.6-2.2 20.5 8.5 20.5H212v116c0 6.6 5.4 12 12 12h64c6.6 0 12-5.4 12-12z\"]\n};\nvar faArrowCircleDown = {\n prefix: 'fas',\n iconName: 'arrow-circle-down',\n icon: [512, 512, [], \"f0ab\", \"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-143.6-28.9L288 302.6V120c0-13.3-10.7-24-24-24h-16c-13.3 0-24 10.7-24 24v182.6l-72.4-75.5c-9.3-9.7-24.8-9.9-34.3-.4l-10.9 11c-9.4 9.4-9.4 24.6 0 33.9L239 404.3c9.4 9.4 24.6 9.4 33.9 0l132.7-132.7c9.4-9.4 9.4-24.6 0-33.9l-10.9-11c-9.5-9.5-25-9.3-34.3.4z\"]\n};\nvar faArrowCircleLeft = {\n prefix: 'fas',\n iconName: 'arrow-circle-left',\n icon: [512, 512, [], \"f0a8\", \"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm28.9-143.6L209.4 288H392c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H209.4l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0L107.7 239c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3z\"]\n};\nvar faArrowCircleRight = {\n prefix: 'fas',\n iconName: 'arrow-circle-right',\n icon: [512, 512, [], \"f0a9\", \"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z\"]\n};\nvar faArrowCircleUp = {\n prefix: 'fas',\n iconName: 'arrow-circle-up',\n icon: [512, 512, [], \"f0aa\", \"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm143.6 28.9l72.4-75.5V392c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V209.4l72.4 75.5c9.3 9.7 24.8 9.9 34.3.4l10.9-11c9.4-9.4 9.4-24.6 0-33.9L273 107.7c-9.4-9.4-24.6-9.4-33.9 0L106.3 240.4c-9.4 9.4-9.4 24.6 0 33.9l10.9 11c9.6 9.5 25.1 9.3 34.4-.4z\"]\n};\nvar faArrowDown = {\n prefix: 'fas',\n iconName: 'arrow-down',\n icon: [448, 512, [], \"f063\", \"M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z\"]\n};\nvar faArrowLeft = {\n prefix: 'fas',\n iconName: 'arrow-left',\n icon: [448, 512, [], \"f060\", \"M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z\"]\n};\nvar faArrowRight = {\n prefix: 'fas',\n iconName: 'arrow-right',\n icon: [448, 512, [], \"f061\", \"M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z\"]\n};\nvar faArrowUp = {\n prefix: 'fas',\n iconName: 'arrow-up',\n icon: [448, 512, [], \"f062\", \"M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z\"]\n};\nvar faArrowsAlt = {\n prefix: 'fas',\n iconName: 'arrows-alt',\n icon: [512, 512, [], \"f0b2\", \"M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z\"]\n};\nvar faArrowsAltH = {\n prefix: 'fas',\n iconName: 'arrows-alt-h',\n icon: [512, 512, [], \"f337\", \"M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z\"]\n};\nvar faArrowsAltV = {\n prefix: 'fas',\n iconName: 'arrows-alt-v',\n icon: [256, 512, [], \"f338\", \"M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z\"]\n};\nvar faAssistiveListeningSystems = {\n prefix: 'fas',\n iconName: 'assistive-listening-systems',\n icon: [512, 512, [], \"f2a2\", \"M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm-80 236c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM32 448c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm480-187.993c0-1.518-.012-3.025-.045-4.531C510.076 140.525 436.157 38.47 327.994 1.511c-14.633-4.998-30.549 2.809-35.55 17.442-5 14.633 2.81 30.549 17.442 35.55 85.906 29.354 144.61 110.513 146.077 201.953l.003.188c.026 1.118.033 2.236.033 3.363 0 15.464 12.536 28 28 28s28.001-12.536 28.001-28zM152.971 439.029l-80-80L39.03 392.97l80 80 33.941-33.941z\"]\n};\nvar faAsterisk = {\n prefix: 'fas',\n iconName: 'asterisk',\n icon: [512, 512, [], \"f069\", \"M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z\"]\n};\nvar faAt = {\n prefix: 'fas',\n iconName: 'at',\n icon: [512, 512, [], \"f1fa\", \"M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z\"]\n};\nvar faAtlas = {\n prefix: 'fas',\n iconName: 'atlas',\n icon: [448, 512, [], \"f558\", \"M318.38 208h-39.09c-1.49 27.03-6.54 51.35-14.21 70.41 27.71-13.24 48.02-39.19 53.3-70.41zm0-32c-5.29-31.22-25.59-57.17-53.3-70.41 7.68 19.06 12.72 43.38 14.21 70.41h39.09zM224 97.31c-7.69 7.45-20.77 34.42-23.43 78.69h46.87c-2.67-44.26-15.75-71.24-23.44-78.69zm-41.08 8.28c-27.71 13.24-48.02 39.19-53.3 70.41h39.09c1.49-27.03 6.53-51.35 14.21-70.41zm0 172.82c-7.68-19.06-12.72-43.38-14.21-70.41h-39.09c5.28 31.22 25.59 57.17 53.3 70.41zM247.43 208h-46.87c2.66 44.26 15.74 71.24 23.43 78.69 7.7-7.45 20.78-34.43 23.44-78.69zM448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM224 64c70.69 0 128 57.31 128 128s-57.31 128-128 128S96 262.69 96 192 153.31 64 224 64zm160 384H96c-19.2 0-32-12.8-32-32s16-32 32-32h288v64z\"]\n};\nvar faAtom = {\n prefix: 'fas',\n iconName: 'atom',\n icon: [448, 512, [], \"f5d2\", \"M223.99908,224a32,32,0,1,0,32.00782,32A32.06431,32.06431,0,0,0,223.99908,224Zm214.172-96c-10.877-19.5-40.50979-50.75-116.27544-41.875C300.39168,34.875,267.63386,0,223.99908,0s-76.39066,34.875-97.89653,86.125C50.3369,77.375,20.706,108.5,9.82907,128-6.54984,157.375-5.17484,201.125,34.958,256-5.17484,310.875-6.54984,354.625,9.82907,384c29.13087,52.375,101.64652,43.625,116.27348,41.875C147.60842,477.125,180.36429,512,223.99908,512s76.3926-34.875,97.89652-86.125c14.62891,1.75,87.14456,10.5,116.27544-41.875C454.55,354.625,453.175,310.875,413.04017,256,453.175,201.125,454.55,157.375,438.171,128ZM63.33886,352c-4-7.25-.125-24.75,15.00391-48.25,6.87695,6.5,14.12891,12.875,21.88087,19.125,1.625,13.75,4,27.125,6.75,40.125C82.34472,363.875,67.09081,358.625,63.33886,352Zm36.88478-162.875c-7.752,6.25-15.00392,12.625-21.88087,19.125-15.12891-23.5-19.00392-41-15.00391-48.25,3.377-6.125,16.37891-11.5,37.88478-11.5,1.75,0,3.875.375,5.75.375C104.09864,162.25,101.84864,175.625,100.22364,189.125ZM223.99908,64c9.50195,0,22.25586,13.5,33.88282,37.25-11.252,3.75-22.50391,8-33.88282,12.875-11.377-4.875-22.62892-9.125-33.88283-12.875C201.74516,77.5,214.49712,64,223.99908,64Zm0,384c-9.502,0-22.25392-13.5-33.88283-37.25,11.25391-3.75,22.50587-8,33.88283-12.875C235.378,402.75,246.62994,407,257.8819,410.75,246.25494,434.5,233.501,448,223.99908,448Zm0-112a80,80,0,1,1,80-80A80.00023,80.00023,0,0,1,223.99908,336ZM384.6593,352c-3.625,6.625-19.00392,11.875-43.63479,11,2.752-13,5.127-26.375,6.752-40.125,7.75195-6.25,15.00391-12.625,21.87891-19.125C384.7843,327.25,388.6593,344.75,384.6593,352ZM369.65538,208.25c-6.875-6.5-14.127-12.875-21.87891-19.125-1.625-13.5-3.875-26.875-6.752-40.25,1.875,0,4.002-.375,5.752-.375,21.50391,0,34.50782,5.375,37.88283,11.5C388.6593,167.25,384.7843,184.75,369.65538,208.25Z\"]\n};\nvar faAudioDescription = {\n prefix: 'fas',\n iconName: 'audio-description',\n icon: [512, 512, [], \"f29e\", \"M162.925 238.709l8.822 30.655h-25.606l9.041-30.652c1.277-4.421 2.651-9.994 3.872-15.245 1.22 5.251 2.594 10.823 3.871 15.242zm166.474-32.099h-14.523v98.781h14.523c29.776 0 46.175-17.678 46.175-49.776 0-32.239-17.49-49.005-46.175-49.005zM512 112v288c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48zM245.459 336.139l-57.097-168A12.001 12.001 0 0 0 177 160h-35.894a12.001 12.001 0 0 0-11.362 8.139l-57.097 168C70.003 343.922 75.789 352 84.009 352h29.133a12 12 0 0 0 11.535-8.693l8.574-29.906h51.367l8.793 29.977A12 12 0 0 0 204.926 352h29.172c8.22 0 14.006-8.078 11.361-15.861zm184.701-80.525c0-58.977-37.919-95.614-98.96-95.614h-57.366c-6.627 0-12 5.373-12 12v168c0 6.627 5.373 12 12 12H331.2c61.041 0 98.96-36.933 98.96-96.386z\"]\n};\nvar faAward = {\n prefix: 'fas',\n iconName: 'award',\n icon: [384, 512, [], \"f559\", \"M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z\"]\n};\nvar faBaby = {\n prefix: 'fas',\n iconName: 'baby',\n icon: [384, 512, [], \"f77c\", \"M192 160c44.2 0 80-35.8 80-80S236.2 0 192 0s-80 35.8-80 80 35.8 80 80 80zm-53.4 248.8l25.6-32-61.5-51.2L56.8 383c-11.4 14.2-11.7 34.4-.8 49l48 64c7.9 10.5 19.9 16 32 16 8.3 0 16.8-2.6 24-8 17.7-13.2 21.2-38.3 8-56l-29.4-39.2zm142.7-83.2l-61.5 51.2 25.6 32L216 448c-13.2 17.7-9.7 42.8 8 56 7.2 5.4 15.6 8 24 8 12.2 0 24.2-5.5 32-16l48-64c10.9-14.6 10.6-34.8-.8-49l-45.9-57.4zM376.7 145c-12.7-18.1-37.6-22.4-55.7-9.8l-40.6 28.5c-52.7 37-124.2 37-176.8 0L63 135.3C44.9 122.6 20 127 7.3 145-5.4 163.1-1 188 17 200.7l40.6 28.5c17 11.9 35.4 20.9 54.4 27.9V288h160v-30.8c19-7 37.4-16 54.4-27.9l40.6-28.5c18.1-12.8 22.4-37.7 9.7-55.8z\"]\n};\nvar faBabyCarriage = {\n prefix: 'fas',\n iconName: 'baby-carriage',\n icon: [512, 512, [], \"f77d\", \"M144.8 17c-11.3-17.8-37.2-22.8-54-9.4C35.3 51.9 0 118 0 192h256L144.8 17zM496 96h-48c-35.3 0-64 28.7-64 64v64H0c0 50.6 23 96.4 60.3 130.7C25.7 363.6 0 394.7 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-8.9-1.8-17.2-4.4-25.2 21.6 5.9 44.6 9.2 68.4 9.2s46.9-3.3 68.4-9.2c-2.7 8-4.4 16.3-4.4 25.2 0 44.2 35.8 80 80 80s80-35.8 80-80c0-37.3-25.7-68.4-60.3-77.3C425 320.4 448 274.6 448 224v-64h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM80 464c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm320-32c0 17.6-14.4 32-32 32s-32-14.4-32-32 14.4-32 32-32 32 14.4 32 32z\"]\n};\nvar faBackspace = {\n prefix: 'fas',\n iconName: 'backspace',\n icon: [640, 512, [], \"f55a\", \"M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z\"]\n};\nvar faBackward = {\n prefix: 'fas',\n iconName: 'backward',\n icon: [512, 512, [], \"f04a\", \"M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z\"]\n};\nvar faBacon = {\n prefix: 'fas',\n iconName: 'bacon',\n icon: [576, 512, [], \"f7e5\", \"M218.92 336.39c34.89-34.89 44.2-59.7 54.05-86 10.61-28.29 21.59-57.54 61.37-97.34s69.05-50.77 97.35-61.38c23.88-9 46.64-17.68 76.79-45.37L470.81 8.91a31 31 0 0 0-40.18-2.83c-13.64 10.1-25.15 14.39-41 20.3C247 79.52 209.26 191.29 200.65 214.1c-29.75 78.83-89.55 94.68-98.72 98.09-24.86 9.26-54.73 20.38-91.07 50.36C-3 374-3.63 395 9.07 407.61l35.76 35.51C80 410.52 107 400.15 133 390.39c26.27-9.84 51.06-19.12 85.92-54zm348-232l-35.75-35.51c-35.19 32.63-62.18 43-88.25 52.79-26.26 9.85-51.06 19.16-85.95 54s-44.19 59.69-54 86C292.33 290 281.34 319.22 241.55 359s-69 50.73-97.3 61.32c-23.86 9-46.61 17.66-76.72 45.33l37.68 37.43a31 31 0 0 0 40.18 2.82c13.6-10.06 25.09-14.34 40.94-20.24 142.2-53 180-164.1 188.94-187.69C405 219.18 464.8 203.3 474 199.86c24.87-9.27 54.74-20.4 91.11-50.41 13.89-11.4 14.52-32.45 1.82-45.05z\"]\n};\nvar faBacteria = {\n prefix: 'fas',\n iconName: 'bacteria',\n icon: [640, 512, [], \"e059\", \"M272.35,226.4A17.71,17.71,0,0,0,281.46,203l-4-9.08a121.29,121.29,0,0,1,12.36-3.08A83.34,83.34,0,0,0,323.57,177l10,9a17.76,17.76,0,1,0,23.92-26.27l-9.72-8.76a83.12,83.12,0,0,0,11.65-48.18l11.85-3.51a17.73,17.73,0,1,0-10.15-34l-11.34,3.36a84,84,0,0,0-36.38-35.57l2.84-10.85a17.8,17.8,0,0,0-34.47-8.93l-2.82,10.78a83.25,83.25,0,0,0-16.74,1.1C250.83,27,240,30.22,229.1,33.39l-3.38-9.46a17.8,17.8,0,0,0-33.56,11.89l3.49,9.8a286.74,286.74,0,0,0-43.94,23.57l-6.32-8.43a17.9,17.9,0,0,0-24.94-3.6A17.69,17.69,0,0,0,116.84,82l6.45,8.61a286.59,286.59,0,0,0-34.95,35.33l-8.82-6.42a17.84,17.84,0,0,0-24.89,3.86,17.66,17.66,0,0,0,3.88,24.77l8.88,6.47a286.6,286.6,0,0,0-23,43.91l-10.48-3.59a17.73,17.73,0,1,0-11.59,33.52L32.67,232c-2.79,10-5.79,19.84-7.52,30.22a83.16,83.16,0,0,0-.82,19l-11.58,3.43a17.73,17.73,0,1,0,10.13,34l11.27-3.33a83.51,83.51,0,0,0,36.39,35.43l-2.88,11.06a17.81,17.81,0,0,0,34.48,8.92l2.87-11c1,0,2.07.26,3.1.26a83.39,83.39,0,0,0,45.65-13.88l8.59,8.8a17.77,17.77,0,0,0,25.56-24.7l-9.14-9.37a83.41,83.41,0,0,0,12.08-31.05,119.08,119.08,0,0,1,3.87-15.53l9,4.22a17.74,17.74,0,1,0,15.15-32.09l-8.8-4.11c.67-1,1.2-2.08,1.9-3.05a119.89,119.89,0,0,1,7.87-9.41,121.73,121.73,0,0,1,11.65-11.4,119.49,119.49,0,0,1,9.94-7.82c1.12-.77,2.32-1.42,3.47-2.15l3.92,8.85a17.86,17.86,0,0,0,16.32,10.58A18.14,18.14,0,0,0,272.35,226.4ZM128,256a32,32,0,1,1,32-32A32,32,0,0,1,128,256Zm80-96a16,16,0,1,1,16-16A16,16,0,0,1,208,160Zm431.26,45.3a17.79,17.79,0,0,0-17.06-12.69,17.55,17.55,0,0,0-5.08.74l-11.27,3.33a83.61,83.61,0,0,0-36.39-35.43l2.88-11.06a17.81,17.81,0,0,0-34.48-8.91l-2.87,11c-1,0-2.07-.26-3.1-.26a83.32,83.32,0,0,0-45.65,13.89l-8.59-8.81a17.77,17.77,0,0,0-25.56,24.7l9.14,9.37a83.28,83.28,0,0,0-12.08,31.06,119.34,119.34,0,0,1-3.87,15.52l-9-4.22a17.74,17.74,0,1,0-15.15,32.09l8.8,4.11c-.67,1-1.2,2.08-1.89,3.05a117.71,117.71,0,0,1-7.94,9.47,119,119,0,0,1-11.57,11.33,121.59,121.59,0,0,1-10,7.83c-1.12.77-2.32,1.42-3.47,2.15l-3.92-8.85a17.86,17.86,0,0,0-16.32-10.58,18.14,18.14,0,0,0-7.18,1.5A17.71,17.71,0,0,0,358.54,309l4,9.08a118.71,118.71,0,0,1-12.36,3.08,83.34,83.34,0,0,0-33.77,13.9l-10-9a17.77,17.77,0,1,0-23.92,26.28l9.72,8.75a83.12,83.12,0,0,0-11.65,48.18l-11.86,3.51a17.73,17.73,0,1,0,10.16,34l11.34-3.36A84,84,0,0,0,326.61,479l-2.84,10.85a17.8,17.8,0,0,0,34.47,8.93L361.06,488a83.3,83.3,0,0,0,16.74-1.1c11.37-1.89,22.24-5.07,33.1-8.24l3.38,9.46a17.8,17.8,0,0,0,33.56-11.89l-3.49-9.79a287.66,287.66,0,0,0,43.94-23.58l6.32,8.43a17.88,17.88,0,0,0,24.93,3.6A17.67,17.67,0,0,0,523.16,430l-6.45-8.61a287.37,287.37,0,0,0,34.95-35.34l8.82,6.42a17.76,17.76,0,1,0,21-28.63l-8.88-6.46a287.17,287.17,0,0,0,23-43.92l10.48,3.59a17.73,17.73,0,1,0,11.59-33.52L607.33,280c2.79-10,5.79-19.84,7.52-30.21a83.27,83.27,0,0,0,.82-19.05l11.58-3.43A17.7,17.7,0,0,0,639.26,205.3ZM416,416a32,32,0,1,1,32-32A32,32,0,0,1,416,416Z\"]\n};\nvar faBacterium = {\n prefix: 'fas',\n iconName: 'bacterium',\n icon: [512, 512, [], \"e05a\", \"M511,102.93A23.76,23.76,0,0,0,481.47,87l-15.12,4.48a111.85,111.85,0,0,0-48.5-47.42l3.79-14.47a23.74,23.74,0,0,0-46-11.91l-3.76,14.37a111.94,111.94,0,0,0-22.33,1.47,386.74,386.74,0,0,0-44.33,10.41l-4.3-12a23.74,23.74,0,0,0-44.75,15.85l4.3,12.05a383.4,383.4,0,0,0-58.69,31.83l-8-10.63a23.85,23.85,0,0,0-33.24-4.8,23.57,23.57,0,0,0-4.83,33.09l8,10.63a386.14,386.14,0,0,0-46.7,47.44l-11-8a23.68,23.68,0,1,0-28,38.17l11.09,8.06a383.45,383.45,0,0,0-30.92,58.75l-12.93-4.43a23.65,23.65,0,1,0-15.47,44.69l13,4.48a385.81,385.81,0,0,0-9.3,40.53A111.58,111.58,0,0,0,32.44,375L17,379.56a23.64,23.64,0,0,0,13.51,45.31l15-4.44a111.49,111.49,0,0,0,48.53,47.24l-3.85,14.75a23.66,23.66,0,0,0,17,28.83,24.7,24.7,0,0,0,6,.75,23.73,23.73,0,0,0,23-17.7L140,479.67c1.37.05,2.77.35,4.13.35A111.22,111.22,0,0,0,205,461.5l11.45,11.74a23.7,23.7,0,0,0,34.08-32.93l-12.19-12.5a111,111,0,0,0,16.11-41.4,158.69,158.69,0,0,1,5.16-20.71l12,5.64a23.66,23.66,0,1,0,20.19-42.79l-11.72-5.49c.89-1.32,1.59-2.77,2.52-4.06a157.86,157.86,0,0,1,10.46-12.49,159.5,159.5,0,0,1,15.59-15.28,162.18,162.18,0,0,1,13.23-10.4c1.5-1,3.1-1.89,4.63-2.87l5.23,11.8a23.74,23.74,0,0,0,43.48-19.08l-5.36-12.11a158.87,158.87,0,0,1,16.49-4.1,111,111,0,0,0,45-18.54l13.33,12a23.69,23.69,0,1,0,31.88-35l-12.94-11.67A110.83,110.83,0,0,0,479.21,137L495,132.32A23.61,23.61,0,0,0,511,102.93ZM160,368a48,48,0,1,1,48-48A48,48,0,0,1,160,368Zm80-136a24,24,0,1,1,24-24A24,24,0,0,1,240,232Z\"]\n};\nvar faBahai = {\n prefix: 'fas',\n iconName: 'bahai',\n icon: [512, 512, [], \"f666\", \"M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z\"]\n};\nvar faBalanceScale = {\n prefix: 'fas',\n iconName: 'balance-scale',\n icon: [640, 512, [], \"f24e\", \"M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faBalanceScaleLeft = {\n prefix: 'fas',\n iconName: 'balance-scale-left',\n icon: [640, 512, [], \"f515\", \"M528 448H352V153.25c20.42-8.94 36.1-26.22 43.38-47.47l132-44.26c8.38-2.81 12.89-11.88 10.08-20.26l-10.17-30.34C524.48 2.54 515.41-1.97 507.03.84L389.11 40.37C375.3 16.36 349.69 0 320 0c-44.18 0-80 35.82-80 80 0 3.43.59 6.71 1.01 10.03l-128.39 43.05c-8.38 2.81-12.89 11.88-10.08 20.26l10.17 30.34c2.81 8.38 11.88 12.89 20.26 10.08l142.05-47.63c4.07 2.77 8.43 5.12 12.99 7.12V496c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16v-32c-.01-8.84-7.17-16-16.01-16zm111.98-144c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 288l72-144 72 144H440zm-269.07-37.51c-17.65-35.29-68.19-35.36-85.87 0C-2.06 424.75.02 416.33.02 432H0c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-16.18 1.34-8.73-85.05-181.51zM56 416l72-144 72 144H56z\"]\n};\nvar faBalanceScaleRight = {\n prefix: 'fas',\n iconName: 'balance-scale-right',\n icon: [640, 512, [], \"f516\", \"M96 464v32c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16V153.25c4.56-2 8.92-4.35 12.99-7.12l142.05 47.63c8.38 2.81 17.45-1.71 20.26-10.08l10.17-30.34c2.81-8.38-1.71-17.45-10.08-20.26l-128.4-43.05c.42-3.32 1.01-6.6 1.01-10.03 0-44.18-35.82-80-80-80-29.69 0-55.3 16.36-69.11 40.37L132.96.83c-8.38-2.81-17.45 1.71-20.26 10.08l-10.17 30.34c-2.81 8.38 1.71 17.45 10.08 20.26l132 44.26c7.28 21.25 22.96 38.54 43.38 47.47V448H112c-8.84 0-16 7.16-16 16zM0 304c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0C-1.32 295.27.02 287.82.02 304H0zm56-16l72-144 72 144H56zm328.02 144H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0-86.38 172.78-85.04 165.33-85.04 181.51zM440 416l72-144 72 144H440z\"]\n};\nvar faBan = {\n prefix: 'fas',\n iconName: 'ban',\n icon: [512, 512, [], \"f05e\", \"M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z\"]\n};\nvar faBandAid = {\n prefix: 'fas',\n iconName: 'band-aid',\n icon: [640, 512, [], \"f462\", \"M0 160v192c0 35.3 28.7 64 64 64h96V96H64c-35.3 0-64 28.7-64 64zm576-64h-96v320h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64zM192 416h256V96H192v320zm176-232c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z\"]\n};\nvar faBarcode = {\n prefix: 'fas',\n iconName: 'barcode',\n icon: [512, 512, [], \"f02a\", \"M0 448V64h18v384H0zm26.857-.273V64H36v383.727h-9.143zm27.143 0V64h8.857v383.727H54zm44.857 0V64h8.857v383.727h-8.857zm36 0V64h17.714v383.727h-17.714zm44.857 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm35.715 0V64h18v383.727h-18zm44.857 0V64h18v383.727h-18zm35.999 0V64h18.001v383.727h-18.001zm36.001 0V64h18.001v383.727h-18.001zm26.857 0V64h18v383.727h-18zm45.143 0V64h26.857v383.727h-26.857zm35.714 0V64h9.143v383.727H476zm18 .273V64h18v384h-18z\"]\n};\nvar faBars = {\n prefix: 'fas',\n iconName: 'bars',\n icon: [448, 512, [], \"f0c9\", \"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"]\n};\nvar faBaseballBall = {\n prefix: 'fas',\n iconName: 'baseball-ball',\n icon: [496, 512, [], \"f433\", \"M368.5 363.9l28.8-13.9c11.1 22.9 26 43.2 44.1 60.9 34-42.5 54.5-96.3 54.5-154.9 0-58.5-20.4-112.2-54.2-154.6-17.8 17.3-32.6 37.1-43.6 59.5l-28.7-14.1c12.8-26 30-49 50.8-69C375.6 34.7 315 8 248 8 181.1 8 120.5 34.6 75.9 77.7c20.7 19.9 37.9 42.9 50.7 68.8l-28.7 14.1c-11-22.3-25.7-42.1-43.5-59.4C20.4 143.7 0 197.4 0 256c0 58.6 20.4 112.3 54.4 154.7 18.2-17.7 33.2-38 44.3-61l28.8 13.9c-12.9 26.7-30.3 50.3-51.5 70.7 44.5 43.1 105.1 69.7 172 69.7 66.8 0 127.3-26.5 171.9-69.5-21.1-20.4-38.5-43.9-51.4-70.6zm-228.3-32l-30.5-9.8c14.9-46.4 12.7-93.8-.6-134l30.4-10c15 45.6 18 99.9.7 153.8zm216.3-153.4l30.4 10c-13.2 40.1-15.5 87.5-.6 134l-30.5 9.8c-17.3-54-14.3-108.3.7-153.8z\"]\n};\nvar faBasketballBall = {\n prefix: 'fas',\n iconName: 'basketball-ball',\n icon: [496, 512, [], \"f434\", \"M212.3 10.3c-43.8 6.3-86.2 24.1-122.2 53.8l77.4 77.4c27.8-35.8 43.3-81.2 44.8-131.2zM248 222L405.9 64.1c-42.4-35-93.6-53.5-145.5-56.1-1.2 63.9-21.5 122.3-58.7 167.7L248 222zM56.1 98.1c-29.7 36-47.5 78.4-53.8 122.2 50-1.5 95.5-17 131.2-44.8L56.1 98.1zm272.2 204.2c45.3-37.1 103.7-57.4 167.7-58.7-2.6-51.9-21.1-103.1-56.1-145.5L282 256l46.3 46.3zM248 290L90.1 447.9c42.4 34.9 93.6 53.5 145.5 56.1 1.3-64 21.6-122.4 58.7-167.7L248 290zm191.9 123.9c29.7-36 47.5-78.4 53.8-122.2-50.1 1.6-95.5 17.1-131.2 44.8l77.4 77.4zM167.7 209.7C122.3 246.9 63.9 267.3 0 268.4c2.6 51.9 21.1 103.1 56.1 145.5L214 256l-46.3-46.3zm116 292c43.8-6.3 86.2-24.1 122.2-53.8l-77.4-77.4c-27.7 35.7-43.2 81.2-44.8 131.2z\"]\n};\nvar faBath = {\n prefix: 'fas',\n iconName: 'bath',\n icon: [512, 512, [], \"f2cd\", \"M32,384a95.4,95.4,0,0,0,32,71.09V496a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V480H384v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V455.09A95.4,95.4,0,0,0,480,384V336H32ZM496,256H80V69.25a21.26,21.26,0,0,1,36.28-15l19.27,19.26c-13.13,29.88-7.61,59.11,8.62,79.73l-.17.17A16,16,0,0,0,144,176l11.31,11.31a16,16,0,0,0,22.63,0L283.31,81.94a16,16,0,0,0,0-22.63L272,48a16,16,0,0,0-22.62,0l-.17.17c-20.62-16.23-49.83-21.75-79.73-8.62L150.22,20.28A69.25,69.25,0,0,0,32,69.25V256H16A16,16,0,0,0,0,272v16a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V272A16,16,0,0,0,496,256Z\"]\n};\nvar faBatteryEmpty = {\n prefix: 'fas',\n iconName: 'battery-empty',\n icon: [640, 512, [], \"f244\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z\"]\n};\nvar faBatteryFull = {\n prefix: 'fas',\n iconName: 'battery-full',\n icon: [640, 512, [], \"f240\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-48 96H96v128h416V192z\"]\n};\nvar faBatteryHalf = {\n prefix: 'fas',\n iconName: 'battery-half',\n icon: [640, 512, [], \"f242\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-240 96H96v128h224V192z\"]\n};\nvar faBatteryQuarter = {\n prefix: 'fas',\n iconName: 'battery-quarter',\n icon: [640, 512, [], \"f243\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-336 96H96v128h128V192z\"]\n};\nvar faBatteryThreeQuarters = {\n prefix: 'fas',\n iconName: 'battery-three-quarters',\n icon: [640, 512, [], \"f241\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-144 96H96v128h320V192z\"]\n};\nvar faBed = {\n prefix: 'fas',\n iconName: 'bed',\n icon: [640, 512, [], \"f236\", \"M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z\"]\n};\nvar faBeer = {\n prefix: 'fas',\n iconName: 'beer',\n icon: [448, 512, [], \"f0fc\", \"M368 96h-48V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24v-42.11l80.606-35.977C429.396 365.063 448 336.388 448 304.86V176c0-44.112-35.888-80-80-80zm16 208.86a16.018 16.018 0 0 1-9.479 14.611L320 343.805V160h48c8.822 0 16 7.178 16 16v128.86zM208 384c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16zm-96 0c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16z\"]\n};\nvar faBell = {\n prefix: 'fas',\n iconName: 'bell',\n icon: [448, 512, [], \"f0f3\", \"M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z\"]\n};\nvar faBellSlash = {\n prefix: 'fas',\n iconName: 'bell-slash',\n icon: [640, 512, [], \"f1f6\", \"M633.82 458.1l-90.62-70.05c.19-1.38.8-2.66.8-4.06.05-7.55-2.61-15.27-8.61-21.71-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-40.33 8.38-74.66 31.07-97.59 62.57L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.35 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.42-6.97 4.17-17.02-2.81-22.45zM157.23 251.54c-8.61 67.96-36.41 93.33-52.62 110.75-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h241.92L157.23 251.54zM320 512c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z\"]\n};\nvar faBezierCurve = {\n prefix: 'fas',\n iconName: 'bezier-curve',\n icon: [640, 512, [], \"f55b\", \"M368 32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM208 88h-84.75C113.75 64.56 90.84 48 64 48 28.66 48 0 76.65 0 112s28.66 64 64 64c26.84 0 49.75-16.56 59.25-40h79.73c-55.37 32.52-95.86 87.32-109.54 152h49.4c11.3-41.61 36.77-77.21 71.04-101.56-3.7-8.08-5.88-16.99-5.88-26.44V88zm-48 232H64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zM576 48c-26.84 0-49.75 16.56-59.25 40H432v72c0 9.45-2.19 18.36-5.88 26.44 34.27 24.35 59.74 59.95 71.04 101.56h49.4c-13.68-64.68-54.17-119.48-109.54-152h79.73c9.5 23.44 32.41 40 59.25 40 35.34 0 64-28.65 64-64s-28.66-64-64-64zm0 272h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"]\n};\nvar faBible = {\n prefix: 'fas',\n iconName: 'bible',\n icon: [448, 512, [], \"f647\", \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM144 144c0-8.84 7.16-16 16-16h48V80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v48h48c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-48v112c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V192h-48c-8.84 0-16-7.16-16-16v-32zm236.8 304H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\"]\n};\nvar faBicycle = {\n prefix: 'fas',\n iconName: 'bicycle',\n icon: [640, 512, [], \"f206\", \"M512.509 192.001c-16.373-.064-32.03 2.955-46.436 8.495l-77.68-125.153A24 24 0 0 0 368.001 64h-64c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h50.649l14.896 24H256.002v-16c0-8.837-7.163-16-16-16h-87.459c-13.441 0-24.777 10.999-24.536 24.437.232 13.044 10.876 23.563 23.995 23.563h48.726l-29.417 47.52c-13.433-4.83-27.904-7.483-42.992-7.52C58.094 191.83.412 249.012.002 319.236-.413 390.279 57.055 448 128.002 448c59.642 0 109.758-40.793 123.967-96h52.033a24 24 0 0 0 20.406-11.367L410.37 201.77l14.938 24.067c-25.455 23.448-41.385 57.081-41.307 94.437.145 68.833 57.899 127.051 126.729 127.719 70.606.685 128.181-55.803 129.255-125.996 1.086-70.941-56.526-129.72-127.476-129.996zM186.75 265.772c9.727 10.529 16.673 23.661 19.642 38.228h-43.306l23.664-38.228zM128.002 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c5.869 0 11.586.653 17.099 1.859l-45.505 73.509C89.715 331.327 101.213 352 120.002 352h81.3c-12.37 28.225-40.562 48-73.3 48zm162.63-96h-35.624c-3.96-31.756-19.556-59.894-42.383-80.026L237.371 184h127.547l-74.286 120zm217.057 95.886c-41.036-2.165-74.049-35.692-75.627-76.755-.812-21.121 6.633-40.518 19.335-55.263l44.433 71.586c4.66 7.508 14.524 9.816 22.032 5.156l13.594-8.437c7.508-4.66 9.817-14.524 5.156-22.032l-44.468-71.643a79.901 79.901 0 0 1 19.858-2.497c44.112 0 80 35.888 80 80-.001 45.54-38.252 82.316-84.313 79.885z\"]\n};\nvar faBiking = {\n prefix: 'fas',\n iconName: 'biking',\n icon: [640, 512, [], \"f84a\", \"M400 96a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm-4 121a31.9 31.9 0 0 0 20 7h64a32 32 0 0 0 0-64h-52.78L356 103a31.94 31.94 0 0 0-40.81.68l-112 96a32 32 0 0 0 3.08 50.92L288 305.12V416a32 32 0 0 0 64 0V288a32 32 0 0 0-14.25-26.62l-41.36-27.57 58.25-49.92zm116 39a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64zM128 256a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64z\"]\n};\nvar faBinoculars = {\n prefix: 'fas',\n iconName: 'binoculars',\n icon: [512, 512, [], \"f1e5\", \"M416 48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v48h96V48zM63.91 159.99C61.4 253.84 3.46 274.22 0 404v44c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V288h32V128H95.84c-17.63 0-31.45 14.37-31.93 31.99zm384.18 0c-.48-17.62-14.3-31.99-31.93-31.99H320v160h32v160c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-44c-3.46-129.78-61.4-150.16-63.91-244.01zM176 32h-64c-8.84 0-16 7.16-16 16v48h96V48c0-8.84-7.16-16-16-16zm48 256h64V128h-64v160z\"]\n};\nvar faBiohazard = {\n prefix: 'fas',\n iconName: 'biohazard',\n icon: [576, 512, [], \"f780\", \"M287.9 112c18.6 0 36.2 3.8 52.8 9.6 13.3-10.3 23.6-24.3 29.5-40.7-25.2-10.9-53-17-82.2-17-29.1 0-56.9 6-82.1 16.9 5.9 16.4 16.2 30.4 29.5 40.7 16.5-5.7 34-9.5 52.5-9.5zM163.6 438.7c12-11.8 20.4-26.4 24.5-42.4-32.9-26.4-54.8-65.3-58.9-109.6-8.5-2.8-17.2-4.6-26.4-4.6-7.6 0-15.2 1-22.5 3.1 4.1 62.8 35.8 118 83.3 153.5zm224.2-42.6c4.1 16 12.5 30.7 24.5 42.5 47.4-35.5 79.1-90.7 83-153.5-7.2-2-14.7-3-22.2-3-9.2 0-18 1.9-26.6 4.7-4.1 44.2-26 82.9-58.7 109.3zm113.5-205c-17.6-10.4-36.3-16.6-55.3-19.9 6-17.7 10-36.4 10-56.2 0-41-14.5-80.8-41-112.2-2.5-3-6.6-3.7-10-1.8-3.3 1.9-4.8 6-3.6 9.7 4.5 13.8 6.6 26.3 6.6 38.5 0 67.8-53.8 122.9-120 122.9S168 117 168 49.2c0-12.1 2.2-24.7 6.6-38.5 1.2-3.7-.3-7.8-3.6-9.7-3.4-1.9-7.5-1.2-10 1.8C134.6 34.2 120 74 120 115c0 19.8 3.9 38.5 10 56.2-18.9 3.3-37.7 9.5-55.3 19.9-34.6 20.5-61 53.3-74.3 92.4-1.3 3.7.2 7.7 3.5 9.8 3.3 2 7.5 1.3 10-1.6 9.4-10.8 19-19.1 29.2-25.1 57.3-33.9 130.8-13.7 163.9 45 33.1 58.7 13.4 134-43.9 167.9-10.2 6.1-22 10.4-35.8 13.4-3.7.8-6.4 4.2-6.4 8.1.1 4 2.7 7.3 6.5 8 39.7 7.8 80.6.8 115.2-19.7 18-10.6 32.9-24.5 45.3-40.1 12.4 15.6 27.3 29.5 45.3 40.1 34.6 20.5 75.5 27.5 115.2 19.7 3.8-.7 6.4-4 6.5-8 0-3.9-2.6-7.3-6.4-8.1-13.9-2.9-25.6-7.3-35.8-13.4-57.3-33.9-77-109.2-43.9-167.9s106.6-78.9 163.9-45c10.2 6.1 19.8 14.3 29.2 25.1 2.5 2.9 6.7 3.6 10 1.6s4.8-6.1 3.5-9.8c-13.1-39.1-39.5-72-74.1-92.4zm-213.4 129c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"]\n};\nvar faBirthdayCake = {\n prefix: 'fas',\n iconName: 'birthday-cake',\n icon: [448, 512, [], \"f1fd\", \"M448 384c-28.02 0-31.26-32-74.5-32-43.43 0-46.825 32-74.75 32-27.695 0-31.454-32-74.75-32-42.842 0-47.218 32-74.5 32-28.148 0-31.202-32-74.75-32-43.547 0-46.653 32-74.75 32v-80c0-26.5 21.5-48 48-48h16V112h64v144h64V112h64v144h64V112h64v144h16c26.5 0 48 21.5 48 48v80zm0 128H0v-96c43.356 0 46.767-32 74.75-32 27.951 0 31.253 32 74.75 32 42.843 0 47.217-32 74.5-32 28.148 0 31.201 32 74.75 32 43.357 0 46.767-32 74.75-32 27.488 0 31.252 32 74.5 32v96zM96 96c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40z\"]\n};\nvar faBlender = {\n prefix: 'fas',\n iconName: 'blender',\n icon: [512, 512, [], \"f517\", \"M416 384H160c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-128 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm40-416h166.54L512 0H48C21.49 0 0 21.49 0 48v160c0 26.51 21.49 48 48 48h103.27l8.73 96h256l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H328c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM64 192V64h69.82l11.64 128H64z\"]\n};\nvar faBlenderPhone = {\n prefix: 'fas',\n iconName: 'blender-phone',\n icon: [576, 512, [], \"f6b6\", \"M392 64h166.54L576 0H192v352h288l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H392c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM158.8 335.01l-25.78-63.26c-2.78-6.81-9.8-10.99-17.24-10.26l-45.03 4.42c-17.28-46.94-17.65-99.78 0-147.72l45.03 4.42c7.43.73 14.46-3.46 17.24-10.26l25.78-63.26c3.02-7.39.2-15.85-6.68-20.07l-39.28-24.1C98.51-3.87 80.09-.5 68.95 11.97c-92.57 103.6-92 259.55 2.1 362.49 9.87 10.8 29.12 12.48 41.65 4.8l39.41-24.18c6.89-4.22 9.7-12.67 6.69-20.07zM480 384H192c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-144 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faBlind = {\n prefix: 'fas',\n iconName: 'blind',\n icon: [384, 512, [], \"f29d\", \"M380.15 510.837a8 8 0 0 1-10.989-2.687l-125.33-206.427a31.923 31.923 0 0 0 12.958-9.485l126.048 207.608a8 8 0 0 1-2.687 10.991zM142.803 314.338l-32.54 89.485 36.12 88.285c6.693 16.36 25.377 24.192 41.733 17.501 16.357-6.692 24.193-25.376 17.501-41.734l-62.814-153.537zM96 88c24.301 0 44-19.699 44-44S120.301 0 96 0 52 19.699 52 44s19.699 44 44 44zm154.837 169.128l-120-152c-4.733-5.995-11.75-9.108-18.837-9.112V96H80v.026c-7.146.003-14.217 3.161-18.944 9.24L0 183.766v95.694c0 13.455 11.011 24.791 24.464 24.536C37.505 303.748 48 293.1 48 280v-79.766l16-20.571v140.698L9.927 469.055c-6.04 16.609 2.528 34.969 19.138 41.009 16.602 6.039 34.968-2.524 41.009-19.138L136 309.638V202.441l-31.406-39.816a4 4 0 1 1 6.269-4.971l102.3 129.217c9.145 11.584 24.368 11.339 33.708 3.965 10.41-8.216 12.159-23.334 3.966-33.708z\"]\n};\nvar faBlog = {\n prefix: 'fas',\n iconName: 'blog',\n icon: [512, 512, [], \"f781\", \"M172.2 226.8c-14.6-2.9-28.2 8.9-28.2 23.8V301c0 10.2 7.1 18.4 16.7 22 18.2 6.8 31.3 24.4 31.3 45 0 26.5-21.5 48-48 48s-48-21.5-48-48V120c0-13.3-10.7-24-24-24H24c-13.3 0-24 10.7-24 24v248c0 89.5 82.1 160.2 175 140.7 54.4-11.4 98.3-55.4 109.7-109.7 17.4-82.9-37-157.2-112.5-172.2zM209 0c-9.2-.5-17 6.8-17 16v31.6c0 8.5 6.6 15.5 15 15.9 129.4 7 233.4 112 240.9 241.5.5 8.4 7.5 15 15.9 15h32.1c9.2 0 16.5-7.8 16-17C503.4 139.8 372.2 8.6 209 0zm.3 96c-9.3-.7-17.3 6.7-17.3 16.1v32.1c0 8.4 6.5 15.3 14.8 15.9 76.8 6.3 138 68.2 144.9 145.2.8 8.3 7.6 14.7 15.9 14.7h32.2c9.3 0 16.8-8 16.1-17.3-8.4-110.1-96.5-198.2-206.6-206.7z\"]\n};\nvar faBold = {\n prefix: 'fas',\n iconName: 'bold',\n icon: [384, 512, [], \"f032\", \"M333.49 238a122 122 0 0 0 27-65.21C367.87 96.49 308 32 233.42 32H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h31.87v288H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h209.32c70.8 0 134.14-51.75 141-122.4 4.74-48.45-16.39-92.06-50.83-119.6zM145.66 112h87.76a48 48 0 0 1 0 96h-87.76zm87.76 288h-87.76V288h87.76a56 56 0 0 1 0 112z\"]\n};\nvar faBolt = {\n prefix: 'fas',\n iconName: 'bolt',\n icon: [320, 512, [], \"f0e7\", \"M296 160H180.6l42.6-129.8C227.2 15 215.7 0 200 0H56C44 0 33.8 8.9 32.2 20.8l-32 240C-1.7 275.2 9.5 288 24 288h118.7L96.6 482.5c-3.6 15.2 8 29.5 23.3 29.5 8.4 0 16.4-4.4 20.8-12l176-304c9.3-15.9-2.2-36-20.7-36z\"]\n};\nvar faBomb = {\n prefix: 'fas',\n iconName: 'bomb',\n icon: [512, 512, [], \"f1e2\", \"M440.5 88.5l-52 52L415 167c9.4 9.4 9.4 24.6 0 33.9l-17.4 17.4c11.8 26.1 18.4 55.1 18.4 85.6 0 114.9-93.1 208-208 208S0 418.9 0 304 93.1 96 208 96c30.5 0 59.5 6.6 85.6 18.4L311 97c9.4-9.4 24.6-9.4 33.9 0l26.5 26.5 52-52 17.1 17zM500 60h-24c-6.6 0-12 5.4-12 12s5.4 12 12 12h24c6.6 0 12-5.4 12-12s-5.4-12-12-12zM440 0c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12s12-5.4 12-12V12c0-6.6-5.4-12-12-12zm33.9 55l17-17c4.7-4.7 4.7-12.3 0-17-4.7-4.7-12.3-4.7-17 0l-17 17c-4.7 4.7-4.7 12.3 0 17 4.8 4.7 12.4 4.7 17 0zm-67.8 0c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17zm67.8 34c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17zM112 272c0-35.3 28.7-64 64-64 8.8 0 16-7.2 16-16s-7.2-16-16-16c-52.9 0-96 43.1-96 96 0 8.8 7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faBone = {\n prefix: 'fas',\n iconName: 'bone',\n icon: [640, 512, [], \"f5d7\", \"M598.88 244.56c25.2-12.6 41.12-38.36 41.12-66.53v-7.64C640 129.3 606.7 96 565.61 96c-32.02 0-60.44 20.49-70.57 50.86-7.68 23.03-11.6 45.14-38.11 45.14H183.06c-27.38 0-31.58-25.54-38.11-45.14C134.83 116.49 106.4 96 74.39 96 33.3 96 0 129.3 0 170.39v7.64c0 28.17 15.92 53.93 41.12 66.53 9.43 4.71 9.43 18.17 0 22.88C15.92 280.04 0 305.8 0 333.97v7.64C0 382.7 33.3 416 74.38 416c32.02 0 60.44-20.49 70.57-50.86 7.68-23.03 11.6-45.14 38.11-45.14h273.87c27.38 0 31.58 25.54 38.11 45.14C505.17 395.51 533.6 416 565.61 416c41.08 0 74.38-33.3 74.38-74.39v-7.64c0-28.18-15.92-53.93-41.12-66.53-9.42-4.71-9.42-18.17.01-22.88z\"]\n};\nvar faBong = {\n prefix: 'fas',\n iconName: 'bong',\n icon: [448, 512, [], \"f55c\", \"M302.5 512c23.18 0 44.43-12.58 56-32.66C374.69 451.26 384 418.75 384 384c0-36.12-10.08-69.81-27.44-98.62L400 241.94l9.38 9.38c6.25 6.25 16.38 6.25 22.63 0l11.3-11.32c6.25-6.25 6.25-16.38 0-22.63l-52.69-52.69c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l9.38 9.38-39.41 39.41c-11.56-11.37-24.53-21.33-38.65-29.51V63.74l15.97-.02c8.82-.01 15.97-7.16 15.98-15.98l.04-31.72C320 7.17 312.82-.01 303.97 0L80.03.26c-8.82.01-15.97 7.16-15.98 15.98l-.04 31.73c-.01 8.85 7.17 16.02 16.02 16.01L96 63.96v153.93C38.67 251.1 0 312.97 0 384c0 34.75 9.31 67.27 25.5 95.34C37.08 499.42 58.33 512 81.5 512h221zM120.06 259.43L144 245.56V63.91l96-.11v181.76l23.94 13.87c24.81 14.37 44.12 35.73 56.56 60.57h-257c12.45-24.84 31.75-46.2 56.56-60.57z\"]\n};\nvar faBook = {\n prefix: 'fas',\n iconName: 'book',\n icon: [448, 512, [], \"f02d\", \"M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z\"]\n};\nvar faBookDead = {\n prefix: 'fas',\n iconName: 'book-dead',\n icon: [448, 512, [], \"f6b7\", \"M272 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm176 222.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM240 56c44.2 0 80 28.7 80 64 0 20.9-12.7 39.2-32 50.9V184c0 8.8-7.2 16-16 16h-64c-8.8 0-16-7.2-16-16v-13.1c-19.3-11.7-32-30-32-50.9 0-35.3 35.8-64 80-64zM124.8 223.3l6.3-14.7c1.7-4.1 6.4-5.9 10.5-4.2l98.3 42.1 98.4-42.1c4.1-1.7 8.8.1 10.5 4.2l6.3 14.7c1.7 4.1-.1 8.8-4.2 10.5L280.6 264l70.3 30.1c4.1 1.7 5.9 6.4 4.2 10.5l-6.3 14.7c-1.7 4.1-6.4 5.9-10.5 4.2L240 281.4l-98.3 42.2c-4.1 1.7-8.8-.1-10.5-4.2l-6.3-14.7c-1.7-4.1.1-8.8 4.2-10.5l70.4-30.1-70.5-30.3c-4.1-1.7-5.9-6.4-4.2-10.5zm256 224.7H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8zM208 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16z\"]\n};\nvar faBookMedical = {\n prefix: 'fas',\n iconName: 'book-medical',\n icon: [448, 512, [], \"f7e6\", \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16q0-9.6-9.6-19.2c-3.2-16-3.2-60.8 0-73.6q9.6-4.8 9.6-19.2zM144 168a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8v48a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8zm236.8 280H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8z\"]\n};\nvar faBookOpen = {\n prefix: 'fas',\n iconName: 'book-open',\n icon: [576, 512, [], \"f518\", \"M542.22 32.05c-54.8 3.11-163.72 14.43-230.96 55.59-4.64 2.84-7.27 7.89-7.27 13.17v363.87c0 11.55 12.63 18.85 23.28 13.49 69.18-34.82 169.23-44.32 218.7-46.92 16.89-.89 30.02-14.43 30.02-30.66V62.75c.01-17.71-15.35-31.74-33.77-30.7zM264.73 87.64C197.5 46.48 88.58 35.17 33.78 32.05 15.36 31.01 0 45.04 0 62.75V400.6c0 16.24 13.13 29.78 30.02 30.66 49.49 2.6 149.59 12.11 218.77 46.95 10.62 5.35 23.21-1.94 23.21-13.46V100.63c0-5.29-2.62-10.14-7.27-12.99z\"]\n};\nvar faBookReader = {\n prefix: 'fas',\n iconName: 'book-reader',\n icon: [512, 512, [], \"f5da\", \"M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z\"]\n};\nvar faBookmark = {\n prefix: 'fas',\n iconName: 'bookmark',\n icon: [384, 512, [], \"f02e\", \"M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z\"]\n};\nvar faBorderAll = {\n prefix: 'fas',\n iconName: 'border-all',\n icon: [448, 512, [], \"f84c\", \"M416 32H32A32 32 0 0 0 0 64v384a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32zm-32 64v128H256V96zm-192 0v128H64V96zM64 416V288h128v128zm192 0V288h128v128z\"]\n};\nvar faBorderNone = {\n prefix: 'fas',\n iconName: 'border-none',\n icon: [448, 512, [], \"f850\", \"M240 224h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-288 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM240 320h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-384h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM48 224H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faBorderStyle = {\n prefix: 'fas',\n iconName: 'border-style',\n icon: [448, 512, [], \"f853\", \"M240 416h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm192 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H32A32 32 0 0 0 0 64v400a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V96h368a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faBowlingBall = {\n prefix: 'fas',\n iconName: 'bowling-ball',\n icon: [496, 512, [], \"f436\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM120 192c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-96c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm48 144c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faBox = {\n prefix: 'fas',\n iconName: 'box',\n icon: [512, 512, [], \"f466\", \"M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z\"]\n};\nvar faBoxOpen = {\n prefix: 'fas',\n iconName: 'box-open',\n icon: [640, 512, [], \"f49e\", \"M425.7 256c-16.9 0-32.8-9-41.4-23.4L320 126l-64.2 106.6c-8.7 14.5-24.6 23.5-41.5 23.5-4.5 0-9-.6-13.3-1.9L64 215v178c0 14.7 10 27.5 24.2 31l216.2 54.1c10.2 2.5 20.9 2.5 31 0L551.8 424c14.2-3.6 24.2-16.4 24.2-31V215l-137 39.1c-4.3 1.3-8.8 1.9-13.3 1.9zm212.6-112.2L586.8 41c-3.1-6.2-9.8-9.8-16.7-8.9L320 64l91.7 152.1c3.8 6.3 11.4 9.3 18.5 7.3l197.9-56.5c9.9-2.9 14.7-13.9 10.2-23.1zM53.2 41L1.7 143.8c-4.6 9.2.3 20.2 10.1 23l197.9 56.5c7.1 2 14.7-1 18.5-7.3L320 64 69.8 32.1c-6.9-.8-13.5 2.7-16.6 8.9z\"]\n};\nvar faBoxTissue = {\n prefix: 'fas',\n iconName: 'box-tissue',\n icon: [512, 512, [], \"e05b\", \"M383.88,287.82l64-192H338.47a70.2,70.2,0,0,1-66.59-48,70.21,70.21,0,0,0-66.6-48H63.88l64,288Zm-384,192a32,32,0,0,0,32,32h448a32,32,0,0,0,32-32v-64H-.12Zm480-256H438.94l-21.33,64h14.27a16,16,0,0,1,0,32h-352a16,16,0,1,1,0-32H95.09l-14.22-64h-49a32,32,0,0,0-32,32v128h512v-128A32,32,0,0,0,479.88,223.82Z\"]\n};\nvar faBoxes = {\n prefix: 'fas',\n iconName: 'boxes',\n icon: [576, 512, [], \"f468\", \"M560 288h-80v96l-32-21.3-32 21.3v-96h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16zm-384-64h224c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16h-80v96l-32-21.3L256 96V0h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16zm64 64h-80v96l-32-21.3L96 384v-96H16c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16z\"]\n};\nvar faBraille = {\n prefix: 'fas',\n iconName: 'braille',\n icon: [640, 512, [], \"f2a1\", \"M128 256c0 35.346-28.654 64-64 64S0 291.346 0 256s28.654-64 64-64 64 28.654 64 64zM64 384c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352C28.654 32 0 60.654 0 96s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm224 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-320c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z\"]\n};\nvar faBrain = {\n prefix: 'fas',\n iconName: 'brain',\n icon: [576, 512, [], \"f5dc\", \"M208 0c-29.9 0-54.7 20.5-61.8 48.2-.8 0-1.4-.2-2.2-.2-35.3 0-64 28.7-64 64 0 4.8.6 9.5 1.7 14C52.5 138 32 166.6 32 200c0 12.6 3.2 24.3 8.3 34.9C16.3 248.7 0 274.3 0 304c0 33.3 20.4 61.9 49.4 73.9-.9 4.6-1.4 9.3-1.4 14.1 0 39.8 32.2 72 72 72 4.1 0 8.1-.5 12-1.2 9.6 28.5 36.2 49.2 68 49.2 39.8 0 72-32.2 72-72V64c0-35.3-28.7-64-64-64zm368 304c0-29.7-16.3-55.3-40.3-69.1 5.2-10.6 8.3-22.3 8.3-34.9 0-33.4-20.5-62-49.7-74 1-4.5 1.7-9.2 1.7-14 0-35.3-28.7-64-64-64-.8 0-1.5.2-2.2.2C422.7 20.5 397.9 0 368 0c-35.3 0-64 28.6-64 64v376c0 39.8 32.2 72 72 72 31.8 0 58.4-20.7 68-49.2 3.9.7 7.9 1.2 12 1.2 39.8 0 72-32.2 72-72 0-4.8-.5-9.5-1.4-14.1 29-12 49.4-40.6 49.4-73.9z\"]\n};\nvar faBreadSlice = {\n prefix: 'fas',\n iconName: 'bread-slice',\n icon: [576, 512, [], \"f7ec\", \"M288 0C108 0 0 93.4 0 169.14 0 199.44 24.24 224 64 224v256c0 17.67 16.12 32 36 32h376c19.88 0 36-14.33 36-32V224c39.76 0 64-24.56 64-54.86C576 93.4 468 0 288 0z\"]\n};\nvar faBriefcase = {\n prefix: 'fas',\n iconName: 'briefcase',\n icon: [512, 512, [], \"f0b1\", \"M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z\"]\n};\nvar faBriefcaseMedical = {\n prefix: 'fas',\n iconName: 'briefcase-medical',\n icon: [512, 512, [], \"f469\", \"M464 128h-80V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48zM192 96h128v32H192V96zm160 248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48z\"]\n};\nvar faBroadcastTower = {\n prefix: 'fas',\n iconName: 'broadcast-tower',\n icon: [640, 512, [], \"f519\", \"M150.94 192h33.73c11.01 0 18.61-10.83 14.86-21.18-4.93-13.58-7.55-27.98-7.55-42.82s2.62-29.24 7.55-42.82C203.29 74.83 195.68 64 184.67 64h-33.73c-7.01 0-13.46 4.49-15.41 11.23C130.64 92.21 128 109.88 128 128c0 18.12 2.64 35.79 7.54 52.76 1.94 6.74 8.39 11.24 15.4 11.24zM89.92 23.34C95.56 12.72 87.97 0 75.96 0H40.63c-6.27 0-12.14 3.59-14.74 9.31C9.4 45.54 0 85.65 0 128c0 24.75 3.12 68.33 26.69 118.86 2.62 5.63 8.42 9.14 14.61 9.14h34.84c12.02 0 19.61-12.74 13.95-23.37-49.78-93.32-16.71-178.15-.17-209.29zM614.06 9.29C611.46 3.58 605.6 0 599.33 0h-35.42c-11.98 0-19.66 12.66-14.02 23.25 18.27 34.29 48.42 119.42.28 209.23-5.72 10.68 1.8 23.52 13.91 23.52h35.23c6.27 0 12.13-3.58 14.73-9.29C630.57 210.48 640 170.36 640 128s-9.42-82.48-25.94-118.71zM489.06 64h-33.73c-11.01 0-18.61 10.83-14.86 21.18 4.93 13.58 7.55 27.98 7.55 42.82s-2.62 29.24-7.55 42.82c-3.76 10.35 3.85 21.18 14.86 21.18h33.73c7.02 0 13.46-4.49 15.41-11.24 4.9-16.97 7.53-34.64 7.53-52.76 0-18.12-2.64-35.79-7.54-52.76-1.94-6.75-8.39-11.24-15.4-11.24zm-116.3 100.12c7.05-10.29 11.2-22.71 11.2-36.12 0-35.35-28.63-64-63.96-64-35.32 0-63.96 28.65-63.96 64 0 13.41 4.15 25.83 11.2 36.12l-130.5 313.41c-3.4 8.15.46 17.52 8.61 20.92l29.51 12.31c8.15 3.4 17.52-.46 20.91-8.61L244.96 384h150.07l49.2 118.15c3.4 8.16 12.76 12.01 20.91 8.61l29.51-12.31c8.15-3.4 12-12.77 8.61-20.92l-130.5-313.41zM271.62 320L320 203.81 368.38 320h-96.76z\"]\n};\nvar faBroom = {\n prefix: 'fas',\n iconName: 'broom',\n icon: [640, 512, [], \"f51a\", \"M256.47 216.77l86.73 109.18s-16.6 102.36-76.57 150.12C206.66 523.85 0 510.19 0 510.19s3.8-23.14 11-55.43l94.62-112.17c3.97-4.7-.87-11.62-6.65-9.5l-60.4 22.09c14.44-41.66 32.72-80.04 54.6-97.47 59.97-47.76 163.3-40.94 163.3-40.94zM636.53 31.03l-19.86-25c-5.49-6.9-15.52-8.05-22.41-2.56l-232.48 177.8-34.14-42.97c-5.09-6.41-15.14-5.21-18.59 2.21l-25.33 54.55 86.73 109.18 58.8-12.45c8-1.69 11.42-11.2 6.34-17.6l-34.09-42.92 232.48-177.8c6.89-5.48 8.04-15.53 2.55-22.44z\"]\n};\nvar faBrush = {\n prefix: 'fas',\n iconName: 'brush',\n icon: [384, 512, [], \"f55d\", \"M352 0H32C14.33 0 0 14.33 0 32v224h384V32c0-17.67-14.33-32-32-32zM0 320c0 35.35 28.66 64 64 64h64v64c0 35.35 28.66 64 64 64s64-28.65 64-64v-64h64c35.34 0 64-28.65 64-64v-32H0v32zm192 104c13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24s-24-10.75-24-24c0-13.26 10.75-24 24-24z\"]\n};\nvar faBug = {\n prefix: 'fas',\n iconName: 'bug',\n icon: [512, 512, [], \"f188\", \"M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z\"]\n};\nvar faBuilding = {\n prefix: 'fas',\n iconName: 'building',\n icon: [448, 512, [], \"f1ad\", \"M436 480h-20V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v456H12c-6.627 0-12 5.373-12 12v20h448v-20c0-6.627-5.373-12-12-12zM128 76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76zm0 96c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40zm52 148h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12zm76 160h-64v-84c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v84zm64-172c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40z\"]\n};\nvar faBullhorn = {\n prefix: 'fas',\n iconName: 'bullhorn',\n icon: [576, 512, [], \"f0a1\", \"M576 240c0-23.63-12.95-44.04-32-55.12V32.01C544 23.26 537.02 0 512 0c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64h33.7c-1.39 10.48-2.18 21.14-2.18 32 0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.13C563.05 284.04 576 263.63 576 240zm-96 141.42l-33.05-26.44C392.95 311.78 325.12 288 256 288v-96c69.12 0 136.95-23.78 190.95-66.98L480 98.58v282.84z\"]\n};\nvar faBullseye = {\n prefix: 'fas',\n iconName: 'bullseye',\n icon: [496, 512, [], \"f140\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 432c-101.69 0-184-82.29-184-184 0-101.69 82.29-184 184-184 101.69 0 184 82.29 184 184 0 101.69-82.29 184-184 184zm0-312c-70.69 0-128 57.31-128 128s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm0 192c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64z\"]\n};\nvar faBurn = {\n prefix: 'fas',\n iconName: 'burn',\n icon: [384, 512, [], \"f46a\", \"M192 0C79.7 101.3 0 220.9 0 300.5 0 425 79 512 192 512s192-87 192-211.5c0-79.9-80.2-199.6-192-300.5zm0 448c-56.5 0-96-39-96-94.8 0-13.5 4.6-61.5 96-161.2 91.4 99.7 96 147.7 96 161.2 0 55.8-39.5 94.8-96 94.8z\"]\n};\nvar faBus = {\n prefix: 'fas',\n iconName: 'bus',\n icon: [512, 512, [], \"f207\", \"M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM112 400c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm16-112c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h256c17.67 0 32 14.33 32 32v128c0 17.67-14.33 32-32 32H128zm272 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faBusAlt = {\n prefix: 'fas',\n iconName: 'bus-alt',\n icon: [512, 512, [], \"f55e\", \"M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM160 72c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H168c-4.42 0-8-3.58-8-8V72zm-48 328c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128-112H128c-17.67 0-32-14.33-32-32v-96c0-17.67 14.33-32 32-32h112v160zm32 0V128h112c17.67 0 32 14.33 32 32v96c0 17.67-14.33 32-32 32H272zm128 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faBusinessTime = {\n prefix: 'fas',\n iconName: 'business-time',\n icon: [640, 512, [], \"f64a\", \"M496 224c-79.59 0-144 64.41-144 144s64.41 144 144 144 144-64.41 144-144-64.41-144-144-144zm64 150.29c0 5.34-4.37 9.71-9.71 9.71h-60.57c-5.34 0-9.71-4.37-9.71-9.71v-76.57c0-5.34 4.37-9.71 9.71-9.71h12.57c5.34 0 9.71 4.37 9.71 9.71V352h38.29c5.34 0 9.71 4.37 9.71 9.71v12.58zM496 192c5.4 0 10.72.33 16 .81V144c0-25.6-22.4-48-48-48h-80V48c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h395.12c28.6-20.09 63.35-32 100.88-32zM320 96H192V64h128v32zm6.82 224H208c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h291.43C327.1 423.96 320 396.82 320 368c0-16.66 2.48-32.72 6.82-48z\"]\n};\nvar faCalculator = {\n prefix: 'fas',\n iconName: 'calculator',\n icon: [448, 512, [], \"f1ec\", \"M400 0H48C22.4 0 0 22.4 0 48v416c0 25.6 22.4 48 48 48h352c25.6 0 48-22.4 48-48V48c0-25.6-22.4-48-48-48zM128 435.2c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8V268.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v166.4zm0-256c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8V76.8C64 70.4 70.4 64 76.8 64h294.4c6.4 0 12.8 6.4 12.8 12.8v102.4z\"]\n};\nvar faCalendar = {\n prefix: 'fas',\n iconName: 'calendar',\n icon: [448, 512, [], \"f133\", \"M12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm436-44v-36c0-26.5-21.5-48-48-48h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v36c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12z\"]\n};\nvar faCalendarAlt = {\n prefix: 'fas',\n iconName: 'calendar-alt',\n icon: [448, 512, [], \"f073\", \"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm320-196c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM192 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM64 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"]\n};\nvar faCalendarCheck = {\n prefix: 'fas',\n iconName: 'calendar-check',\n icon: [448, 512, [], \"f274\", \"M436 160H12c-6.627 0-12-5.373-12-12v-36c0-26.51 21.49-48 48-48h48V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h128V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h48c26.51 0 48 21.49 48 48v36c0 6.627-5.373 12-12 12zM12 192h424c6.627 0 12 5.373 12 12v260c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V204c0-6.627 5.373-12 12-12zm333.296 95.947l-28.169-28.398c-4.667-4.705-12.265-4.736-16.97-.068L194.12 364.665l-45.98-46.352c-4.667-4.705-12.266-4.736-16.971-.068l-28.397 28.17c-4.705 4.667-4.736 12.265-.068 16.97l82.601 83.269c4.667 4.705 12.265 4.736 16.97.068l142.953-141.805c4.705-4.667 4.736-12.265.068-16.97z\"]\n};\nvar faCalendarDay = {\n prefix: 'fas',\n iconName: 'calendar-day',\n icon: [448, 512, [], \"f783\", \"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-96zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"]\n};\nvar faCalendarMinus = {\n prefix: 'fas',\n iconName: 'calendar-minus',\n icon: [448, 512, [], \"f272\", \"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm304 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H132c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h184z\"]\n};\nvar faCalendarPlus = {\n prefix: 'fas',\n iconName: 'calendar-plus',\n icon: [448, 512, [], \"f271\", \"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm316 140c0-6.6-5.4-12-12-12h-60v-60c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v60h-60c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h60v60c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-60h60c6.6 0 12-5.4 12-12v-40z\"]\n};\nvar faCalendarTimes = {\n prefix: 'fas',\n iconName: 'calendar-times',\n icon: [448, 512, [], \"f273\", \"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm257.3 160l48.1-48.1c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0L224 306.7l-48.1-48.1c-4.7-4.7-12.3-4.7-17 0l-28.3 28.3c-4.7 4.7-4.7 12.3 0 17l48.1 48.1-48.1 48.1c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l48.1-48.1 48.1 48.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L269.3 352z\"]\n};\nvar faCalendarWeek = {\n prefix: 'fas',\n iconName: 'calendar-week',\n icon: [448, 512, [], \"f784\", \"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h288c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-64zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"]\n};\nvar faCamera = {\n prefix: 'fas',\n iconName: 'camera',\n icon: [512, 512, [], \"f030\", \"M512 144v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h88l12.3-32.9c7-18.7 24.9-31.1 44.9-31.1h125.5c20 0 37.9 12.4 44.9 31.1L376 96h88c26.5 0 48 21.5 48 48zM376 288c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88z\"]\n};\nvar faCameraRetro = {\n prefix: 'fas',\n iconName: 'camera-retro',\n icon: [512, 512, [], \"f083\", \"M48 32C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm0 32h106c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H38c-3.3 0-6-2.7-6-6V80c0-8.8 7.2-16 16-16zm426 96H38c-3.3 0-6-2.7-6-6v-36c0-3.3 2.7-6 6-6h138l30.2-45.3c1.1-1.7 3-2.7 5-2.7H464c8.8 0 16 7.2 16 16v74c0 3.3-2.7 6-6 6zM256 424c-66.2 0-120-53.8-120-120s53.8-120 120-120 120 53.8 120 120-53.8 120-120 120zm0-208c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm-48 104c-8.8 0-16-7.2-16-16 0-35.3 28.7-64 64-64 8.8 0 16 7.2 16 16s-7.2 16-16 16c-17.6 0-32 14.4-32 32 0 8.8-7.2 16-16 16z\"]\n};\nvar faCampground = {\n prefix: 'fas',\n iconName: 'campground',\n icon: [640, 512, [], \"f6bb\", \"M624 448h-24.68L359.54 117.75l53.41-73.55c5.19-7.15 3.61-17.16-3.54-22.35l-25.9-18.79c-7.15-5.19-17.15-3.61-22.35 3.55L320 63.3 278.83 6.6c-5.19-7.15-15.2-8.74-22.35-3.55l-25.88 18.8c-7.15 5.19-8.74 15.2-3.54 22.35l53.41 73.55L40.68 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM320 288l116.36 160H203.64L320 288z\"]\n};\nvar faCandyCane = {\n prefix: 'fas',\n iconName: 'candy-cane',\n icon: [512, 512, [], \"f786\", \"M497.5 92C469.6 33.1 411.8 0 352.4 0c-27.9 0-56.2 7.3-81.8 22.6L243.1 39c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5l27.5-16.4c5.1-3.1 10.8-4.5 16.4-4.5 10.9 0 21.5 5.6 27.5 15.6 9.1 15.1 4.1 34.8-11 43.9L15.6 397.6c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5L428.6 301c71.7-42.9 104.6-133.5 68.9-209zm-177.7 13l-2.5 1.5L296.8 45c9.7-4.7 19.8-8.1 30.3-10.2l20.6 61.8c-9.8.8-19.4 3.3-27.9 8.4zM145.9 431.8l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm107.5-63.9l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zM364.3 302l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm20.4-197.3l46-46c8.4 6.5 16 14.1 22.6 22.6L407.6 127c-5.7-9.3-13.7-16.9-22.9-22.3zm82.1 107.8l-59.5-19.8c3.2-5.3 5.8-10.9 7.4-17.1 1.1-4.5 1.7-9.1 1.8-13.6l60.4 20.1c-2.1 10.4-5.5 20.6-10.1 30.4z\"]\n};\nvar faCannabis = {\n prefix: 'fas',\n iconName: 'cannabis',\n icon: [512, 512, [], \"f55f\", \"M503.47 360.25c-1.56-.82-32.39-16.89-76.78-25.81 64.25-75.12 84.05-161.67 84.93-165.64 1.18-5.33-.44-10.9-4.3-14.77-3.03-3.04-7.12-4.7-11.32-4.7-1.14 0-2.29.12-3.44.38-3.88.85-86.54 19.59-160.58 79.76.01-1.46.01-2.93.01-4.4 0-118.79-59.98-213.72-62.53-217.7A15.973 15.973 0 0 0 256 0c-5.45 0-10.53 2.78-13.47 7.37-2.55 3.98-62.53 98.91-62.53 217.7 0 1.47.01 2.94.01 4.4-74.03-60.16-156.69-78.9-160.58-79.76-1.14-.25-2.29-.38-3.44-.38-4.2 0-8.29 1.66-11.32 4.7A15.986 15.986 0 0 0 .38 168.8c.88 3.97 20.68 90.52 84.93 165.64-44.39 8.92-75.21 24.99-76.78 25.81a16.003 16.003 0 0 0-.02 28.29c2.45 1.29 60.76 31.72 133.49 31.72 6.14 0 11.96-.1 17.5-.31-11.37 22.23-16.52 38.31-16.81 39.22-1.8 5.68-.29 11.89 3.91 16.11a16.019 16.019 0 0 0 16.1 3.99c1.83-.57 37.72-11.99 77.3-39.29V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-64.01c39.58 27.3 75.47 38.71 77.3 39.29a16.019 16.019 0 0 0 16.1-3.99c4.2-4.22 5.71-10.43 3.91-16.11-.29-.91-5.45-16.99-16.81-39.22 5.54.21 11.37.31 17.5.31 72.72 0 131.04-30.43 133.49-31.72 5.24-2.78 8.52-8.22 8.51-14.15-.01-5.94-3.29-11.39-8.53-14.15z\"]\n};\nvar faCapsules = {\n prefix: 'fas',\n iconName: 'capsules',\n icon: [576, 512, [], \"f46b\", \"M555.3 300.1L424.2 112.8C401.9 81 366.4 64 330.4 64c-22.6 0-45.5 6.7-65.5 20.7-19.7 13.8-33.7 32.8-41.5 53.8C220.5 79.2 172 32 112 32 50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V218.9c3.3 8.6 7.3 17.1 12.8 25L368 431.2c22.2 31.8 57.7 48.8 93.8 48.8 22.7 0 45.5-6.7 65.5-20.7 51.7-36.2 64.2-107.5 28-159.2zM160 256H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm194.8 44.9l-65.6-93.7c-7.7-11-10.7-24.4-8.3-37.6 2.3-13.2 9.7-24.8 20.7-32.5 8.5-6 18.5-9.1 28.8-9.1 16.5 0 31.9 8 41.3 21.5l65.6 93.7-82.5 57.7z\"]\n};\nvar faCar = {\n prefix: 'fas',\n iconName: 'car',\n icon: [512, 512, [], \"f1b9\", \"M499.99 176h-59.87l-16.64-41.6C406.38 91.63 365.57 64 319.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4L71.87 176H12.01C4.2 176-1.53 183.34.37 190.91l6 24C7.7 220.25 12.5 224 18.01 224h20.07C24.65 235.73 16 252.78 16 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-19.22-8.65-36.27-22.07-48H494c5.51 0 10.31-3.75 11.64-9.09l6-24c1.89-7.57-3.84-14.91-11.65-14.91zm-352.06-17.83c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L384 208H128l19.93-49.83zM96 319.8c-19.2 0-32-12.76-32-31.9S76.8 256 96 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S396.8 256 416 256s32 12.76 32 31.9-12.8 31.9-32 31.9z\"]\n};\nvar faCarAlt = {\n prefix: 'fas',\n iconName: 'car-alt',\n icon: [480, 512, [], \"f5de\", \"M438.66 212.33l-11.24-28.1-19.93-49.83C390.38 91.63 349.57 64 303.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4l-19.93 49.83-11.24 28.1C17.22 221.5 0 244.66 0 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-27.34-17.22-50.5-41.34-59.67zm-306.73-54.16c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L368 208H112l19.93-49.83zM80 319.8c-19.2 0-32-12.76-32-31.9S60.8 256 80 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S380.8 256 400 256s32 12.76 32 31.9-12.8 31.9-32 31.9z\"]\n};\nvar faCarBattery = {\n prefix: 'fas',\n iconName: 'car-battery',\n icon: [512, 512, [], \"f5df\", \"M480 128h-32V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v48H192V80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v48H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM192 264c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm256 0c0 4.42-3.58 8-8 8h-40v40c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-40h-40c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h40v-40c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v40h40c4.42 0 8 3.58 8 8v16z\"]\n};\nvar faCarCrash = {\n prefix: 'fas',\n iconName: 'car-crash',\n icon: [640, 512, [], \"f5e1\", \"M143.25 220.81l-12.42 46.37c-3.01 11.25-3.63 22.89-2.41 34.39l-35.2 28.98c-6.57 5.41-16.31-.43-14.62-8.77l15.44-76.68c1.06-5.26-2.66-10.28-8-10.79l-77.86-7.55c-8.47-.82-11.23-11.83-4.14-16.54l65.15-43.3c4.46-2.97 5.38-9.15 1.98-13.29L21.46 93.22c-5.41-6.57.43-16.3 8.78-14.62l76.68 15.44c5.26 1.06 10.28-2.66 10.8-8l7.55-77.86c.82-8.48 11.83-11.23 16.55-4.14l43.3 65.14c2.97 4.46 9.15 5.38 13.29 1.98l60.4-49.71c6.57-5.41 16.3.43 14.62 8.77L262.1 86.38c-2.71 3.05-5.43 6.09-7.91 9.4l-32.15 42.97-10.71 14.32c-32.73 8.76-59.18 34.53-68.08 67.74zm494.57 132.51l-12.42 46.36c-3.13 11.68-9.38 21.61-17.55 29.36a66.876 66.876 0 0 1-8.76 7l-13.99 52.23c-1.14 4.27-3.1 8.1-5.65 11.38-7.67 9.84-20.74 14.68-33.54 11.25L515 502.62c-17.07-4.57-27.2-22.12-22.63-39.19l8.28-30.91-247.28-66.26-8.28 30.91c-4.57 17.07-22.12 27.2-39.19 22.63l-30.91-8.28c-12.8-3.43-21.7-14.16-23.42-26.51-.57-4.12-.35-8.42.79-12.68l13.99-52.23a66.62 66.62 0 0 1-4.09-10.45c-3.2-10.79-3.65-22.52-.52-34.2l12.42-46.37c5.31-19.8 19.36-34.83 36.89-42.21a64.336 64.336 0 0 1 18.49-4.72l18.13-24.23 32.15-42.97c3.45-4.61 7.19-8.9 11.2-12.84 8-7.89 17.03-14.44 26.74-19.51 4.86-2.54 9.89-4.71 15.05-6.49 10.33-3.58 21.19-5.63 32.24-6.04 11.05-.41 22.31.82 33.43 3.8l122.68 32.87c11.12 2.98 21.48 7.54 30.85 13.43a111.11 111.11 0 0 1 34.69 34.5c8.82 13.88 14.64 29.84 16.68 46.99l6.36 53.29 3.59 30.05a64.49 64.49 0 0 1 22.74 29.93c4.39 11.88 5.29 25.19 1.75 38.39zM255.58 234.34c-18.55-4.97-34.21 4.04-39.17 22.53-4.96 18.49 4.11 34.12 22.65 39.09 18.55 4.97 45.54 15.51 50.49-2.98 4.96-18.49-15.43-53.67-33.97-58.64zm290.61 28.17l-6.36-53.29c-.58-4.87-1.89-9.53-3.82-13.86-5.8-12.99-17.2-23.01-31.42-26.82l-122.68-32.87a48.008 48.008 0 0 0-50.86 17.61l-32.15 42.97 172 46.08 75.29 20.18zm18.49 54.65c-18.55-4.97-53.8 15.31-58.75 33.79-4.95 18.49 23.69 22.86 42.24 27.83 18.55 4.97 34.21-4.04 39.17-22.53 4.95-18.48-4.11-34.12-22.66-39.09z\"]\n};\nvar faCarSide = {\n prefix: 'fas',\n iconName: 'car-side',\n icon: [640, 512, [], \"f5e4\", \"M544 192h-16L419.22 56.02A64.025 64.025 0 0 0 369.24 32H155.33c-26.17 0-49.7 15.93-59.42 40.23L48 194.26C20.44 201.4 0 226.21 0 256v112c0 8.84 7.16 16 16 16h48c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h48c8.84 0 16-7.16 16-16v-80c0-53.02-42.98-96-96-96zM160 432c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm72-240H116.93l38.4-96H232v96zm48 0V96h89.24l76.8 96H280zm200 240c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z\"]\n};\nvar faCaravan = {\n prefix: 'fas',\n iconName: 'caravan',\n icon: [640, 512, [], \"f8ff\", \"M416,208a16,16,0,1,0,16,16A16,16,0,0,0,416,208ZM624,320H576V160A160,160,0,0,0,416,0H64A64,64,0,0,0,0,64V320a64,64,0,0,0,64,64H96a96,96,0,0,0,192,0H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM192,432a48,48,0,1,1,48-48A48.05,48.05,0,0,1,192,432Zm64-240a32,32,0,0,1-32,32H96a32,32,0,0,1-32-32V128A32,32,0,0,1,96,96H224a32,32,0,0,1,32,32ZM448,320H320V128a32,32,0,0,1,32-32h64a32,32,0,0,1,32,32Z\"]\n};\nvar faCaretDown = {\n prefix: 'fas',\n iconName: 'caret-down',\n icon: [320, 512, [], \"f0d7\", \"M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\"]\n};\nvar faCaretLeft = {\n prefix: 'fas',\n iconName: 'caret-left',\n icon: [192, 512, [], \"f0d9\", \"M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z\"]\n};\nvar faCaretRight = {\n prefix: 'fas',\n iconName: 'caret-right',\n icon: [192, 512, [], \"f0da\", \"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"]\n};\nvar faCaretSquareDown = {\n prefix: 'fas',\n iconName: 'caret-square-down',\n icon: [448, 512, [], \"f150\", \"M448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM92.5 220.5l123 123c4.7 4.7 12.3 4.7 17 0l123-123c7.6-7.6 2.2-20.5-8.5-20.5H101c-10.7 0-16.1 12.9-8.5 20.5z\"]\n};\nvar faCaretSquareLeft = {\n prefix: 'fas',\n iconName: 'caret-square-left',\n icon: [448, 512, [], \"f191\", \"M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM259.515 124.485l-123.03 123.03c-4.686 4.686-4.686 12.284 0 16.971l123.029 123.029c7.56 7.56 20.485 2.206 20.485-8.485V132.971c.001-10.691-12.925-16.045-20.484-8.486z\"]\n};\nvar faCaretSquareRight = {\n prefix: 'fas',\n iconName: 'caret-square-right',\n icon: [448, 512, [], \"f152\", \"M48 32h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48zm140.485 355.515l123.029-123.029c4.686-4.686 4.686-12.284 0-16.971l-123.029-123.03c-7.56-7.56-20.485-2.206-20.485 8.485v246.059c0 10.691 12.926 16.045 20.485 8.486z\"]\n};\nvar faCaretSquareUp = {\n prefix: 'fas',\n iconName: 'caret-square-up',\n icon: [448, 512, [], \"f151\", \"M0 432V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48zm355.515-140.485l-123.03-123.03c-4.686-4.686-12.284-4.686-16.971 0L92.485 291.515c-7.56 7.56-2.206 20.485 8.485 20.485h246.059c10.691 0 16.045-12.926 8.486-20.485z\"]\n};\nvar faCaretUp = {\n prefix: 'fas',\n iconName: 'caret-up',\n icon: [320, 512, [], \"f0d8\", \"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"]\n};\nvar faCarrot = {\n prefix: 'fas',\n iconName: 'carrot',\n icon: [512, 512, [], \"f787\", \"M298.2 156.6c-52.7-25.7-114.5-10.5-150.2 32.8l55.2 55.2c6.3 6.3 6.3 16.4 0 22.6-3.1 3.1-7.2 4.7-11.3 4.7s-8.2-1.6-11.3-4.7L130.4 217 2.3 479.7c-2.9 6-3.1 13.3 0 19.7 5.4 11.1 18.9 15.7 30 10.3l133.6-65.2-49.2-49.2c-6.3-6.2-6.3-16.4 0-22.6 6.3-6.2 16.4-6.2 22.6 0l57 57 102-49.8c24-11.7 44.5-31.3 57.1-57.1 30.1-61.7 4.5-136.1-57.2-166.2zm92.1-34.9C409.8 81 399.7 32.9 360 0c-50.3 41.7-52.5 107.5-7.9 151.9l8 8c44.4 44.6 110.3 42.4 151.9-7.9-32.9-39.7-81-49.8-121.7-30.3z\"]\n};\nvar faCartArrowDown = {\n prefix: 'fas',\n iconName: 'cart-arrow-down',\n icon: [576, 512, [], \"f218\", \"M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM403.029 192H360v-60c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v60h-43.029c-10.691 0-16.045 12.926-8.485 20.485l67.029 67.029c4.686 4.686 12.284 4.686 16.971 0l67.029-67.029c7.559-7.559 2.205-20.485-8.486-20.485z\"]\n};\nvar faCartPlus = {\n prefix: 'fas',\n iconName: 'cart-plus',\n icon: [576, 512, [], \"f217\", \"M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM408 168h-48v-40c0-8.837-7.163-16-16-16h-16c-8.837 0-16 7.163-16 16v40h-48c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h48v40c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-40h48c8.837 0 16-7.163 16-16v-16c0-8.837-7.163-16-16-16z\"]\n};\nvar faCashRegister = {\n prefix: 'fas',\n iconName: 'cash-register',\n icon: [512, 512, [], \"f788\", \"M511.1 378.8l-26.7-160c-2.6-15.4-15.9-26.7-31.6-26.7H208v-64h96c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h96v64H59.1c-15.6 0-29 11.3-31.6 26.7L.8 378.7c-.6 3.5-.9 7-.9 10.5V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-90.7c.1-3.5-.2-7-.8-10.5zM280 248c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16zm-32 64h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16zm-32-80c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16zM80 80V48h192v32H80zm40 200h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16zm16 64v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16zm216 112c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16zm24-112c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16zm48-80c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16z\"]\n};\nvar faCat = {\n prefix: 'fas',\n iconName: 'cat',\n icon: [512, 512, [], \"f6be\", \"M290.59 192c-20.18 0-106.82 1.98-162.59 85.95V192c0-52.94-43.06-96-96-96-17.67 0-32 14.33-32 32s14.33 32 32 32c17.64 0 32 14.36 32 32v256c0 35.3 28.7 64 64 64h176c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-32l128-96v144c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V289.86c-10.29 2.67-20.89 4.54-32 4.54-61.81 0-113.52-44.05-125.41-102.4zM448 96h-64l-64-64v134.4c0 53.02 42.98 96 96 96s96-42.98 96-96V32l-64 64zm-72 80c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm80 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"]\n};\nvar faCertificate = {\n prefix: 'fas',\n iconName: 'certificate',\n icon: [512, 512, [], \"f0a3\", \"M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z\"]\n};\nvar faChair = {\n prefix: 'fas',\n iconName: 'chair',\n icon: [448, 512, [], \"f6c0\", \"M112 128c0-29.5 16.2-55 40-68.9V256h48V48h48v208h48V59.1c23.8 13.9 40 39.4 40 68.9v128h48V128C384 57.3 326.7 0 256 0h-64C121.3 0 64 57.3 64 128v128h48zm334.3 213.9l-10.7-32c-4.4-13.1-16.6-21.9-30.4-21.9H42.7c-13.8 0-26 8.8-30.4 21.9l-10.7 32C-5.2 362.6 10.2 384 32 384v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384h256v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384c21.8 0 37.2-21.4 30.3-42.1z\"]\n};\nvar faChalkboard = {\n prefix: 'fas',\n iconName: 'chalkboard',\n icon: [640, 512, [], \"f51b\", \"M96 64h448v352h64V40c0-22.06-17.94-40-40-40H72C49.94 0 32 17.94 32 40v376h64V64zm528 384H480v-64H288v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faChalkboardTeacher = {\n prefix: 'fas',\n iconName: 'chalkboard-teacher',\n icon: [640, 512, [], \"f51c\", \"M208 352c-2.39 0-4.78.35-7.06 1.09C187.98 357.3 174.35 360 160 360c-14.35 0-27.98-2.7-40.95-6.91-2.28-.74-4.66-1.09-7.05-1.09C49.94 352-.33 402.48 0 464.62.14 490.88 21.73 512 48 512h224c26.27 0 47.86-21.12 48-47.38.33-62.14-49.94-112.62-112-112.62zm-48-32c53.02 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM592 0H208c-26.47 0-48 22.25-48 49.59V96c23.42 0 45.1 6.78 64 17.8V64h352v288h-64v-64H384v64h-76.24c19.1 16.69 33.12 38.73 39.69 64H592c26.47 0 48-22.25 48-49.59V49.59C640 22.25 618.47 0 592 0z\"]\n};\nvar faChargingStation = {\n prefix: 'fas',\n iconName: 'charging-station',\n icon: [576, 512, [], \"f5e7\", \"M336 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h320c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm208-320V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-32V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-16c-8.84 0-16 7.16-16 16v32c0 35.76 23.62 65.69 56 75.93v118.49c0 13.95-9.5 26.92-23.26 29.19C431.22 402.5 416 388.99 416 372v-28c0-48.6-39.4-88-88-88h-8V64c0-35.35-28.65-64-64-64H96C60.65 0 32 28.65 32 64v352h288V304h8c22.09 0 40 17.91 40 40v24.61c0 39.67 28.92 75.16 68.41 79.01C481.71 452.05 520 416.41 520 372V251.93c32.38-10.24 56-40.17 56-75.93v-32c0-8.84-7.16-16-16-16h-16zm-283.91 47.76l-93.7 139c-2.2 3.33-6.21 5.24-10.39 5.24-7.67 0-13.47-6.28-11.67-12.92L167.35 224H108c-7.25 0-12.85-5.59-11.89-11.89l16-107C112.9 99.9 117.98 96 124 96h68c7.88 0 13.62 6.54 11.6 13.21L192 160h57.7c9.24 0 15.01 8.78 10.39 15.76z\"]\n};\nvar faChartArea = {\n prefix: 'fas',\n iconName: 'chart-area',\n icon: [512, 512, [], \"f1fe\", \"M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5L288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z\"]\n};\nvar faChartBar = {\n prefix: 'fas',\n iconName: 'chart-bar',\n icon: [512, 512, [], \"f080\", \"M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faChartLine = {\n prefix: 'fas',\n iconName: 'chart-line',\n icon: [512, 512, [], \"f201\", \"M496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM464 96H345.94c-21.38 0-32.09 25.85-16.97 40.97l32.4 32.4L288 242.75l-73.37-73.37c-12.5-12.5-32.76-12.5-45.25 0l-68.69 68.69c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L192 237.25l73.37 73.37c12.5 12.5 32.76 12.5 45.25 0l96-96 32.4 32.4c15.12 15.12 40.97 4.41 40.97-16.97V112c.01-8.84-7.15-16-15.99-16z\"]\n};\nvar faChartPie = {\n prefix: 'fas',\n iconName: 'chart-pie',\n icon: [544, 512, [], \"f200\", \"M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z\"]\n};\nvar faCheck = {\n prefix: 'fas',\n iconName: 'check',\n icon: [512, 512, [], \"f00c\", \"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"]\n};\nvar faCheckCircle = {\n prefix: 'fas',\n iconName: 'check-circle',\n icon: [512, 512, [], \"f058\", \"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z\"]\n};\nvar faCheckDouble = {\n prefix: 'fas',\n iconName: 'check-double',\n icon: [512, 512, [], \"f560\", \"M505 174.8l-39.6-39.6c-9.4-9.4-24.6-9.4-33.9 0L192 374.7 80.6 263.2c-9.4-9.4-24.6-9.4-33.9 0L7 302.9c-9.4 9.4-9.4 24.6 0 34L175 505c9.4 9.4 24.6 9.4 33.9 0l296-296.2c9.4-9.5 9.4-24.7.1-34zm-324.3 106c6.2 6.3 16.4 6.3 22.6 0l208-208.2c6.2-6.3 6.2-16.4 0-22.6L366.1 4.7c-6.2-6.3-16.4-6.3-22.6 0L192 156.2l-55.4-55.5c-6.2-6.3-16.4-6.3-22.6 0L68.7 146c-6.2 6.3-6.2 16.4 0 22.6l112 112.2z\"]\n};\nvar faCheckSquare = {\n prefix: 'fas',\n iconName: 'check-square',\n icon: [448, 512, [], \"f14a\", \"M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z\"]\n};\nvar faCheese = {\n prefix: 'fas',\n iconName: 'cheese',\n icon: [512, 512, [], \"f7ef\", \"M0 288v160a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V288zM299.83 32a32 32 0 0 0-21.13 7L0 256h512c0-119.89-94-217.8-212.17-224z\"]\n};\nvar faChess = {\n prefix: 'fas',\n iconName: 'chess',\n icon: [512, 512, [], \"f439\", \"M74 208H64a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h15.94A535.78 535.78 0 0 1 64 384h128a535.78 535.78 0 0 1-15.94-128H192a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-10l33.89-90.38a16 16 0 0 0-15-21.62H144V64h24a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8h-24V8a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v24H88a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v32H55.09a16 16 0 0 0-15 21.62zm173.16 251.58L224 448v-16a16 16 0 0 0-16-16H48a16 16 0 0 0-16 16v16L8.85 459.58A16 16 0 0 0 0 473.89V496a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31zm92.77-157.78l-3.29 82.2h126.72l-3.29-82.21 24.6-20.79A32 32 0 0 0 496 256.54V198a6 6 0 0 0-6-6h-26.38a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H373.1a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H310a6 6 0 0 0-6 6v58.6a32 32 0 0 0 11.36 24.4zM384 304a16 16 0 0 1 32 0v32h-32zm119.16 155.58L480 448v-16a16 16 0 0 0-16-16H336a16 16 0 0 0-16 16v16l-23.15 11.58a16 16 0 0 0-8.85 14.31V496a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31z\"]\n};\nvar faChessBishop = {\n prefix: 'fas',\n iconName: 'chess-bishop',\n icon: [320, 512, [], \"f43a\", \"M8 287.88c0 51.64 22.14 73.83 56 84.6V416h192v-43.52c33.86-10.77 56-33 56-84.6 0-30.61-10.73-67.1-26.69-102.56L185 285.65a8 8 0 0 1-11.31 0l-11.31-11.31a8 8 0 0 1 0-11.31L270.27 155.1c-20.8-37.91-46.47-72.1-70.87-92.59C213.4 59.09 224 47.05 224 32a32 32 0 0 0-32-32h-64a32 32 0 0 0-32 32c0 15 10.6 27.09 24.6 30.51C67.81 106.8 8 214.5 8 287.88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faChessBoard = {\n prefix: 'fas',\n iconName: 'chess-board',\n icon: [512, 512, [], \"f43c\", \"M255.9.2h-64v64h64zM0 64.17v64h64v-64zM128 .2H64v64h64zm64 255.9v64h64v-64zM0 192.12v64h64v-64zM383.85.2h-64v64h64zm128 0h-64v64h64zM128 256.1H64v64h64zM511.8 448v-64h-64v64zm0-128v-64h-64v64zM383.85 512h64v-64h-64zm128-319.88v-64h-64v64zM128 512h64v-64h-64zM0 512h64v-64H0zm255.9 0h64v-64h-64zM0 320.07v64h64v-64zm319.88-191.92v-64h-64v64zm-64 128h64v-64h-64zm-64 128v64h64v-64zm128-64h64v-64h-64zm0-127.95h64v-64h-64zm0 191.93v64h64v-64zM64 384.05v64h64v-64zm128-255.9v-64h-64v64zm191.92 255.9h64v-64h-64zm-128-191.93v-64h-64v64zm128-127.95v64h64v-64zm-128 255.9v64h64v-64zm-64-127.95H128v64h64zm191.92 64h64v-64h-64zM128 128.15H64v64h64zm0 191.92v64h64v-64z\"]\n};\nvar faChessKing = {\n prefix: 'fas',\n iconName: 'chess-king',\n icon: [448, 512, [], \"f43f\", \"M400 448H48a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm16-288H256v-48h40a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8h-40V8a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v40h-40a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h40v48H32a32 32 0 0 0-30.52 41.54L74.56 416h298.88l73.08-214.46A32 32 0 0 0 416 160z\"]\n};\nvar faChessKnight = {\n prefix: 'fas',\n iconName: 'chess-knight',\n icon: [384, 512, [], \"f441\", \"M19 272.47l40.63 18.06a32 32 0 0 0 24.88.47l12.78-5.12a32 32 0 0 0 18.76-20.5l9.22-30.65a24 24 0 0 1 12.55-15.65L159.94 208v50.33a48 48 0 0 1-26.53 42.94l-57.22 28.65A80 80 0 0 0 32 401.48V416h319.86V224c0-106-85.92-192-191.92-192H12A12 12 0 0 0 0 44a16.9 16.9 0 0 0 1.79 7.58L16 80l-9 9a24 24 0 0 0-7 17v137.21a32 32 0 0 0 19 29.26zM52 128a20 20 0 1 1-20 20 20 20 0 0 1 20-20zm316 320H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faChessPawn = {\n prefix: 'fas',\n iconName: 'chess-pawn',\n icon: [320, 512, [], \"f443\", \"M105.1 224H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h16v5.49c0 44-4.14 86.6-24 122.51h176c-19.89-35.91-24-78.51-24-122.51V288h16a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-25.1c29.39-18.38 49.1-50.78 49.1-88a104 104 0 0 0-208 0c0 37.22 19.71 69.62 49.1 88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faChessQueen = {\n prefix: 'fas',\n iconName: 'chess-queen',\n icon: [512, 512, [], \"f445\", \"M256 112a56 56 0 1 0-56-56 56 56 0 0 0 56 56zm176 336H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm72.87-263.84l-28.51-15.92c-7.44-5-16.91-2.46-22.29 4.68a47.59 47.59 0 0 1-47.23 18.23C383.7 186.86 368 164.93 368 141.4a13.4 13.4 0 0 0-13.4-13.4h-38.77c-6 0-11.61 4-12.86 9.91a48 48 0 0 1-93.94 0c-1.25-5.92-6.82-9.91-12.86-9.91H157.4a13.4 13.4 0 0 0-13.4 13.4c0 25.69-19 48.75-44.67 50.49a47.5 47.5 0 0 1-41.54-19.15c-5.28-7.09-14.73-9.45-22.09-4.54l-28.57 16a16 16 0 0 0-5.44 20.47L104.24 416h303.52l102.55-211.37a16 16 0 0 0-5.44-20.47z\"]\n};\nvar faChessRook = {\n prefix: 'fas',\n iconName: 'chess-rook',\n icon: [384, 512, [], \"f447\", \"M368 32h-56a16 16 0 0 0-16 16v48h-48V48a16 16 0 0 0-16-16h-80a16 16 0 0 0-16 16v48H88.1V48a16 16 0 0 0-16-16H16A16 16 0 0 0 0 48v176l64 32c0 48.33-1.54 95-13.21 160h282.42C321.54 351 320 303.72 320 256l64-32V48a16 16 0 0 0-16-16zM224 320h-64v-64a32 32 0 0 1 64 0zm144 128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faChevronCircleDown = {\n prefix: 'fas',\n iconName: 'chevron-circle-down',\n icon: [512, 512, [], \"f13a\", \"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM273 369.9l135.5-135.5c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L256 285.1 154.4 183.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L239 369.9c9.4 9.4 24.6 9.4 34 0z\"]\n};\nvar faChevronCircleLeft = {\n prefix: 'fas',\n iconName: 'chevron-circle-left',\n icon: [512, 512, [], \"f137\", \"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zM142.1 273l135.5 135.5c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L226.9 256l101.6-101.6c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L142.1 239c-9.4 9.4-9.4 24.6 0 34z\"]\n};\nvar faChevronCircleRight = {\n prefix: 'fas',\n iconName: 'chevron-circle-right',\n icon: [512, 512, [], \"f138\", \"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm113.9 231L234.4 103.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L285.1 256 183.5 357.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L369.9 273c9.4-9.4 9.4-24.6 0-34z\"]\n};\nvar faChevronCircleUp = {\n prefix: 'fas',\n iconName: 'chevron-circle-up',\n icon: [512, 512, [], \"f139\", \"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm231-113.9L103.5 277.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L256 226.9l101.6 101.6c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L273 142.1c-9.4-9.4-24.6-9.4-34 0z\"]\n};\nvar faChevronDown = {\n prefix: 'fas',\n iconName: 'chevron-down',\n icon: [448, 512, [], \"f078\", \"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"]\n};\nvar faChevronLeft = {\n prefix: 'fas',\n iconName: 'chevron-left',\n icon: [320, 512, [], \"f053\", \"M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z\"]\n};\nvar faChevronRight = {\n prefix: 'fas',\n iconName: 'chevron-right',\n icon: [320, 512, [], \"f054\", \"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"]\n};\nvar faChevronUp = {\n prefix: 'fas',\n iconName: 'chevron-up',\n icon: [448, 512, [], \"f077\", \"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z\"]\n};\nvar faChild = {\n prefix: 'fas',\n iconName: 'child',\n icon: [384, 512, [], \"f1ae\", \"M120 72c0-39.765 32.235-72 72-72s72 32.235 72 72c0 39.764-32.235 72-72 72s-72-32.236-72-72zm254.627 1.373c-12.496-12.497-32.758-12.497-45.254 0L242.745 160H141.254L54.627 73.373c-12.496-12.497-32.758-12.497-45.254 0-12.497 12.497-12.497 32.758 0 45.255L104 213.254V480c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V368h16v112c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V213.254l94.627-94.627c12.497-12.497 12.497-32.757 0-45.254z\"]\n};\nvar faChurch = {\n prefix: 'fas',\n iconName: 'church',\n icon: [640, 512, [], \"f51d\", \"M464.46 246.68L352 179.2V128h48c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-48V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v48h-48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v51.2l-112.46 67.48A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.65-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.54A32.024 32.024 0 0 0 0 395.96zm620.61-29.42L512 320v192h112c8.84 0 16-7.16 16-16V395.96c0-12.8-7.63-24.37-19.39-29.42z\"]\n};\nvar faCircle = {\n prefix: 'fas',\n iconName: 'circle',\n icon: [512, 512, [], \"f111\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z\"]\n};\nvar faCircleNotch = {\n prefix: 'fas',\n iconName: 'circle-notch',\n icon: [512, 512, [], \"f1ce\", \"M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z\"]\n};\nvar faCity = {\n prefix: 'fas',\n iconName: 'city',\n icon: [640, 512, [], \"f64f\", \"M616 192H480V24c0-13.26-10.74-24-24-24H312c-13.26 0-24 10.74-24 24v72h-64V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v80h-64V16c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80H24c-13.26 0-24 10.74-24 24v360c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V216c0-13.26-10.75-24-24-24zM128 404c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm128 192c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12V76c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 288c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40z\"]\n};\nvar faClinicMedical = {\n prefix: 'fas',\n iconName: 'clinic-medical',\n icon: [576, 512, [], \"f7f2\", \"M288 115L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2zm96 261a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8zm186.69-139.72l-255.94-226a39.85 39.85 0 0 0-53.45 0l-256 226a16 16 0 0 0-1.21 22.6L25.5 282.7a16 16 0 0 0 22.6 1.21L277.42 81.63a16 16 0 0 1 21.17 0L527.91 283.9a16 16 0 0 0 22.6-1.21l21.4-23.82a16 16 0 0 0-1.22-22.59z\"]\n};\nvar faClipboard = {\n prefix: 'fas',\n iconName: 'clipboard',\n icon: [384, 512, [], \"f328\", \"M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z\"]\n};\nvar faClipboardCheck = {\n prefix: 'fas',\n iconName: 'clipboard-check',\n icon: [384, 512, [], \"f46c\", \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm121.2 231.8l-143 141.8c-4.7 4.7-12.3 4.6-17-.1l-82.6-83.3c-4.7-4.7-4.6-12.3.1-17L99.1 285c4.7-4.7 12.3-4.6 17 .1l46 46.4 106-105.2c4.7-4.7 12.3-4.6 17 .1l28.2 28.4c4.7 4.8 4.6 12.3-.1 17z\"]\n};\nvar faClipboardList = {\n prefix: 'fas',\n iconName: 'clipboard-list',\n icon: [384, 512, [], \"f46d\", \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM96 424c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm96-192c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm128 368c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faClock = {\n prefix: 'fas',\n iconName: 'clock',\n icon: [512, 512, [], \"f017\", \"M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm92.49,313h0l-20,25a16,16,0,0,1-22.49,2.5h0l-67-49.72a40,40,0,0,1-15-31.23V112a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16V256l58,42.5A16,16,0,0,1,348.49,321Z\"]\n};\nvar faClone = {\n prefix: 'fas',\n iconName: 'clone',\n icon: [512, 512, [], \"f24d\", \"M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z\"]\n};\nvar faClosedCaptioning = {\n prefix: 'fas',\n iconName: 'closed-captioning',\n icon: [512, 512, [], \"f20a\", \"M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM218.1 287.7c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2.1 48 51.1 70.5 92.3 32.6zm190.4 0c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.5 56.9-172.7 32.1-172.7-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 222.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6z\"]\n};\nvar faCloud = {\n prefix: 'fas',\n iconName: 'cloud',\n icon: [640, 512, [], \"f0c2\", \"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z\"]\n};\nvar faCloudDownloadAlt = {\n prefix: 'fas',\n iconName: 'cloud-download-alt',\n icon: [640, 512, [], \"f381\", \"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z\"]\n};\nvar faCloudMeatball = {\n prefix: 'fas',\n iconName: 'cloud-meatball',\n icon: [512, 512, [], \"f73b\", \"M48 352c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm416 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm-119 11.1c4.6-14.5 1.6-30.8-9.8-42.3-11.5-11.5-27.8-14.4-42.3-9.9-7-13.5-20.7-23-36.9-23s-29.9 9.5-36.9 23c-14.5-4.6-30.8-1.6-42.3 9.9-11.5 11.5-14.4 27.8-9.9 42.3-13.5 7-23 20.7-23 36.9s9.5 29.9 23 36.9c-4.6 14.5-1.6 30.8 9.9 42.3 8.2 8.2 18.9 12.3 29.7 12.3 4.3 0 8.5-1.1 12.6-2.5 7 13.5 20.7 23 36.9 23s29.9-9.5 36.9-23c4.1 1.3 8.3 2.5 12.6 2.5 10.8 0 21.5-4.1 29.7-12.3 11.5-11.5 14.4-27.8 9.8-42.3 13.5-7 23-20.7 23-36.9s-9.5-29.9-23-36.9zM512 224c0-53-43-96-96-96-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h43.4c3.6-8 8.4-15.4 14.8-21.8 13.5-13.5 31.5-21.1 50.8-21.3 13.5-13.2 31.7-20.9 51-20.9s37.5 7.7 51 20.9c19.3.2 37.3 7.8 50.8 21.3 6.4 6.4 11.3 13.8 14.8 21.8H416c53 0 96-43 96-96z\"]\n};\nvar faCloudMoon = {\n prefix: 'fas',\n iconName: 'cloud-moon',\n icon: [576, 512, [], \"f6c3\", \"M342.8 352.7c5.7-9.6 9.2-20.7 9.2-32.7 0-35.3-28.7-64-64-64-17.2 0-32.8 6.9-44.3 17.9-16.3-29.6-47.5-49.9-83.7-49.9-53 0-96 43-96 96 0 2 .5 3.8.6 5.7C27.1 338.8 0 374.1 0 416c0 53 43 96 96 96h240c44.2 0 80-35.8 80-80 0-41.9-32.3-75.8-73.2-79.3zm222.5-54.3c-93.1 17.7-178.5-53.7-178.5-147.7 0-54.2 29-104 76.1-130.8 7.3-4.1 5.4-15.1-2.8-16.7C448.4 1.1 436.7 0 425 0 319.1 0 233.1 85.9 233.1 192c0 8.5.7 16.8 1.8 25 5.9 4.3 11.6 8.9 16.7 14.2 11.4-4.7 23.7-7.2 36.4-7.2 52.9 0 96 43.1 96 96 0 3.6-.2 7.2-.6 10.7 23.6 10.8 42.4 29.5 53.5 52.6 54.4-3.4 103.7-29.3 137.1-70.4 5.3-6.5-.5-16.1-8.7-14.5z\"]\n};\nvar faCloudMoonRain = {\n prefix: 'fas',\n iconName: 'cloud-moon-rain',\n icon: [576, 512, [], \"f73c\", \"M350.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C27.6 232.9 0 265.2 0 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm217.4-1.7c-70.4 13.3-135-40.3-135-110.8 0-40.6 21.9-78 57.5-98.1 5.5-3.1 4.1-11.4-2.1-12.5C479.6.8 470.7 0 461.8 0c-77.9 0-141.1 61.2-144.4 137.9 26.7 11.9 48.2 33.8 58.9 61.7 37.1 14.3 64 47.4 70.2 86.8 5.1.5 10 1.5 15.2 1.5 44.7 0 85.6-20.2 112.6-53.3 4.2-4.8-.2-12-6.4-10.8zM364.5 418.1c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z\"]\n};\nvar faCloudRain = {\n prefix: 'fas',\n iconName: 'cloud-rain',\n icon: [512, 512, [], \"f73d\", \"M416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96zM88 374.2c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0z\"]\n};\nvar faCloudShowersHeavy = {\n prefix: 'fas',\n iconName: 'cloud-showers-heavy',\n icon: [512, 512, [], \"f740\", \"M183.9 370.1c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-192 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm384 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zM416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.2 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96z\"]\n};\nvar faCloudSun = {\n prefix: 'fas',\n iconName: 'cloud-sun',\n icon: [640, 512, [], \"f6c4\", \"M575.2 325.7c.2-1.9.8-3.7.8-5.6 0-35.3-28.7-64-64-64-12.6 0-24.2 3.8-34.1 10-17.6-38.8-56.5-66-101.9-66-61.8 0-112 50.1-112 112 0 3 .7 5.8.9 8.7-49.6 3.7-88.9 44.7-88.9 95.3 0 53 43 96 96 96h272c53 0 96-43 96-96 0-42.1-27.2-77.4-64.8-90.4zm-430.4-22.6c-43.7-43.7-43.7-114.7 0-158.3 43.7-43.7 114.7-43.7 158.4 0 9.7 9.7 16.9 20.9 22.3 32.7 9.8-3.7 20.1-6 30.7-7.5L386 81.1c4-11.9-7.3-23.1-19.2-19.2L279 91.2 237.5 8.4C232-2.8 216-2.8 210.4 8.4L169 91.2 81.1 61.9C69.3 58 58 69.3 61.9 81.1l29.3 87.8-82.8 41.5c-11.2 5.6-11.2 21.5 0 27.1l82.8 41.4-29.3 87.8c-4 11.9 7.3 23.1 19.2 19.2l76.1-25.3c6.1-12.4 14-23.7 23.6-33.5-13.1-5.4-25.4-13.4-36-24zm-4.8-79.2c0 40.8 29.3 74.8 67.9 82.3 8-4.7 16.3-8.8 25.2-11.7 5.4-44.3 31-82.5 67.4-105C287.3 160.4 258 140 224 140c-46.3 0-84 37.6-84 83.9z\"]\n};\nvar faCloudSunRain = {\n prefix: 'fas',\n iconName: 'cloud-sun-rain',\n icon: [576, 512, [], \"f743\", \"M510.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C187.6 233 160 265.2 160 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm-386.4 34.4c-37.4-37.4-37.4-98.3 0-135.8 34.6-34.6 89.1-36.8 126.7-7.4 20-12.9 43.6-20.7 69.2-20.7.7 0 1.3.2 2 .2l8.9-26.7c3.4-10.2-6.3-19.8-16.5-16.4l-75.3 25.1-35.5-71c-4.8-9.6-18.5-9.6-23.3 0l-35.5 71-75.3-25.1c-10.2-3.4-19.8 6.3-16.4 16.5l25.1 75.3-71 35.5c-9.6 4.8-9.6 18.5 0 23.3l71 35.5-25.1 75.3c-3.4 10.2 6.3 19.8 16.5 16.5l59.2-19.7c-.2-2.4-.7-4.7-.7-7.2 0-12.5 2.3-24.5 6.2-35.9-3.6-2.7-7.1-5.2-10.2-8.3zm69.8-58c4.3-24.5 15.8-46.4 31.9-64-9.8-6.2-21.4-9.9-33.8-9.9-35.3 0-64 28.7-64 64 0 18.7 8.2 35.4 21.1 47.1 11.3-15.9 26.6-28.9 44.8-37.2zm330.6 216.2c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z\"]\n};\nvar faCloudUploadAlt = {\n prefix: 'fas',\n iconName: 'cloud-upload-alt',\n icon: [640, 512, [], \"f382\", \"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z\"]\n};\nvar faCocktail = {\n prefix: 'fas',\n iconName: 'cocktail',\n icon: [576, 512, [], \"f561\", \"M296 464h-56V338.78l168.74-168.73c15.52-15.52 4.53-42.05-17.42-42.05H24.68c-21.95 0-32.94 26.53-17.42 42.05L176 338.78V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM432 0c-62.61 0-115.35 40.2-135.18 96h52.54c16.65-28.55 47.27-48 82.64-48 52.93 0 96 43.06 96 96s-43.07 96-96 96c-14.04 0-27.29-3.2-39.32-8.64l-35.26 35.26C379.23 279.92 404.59 288 432 288c79.53 0 144-64.47 144-144S511.53 0 432 0z\"]\n};\nvar faCode = {\n prefix: 'fas',\n iconName: 'code',\n icon: [640, 512, [], \"f121\", \"M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z\"]\n};\nvar faCodeBranch = {\n prefix: 'fas',\n iconName: 'code-branch',\n icon: [384, 512, [], \"f126\", \"M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z\"]\n};\nvar faCoffee = {\n prefix: 'fas',\n iconName: 'coffee',\n icon: [640, 512, [], \"f0f4\", \"M192 384h192c53 0 96-43 96-96h32c70.6 0 128-57.4 128-128S582.6 32 512 32H120c-13.3 0-24 10.7-24 24v232c0 53 43 96 96 96zM512 96c35.3 0 64 28.7 64 64s-28.7 64-64 64h-32V96h32zm47.7 384H48.3c-47.6 0-61-64-36-64h583.3c25 0 11.8 64-35.9 64z\"]\n};\nvar faCog = {\n prefix: 'fas',\n iconName: 'cog',\n icon: [512, 512, [], \"f013\", \"M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faCogs = {\n prefix: 'fas',\n iconName: 'cogs',\n icon: [640, 512, [], \"f085\", \"M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z\"]\n};\nvar faCoins = {\n prefix: 'fas',\n iconName: 'coins',\n icon: [512, 512, [], \"f51e\", \"M0 405.3V448c0 35.3 86 64 192 64s192-28.7 192-64v-42.7C342.7 434.4 267.2 448 192 448S41.3 434.4 0 405.3zM320 128c106 0 192-28.7 192-64S426 0 320 0 128 28.7 128 64s86 64 192 64zM0 300.4V352c0 35.3 86 64 192 64s192-28.7 192-64v-51.6c-41.3 34-116.9 51.6-192 51.6S41.3 334.4 0 300.4zm416 11c57.3-11.1 96-31.7 96-55.4v-42.7c-23.2 16.4-57.3 27.6-96 34.5v63.6zM192 160C86 160 0 195.8 0 240s86 80 192 80 192-35.8 192-80-86-80-192-80zm219.3 56.3c60-10.8 100.7-32 100.7-56.3v-42.7c-35.5 25.1-96.5 38.6-160.7 41.8 29.5 14.3 51.2 33.5 60 57.2z\"]\n};\nvar faColumns = {\n prefix: 'fas',\n iconName: 'columns',\n icon: [512, 512, [], \"f0db\", \"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z\"]\n};\nvar faComment = {\n prefix: 'fas',\n iconName: 'comment',\n icon: [512, 512, [], \"f075\", \"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z\"]\n};\nvar faCommentAlt = {\n prefix: 'fas',\n iconName: 'comment-alt',\n icon: [512, 512, [], \"f27a\", \"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z\"]\n};\nvar faCommentDollar = {\n prefix: 'fas',\n iconName: 'comment-dollar',\n icon: [512, 512, [], \"f651\", \"M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95.01 57.02 130.74C44.46 421.05 2.7 465.97 2.2 466.5A7.995 7.995 0 0 0 8 480c66.26 0 115.99-31.75 140.6-51.38C181.29 440.93 217.59 448 256 448c141.38 0 256-93.12 256-208S397.38 32 256 32zm24 302.44V352c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-17.73c-11.42-1.35-22.28-5.19-31.78-11.46-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2.03 3.18 1.46 6.66 2.22 10.26 2.22h32.78c4.66 0 8.44-3.78 8.44-8.42 0-3.75-2.52-7.08-6.12-8.11l-50.07-14.3c-22.25-6.35-40.01-24.71-42.91-47.67-4.05-32.07 19.03-59.43 49.32-63.05V128c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v17.73c11.42 1.35 22.28 5.19 31.78 11.46 6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2.03a24.516 24.516 0 0 0-10.26-2.22h-32.78c-4.66 0-8.44 3.78-8.44 8.42 0 3.75 2.52 7.08 6.12 8.11l50.07 14.3c22.25 6.36 40.01 24.71 42.91 47.67 4.05 32.06-19.03 59.42-49.32 63.04z\"]\n};\nvar faCommentDots = {\n prefix: 'fas',\n iconName: 'comment-dots',\n icon: [512, 512, [], \"f4ad\", \"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faCommentMedical = {\n prefix: 'fas',\n iconName: 'comment-medical',\n icon: [512, 512, [], \"f7f5\", \"M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95 57 130.74C44.46 421.05 2.7 466 2.2 466.5A8 8 0 0 0 8 480c66.26 0 116-31.75 140.6-51.38A304.66 304.66 0 0 0 256 448c141.39 0 256-93.12 256-208S397.39 32 256 32zm96 232a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8z\"]\n};\nvar faCommentSlash = {\n prefix: 'fas',\n iconName: 'comment-slash',\n icon: [640, 512, [], \"f4b3\", \"M64 240c0 49.6 21.4 95 57 130.7-12.6 50.3-54.3 95.2-54.8 95.8-2.2 2.3-2.8 5.7-1.5 8.7 1.3 2.9 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 27.4 0 53.7-3.6 78.4-10L72.9 186.4c-5.6 17.1-8.9 35-8.9 53.6zm569.8 218.1l-114.4-88.4C554.6 334.1 576 289.2 576 240c0-114.9-114.6-208-256-208-65.1 0-124.2 20.1-169.4 52.7L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z\"]\n};\nvar faComments = {\n prefix: 'fas',\n iconName: 'comments',\n icon: [576, 512, [], \"f086\", \"M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z\"]\n};\nvar faCommentsDollar = {\n prefix: 'fas',\n iconName: 'comments-dollar',\n icon: [576, 512, [], \"f653\", \"M416 192c0-88.37-93.12-160-208-160S0 103.63 0 192c0 34.27 14.13 65.95 37.97 91.98C24.61 314.22 2.52 338.16 2.2 338.5A7.995 7.995 0 0 0 8 352c36.58 0 66.93-12.25 88.73-24.98C128.93 342.76 167.02 352 208 352c114.88 0 208-71.63 208-160zm-224 96v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V96c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07V288c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm346.01 123.99C561.87 385.96 576 354.27 576 320c0-66.94-53.49-124.2-129.33-148.07.86 6.6 1.33 13.29 1.33 20.07 0 105.87-107.66 192-240 192-10.78 0-21.32-.77-31.73-1.88C207.8 439.63 281.77 480 368 480c40.98 0 79.07-9.24 111.27-24.98C501.07 467.75 531.42 480 568 480c3.2 0 6.09-1.91 7.34-4.84 1.27-2.94.66-6.34-1.55-8.67-.31-.33-22.42-24.24-35.78-54.5z\"]\n};\nvar faCompactDisc = {\n prefix: 'fas',\n iconName: 'compact-disc',\n icon: [496, 512, [], \"f51f\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 256H56c0-105.9 86.1-192 192-192v32c-88.2 0-160 71.8-160 160zm160 96c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"]\n};\nvar faCompass = {\n prefix: 'fas',\n iconName: 'compass',\n icon: [496, 512, [], \"f14e\", \"M225.38 233.37c-12.5 12.5-12.5 32.76 0 45.25 12.49 12.5 32.76 12.5 45.25 0 12.5-12.5 12.5-32.76 0-45.25-12.5-12.49-32.76-12.49-45.25 0zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm126.14 148.05L308.17 300.4a31.938 31.938 0 0 1-15.77 15.77l-144.34 65.97c-16.65 7.61-33.81-9.55-26.2-26.2l65.98-144.35a31.938 31.938 0 0 1 15.77-15.77l144.34-65.97c16.65-7.6 33.8 9.55 26.19 26.2z\"]\n};\nvar faCompress = {\n prefix: 'fas',\n iconName: 'compress',\n icon: [448, 512, [], \"f066\", \"M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z\"]\n};\nvar faCompressAlt = {\n prefix: 'fas',\n iconName: 'compress-alt',\n icon: [448, 512, [], \"f422\", \"M4.686 427.314L104 328l-32.922-31.029C55.958 281.851 66.666 256 88.048 256h112C213.303 256 224 266.745 224 280v112c0 21.382-25.803 32.09-40.922 16.971L152 376l-99.314 99.314c-6.248 6.248-16.379 6.248-22.627 0L4.686 449.941c-6.248-6.248-6.248-16.379 0-22.627zM443.314 84.686L344 184l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C234.697 256 224 245.255 224 232V120c0-21.382 25.803-32.09 40.922-16.971L296 136l99.314-99.314c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.248 6.248 6.248 16.379 0 22.627z\"]\n};\nvar faCompressArrowsAlt = {\n prefix: 'fas',\n iconName: 'compress-arrows-alt',\n icon: [512, 512, [], \"f78c\", \"M200 288H88c-21.4 0-32.1 25.8-17 41l32.9 31-99.2 99.3c-6.2 6.2-6.2 16.4 0 22.6l25.4 25.4c6.2 6.2 16.4 6.2 22.6 0L152 408l31.1 33c15.1 15.1 40.9 4.4 40.9-17V312c0-13.3-10.7-24-24-24zm112-64h112c21.4 0 32.1-25.9 17-41l-33-31 99.3-99.3c6.2-6.2 6.2-16.4 0-22.6L481.9 4.7c-6.2-6.2-16.4-6.2-22.6 0L360 104l-31.1-33C313.8 55.9 288 66.6 288 88v112c0 13.3 10.7 24 24 24zm96 136l33-31.1c15.1-15.1 4.4-40.9-17-40.9H312c-13.3 0-24 10.7-24 24v112c0 21.4 25.9 32.1 41 17l31-32.9 99.3 99.3c6.2 6.2 16.4 6.2 22.6 0l25.4-25.4c6.2-6.2 6.2-16.4 0-22.6L408 360zM183 71.1L152 104 52.7 4.7c-6.2-6.2-16.4-6.2-22.6 0L4.7 30.1c-6.2 6.2-6.2 16.4 0 22.6L104 152l-33 31.1C55.9 198.2 66.6 224 88 224h112c13.3 0 24-10.7 24-24V88c0-21.3-25.9-32-41-16.9z\"]\n};\nvar faConciergeBell = {\n prefix: 'fas',\n iconName: 'concierge-bell',\n icon: [512, 512, [], \"f562\", \"M288 130.54V112h16c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h16v18.54C115.49 146.11 32 239.18 32 352h448c0-112.82-83.49-205.89-192-221.46zM496 384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faCookie = {\n prefix: 'fas',\n iconName: 'cookie',\n icon: [512, 512, [], \"f563\", \"M510.37 254.79l-12.08-76.26a132.493 132.493 0 0 0-37.16-72.95l-54.76-54.75c-19.73-19.72-45.18-32.7-72.71-37.05l-76.7-12.15c-27.51-4.36-55.69.11-80.52 12.76L107.32 49.6a132.25 132.25 0 0 0-57.79 57.8l-35.1 68.88a132.602 132.602 0 0 0-12.82 80.94l12.08 76.27a132.493 132.493 0 0 0 37.16 72.95l54.76 54.75a132.087 132.087 0 0 0 72.71 37.05l76.7 12.14c27.51 4.36 55.69-.11 80.52-12.75l69.12-35.21a132.302 132.302 0 0 0 57.79-57.8l35.1-68.87c12.71-24.96 17.2-53.3 12.82-80.96zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faCookieBite = {\n prefix: 'fas',\n iconName: 'cookie-bite',\n icon: [512, 512, [], \"f564\", \"M510.52 255.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17 0-127-56.49-127.86-126.45-27.26-4.14-55.13.3-79.72 12.82l-69.13 35.22a132.221 132.221 0 0 0-57.79 57.81l-35.1 68.88a132.645 132.645 0 0 0-12.82 80.95l12.08 76.27a132.521 132.521 0 0 0 37.16 72.96l54.77 54.76a132.036 132.036 0 0 0 72.71 37.06l76.71 12.15c27.51 4.36 55.7-.11 80.53-12.76l69.13-35.21a132.273 132.273 0 0 0 57.79-57.81l35.1-68.88c12.56-24.64 17.01-52.58 12.91-79.91zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faCopy = {\n prefix: 'fas',\n iconName: 'copy',\n icon: [448, 512, [], \"f0c5\", \"M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z\"]\n};\nvar faCopyright = {\n prefix: 'fas',\n iconName: 'copyright',\n icon: [512, 512, [], \"f1f9\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm117.134 346.753c-1.592 1.867-39.776 45.731-109.851 45.731-84.692 0-144.484-63.26-144.484-145.567 0-81.303 62.004-143.401 143.762-143.401 66.957 0 101.965 37.315 103.422 38.904a12 12 0 0 1 1.238 14.623l-22.38 34.655c-4.049 6.267-12.774 7.351-18.234 2.295-.233-.214-26.529-23.88-61.88-23.88-46.116 0-73.916 33.575-73.916 76.082 0 39.602 25.514 79.692 74.277 79.692 38.697 0 65.28-28.338 65.544-28.625 5.132-5.565 14.059-5.033 18.508 1.053l24.547 33.572a12.001 12.001 0 0 1-.553 14.866z\"]\n};\nvar faCouch = {\n prefix: 'fas',\n iconName: 'couch',\n icon: [640, 512, [], \"f4b8\", \"M160 224v64h320v-64c0-35.3 28.7-64 64-64h32c0-53-43-96-96-96H160c-53 0-96 43-96 96h32c35.3 0 64 28.7 64 64zm416-32h-32c-17.7 0-32 14.3-32 32v96H128v-96c0-17.7-14.3-32-32-32H64c-35.3 0-64 28.7-64 64 0 23.6 13 44 32 55.1V432c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-16h384v16c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V311.1c19-11.1 32-31.5 32-55.1 0-35.3-28.7-64-64-64z\"]\n};\nvar faCreditCard = {\n prefix: 'fas',\n iconName: 'credit-card',\n icon: [576, 512, [], \"f09d\", \"M0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V256H0v176zm192-68c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-40zm-128 0c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM576 80v48H0V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48z\"]\n};\nvar faCrop = {\n prefix: 'fas',\n iconName: 'crop',\n icon: [512, 512, [], \"f125\", \"M488 352h-40V109.25l59.31-59.31c6.25-6.25 6.25-16.38 0-22.63L484.69 4.69c-6.25-6.25-16.38-6.25-22.63 0L402.75 64H192v96h114.75L160 306.75V24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v264c0 13.25 10.75 24 24 24h232v-96H205.25L352 205.25V488c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"]\n};\nvar faCropAlt = {\n prefix: 'fas',\n iconName: 'crop-alt',\n icon: [512, 512, [], \"f565\", \"M488 352h-40V96c0-17.67-14.33-32-32-32H192v96h160v328c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24zM160 24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v256c0 17.67 14.33 32 32 32h224v-96H160V24z\"]\n};\nvar faCross = {\n prefix: 'fas',\n iconName: 'cross',\n icon: [384, 512, [], \"f654\", \"M352 128h-96V32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h96v224c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V256h96c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"]\n};\nvar faCrosshairs = {\n prefix: 'fas',\n iconName: 'crosshairs',\n icon: [512, 512, [], \"f05b\", \"M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z\"]\n};\nvar faCrow = {\n prefix: 'fas',\n iconName: 'crow',\n icon: [640, 512, [], \"f520\", \"M544 32h-16.36C513.04 12.68 490.09 0 464 0c-44.18 0-80 35.82-80 80v20.98L12.09 393.57A30.216 30.216 0 0 0 0 417.74c0 22.46 23.64 37.07 43.73 27.03L165.27 384h96.49l44.41 120.1c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38L312.94 384H352c1.91 0 3.76-.23 5.66-.29l44.51 120.38c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38l-41.24-111.53C485.74 352.8 544 279.26 544 192v-80l96-16c0-35.35-42.98-64-96-64zm-80 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faCrown = {\n prefix: 'fas',\n iconName: 'crown',\n icon: [640, 512, [], \"f521\", \"M528 448H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm64-320c-26.5 0-48 21.5-48 48 0 7.1 1.6 13.7 4.4 19.8L476 239.2c-15.4 9.2-35.3 4-44.2-11.6L350.3 85C361 76.2 368 63 368 48c0-26.5-21.5-48-48-48s-48 21.5-48 48c0 15 7 28.2 17.7 37l-81.5 142.6c-8.9 15.6-28.9 20.8-44.2 11.6l-72.3-43.4c2.7-6 4.4-12.7 4.4-19.8 0-26.5-21.5-48-48-48S0 149.5 0 176s21.5 48 48 48c2.6 0 5.2-.4 7.7-.8L128 416h384l72.3-192.8c2.5.4 5.1.8 7.7.8 26.5 0 48-21.5 48-48s-21.5-48-48-48z\"]\n};\nvar faCrutch = {\n prefix: 'fas',\n iconName: 'crutch',\n icon: [512, 512, [], \"f7f7\", \"M507.31 185.71l-181-181a16 16 0 0 0-22.62 0L281 27.31a16 16 0 0 0 0 22.63l181 181a16 16 0 0 0 22.63 0l22.62-22.63a16 16 0 0 0 .06-22.6zm-179.54 66.41l-67.89-67.89 55.1-55.1-45.25-45.25-109.67 109.67a96.08 96.08 0 0 0-25.67 46.29L106.65 360.1l-102 102a16 16 0 0 0 0 22.63l22.62 22.62a16 16 0 0 0 22.63 0l102-102 120.25-27.75a95.88 95.88 0 0 0 46.29-25.65l109.68-109.68L382.87 197zm-54.57 54.57a32 32 0 0 1-15.45 8.54l-79.3 18.32 18.3-79.3a32.22 32.22 0 0 1 8.56-15.45l9.31-9.31 67.89 67.89z\"]\n};\nvar faCube = {\n prefix: 'fas',\n iconName: 'cube',\n icon: [512, 512, [], \"f1b2\", \"M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z\"]\n};\nvar faCubes = {\n prefix: 'fas',\n iconName: 'cubes',\n icon: [512, 512, [], \"f1b3\", \"M488.6 250.2L392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z\"]\n};\nvar faCut = {\n prefix: 'fas',\n iconName: 'cut',\n icon: [448, 512, [], \"f0c4\", \"M278.06 256L444.48 89.57c4.69-4.69 4.69-12.29 0-16.97-32.8-32.8-85.99-32.8-118.79 0L210.18 188.12l-24.86-24.86c4.31-10.92 6.68-22.81 6.68-35.26 0-53.02-42.98-96-96-96S0 74.98 0 128s42.98 96 96 96c4.54 0 8.99-.32 13.36-.93L142.29 256l-32.93 32.93c-4.37-.61-8.83-.93-13.36-.93-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-12.45-2.37-24.34-6.68-35.26l24.86-24.86L325.69 439.4c32.8 32.8 85.99 32.8 118.79 0 4.69-4.68 4.69-12.28 0-16.97L278.06 256zM96 160c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm0 256c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\"]\n};\nvar faDatabase = {\n prefix: 'fas',\n iconName: 'database',\n icon: [448, 512, [], \"f1c0\", \"M448 73.143v45.714C448 159.143 347.667 192 224 192S0 159.143 0 118.857V73.143C0 32.857 100.333 0 224 0s224 32.857 224 73.143zM448 176v102.857C448 319.143 347.667 352 224 352S0 319.143 0 278.857V176c48.125 33.143 136.208 48.572 224 48.572S399.874 209.143 448 176zm0 160v102.857C448 479.143 347.667 512 224 512S0 479.143 0 438.857V336c48.125 33.143 136.208 48.572 224 48.572S399.874 369.143 448 336z\"]\n};\nvar faDeaf = {\n prefix: 'fas',\n iconName: 'deaf',\n icon: [512, 512, [], \"f2a4\", \"M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm268.485-52.201L480.2 3.515c-4.687-4.686-12.284-4.686-16.971 0L376.2 90.544c-4.686 4.686-4.686 12.284 0 16.971l28.285 28.285c4.686 4.686 12.284 4.686 16.97 0l87.03-87.029c4.687-4.688 4.687-12.286 0-16.972zM168.97 314.745c-4.686-4.686-12.284-4.686-16.97 0L3.515 463.23c-4.686 4.686-4.686 12.284 0 16.971L31.8 508.485c4.687 4.686 12.284 4.686 16.971 0L197.256 360c4.686-4.686 4.686-12.284 0-16.971l-28.286-28.284z\"]\n};\nvar faDemocrat = {\n prefix: 'fas',\n iconName: 'democrat',\n icon: [640, 512, [], \"f747\", \"M637.3 256.9l-19.6-29.4c-28.2-42.3-75.3-67.5-126.1-67.5H256l-81.2-81.2c20.1-20.1 22.6-51.1 7.5-73.9-3.4-5.2-10.8-5.9-15.2-1.5l-41.8 41.8L82.4 2.4c-3.6-3.6-9.6-3-12.4 1.2-12.3 18.6-10.3 44 6.1 60.4 3.3 3.3 7.3 5.3 11.3 7.5-2.2 1.7-4.7 3.1-6.4 5.4L6.4 176.2c-7.3 9.7-8.4 22.7-3 33.5l14.3 28.6c5.4 10.8 16.5 17.7 28.6 17.7h31c8.5 0 16.6-3.4 22.6-9.4L138 212l54 108h352v-77.8c16.2 12.2 18.3 17.6 40.1 50.3 4.9 7.4 14.8 9.3 22.2 4.4l26.6-17.7c7.3-5 9.3-14.9 4.4-22.3zm-341.1-13.6l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L256 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L368 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L480 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zM192 496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80h160v80c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V352H192v144z\"]\n};\nvar faDesktop = {\n prefix: 'fas',\n iconName: 'desktop',\n icon: [576, 512, [], \"f108\", \"M528 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h192l-16 48h-72c-13.3 0-24 10.7-24 24s10.7 24 24 24h272c13.3 0 24-10.7 24-24s-10.7-24-24-24h-72l-16-48h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h448v288z\"]\n};\nvar faDharmachakra = {\n prefix: 'fas',\n iconName: 'dharmachakra',\n icon: [512, 512, [], \"f655\", \"M495 225.06l-17.22 1.08c-5.27-39.49-20.79-75.64-43.86-105.84l12.95-11.43c6.92-6.11 7.25-16.79.73-23.31L426.44 64.4c-6.53-6.53-17.21-6.19-23.31.73L391.7 78.07c-30.2-23.06-66.35-38.58-105.83-43.86L286.94 17c.58-9.21-6.74-17-15.97-17h-29.94c-9.23 0-16.54 7.79-15.97 17l1.08 17.22c-39.49 5.27-75.64 20.79-105.83 43.86l-11.43-12.95c-6.11-6.92-16.79-7.25-23.31-.73L64.4 85.56c-6.53 6.53-6.19 17.21.73 23.31l12.95 11.43c-23.06 30.2-38.58 66.35-43.86 105.84L17 225.06c-9.21-.58-17 6.74-17 15.97v29.94c0 9.23 7.79 16.54 17 15.97l17.22-1.08c5.27 39.49 20.79 75.64 43.86 105.83l-12.95 11.43c-6.92 6.11-7.25 16.79-.73 23.31l21.17 21.17c6.53 6.53 17.21 6.19 23.31-.73l11.43-12.95c30.2 23.06 66.35 38.58 105.84 43.86L225.06 495c-.58 9.21 6.74 17 15.97 17h29.94c9.23 0 16.54-7.79 15.97-17l-1.08-17.22c39.49-5.27 75.64-20.79 105.84-43.86l11.43 12.95c6.11 6.92 16.79 7.25 23.31.73l21.17-21.17c6.53-6.53 6.19-17.21-.73-23.31l-12.95-11.43c23.06-30.2 38.58-66.35 43.86-105.83l17.22 1.08c9.21.58 17-6.74 17-15.97v-29.94c-.01-9.23-7.8-16.54-17.01-15.97zM281.84 98.61c24.81 4.07 47.63 13.66 67.23 27.78l-42.62 48.29c-8.73-5.44-18.32-9.54-28.62-11.95l4.01-64.12zm-51.68 0l4.01 64.12c-10.29 2.41-19.89 6.52-28.62 11.95l-42.62-48.29c19.6-14.12 42.42-23.71 67.23-27.78zm-103.77 64.33l48.3 42.61c-5.44 8.73-9.54 18.33-11.96 28.62l-64.12-4.01c4.07-24.81 13.66-47.62 27.78-67.22zm-27.78 118.9l64.12-4.01c2.41 10.29 6.52 19.89 11.95 28.62l-48.29 42.62c-14.12-19.6-23.71-42.42-27.78-67.23zm131.55 131.55c-24.81-4.07-47.63-13.66-67.23-27.78l42.61-48.3c8.73 5.44 18.33 9.54 28.62 11.96l-4 64.12zM256 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm25.84 125.39l-4.01-64.12c10.29-2.41 19.89-6.52 28.62-11.96l42.61 48.3c-19.6 14.12-42.41 23.71-67.22 27.78zm103.77-64.33l-48.29-42.62c5.44-8.73 9.54-18.32 11.95-28.62l64.12 4.01c-4.07 24.82-13.66 47.64-27.78 67.23zm-36.34-114.89c-2.41-10.29-6.52-19.89-11.96-28.62l48.3-42.61c14.12 19.6 23.71 42.42 27.78 67.23l-64.12 4z\"]\n};\nvar faDiagnoses = {\n prefix: 'fas',\n iconName: 'diagnoses',\n icon: [640, 512, [], \"f470\", \"M496 256c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-176-80c48.5 0 88-39.5 88-88S368.5 0 320 0s-88 39.5-88 88 39.5 88 88 88zM59.8 364c10.2 15.3 29.3 17.8 42.9 9.8 16.2-9.6 56.2-31.7 105.3-48.6V416h224v-90.7c49.1 16.8 89.1 39 105.3 48.6 13.6 8 32.7 5.3 42.9-9.8l17.8-26.7c8.8-13.2 7.6-34.6-10-45.1-11.9-7.1-29.7-17-51.1-27.4-28.1 46.1-99.4 17.8-87.7-35.1C409.3 217.2 365.1 208 320 208c-57 0-112.9 14.5-160 32.2-.2 40.2-47.6 63.3-79.2 36-11.2 6-21.3 11.6-28.7 16-17.6 10.5-18.8 31.8-10 45.1L59.8 364zM368 344c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-160 8c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm512 192H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"]\n};\nvar faDice = {\n prefix: 'fas',\n iconName: 'dice',\n icon: [640, 512, [], \"f522\", \"M592 192H473.26c12.69 29.59 7.12 65.2-17 89.32L320 417.58V464c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V240c0-26.51-21.49-48-48-48zM480 376c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm-46.37-186.7L258.7 14.37c-19.16-19.16-50.23-19.16-69.39 0L14.37 189.3c-19.16 19.16-19.16 50.23 0 69.39L189.3 433.63c19.16 19.16 50.23 19.16 69.39 0L433.63 258.7c19.16-19.17 19.16-50.24 0-69.4zM96 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faDiceD20 = {\n prefix: 'fas',\n iconName: 'dice-d20',\n icon: [480, 512, [], \"f6cf\", \"M106.75 215.06L1.2 370.95c-3.08 5 .1 11.5 5.93 12.14l208.26 22.07-108.64-190.1zM7.41 315.43L82.7 193.08 6.06 147.1c-2.67-1.6-6.06.32-6.06 3.43v162.81c0 4.03 5.29 5.53 7.41 2.09zM18.25 423.6l194.4 87.66c5.3 2.45 11.35-1.43 11.35-7.26v-65.67l-203.55-22.3c-4.45-.5-6.23 5.59-2.2 7.57zm81.22-257.78L179.4 22.88c4.34-7.06-3.59-15.25-10.78-11.14L17.81 110.35c-2.47 1.62-2.39 5.26.13 6.78l81.53 48.69zM240 176h109.21L253.63 7.62C250.5 2.54 245.25 0 240 0s-10.5 2.54-13.63 7.62L130.79 176H240zm233.94-28.9l-76.64 45.99 75.29 122.35c2.11 3.44 7.41 1.94 7.41-2.1V150.53c0-3.11-3.39-5.03-6.06-3.43zm-93.41 18.72l81.53-48.7c2.53-1.52 2.6-5.16.13-6.78l-150.81-98.6c-7.19-4.11-15.12 4.08-10.78 11.14l79.93 142.94zm79.02 250.21L256 438.32v65.67c0 5.84 6.05 9.71 11.35 7.26l194.4-87.66c4.03-1.97 2.25-8.06-2.2-7.56zm-86.3-200.97l-108.63 190.1 208.26-22.07c5.83-.65 9.01-7.14 5.93-12.14L373.25 215.06zM240 208H139.57L240 383.75 340.43 208H240z\"]\n};\nvar faDiceD6 = {\n prefix: 'fas',\n iconName: 'dice-d6',\n icon: [448, 512, [], \"f6d1\", \"M422.19 109.95L256.21 9.07c-19.91-12.1-44.52-12.1-64.43 0L25.81 109.95c-5.32 3.23-5.29 11.27.06 14.46L224 242.55l198.14-118.14c5.35-3.19 5.38-11.22.05-14.46zm13.84 44.63L240 271.46v223.82c0 12.88 13.39 20.91 24.05 14.43l152.16-92.48c19.68-11.96 31.79-33.94 31.79-57.7v-197.7c0-6.41-6.64-10.43-11.97-7.25zM0 161.83v197.7c0 23.77 12.11 45.74 31.79 57.7l152.16 92.47c10.67 6.48 24.05-1.54 24.05-14.43V271.46L11.97 154.58C6.64 151.4 0 155.42 0 161.83z\"]\n};\nvar faDiceFive = {\n prefix: 'fas',\n iconName: 'dice-five',\n icon: [448, 512, [], \"f523\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceFour = {\n prefix: 'fas',\n iconName: 'dice-four',\n icon: [448, 512, [], \"f524\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceOne = {\n prefix: 'fas',\n iconName: 'dice-one',\n icon: [448, 512, [], \"f525\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM224 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceSix = {\n prefix: 'fas',\n iconName: 'dice-six',\n icon: [448, 512, [], \"f526\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceThree = {\n prefix: 'fas',\n iconName: 'dice-three',\n icon: [448, 512, [], \"f527\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceTwo = {\n prefix: 'fas',\n iconName: 'dice-two',\n icon: [448, 512, [], \"f528\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDigitalTachograph = {\n prefix: 'fas',\n iconName: 'digital-tachograph',\n icon: [640, 512, [], \"f566\", \"M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zM304 352c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8zM72 288v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H80c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm40-64c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-48c0-8.84 7.16-16 16-16h208c8.84 0 16 7.16 16 16v48zm272 128c0 4.42-3.58 8-8 8H344c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8z\"]\n};\nvar faDirections = {\n prefix: 'fas',\n iconName: 'directions',\n icon: [512, 512, [], \"f5eb\", \"M502.61 233.32L278.68 9.39c-12.52-12.52-32.83-12.52-45.36 0L9.39 233.32c-12.52 12.53-12.52 32.83 0 45.36l223.93 223.93c12.52 12.53 32.83 12.53 45.36 0l223.93-223.93c12.52-12.53 12.52-32.83 0-45.36zm-100.98 12.56l-84.21 77.73c-5.12 4.73-13.43 1.1-13.43-5.88V264h-96v64c0 4.42-3.58 8-8 8h-32c-4.42 0-8-3.58-8-8v-80c0-17.67 14.33-32 32-32h112v-53.73c0-6.97 8.3-10.61 13.43-5.88l84.21 77.73c3.43 3.17 3.43 8.59 0 11.76z\"]\n};\nvar faDisease = {\n prefix: 'fas',\n iconName: 'disease',\n icon: [512, 512, [], \"f7fa\", \"M472.29 195.9l-67.06-23c-19.28-6.6-33.54-20.92-38.14-38.31l-16-60.45c-11.58-43.77-76.57-57.13-110-22.62L195 99.24c-13.26 13.71-33.54 20.93-54.2 19.31l-71.9-5.62c-52-4.07-86.93 44.89-59 82.84l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24l-28.43 57C4 396.67 47.46 440.29 98.11 429.23l70-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101 7.57 104.45-37.22l4.7-61.86c1.35-17.8 12.8-33.87 30.63-43l62-31.74c44.84-22.96 39.55-80.17-8.99-96.79zM160 256a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm128 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm16-128a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\"]\n};\nvar faDivide = {\n prefix: 'fas',\n iconName: 'divide',\n icon: [448, 512, [], \"f529\", \"M224 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm0-192c35.35 0 64-28.65 64-64s-28.65-64-64-64-64 28.65-64 64 28.65 64 64 64zm192 48H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"]\n};\nvar faDizzy = {\n prefix: 'fas',\n iconName: 'dizzy',\n icon: [496, 512, [], \"f567\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-96 206.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L174.6 192l28.7 28.7c15.2 15.2-7.9 37.4-22.6 22.6L152 214.6zM248 416c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm147.3-195.3c15.2 15.2-7.9 37.4-22.6 22.6L344 214.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L366.6 192l28.7 28.7z\"]\n};\nvar faDna = {\n prefix: 'fas',\n iconName: 'dna',\n icon: [448, 512, [], \"f471\", \"M.1 494.1c-1.1 9.5 6.3 17.8 15.9 17.8l32.3.1c8.1 0 14.9-5.9 16-13.9.7-4.9 1.8-11.1 3.4-18.1H380c1.6 6.9 2.9 13.2 3.5 18.1 1.1 8 7.9 14 16 13.9l32.3-.1c9.6 0 17.1-8.3 15.9-17.8-4.6-37.9-25.6-129-118.9-207.7-17.6 12.4-37.1 24.2-58.5 35.4 6.2 4.6 11.4 9.4 17 14.2H159.7c21.3-18.1 47-35.6 78.7-51.4C410.5 199.1 442.1 65.8 447.9 17.9 449 8.4 441.6.1 432 .1L399.6 0c-8.1 0-14.9 5.9-16 13.9-.7 4.9-1.8 11.1-3.4 18.1H67.8c-1.6-7-2.7-13.1-3.4-18.1-1.1-8-7.9-14-16-13.9L16.1.1C6.5.1-1 8.4.1 17.9 5.3 60.8 31.4 171.8 160 256 31.5 340.2 5.3 451.2.1 494.1zM224 219.6c-25.1-13.7-46.4-28.4-64.3-43.6h128.5c-17.8 15.2-39.1 30-64.2 43.6zM355.1 96c-5.8 10.4-12.8 21.1-21 32H114c-8.3-10.9-15.3-21.6-21-32h262.1zM92.9 416c5.8-10.4 12.8-21.1 21-32h219.4c8.3 10.9 15.4 21.6 21.2 32H92.9z\"]\n};\nvar faDog = {\n prefix: 'fas',\n iconName: 'dog',\n icon: [576, 512, [], \"f6d3\", \"M298.06,224,448,277.55V496a16,16,0,0,1-16,16H368a16,16,0,0,1-16-16V384H192V496a16,16,0,0,1-16,16H112a16,16,0,0,1-16-16V282.09C58.84,268.84,32,233.66,32,192a32,32,0,0,1,64,0,32.06,32.06,0,0,0,32,32ZM544,112v32a64,64,0,0,1-64,64H448v35.58L320,197.87V48c0-14.25,17.22-21.39,27.31-11.31L374.59,64h53.63c10.91,0,23.75,7.92,28.62,17.69L464,96h64A16,16,0,0,1,544,112Zm-112,0a16,16,0,1,0-16,16A16,16,0,0,0,432,112Z\"]\n};\nvar faDollarSign = {\n prefix: 'fas',\n iconName: 'dollar-sign',\n icon: [288, 512, [], \"f155\", \"M209.2 233.4l-108-31.6C88.7 198.2 80 186.5 80 173.5c0-16.3 13.2-29.5 29.5-29.5h66.3c12.2 0 24.2 3.7 34.2 10.5 6.1 4.1 14.3 3.1 19.5-2l34.8-34c7.1-6.9 6.1-18.4-1.8-24.5C238 74.8 207.4 64.1 176 64V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48h-2.5C45.8 64-5.4 118.7.5 183.6c4.2 46.1 39.4 83.6 83.8 96.6l102.5 30c12.5 3.7 21.2 15.3 21.2 28.3 0 16.3-13.2 29.5-29.5 29.5h-66.3C100 368 88 364.3 78 357.5c-6.1-4.1-14.3-3.1-19.5 2l-34.8 34c-7.1 6.9-6.1 18.4 1.8 24.5 24.5 19.2 55.1 29.9 86.5 30v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48.2c46.6-.9 90.3-28.6 105.7-72.7 21.5-61.6-14.6-124.8-72.5-141.7z\"]\n};\nvar faDolly = {\n prefix: 'fas',\n iconName: 'dolly',\n icon: [576, 512, [], \"f472\", \"M294.2 277.7c18 5 34.7 13.4 49.5 24.7l161.5-53.8c8.4-2.8 12.9-11.9 10.1-20.2L454.9 47.2c-2.8-8.4-11.9-12.9-20.2-10.1l-61.1 20.4 33.1 99.4L346 177l-33.1-99.4-61.6 20.5c-8.4 2.8-12.9 11.9-10.1 20.2l53 159.4zm281 48.7L565 296c-2.8-8.4-11.9-12.9-20.2-10.1l-213.5 71.2c-17.2-22-43.6-36.4-73.5-37L158.4 21.9C154 8.8 141.8 0 128 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h88.9l92.2 276.7c-26.1 20.4-41.7 53.6-36 90.5 6.1 39.4 37.9 72.3 77.3 79.2 60.2 10.7 112.3-34.8 113.4-92.6l213.3-71.2c8.3-2.8 12.9-11.8 10.1-20.2zM256 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"]\n};\nvar faDollyFlatbed = {\n prefix: 'fas',\n iconName: 'dolly-flatbed',\n icon: [640, 512, [], \"f474\", \"M208 320h384c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H448v128l-48-32-48 32V32H208c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zm416 64H128V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h82.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H624c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"]\n};\nvar faDonate = {\n prefix: 'fas',\n iconName: 'donate',\n icon: [512, 512, [], \"f4b9\", \"M256 416c114.9 0 208-93.1 208-208S370.9 0 256 0 48 93.1 48 208s93.1 208 208 208zM233.8 97.4V80.6c0-9.2 7.4-16.6 16.6-16.6h11.1c9.2 0 16.6 7.4 16.6 16.6v17c15.5.8 30.5 6.1 43 15.4 5.6 4.1 6.2 12.3 1.2 17.1L306 145.6c-3.8 3.7-9.5 3.8-14 1-5.4-3.4-11.4-5.1-17.8-5.1h-38.9c-9 0-16.3 8.2-16.3 18.3 0 8.2 5 15.5 12.1 17.6l62.3 18.7c25.7 7.7 43.7 32.4 43.7 60.1 0 34-26.4 61.5-59.1 62.4v16.8c0 9.2-7.4 16.6-16.6 16.6h-11.1c-9.2 0-16.6-7.4-16.6-16.6v-17c-15.5-.8-30.5-6.1-43-15.4-5.6-4.1-6.2-12.3-1.2-17.1l16.3-15.5c3.8-3.7 9.5-3.8 14-1 5.4 3.4 11.4 5.1 17.8 5.1h38.9c9 0 16.3-8.2 16.3-18.3 0-8.2-5-15.5-12.1-17.6l-62.3-18.7c-25.7-7.7-43.7-32.4-43.7-60.1.1-34 26.4-61.5 59.1-62.4zM480 352h-32.5c-19.6 26-44.6 47.7-73 64h63.8c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8h63.8c-28.4-16.3-53.3-38-73-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32z\"]\n};\nvar faDoorClosed = {\n prefix: 'fas',\n iconName: 'door-closed',\n icon: [640, 512, [], \"f52a\", \"M624 448H512V50.8C512 22.78 490.47 0 464 0H175.99c-26.47 0-48 22.78-48 50.8V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM415.99 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32c.01 17.67-14.32 32-32 32z\"]\n};\nvar faDoorOpen = {\n prefix: 'fas',\n iconName: 'door-open',\n icon: [640, 512, [], \"f52b\", \"M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z\"]\n};\nvar faDotCircle = {\n prefix: 'fas',\n iconName: 'dot-circle',\n icon: [512, 512, [], \"f192\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z\"]\n};\nvar faDove = {\n prefix: 'fas',\n iconName: 'dove',\n icon: [512, 512, [], \"f4ba\", \"M288 167.2v-28.1c-28.2-36.3-47.1-79.3-54.1-125.2-2.1-13.5-19-18.8-27.8-8.3-21.1 24.9-37.7 54.1-48.9 86.5 34.2 38.3 80 64.6 130.8 75.1zM400 64c-44.2 0-80 35.9-80 80.1v59.4C215.6 197.3 127 133 87 41.8c-5.5-12.5-23.2-13.2-29-.9C41.4 76 32 115.2 32 156.6c0 70.8 34.1 136.9 85.1 185.9 13.2 12.7 26.1 23.2 38.9 32.8l-143.9 36C1.4 414-3.4 426.4 2.6 435.7 20 462.6 63 508.2 155.8 512c8 .3 16-2.6 22.1-7.9l65.2-56.1H320c88.4 0 160-71.5 160-159.9V128l32-64H400zm0 96.1c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faDownload = {\n prefix: 'fas',\n iconName: 'download',\n icon: [512, 512, [], \"f019\", \"M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\"]\n};\nvar faDraftingCompass = {\n prefix: 'fas',\n iconName: 'drafting-compass',\n icon: [512, 512, [], \"f568\", \"M457.01 344.42c-25.05 20.33-52.63 37.18-82.54 49.05l54.38 94.19 53.95 23.04c9.81 4.19 20.89-2.21 22.17-12.8l7.02-58.25-54.98-95.23zm42.49-94.56c4.86-7.67 1.89-17.99-6.05-22.39l-28.07-15.57c-7.48-4.15-16.61-1.46-21.26 5.72C403.01 281.15 332.25 320 256 320c-23.93 0-47.23-4.25-69.41-11.53l67.36-116.68c.7.02 1.34.21 2.04.21s1.35-.19 2.04-.21l51.09 88.5c31.23-8.96 59.56-25.75 82.61-48.92l-51.79-89.71C347.39 128.03 352 112.63 352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96c0 16.63 4.61 32.03 12.05 45.66l-68.3 118.31c-12.55-11.61-23.96-24.59-33.68-39-4.79-7.1-13.97-9.62-21.38-5.33l-27.75 16.07c-7.85 4.54-10.63 14.9-5.64 22.47 15.57 23.64 34.69 44.21 55.98 62.02L0 439.66l7.02 58.25c1.28 10.59 12.36 16.99 22.17 12.8l53.95-23.04 70.8-122.63C186.13 377.28 220.62 384 256 384c99.05 0 190.88-51.01 243.5-134.14zM256 64c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.33-32-32 14.33-32 32-32z\"]\n};\nvar faDragon = {\n prefix: 'fas',\n iconName: 'dragon',\n icon: [640, 512, [], \"f6d5\", \"M18.32 255.78L192 223.96l-91.28 68.69c-10.08 10.08-2.94 27.31 11.31 27.31h222.7c-9.44-26.4-14.73-54.47-14.73-83.38v-42.27l-119.73-87.6c-23.82-15.88-55.29-14.01-77.06 4.59L5.81 227.64c-12.38 10.33-3.45 30.42 12.51 28.14zm556.87 34.1l-100.66-50.31A47.992 47.992 0 0 1 448 196.65v-36.69h64l28.09 22.63c6 6 14.14 9.37 22.63 9.37h30.97a32 32 0 0 0 28.62-17.69l14.31-28.62a32.005 32.005 0 0 0-3.02-33.51l-74.53-99.38C553.02 4.7 543.54 0 533.47 0H296.02c-7.13 0-10.7 8.57-5.66 13.61L352 63.96 292.42 88.8c-5.9 2.95-5.9 11.36 0 14.31L352 127.96v108.62c0 72.08 36.03 139.39 96 179.38-195.59 6.81-344.56 41.01-434.1 60.91C5.78 478.67 0 485.88 0 494.2 0 504 7.95 512 17.76 512h499.08c63.29.01 119.61-47.56 122.99-110.76 2.52-47.28-22.73-90.4-64.64-111.36zM489.18 66.25l45.65 11.41c-2.75 10.91-12.47 18.89-24.13 18.26-12.96-.71-25.85-12.53-21.52-29.67z\"]\n};\nvar faDrawPolygon = {\n prefix: 'fas',\n iconName: 'draw-polygon',\n icon: [448, 512, [], \"f5ee\", \"M384 352c-.35 0-.67.1-1.02.1l-39.2-65.32c5.07-9.17 8.22-19.56 8.22-30.78s-3.14-21.61-8.22-30.78l39.2-65.32c.35.01.67.1 1.02.1 35.35 0 64-28.65 64-64s-28.65-64-64-64c-23.63 0-44.04 12.95-55.12 32H119.12C108.04 44.95 87.63 32 64 32 28.65 32 0 60.65 0 96c0 23.63 12.95 44.04 32 55.12v209.75C12.95 371.96 0 392.37 0 416c0 35.35 28.65 64 64 64 23.63 0 44.04-12.95 55.12-32h209.75c11.09 19.05 31.49 32 55.12 32 35.35 0 64-28.65 64-64 .01-35.35-28.64-64-63.99-64zm-288 8.88V151.12A63.825 63.825 0 0 0 119.12 128h208.36l-38.46 64.1c-.35-.01-.67-.1-1.02-.1-35.35 0-64 28.65-64 64s28.65 64 64 64c.35 0 .67-.1 1.02-.1l38.46 64.1H119.12A63.748 63.748 0 0 0 96 360.88zM272 256c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zM400 96c0 8.82-7.18 16-16 16s-16-7.18-16-16 7.18-16 16-16 16 7.18 16 16zM64 80c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zM48 416c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zm336 16c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z\"]\n};\nvar faDrum = {\n prefix: 'fas',\n iconName: 'drum',\n icon: [512, 512, [], \"f569\", \"M431.34 122.05l73.53-47.42a16 16 0 0 0 4.44-22.19l-8.87-13.31a16 16 0 0 0-22.19-4.44l-110.06 71C318.43 96.91 271.22 96 256 96 219.55 96 0 100.55 0 208.15v160.23c0 30.27 27.5 57.68 72 77.86v-101.9a24 24 0 1 1 48 0v118.93c33.05 9.11 71.07 15.06 112 16.73V376.39a24 24 0 1 1 48 0V480c40.93-1.67 78.95-7.62 112-16.73V344.34a24 24 0 1 1 48 0v101.9c44.5-20.18 72-47.59 72-77.86V208.15c0-43.32-35.76-69.76-80.66-86.1zM256 272.24c-114.88 0-208-28.69-208-64.09s93.12-64.08 208-64.08c17.15 0 33.73.71 49.68 1.91l-72.81 47a16 16 0 0 0-4.43 22.19l8.87 13.31a16 16 0 0 0 22.19 4.44l118.64-76.52C430.09 168 464 186.84 464 208.15c0 35.4-93.13 64.09-208 64.09z\"]\n};\nvar faDrumSteelpan = {\n prefix: 'fas',\n iconName: 'drum-steelpan',\n icon: [576, 512, [], \"f56a\", \"M288 32C128.94 32 0 89.31 0 160v192c0 70.69 128.94 128 288 128s288-57.31 288-128V160c0-70.69-128.94-128-288-128zm-82.99 158.36c-4.45 16.61-14.54 30.57-28.31 40.48C100.23 217.46 48 190.78 48 160c0-30.16 50.11-56.39 124.04-70.03l25.6 44.34c9.86 17.09 12.48 36.99 7.37 56.05zM288 240c-21.08 0-41.41-1-60.89-2.7 8.06-26.13 32.15-45.3 60.89-45.3s52.83 19.17 60.89 45.3C329.41 239 309.08 240 288 240zm64-144c0 35.29-28.71 64-64 64s-64-28.71-64-64V82.96c20.4-1.88 41.8-2.96 64-2.96s43.6 1.08 64 2.96V96zm46.93 134.9c-13.81-9.91-23.94-23.9-28.4-40.54-5.11-19.06-2.49-38.96 7.38-56.04l25.65-44.42C477.72 103.5 528 129.79 528 160c0 30.83-52.4 57.54-129.07 70.9z\"]\n};\nvar faDrumstickBite = {\n prefix: 'fas',\n iconName: 'drumstick-bite',\n icon: [512, 512, [], \"f6d7\", \"M462.8 49.57a169.44 169.44 0 0 0-239.5 0C187.82 85 160.13 128 160.13 192v85.83l-40.62 40.59c-9.7 9.69-24 11.07-36.78 6a60.33 60.33 0 0 0-65 98.72C33 438.39 54.24 442.7 73.85 438.21c-4.5 19.6-.18 40.83 15.1 56.1a60.35 60.35 0 0 0 98.8-65c-5.09-12.73-3.72-27 6-36.75L234.36 352h85.89a187.87 187.87 0 0 0 61.89-10c-39.64-43.89-39.83-110.23 1.05-151.07 34.38-34.36 86.76-39.46 128.74-16.8 1.3-44.96-14.81-90.28-49.13-124.56z\"]\n};\nvar faDumbbell = {\n prefix: 'fas',\n iconName: 'dumbbell',\n icon: [640, 512, [], \"f44b\", \"M104 96H56c-13.3 0-24 10.7-24 24v104H8c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h24v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm528 128h-24V120c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h24c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM456 32h-48c-13.3 0-24 10.7-24 24v168H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h128v168c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24z\"]\n};\nvar faDumpster = {\n prefix: 'fas',\n iconName: 'dumpster',\n icon: [576, 512, [], \"f793\", \"M560 160c10.4 0 18-9.8 15.5-19.9l-24-96C549.7 37 543.3 32 536 32h-98.9l25.6 128H560zM272 32H171.5l-25.6 128H272V32zm132.5 0H304v128h126.1L404.5 32zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm544 64h-20l4-32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h320v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16l20-160h28c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"]\n};\nvar faDumpsterFire = {\n prefix: 'fas',\n iconName: 'dumpster-fire',\n icon: [640, 512, [], \"f794\", \"M418.7 104.1l.2-.2-14.4-72H304v128h60.8c16.2-19.3 34.2-38.2 53.9-55.8zM272 32H171.5l-25.6 128H272V32zm189.3 72.1c18.2 16.3 35.5 33.7 51.1 51.5 5.7-5.6 11.4-11.1 17.3-16.3l21.3-19 21.3 19c1.1.9 2.1 2.1 3.1 3.1-.1-.8.2-1.5 0-2.3l-24-96C549.7 37 543.3 32 536 32h-98.9l12.3 61.5 11.9 10.6zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm324.6 32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208.8c-30.2-33.7-48.8-77.9-48.8-126.4 0-35.9 19.9-82.9 52.6-129.6zm210.5-28.8c-14.9 13.3-28.3 27.2-40.2 41.2-19.5-25.8-43.6-52-71-76.4-70.2 62.7-120 144.3-120 193.6 0 87.5 71.6 158.4 160 158.4s160-70.9 160-158.4c.1-36.6-37-112.2-88.8-158.4zm-18.6 229.4c-14.7 10.7-32.9 17-52.5 17-49 0-88.9-33.5-88.9-88 0-27.1 16.5-51 49.4-91.9 4.7 5.6 67.1 88.1 67.1 88.1l39.8-47c2.8 4.8 5.4 9.5 7.7 14 18.6 36.7 10.8 83.6-22.6 107.8z\"]\n};\nvar faDungeon = {\n prefix: 'fas',\n iconName: 'dungeon',\n icon: [512, 512, [], \"f6d9\", \"M128.73 195.32l-82.81-51.76c-8.04-5.02-18.99-2.17-22.93 6.45A254.19 254.19 0 0 0 .54 239.28C-.05 248.37 7.59 256 16.69 256h97.13c7.96 0 14.08-6.25 15.01-14.16 1.09-9.33 3.24-18.33 6.24-26.94 2.56-7.34.25-15.46-6.34-19.58zM319.03 8C298.86 2.82 277.77 0 256 0s-42.86 2.82-63.03 8c-9.17 2.35-13.91 12.6-10.39 21.39l37.47 104.03A16.003 16.003 0 0 0 235.1 144h41.8c6.75 0 12.77-4.23 15.05-10.58l37.47-104.03c3.52-8.79-1.22-19.03-10.39-21.39zM112 288H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm77.31-283.67l-36.32-90.8c-3.53-8.83-14.13-12.99-22.42-8.31a257.308 257.308 0 0 0-71.61 59.89c-6.06 7.32-3.85 18.48 4.22 23.52l82.93 51.83c6.51 4.07 14.66 2.62 20.11-2.79 5.18-5.15 10.79-9.85 16.79-14.05 6.28-4.41 9.15-12.17 6.3-19.29zM398.18 256h97.13c9.1 0 16.74-7.63 16.15-16.72a254.135 254.135 0 0 0-22.45-89.27c-3.94-8.62-14.89-11.47-22.93-6.45l-82.81 51.76c-6.59 4.12-8.9 12.24-6.34 19.58 3.01 8.61 5.15 17.62 6.24 26.94.93 7.91 7.05 14.16 15.01 14.16zm54.85-162.89a257.308 257.308 0 0 0-71.61-59.89c-8.28-4.68-18.88-.52-22.42 8.31l-36.32 90.8c-2.85 7.12.02 14.88 6.3 19.28 6 4.2 11.61 8.9 16.79 14.05 5.44 5.41 13.6 6.86 20.11 2.79l82.93-51.83c8.07-5.03 10.29-16.19 4.22-23.51zM496 288h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zM240 177.62V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V177.62c-5.23-.89-10.52-1.62-16-1.62s-10.77.73-16 1.62zm-64 41.51V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V189.36c-12.78 7.45-23.84 17.47-32 29.77zm128-29.77V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V219.13c-8.16-12.3-19.22-22.32-32-29.77z\"]\n};\nvar faEdit = {\n prefix: 'fas',\n iconName: 'edit',\n icon: [576, 512, [], \"f044\", \"M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z\"]\n};\nvar faEgg = {\n prefix: 'fas',\n iconName: 'egg',\n icon: [384, 512, [], \"f7fb\", \"M192 0C86 0 0 214 0 320s86 192 192 192 192-86 192-192S298 0 192 0z\"]\n};\nvar faEject = {\n prefix: 'fas',\n iconName: 'eject',\n icon: [448, 512, [], \"f052\", \"M448 384v64c0 17.673-14.327 32-32 32H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h384c17.673 0 32 14.327 32 32zM48.053 320h351.886c41.651 0 63.581-49.674 35.383-80.435L259.383 47.558c-19.014-20.743-51.751-20.744-70.767 0L12.67 239.565C-15.475 270.268 6.324 320 48.053 320z\"]\n};\nvar faEllipsisH = {\n prefix: 'fas',\n iconName: 'ellipsis-h',\n icon: [512, 512, [], \"f141\", \"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"]\n};\nvar faEllipsisV = {\n prefix: 'fas',\n iconName: 'ellipsis-v',\n icon: [192, 512, [], \"f142\", \"M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z\"]\n};\nvar faEnvelope = {\n prefix: 'fas',\n iconName: 'envelope',\n icon: [512, 512, [], \"f0e0\", \"M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z\"]\n};\nvar faEnvelopeOpen = {\n prefix: 'fas',\n iconName: 'envelope-open',\n icon: [512, 512, [], \"f2b6\", \"M512 464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V200.724a48 48 0 0 1 18.387-37.776c24.913-19.529 45.501-35.365 164.2-121.511C199.412 29.17 232.797-.347 256 .003c23.198-.354 56.596 29.172 73.413 41.433 118.687 86.137 139.303 101.995 164.2 121.512A48 48 0 0 1 512 200.724V464zm-65.666-196.605c-2.563-3.728-7.7-4.595-11.339-1.907-22.845 16.873-55.462 40.705-105.582 77.079-16.825 12.266-50.21 41.781-73.413 41.43-23.211.344-56.559-29.143-73.413-41.43-50.114-36.37-82.734-60.204-105.582-77.079-3.639-2.688-8.776-1.821-11.339 1.907l-9.072 13.196a7.998 7.998 0 0 0 1.839 10.967c22.887 16.899 55.454 40.69 105.303 76.868 20.274 14.781 56.524 47.813 92.264 47.573 35.724.242 71.961-32.771 92.263-47.573 49.85-36.179 82.418-59.97 105.303-76.868a7.998 7.998 0 0 0 1.839-10.967l-9.071-13.196z\"]\n};\nvar faEnvelopeOpenText = {\n prefix: 'fas',\n iconName: 'envelope-open-text',\n icon: [512, 512, [], \"f658\", \"M176 216h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16zm-16 80c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16zm96 121.13c-16.42 0-32.84-5.06-46.86-15.19L0 250.86V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V250.86L302.86 401.94c-14.02 10.12-30.44 15.19-46.86 15.19zm237.61-254.18c-8.85-6.94-17.24-13.47-29.61-22.81V96c0-26.51-21.49-48-48-48h-77.55c-3.04-2.2-5.87-4.26-9.04-6.56C312.6 29.17 279.2-.35 256 0c-23.2-.35-56.59 29.17-73.41 41.44-3.17 2.3-6 4.36-9.04 6.56H96c-26.51 0-48 21.49-48 48v44.14c-12.37 9.33-20.76 15.87-29.61 22.81A47.995 47.995 0 0 0 0 200.72v10.65l96 69.35V96h320v184.72l96-69.35v-10.65c0-14.74-6.78-28.67-18.39-37.77z\"]\n};\nvar faEnvelopeSquare = {\n prefix: 'fas',\n iconName: 'envelope-square',\n icon: [448, 512, [], \"f199\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z\"]\n};\nvar faEquals = {\n prefix: 'fas',\n iconName: 'equals',\n icon: [448, 512, [], \"f52c\", \"M416 304H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32zm0-192H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"]\n};\nvar faEraser = {\n prefix: 'fas',\n iconName: 'eraser',\n icon: [512, 512, [], \"f12d\", \"M497.941 273.941c18.745-18.745 18.745-49.137 0-67.882l-160-160c-18.745-18.745-49.136-18.746-67.883 0l-256 256c-18.745 18.745-18.745 49.137 0 67.882l96 96A48.004 48.004 0 0 0 144 480h356c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H355.883l142.058-142.059zm-302.627-62.627l137.373 137.373L265.373 416H150.628l-80-80 124.686-124.686z\"]\n};\nvar faEthernet = {\n prefix: 'fas',\n iconName: 'ethernet',\n icon: [512, 512, [], \"f796\", \"M496 192h-48v-48c0-8.8-7.2-16-16-16h-48V80c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16v48H80c-8.8 0-16 7.2-16 16v48H16c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16h80V320h32v128h64V320h32v128h64V320h32v128h64V320h32v128h80c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16z\"]\n};\nvar faEuroSign = {\n prefix: 'fas',\n iconName: 'euro-sign',\n icon: [320, 512, [], \"f153\", \"M310.706 413.765c-1.314-6.63-7.835-10.872-14.424-9.369-10.692 2.439-27.422 5.413-45.426 5.413-56.763 0-101.929-34.79-121.461-85.449h113.689a12 12 0 0 0 11.708-9.369l6.373-28.36c1.686-7.502-4.019-14.631-11.708-14.631H115.22c-1.21-14.328-1.414-28.287.137-42.245H261.95a12 12 0 0 0 11.723-9.434l6.512-29.755c1.638-7.484-4.061-14.566-11.723-14.566H130.184c20.633-44.991 62.69-75.03 117.619-75.03 14.486 0 28.564 2.25 37.851 4.145 6.216 1.268 12.347-2.498 14.002-8.623l11.991-44.368c1.822-6.741-2.465-13.616-9.326-14.917C290.217 34.912 270.71 32 249.635 32 152.451 32 74.03 92.252 45.075 176H12c-6.627 0-12 5.373-12 12v29.755c0 6.627 5.373 12 12 12h21.569c-1.009 13.607-1.181 29.287-.181 42.245H12c-6.627 0-12 5.373-12 12v28.36c0 6.627 5.373 12 12 12h30.114C67.139 414.692 145.264 480 249.635 480c26.301 0 48.562-4.544 61.101-7.788 6.167-1.595 10.027-7.708 8.788-13.957l-8.818-44.49z\"]\n};\nvar faExchangeAlt = {\n prefix: 'fas',\n iconName: 'exchange-alt',\n icon: [512, 512, [], \"f362\", \"M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z\"]\n};\nvar faExclamation = {\n prefix: 'fas',\n iconName: 'exclamation',\n icon: [192, 512, [], \"f12a\", \"M176 432c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zM25.26 25.199l13.6 272C39.499 309.972 50.041 320 62.83 320h66.34c12.789 0 23.331-10.028 23.97-22.801l13.6-272C167.425 11.49 156.496 0 142.77 0H49.23C35.504 0 24.575 11.49 25.26 25.199z\"]\n};\nvar faExclamationCircle = {\n prefix: 'fas',\n iconName: 'exclamation-circle',\n icon: [512, 512, [], \"f06a\", \"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\"]\n};\nvar faExclamationTriangle = {\n prefix: 'fas',\n iconName: 'exclamation-triangle',\n icon: [576, 512, [], \"f071\", \"M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\"]\n};\nvar faExpand = {\n prefix: 'fas',\n iconName: 'expand',\n icon: [448, 512, [], \"f065\", \"M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z\"]\n};\nvar faExpandAlt = {\n prefix: 'fas',\n iconName: 'expand-alt',\n icon: [448, 512, [], \"f424\", \"M212.686 315.314L120 408l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C10.697 480 0 469.255 0 456V344c0-21.382 25.803-32.09 40.922-16.971L72 360l92.686-92.686c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.249 6.248 6.249 16.378 0 22.627zm22.628-118.628L328 104l-32.922-31.029C279.958 57.851 290.666 32 312.048 32h112C437.303 32 448 42.745 448 56v112c0 21.382-25.803 32.09-40.922 16.971L376 152l-92.686 92.686c-6.248 6.248-16.379 6.248-22.627 0l-25.373-25.373c-6.249-6.248-6.249-16.378 0-22.627z\"]\n};\nvar faExpandArrowsAlt = {\n prefix: 'fas',\n iconName: 'expand-arrows-alt',\n icon: [448, 512, [], \"f31e\", \"M448 344v112a23.94 23.94 0 0 1-24 24H312c-21.39 0-32.09-25.9-17-41l36.2-36.2L224 295.6 116.77 402.9 153 439c15.09 15.1 4.39 41-17 41H24a23.94 23.94 0 0 1-24-24V344c0-21.4 25.89-32.1 41-17l36.19 36.2L184.46 256 77.18 148.7 41 185c-15.1 15.1-41 4.4-41-17V56a23.94 23.94 0 0 1 24-24h112c21.39 0 32.09 25.9 17 41l-36.2 36.2L224 216.4l107.23-107.3L295 73c-15.09-15.1-4.39-41 17-41h112a23.94 23.94 0 0 1 24 24v112c0 21.4-25.89 32.1-41 17l-36.19-36.2L263.54 256l107.28 107.3L407 327.1c15.1-15.2 41-4.5 41 16.9z\"]\n};\nvar faExternalLinkAlt = {\n prefix: 'fas',\n iconName: 'external-link-alt',\n icon: [512, 512, [], \"f35d\", \"M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z\"]\n};\nvar faExternalLinkSquareAlt = {\n prefix: 'fas',\n iconName: 'external-link-square-alt',\n icon: [448, 512, [], \"f360\", \"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-88 16H248.029c-21.313 0-32.08 25.861-16.971 40.971l31.984 31.987L67.515 364.485c-4.686 4.686-4.686 12.284 0 16.971l31.029 31.029c4.687 4.686 12.285 4.686 16.971 0l195.526-195.526 31.988 31.991C358.058 263.977 384 253.425 384 231.979V120c0-13.255-10.745-24-24-24z\"]\n};\nvar faEye = {\n prefix: 'fas',\n iconName: 'eye',\n icon: [576, 512, [], \"f06e\", \"M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z\"]\n};\nvar faEyeDropper = {\n prefix: 'fas',\n iconName: 'eye-dropper',\n icon: [512, 512, [], \"f1fb\", \"M50.75 333.25c-12 12-18.75 28.28-18.75 45.26V424L0 480l32 32 56-32h45.49c16.97 0 33.25-6.74 45.25-18.74l126.64-126.62-128-128L50.75 333.25zM483.88 28.12c-37.47-37.5-98.28-37.5-135.75 0l-77.09 77.09-13.1-13.1c-9.44-9.44-24.65-9.31-33.94 0l-40.97 40.97c-9.37 9.37-9.37 24.57 0 33.94l161.94 161.94c9.44 9.44 24.65 9.31 33.94 0L419.88 288c9.37-9.37 9.37-24.57 0-33.94l-13.1-13.1 77.09-77.09c37.51-37.48 37.51-98.26.01-135.75z\"]\n};\nvar faEyeSlash = {\n prefix: 'fas',\n iconName: 'eye-slash',\n icon: [640, 512, [], \"f070\", \"M320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a144.13 144.13 0 0 1-26 2.61zm313.82 58.1l-110.55-85.44a331.25 331.25 0 0 0 81.25-102.07 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64a308.15 308.15 0 0 0-147.32 37.7L45.46 3.37A16 16 0 0 0 23 6.18L3.37 31.45A16 16 0 0 0 6.18 53.9l588.36 454.73a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zm-183.72-142l-39.3-30.38A94.75 94.75 0 0 0 416 256a94.76 94.76 0 0 0-121.31-92.21A47.65 47.65 0 0 1 304 192a46.64 46.64 0 0 1-1.54 10l-73.61-56.89A142.31 142.31 0 0 1 320 112a143.92 143.92 0 0 1 144 144c0 21.63-5.29 41.79-13.9 60.11z\"]\n};\nvar faFan = {\n prefix: 'fas',\n iconName: 'fan',\n icon: [512, 512, [], \"f863\", \"M352.57 128c-28.09 0-54.09 4.52-77.06 12.86l12.41-123.11C289 7.31 279.81-1.18 269.33.13 189.63 10.13 128 77.64 128 159.43c0 28.09 4.52 54.09 12.86 77.06L17.75 224.08C7.31 223-1.18 232.19.13 242.67c10 79.7 77.51 141.33 159.3 141.33 28.09 0 54.09-4.52 77.06-12.86l-12.41 123.11c-1.05 10.43 8.11 18.93 18.59 17.62 79.7-10 141.33-77.51 141.33-159.3 0-28.09-4.52-54.09-12.86-77.06l123.11 12.41c10.44 1.05 18.93-8.11 17.62-18.59-10-79.7-77.51-141.33-159.3-141.33zM256 288a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]\n};\nvar faFastBackward = {\n prefix: 'fas',\n iconName: 'fast-backward',\n icon: [512, 512, [], \"f049\", \"M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z\"]\n};\nvar faFastForward = {\n prefix: 'fas',\n iconName: 'fast-forward',\n icon: [512, 512, [], \"f050\", \"M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z\"]\n};\nvar faFaucet = {\n prefix: 'fas',\n iconName: 'faucet',\n icon: [512, 512, [], \"e005\", \"M352,256H313.39c-15.71-13.44-35.46-23.07-57.39-28V180.44l-32-3.38-32,3.38V228c-21.93,5-41.68,14.6-57.39,28H16A16,16,0,0,0,0,272v96a16,16,0,0,0,16,16h92.79C129.38,421.73,173,448,224,448s94.62-26.27,115.21-64H352a32,32,0,0,1,32,32,32,32,0,0,0,32,32h64a32,32,0,0,0,32-32A160,160,0,0,0,352,256ZM81.59,159.91l142.41-15,142.41,15c9.42,1,17.59-6.81,17.59-16.8V112.89c0-10-8.17-17.8-17.59-16.81L256,107.74V80a16,16,0,0,0-16-16H208a16,16,0,0,0-16,16v27.74L81.59,96.08C72.17,95.09,64,102.9,64,112.89v30.22C64,153.1,72.17,160.91,81.59,159.91Z\"]\n};\nvar faFax = {\n prefix: 'fas',\n iconName: 'fax',\n icon: [512, 512, [], \"f1ac\", \"M480 160V77.25a32 32 0 0 0-9.38-22.63L425.37 9.37A32 32 0 0 0 402.75 0H160a32 32 0 0 0-32 32v448a32 32 0 0 0 32 32h320a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM288 432a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm128 128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-112H192V64h160v48a16 16 0 0 0 16 16h48zM64 128H32a32 32 0 0 0-32 32v320a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32z\"]\n};\nvar faFeather = {\n prefix: 'fas',\n iconName: 'feather',\n icon: [512, 512, [], \"f52d\", \"M467.14 44.84c-62.55-62.48-161.67-64.78-252.28 25.73-78.61 78.52-60.98 60.92-85.75 85.66-60.46 60.39-70.39 150.83-63.64 211.17l178.44-178.25c6.26-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.6 9.37 33.98 0l66.1-66.03C159.42 454.65 279 457.11 353.95 384h-98.19l147.57-49.14c49.99-49.93 36.38-36.18 46.31-46.86h-97.78l131.54-43.8c45.44-74.46 34.31-148.84-16.26-199.36z\"]\n};\nvar faFeatherAlt = {\n prefix: 'fas',\n iconName: 'feather-alt',\n icon: [512, 512, [], \"f56b\", \"M512 0C460.22 3.56 96.44 38.2 71.01 287.61c-3.09 26.66-4.84 53.44-5.99 80.24l178.87-178.69c6.25-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.59 9.37 33.98 0l57.13-57.07c42.09-.14 84.15-2.53 125.96-7.36 53.48-5.44 97.02-26.47 132.58-56.54H255.74l146.79-48.88c11.25-14.89 21.37-30.71 30.45-47.12h-81.14l106.54-53.21C500.29 132.86 510.19 26.26 512 0z\"]\n};\nvar faFemale = {\n prefix: 'fas',\n iconName: 'female',\n icon: [256, 512, [], \"f182\", \"M128 0c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64S92.654 0 128 0m119.283 354.179l-48-192A24 24 0 0 0 176 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H80a24 24 0 0 0-23.283 18.179l-48 192C4.935 369.305 16.383 384 32 384h56v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V384h56c15.591 0 27.071-14.671 23.283-29.821z\"]\n};\nvar faFighterJet = {\n prefix: 'fas',\n iconName: 'fighter-jet',\n icon: [640, 512, [], \"f0fb\", \"M544 224l-128-16-48-16h-24L227.158 44h39.509C278.333 44 288 41.375 288 38s-9.667-6-21.333-6H152v12h16v164h-48l-66.667-80H18.667L8 138.667V208h8v16h48v2.666l-64 8v42.667l64 8V288H16v16H8v69.333L18.667 384h34.667L120 304h48v164h-16v12h114.667c11.667 0 21.333-2.625 21.333-6s-9.667-6-21.333-6h-39.509L344 320h24l48-16 128-16c96-21.333 96-26.583 96-32 0-5.417 0-10.667-96-32z\"]\n};\nvar faFile = {\n prefix: 'fas',\n iconName: 'file',\n icon: [384, 512, [], \"f15b\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileAlt = {\n prefix: 'fas',\n iconName: 'file-alt',\n icon: [384, 512, [], \"f15c\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileArchive = {\n prefix: 'fas',\n iconName: 'file-archive',\n icon: [384, 512, [], \"f1c6\", \"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zM128.4 336c-17.9 0-32.4 12.1-32.4 27 0 15 14.6 27 32.5 27s32.4-12.1 32.4-27-14.6-27-32.5-27zM224 136V0h-63.6v32h-32V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM95.9 32h32v32h-32zm32.3 384c-33.2 0-58-30.4-51.4-62.9L96.4 256v-32h32v-32h-32v-32h32v-32h-32V96h32V64h32v32h-32v32h32v32h-32v32h32v32h-32v32h22.1c5.7 0 10.7 4.1 11.8 9.7l17.3 87.7c6.4 32.4-18.4 62.6-51.4 62.6z\"]\n};\nvar faFileAudio = {\n prefix: 'fas',\n iconName: 'file-audio',\n icon: [384, 512, [], \"f1c7\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-64 268c0 10.7-12.9 16-20.5 8.5L104 376H76c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h28l35.5-36.5c7.6-7.6 20.5-2.2 20.5 8.5v136zm33.2-47.6c9.1-9.3 9.1-24.1 0-33.4-22.1-22.8 12.2-56.2 34.4-33.5 27.2 27.9 27.2 72.4 0 100.4-21.8 22.3-56.9-10.4-34.4-33.5zm86-117.1c54.4 55.9 54.4 144.8 0 200.8-21.8 22.4-57-10.3-34.4-33.5 36.2-37.2 36.3-96.5 0-133.8-22.1-22.8 12.3-56.3 34.4-33.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileCode = {\n prefix: 'fas',\n iconName: 'file-code',\n icon: [384, 512, [], \"f1c9\", \"M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zM123.206 400.505a5.4 5.4 0 0 1-7.633.246l-64.866-60.812a5.4 5.4 0 0 1 0-7.879l64.866-60.812a5.4 5.4 0 0 1 7.633.246l19.579 20.885a5.4 5.4 0 0 1-.372 7.747L101.65 336l40.763 35.874a5.4 5.4 0 0 1 .372 7.747l-19.579 20.884zm51.295 50.479l-27.453-7.97a5.402 5.402 0 0 1-3.681-6.692l61.44-211.626a5.402 5.402 0 0 1 6.692-3.681l27.452 7.97a5.4 5.4 0 0 1 3.68 6.692l-61.44 211.626a5.397 5.397 0 0 1-6.69 3.681zm160.792-111.045l-64.866 60.812a5.4 5.4 0 0 1-7.633-.246l-19.58-20.885a5.4 5.4 0 0 1 .372-7.747L284.35 336l-40.763-35.874a5.4 5.4 0 0 1-.372-7.747l19.58-20.885a5.4 5.4 0 0 1 7.633-.246l64.866 60.812a5.4 5.4 0 0 1-.001 7.879z\"]\n};\nvar faFileContract = {\n prefix: 'fas',\n iconName: 'file-contract',\n icon: [384, 512, [], \"f56c\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm192.81 248H304c8.84 0 16 7.16 16 16s-7.16 16-16 16h-47.19c-16.45 0-31.27-9.14-38.64-23.86-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34a15.986 15.986 0 0 1-14.31 8.84c-.38 0-.75-.02-1.14-.05-6.45-.45-12-4.75-14.03-10.89L144 354.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.77-16.19 54.05-9.7 66 14.16 2.02 4.06 5.96 6.5 10.16 6.5zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFileCsv = {\n prefix: 'fas',\n iconName: 'file-csv',\n icon: [384, 512, [], \"f6dd\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-96 144c0 4.42-3.58 8-8 8h-8c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h8c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-8c-26.51 0-48-21.49-48-48v-32c0-26.51 21.49-48 48-48h8c4.42 0 8 3.58 8 8v16zm44.27 104H160c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h12.27c5.95 0 10.41-3.5 10.41-6.62 0-1.3-.75-2.66-2.12-3.84l-21.89-18.77c-8.47-7.22-13.33-17.48-13.33-28.14 0-21.3 19.02-38.62 42.41-38.62H200c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-12.27c-5.95 0-10.41 3.5-10.41 6.62 0 1.3.75 2.66 2.12 3.84l21.89 18.77c8.47 7.22 13.33 17.48 13.33 28.14.01 21.29-19 38.62-42.39 38.62zM256 264v20.8c0 20.27 5.7 40.17 16 56.88 10.3-16.7 16-36.61 16-56.88V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v20.8c0 35.48-12.88 68.89-36.28 94.09-3.02 3.25-7.27 5.11-11.72 5.11s-8.7-1.86-11.72-5.11c-23.4-25.2-36.28-58.61-36.28-94.09V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8zm121-159L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFileDownload = {\n prefix: 'fas',\n iconName: 'file-download',\n icon: [384, 512, [], \"f56d\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFileExcel = {\n prefix: 'fas',\n iconName: 'file-excel',\n icon: [384, 512, [], \"f1c3\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm60.1 106.5L224 336l60.1 93.5c5.1 8-.6 18.5-10.1 18.5h-34.9c-4.4 0-8.5-2.4-10.6-6.3C208.9 405.5 192 373 192 373c-6.4 14.8-10 20-36.6 68.8-2.1 3.9-6.1 6.3-10.5 6.3H110c-9.5 0-15.2-10.5-10.1-18.5l60.3-93.5-60.3-93.5c-5.2-8 .6-18.5 10.1-18.5h34.8c4.4 0 8.5 2.4 10.6 6.3 26.1 48.8 20 33.6 36.6 68.5 0 0 6.1-11.7 36.6-68.5 2.1-3.9 6.2-6.3 10.6-6.3H274c9.5-.1 15.2 10.4 10.1 18.4zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileExport = {\n prefix: 'fas',\n iconName: 'file-export',\n icon: [576, 512, [], \"f56e\", \"M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128zM571 308l-95.7-96.4c-10.1-10.1-27.4-3-27.4 11.3V288h-64v64h64v65.2c0 14.3 17.3 21.4 27.4 11.3L571 332c6.6-6.6 6.6-17.4 0-24zm-379 28v-32c0-8.8 7.2-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.8 0-16-7.2-16-16z\"]\n};\nvar faFileImage = {\n prefix: 'fas',\n iconName: 'file-image',\n icon: [384, 512, [], \"f1c5\", \"M384 121.941V128H256V0h6.059a24 24 0 0 1 16.97 7.029l97.941 97.941a24.002 24.002 0 0 1 7.03 16.971zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zm-135.455 16c26.51 0 48 21.49 48 48s-21.49 48-48 48-48-21.49-48-48 21.491-48 48-48zm208 240h-256l.485-48.485L104.545 328c4.686-4.686 11.799-4.201 16.485.485L160.545 368 264.06 264.485c4.686-4.686 12.284-4.686 16.971 0L320.545 304v112z\"]\n};\nvar faFileImport = {\n prefix: 'fas',\n iconName: 'file-import',\n icon: [512, 512, [], \"f56f\", \"M16 288c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h112v-64zm489-183L407.1 7c-4.5-4.5-10.6-7-17-7H384v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H152c-13.3 0-24 10.7-24 24v264h128v-65.2c0-14.3 17.3-21.4 27.4-11.3L379 308c6.6 6.7 6.6 17.4 0 24l-95.7 96.4c-10.1 10.1-27.4 3-27.4-11.3V352H128v136c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H376c-13.2 0-24-10.8-24-24z\"]\n};\nvar faFileInvoice = {\n prefix: 'fas',\n iconName: 'file-invoice',\n icon: [384, 512, [], \"f570\", \"M288 256H96v64h192v-64zm89-151L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm256 304c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-200v96c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-96c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16z\"]\n};\nvar faFileInvoiceDollar = {\n prefix: 'fas',\n iconName: 'file-invoice-dollar',\n icon: [384, 512, [], \"f571\", \"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 80v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8zm144 263.88V440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-24.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V232c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v24.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07z\"]\n};\nvar faFileMedical = {\n prefix: 'fas',\n iconName: 'file-medical',\n icon: [384, 512, [], \"f477\", \"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 160v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8z\"]\n};\nvar faFileMedicalAlt = {\n prefix: 'fas',\n iconName: 'file-medical-alt',\n icon: [448, 512, [], \"f478\", \"M288 136V0H88C74.7 0 64 10.7 64 24v232H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h140.9c3 0 5.8 1.7 7.2 4.4l19.9 39.8 56.8-113.7c2.9-5.9 11.4-5.9 14.3 0l34.7 69.5H352c8.8 0 16 7.2 16 16s-7.2 16-16 16h-89.9L240 275.8l-56.8 113.7c-2.9 5.9-11.4 5.9-14.3 0L134.1 320H64v168c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H312c-13.2 0-24-10.8-24-24zm153-31L343.1 7c-4.5-4.5-10.6-7-17-7H320v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFilePdf = {\n prefix: 'fas',\n iconName: 'file-pdf',\n icon: [384, 512, [], \"f1c1\", \"M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z\"]\n};\nvar faFilePowerpoint = {\n prefix: 'fas',\n iconName: 'file-powerpoint',\n icon: [384, 512, [], \"f1c4\", \"M193.7 271.2c8.8 0 15.5 2.7 20.3 8.1 9.6 10.9 9.8 32.7-.2 44.1-4.9 5.6-11.9 8.5-21.1 8.5h-26.9v-60.7h27.9zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm53 165.2c0 90.3-88.8 77.6-111.1 77.6V436c0 6.6-5.4 12-12 12h-30.8c-6.6 0-12-5.4-12-12V236.2c0-6.6 5.4-12 12-12h81c44.5 0 72.9 32.8 72.9 77z\"]\n};\nvar faFilePrescription = {\n prefix: 'fas',\n iconName: 'file-prescription',\n icon: [384, 512, [], \"f572\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm68.53 179.48l11.31 11.31c6.25 6.25 6.25 16.38 0 22.63l-29.9 29.9L304 409.38c6.25 6.25 6.25 16.38 0 22.63l-11.31 11.31c-6.25 6.25-16.38 6.25-22.63 0L240 413.25l-30.06 30.06c-6.25 6.25-16.38 6.25-22.63 0L176 432c-6.25-6.25-6.25-16.38 0-22.63l30.06-30.06L146.74 320H128v48c0 8.84-7.16 16-16 16H96c-8.84 0-16-7.16-16-16V208c0-8.84 7.16-16 16-16h80c35.35 0 64 28.65 64 64 0 24.22-13.62 45.05-33.46 55.92L240 345.38l29.9-29.9c6.25-6.25 16.38-6.25 22.63 0zM176 272h-48v-32h48c8.82 0 16 7.18 16 16s-7.18 16-16 16zm208-150.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileSignature = {\n prefix: 'fas',\n iconName: 'file-signature',\n icon: [576, 512, [], \"f573\", \"M218.17 424.14c-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34c-6.37 12.78-25.03 11.37-29.48-2.09L144 386.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.75-16.19 54.06-9.7 66 14.16 1.89 3.78 5.49 5.95 9.36 6.26v-82.12l128-127.09V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24v-40l-128-.11c-16.12-.31-30.58-9.28-37.83-23.75zM384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zm-96 225.06V416h68.99l161.68-162.78-67.88-67.88L288 346.96zm280.54-179.63l-31.87-31.87c-9.94-9.94-26.07-9.94-36.01 0l-27.25 27.25 67.88 67.88 27.25-27.25c9.95-9.94 9.95-26.07 0-36.01z\"]\n};\nvar faFileUpload = {\n prefix: 'fas',\n iconName: 'file-upload',\n icon: [384, 512, [], \"f574\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm65.18 216.01H224v80c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36l96.42-95.7c6.65-6.61 17.39-6.61 24.04 0l96.42 95.7c10.15 10.07 3.03 27.36-11.25 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFileVideo = {\n prefix: 'fas',\n iconName: 'file-video',\n icon: [384, 512, [], \"f1c8\", \"M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM224 136V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248c-13.2 0-24-10.8-24-24zm96 144.016v111.963c0 21.445-25.943 31.998-40.971 16.971L224 353.941V392c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V280c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v38.059l55.029-55.013c15.011-15.01 40.971-4.491 40.971 16.97z\"]\n};\nvar faFileWord = {\n prefix: 'fas',\n iconName: 'file-word',\n icon: [384, 512, [], \"f1c2\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm57.1 120H305c7.7 0 13.4 7.1 11.7 14.7l-38 168c-1.2 5.5-6.1 9.3-11.7 9.3h-38c-5.5 0-10.3-3.8-11.6-9.1-25.8-103.5-20.8-81.2-25.6-110.5h-.5c-1.1 14.3-2.4 17.4-25.6 110.5-1.3 5.3-6.1 9.1-11.6 9.1H117c-5.6 0-10.5-3.9-11.7-9.4l-37.8-168c-1.7-7.5 4-14.6 11.7-14.6h24.5c5.7 0 10.7 4 11.8 9.7 15.6 78 20.1 109.5 21 122.2 1.6-10.2 7.3-32.7 29.4-122.7 1.3-5.4 6.1-9.1 11.7-9.1h29.1c5.6 0 10.4 3.8 11.7 9.2 24 100.4 28.8 124 29.6 129.4-.2-11.2-2.6-17.8 21.6-129.2 1-5.6 5.9-9.5 11.5-9.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFill = {\n prefix: 'fas',\n iconName: 'fill',\n icon: [512, 512, [], \"f575\", \"M502.63 217.06L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.77c-6.24-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.63l86.19 86.18-94.76 94.76c-37.49 37.49-37.49 98.26 0 135.75l117.19 117.19c18.75 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.88-28.12l221.57-221.57c12.49-12.5 12.49-32.76 0-45.26zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.61 58.6c12.49 12.49 32.75 12.49 45.24 0 12.49-12.49 12.49-32.75 0-45.24l-58.61-58.6 58.95-58.95 162.45 162.44-48.35 48.34z\"]\n};\nvar faFillDrip = {\n prefix: 'fas',\n iconName: 'fill-drip',\n icon: [576, 512, [], \"f576\", \"M512 320s-64 92.65-64 128c0 35.35 28.66 64 64 64s64-28.65 64-64-64-128-64-128zm-9.37-102.94L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.76c-6.25-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.62l86.19 86.18-94.76 94.76c-37.49 37.48-37.49 98.26 0 135.75l117.19 117.19c18.74 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.87-28.12l221.57-221.57c12.5-12.5 12.5-32.75.01-45.25zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.6 58.6c12.49 12.49 32.75 12.49 45.24 0s12.49-32.75 0-45.24l-58.6-58.6 58.95-58.95 162.44 162.44-48.34 48.34z\"]\n};\nvar faFilm = {\n prefix: 'fas',\n iconName: 'film',\n icon: [512, 512, [], \"f008\", \"M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm272 208c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm0-168c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm112 152c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z\"]\n};\nvar faFilter = {\n prefix: 'fas',\n iconName: 'filter',\n icon: [512, 512, [], \"f0b0\", \"M487.976 0H24.028C2.71 0-8.047 25.866 7.058 40.971L192 225.941V432c0 7.831 3.821 15.17 10.237 19.662l80 55.98C298.02 518.69 320 507.493 320 487.98V225.941l184.947-184.97C520.021 25.896 509.338 0 487.976 0z\"]\n};\nvar faFingerprint = {\n prefix: 'fas',\n iconName: 'fingerprint',\n icon: [512, 512, [], \"f577\", \"M256.12 245.96c-13.25 0-24 10.74-24 24 1.14 72.25-8.14 141.9-27.7 211.55-2.73 9.72 2.15 30.49 23.12 30.49 10.48 0 20.11-6.92 23.09-17.52 13.53-47.91 31.04-125.41 29.48-224.52.01-13.25-10.73-24-23.99-24zm-.86-81.73C194 164.16 151.25 211.3 152.1 265.32c.75 47.94-3.75 95.91-13.37 142.55-2.69 12.98 5.67 25.69 18.64 28.36 13.05 2.67 25.67-5.66 28.36-18.64 10.34-50.09 15.17-101.58 14.37-153.02-.41-25.95 19.92-52.49 54.45-52.34 31.31.47 57.15 25.34 57.62 55.47.77 48.05-2.81 96.33-10.61 143.55-2.17 13.06 6.69 25.42 19.76 27.58 19.97 3.33 26.81-15.1 27.58-19.77 8.28-50.03 12.06-101.21 11.27-152.11-.88-55.8-47.94-101.88-104.91-102.72zm-110.69-19.78c-10.3-8.34-25.37-6.8-33.76 3.48-25.62 31.5-39.39 71.28-38.75 112 .59 37.58-2.47 75.27-9.11 112.05-2.34 13.05 6.31 25.53 19.36 27.89 20.11 3.5 27.07-14.81 27.89-19.36 7.19-39.84 10.5-80.66 9.86-121.33-.47-29.88 9.2-57.88 28-80.97 8.35-10.28 6.79-25.39-3.49-33.76zm109.47-62.33c-15.41-.41-30.87 1.44-45.78 4.97-12.89 3.06-20.87 15.98-17.83 28.89 3.06 12.89 16 20.83 28.89 17.83 11.05-2.61 22.47-3.77 34-3.69 75.43 1.13 137.73 61.5 138.88 134.58.59 37.88-1.28 76.11-5.58 113.63-1.5 13.17 7.95 25.08 21.11 26.58 16.72 1.95 25.51-11.88 26.58-21.11a929.06 929.06 0 0 0 5.89-119.85c-1.56-98.75-85.07-180.33-186.16-181.83zm252.07 121.45c-2.86-12.92-15.51-21.2-28.61-18.27-12.94 2.86-21.12 15.66-18.26 28.61 4.71 21.41 4.91 37.41 4.7 61.6-.11 13.27 10.55 24.09 23.8 24.2h.2c13.17 0 23.89-10.61 24-23.8.18-22.18.4-44.11-5.83-72.34zm-40.12-90.72C417.29 43.46 337.6 1.29 252.81.02 183.02-.82 118.47 24.91 70.46 72.94 24.09 119.37-.9 181.04.14 246.65l-.12 21.47c-.39 13.25 10.03 24.31 23.28 24.69.23.02.48.02.72.02 12.92 0 23.59-10.3 23.97-23.3l.16-23.64c-.83-52.5 19.16-101.86 56.28-139 38.76-38.8 91.34-59.67 147.68-58.86 69.45 1.03 134.73 35.56 174.62 92.39 7.61 10.86 22.56 13.45 33.42 5.86 10.84-7.62 13.46-22.59 5.84-33.43z\"]\n};\nvar faFire = {\n prefix: 'fas',\n iconName: 'fire',\n icon: [384, 512, [], \"f06d\", \"M216 23.86c0-23.8-30.65-32.77-44.15-13.04C48 191.85 224 200 224 288c0 35.63-29.11 64.46-64.85 63.99-35.17-.45-63.15-29.77-63.15-64.94v-85.51c0-21.7-26.47-32.23-41.43-16.5C27.8 213.16 0 261.33 0 320c0 105.87 86.13 192 192 192s192-86.13 192-192c0-170.29-168-193-168-296.14z\"]\n};\nvar faFireAlt = {\n prefix: 'fas',\n iconName: 'fire-alt',\n icon: [448, 512, [], \"f7e4\", \"M323.56 51.2c-20.8 19.3-39.58 39.59-56.22 59.97C240.08 73.62 206.28 35.53 168 0 69.74 91.17 0 209.96 0 281.6 0 408.85 100.29 512 224 512s224-103.15 224-230.4c0-53.27-51.98-163.14-124.44-230.4zm-19.47 340.65C282.43 407.01 255.72 416 226.86 416 154.71 416 96 368.26 96 290.75c0-38.61 24.31-72.63 72.79-130.75 6.93 7.98 98.83 125.34 98.83 125.34l58.63-66.88c4.14 6.85 7.91 13.55 11.27 19.97 27.35 52.19 15.81 118.97-33.43 153.42z\"]\n};\nvar faFireExtinguisher = {\n prefix: 'fas',\n iconName: 'fire-extinguisher',\n icon: [448, 512, [], \"f134\", \"M434.027 26.329l-168 28C254.693 56.218 256 67.8 256 72h-58.332C208.353 36.108 181.446 0 144 0c-39.435 0-66.368 39.676-52.228 76.203-52.039 13.051-75.381 54.213-90.049 90.884-4.923 12.307 1.063 26.274 13.37 31.197 12.317 4.926 26.279-1.075 31.196-13.37C75.058 112.99 106.964 120 168 120v27.076c-41.543 10.862-72 49.235-72 94.129V488c0 13.255 10.745 24 24 24h144c13.255 0 24-10.745 24-24V240c0-44.731-30.596-82.312-72-92.97V120h40c0 2.974-1.703 15.716 10.027 17.671l168 28C441.342 166.89 448 161.25 448 153.834V38.166c0-7.416-6.658-13.056-13.973-11.837zM144 72c-8.822 0-16-7.178-16-16s7.178-16 16-16 16 7.178 16 16-7.178 16-16 16z\"]\n};\nvar faFirstAid = {\n prefix: 'fas',\n iconName: 'first-aid',\n icon: [576, 512, [], \"f479\", \"M0 80v352c0 26.5 21.5 48 48 48h48V32H48C21.5 32 0 53.5 0 80zm128 400h320V32H128v448zm64-248c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48zM528 32h-48v448h48c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"]\n};\nvar faFish = {\n prefix: 'fas',\n iconName: 'fish',\n icon: [576, 512, [], \"f578\", \"M327.1 96c-89.97 0-168.54 54.77-212.27 101.63L27.5 131.58c-12.13-9.18-30.24.6-27.14 14.66L24.54 256 .35 365.77c-3.1 14.06 15.01 23.83 27.14 14.66l87.33-66.05C158.55 361.23 237.13 416 327.1 416 464.56 416 576 288 576 256S464.56 96 327.1 96zm87.43 184c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24 13.26 0 24 10.74 24 24 0 13.25-10.75 24-24 24z\"]\n};\nvar faFistRaised = {\n prefix: 'fas',\n iconName: 'fist-raised',\n icon: [384, 512, [], \"f6de\", \"M255.98 160V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v146.93c5.02-1.78 10.34-2.93 15.97-2.93h48.03zm128 95.99c-.01-35.34-28.66-63.99-63.99-63.99H207.85c-8.78 0-15.9 7.07-15.9 15.85v.56c0 26.27 21.3 47.59 47.57 47.59h35.26c9.68 0 13.2 3.58 13.2 8v16.2c0 4.29-3.59 7.78-7.88 8-44.52 2.28-64.16 24.71-96.05 72.55l-6.31 9.47a7.994 7.994 0 0 1-11.09 2.22l-13.31-8.88a7.994 7.994 0 0 1-2.22-11.09l6.31-9.47c15.73-23.6 30.2-43.26 47.31-58.08-17.27-5.51-31.4-18.12-38.87-34.45-6.59 3.41-13.96 5.52-21.87 5.52h-32c-12.34 0-23.49-4.81-32-12.48C71.48 251.19 60.33 256 48 256H16c-5.64 0-10.97-1.15-16-2.95v77.93c0 33.95 13.48 66.5 37.49 90.51L63.99 448v64h255.98v-63.96l35.91-35.92A96.035 96.035 0 0 0 384 344.21l-.02-88.22zm-32.01-90.09V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v112h32c11.28 0 21.94 2.31 32 5.9zM16 224h32c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v128c0 8.84 7.16 16 16 16zm95.99 0h32c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v160c0 8.84 7.16 16 16 16z\"]\n};\nvar faFlag = {\n prefix: 'fas',\n iconName: 'flag',\n icon: [512, 512, [], \"f024\", \"M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z\"]\n};\nvar faFlagCheckered = {\n prefix: 'fas',\n iconName: 'flag-checkered',\n icon: [512, 512, [], \"f11e\", \"M243.2 189.9V258c26.1 5.9 49.3 15.6 73.6 22.3v-68.2c-26-5.8-49.4-15.5-73.6-22.2zm223.3-123c-34.3 15.9-76.5 31.9-117 31.9C296 98.8 251.7 64 184.3 64c-25 0-47.3 4.4-68 12 2.8-7.3 4.1-15.2 3.6-23.6C118.1 24 94.8 1.2 66.3 0 34.3-1.3 8 24.3 8 56c0 19 9.5 35.8 24 45.9V488c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24v-94.4c28.3-12.1 63.6-22.1 114.4-22.1 53.6 0 97.8 34.8 165.2 34.8 48.2 0 86.7-16.3 122.5-40.9 8.7-6 13.8-15.8 13.8-26.4V95.9c.1-23.3-24.2-38.8-45.4-29zM169.6 325.5c-25.8 2.7-50 8.2-73.6 16.6v-70.5c26.2-9.3 47.5-15 73.6-17.4zM464 191c-23.6 9.8-46.3 19.5-73.6 23.9V286c24.8-3.4 51.4-11.8 73.6-26v70.5c-25.1 16.1-48.5 24.7-73.6 27.1V286c-27 3.7-47.9 1.5-73.6-5.6v67.4c-23.9-7.4-47.3-16.7-73.6-21.3V258c-19.7-4.4-40.8-6.8-73.6-3.8v-70c-22.4 3.1-44.6 10.2-73.6 20.9v-70.5c33.2-12.2 50.1-19.8 73.6-22v71.6c27-3.7 48.4-1.3 73.6 5.7v-67.4c23.7 7.4 47.2 16.7 73.6 21.3v68.4c23.7 5.3 47.6 6.9 73.6 2.7V143c27-4.8 52.3-13.6 73.6-22.5z\"]\n};\nvar faFlagUsa = {\n prefix: 'fas',\n iconName: 'flag-usa',\n icon: [512, 512, [], \"f74d\", \"M32 0C14.3 0 0 14.3 0 32v464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32C64 14.3 49.7 0 32 0zm267.9 303.6c-57.2-15.1-111.7-28.8-203.9 11.1V384c185.7-92.2 221.7 53.3 397.5-23.1 11.4-5 18.5-16.5 18.5-28.8v-36c-43.6 17.3-80.2 24.1-112.1 24.1-37.4-.1-68.9-8.4-100-16.6zm0-96c-57.2-15.1-111.7-28.8-203.9 11.1v61.5c94.8-37.6 154.6-22.7 212.1-7.6 57.2 15.1 111.7 28.8 203.9-11.1V200c-43.6 17.3-80.2 24.1-112.1 24.1-37.4 0-68.9-8.3-100-16.5zm9.5-125.9c51.8 15.6 97.4 29 202.6-20.1V30.8c0-25.1-26.8-38.1-49.4-26.6C291.3 91.5 305.4-62.2 96 32.4v151.9c94.8-37.5 154.6-22.7 212.1-7.6 57.2 15 111.7 28.7 203.9-11.1V96.7c-53.6 23.5-93.3 31.4-126.1 31.4s-59-7.8-85.7-15.9c-4-1.2-8.1-2.4-12.1-3.5V75.5c7.2 2 14.3 4.1 21.3 6.2zM160 128.1c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16-7.2 16-16 16zm0-55.8c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm64 47.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm0-55.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16z\"]\n};\nvar faFlask = {\n prefix: 'fas',\n iconName: 'flask',\n icon: [448, 512, [], \"f0c3\", \"M437.2 403.5L320 215V64h8c13.3 0 24-10.7 24-24V24c0-13.3-10.7-24-24-24H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h8v151L10.8 403.5C-18.5 450.6 15.3 512 70.9 512h306.2c55.7 0 89.4-61.5 60.1-108.5zM137.9 320l48.2-77.6c3.7-5.2 5.8-11.6 5.8-18.4V64h64v160c0 6.9 2.2 13.2 5.8 18.4l48.2 77.6h-172z\"]\n};\nvar faFlushed = {\n prefix: 'fas',\n iconName: 'flushed',\n icon: [496, 512, [], \"f579\", \"M344 200c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-192 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM80 224c0-39.8 32.2-72 72-72s72 32.2 72 72-32.2 72-72 72-72-32.2-72-72zm232 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-104c-39.8 0-72-32.2-72-72s32.2-72 72-72 72 32.2 72 72-32.2 72-72 72z\"]\n};\nvar faFolder = {\n prefix: 'fas',\n iconName: 'folder',\n icon: [512, 512, [], \"f07b\", \"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z\"]\n};\nvar faFolderMinus = {\n prefix: 'fas',\n iconName: 'folder-minus',\n icon: [512, 512, [], \"f65d\", \"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16H160c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h192c8.84 0 16 7.16 16 16v16z\"]\n};\nvar faFolderOpen = {\n prefix: 'fas',\n iconName: 'folder-open',\n icon: [576, 512, [], \"f07c\", \"M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z\"]\n};\nvar faFolderPlus = {\n prefix: 'fas',\n iconName: 'folder-plus',\n icon: [512, 512, [], \"f65e\", \"M464,128H272L208,64H48A48,48,0,0,0,0,112V400a48,48,0,0,0,48,48H464a48,48,0,0,0,48-48V176A48,48,0,0,0,464,128ZM359.5,296a16,16,0,0,1-16,16h-64v64a16,16,0,0,1-16,16h-16a16,16,0,0,1-16-16V312h-64a16,16,0,0,1-16-16V280a16,16,0,0,1,16-16h64V200a16,16,0,0,1,16-16h16a16,16,0,0,1,16,16v64h64a16,16,0,0,1,16,16Z\"]\n};\nvar faFont = {\n prefix: 'fas',\n iconName: 'font',\n icon: [448, 512, [], \"f031\", \"M432 416h-23.41L277.88 53.69A32 32 0 0 0 247.58 32h-47.16a32 32 0 0 0-30.3 21.69L39.41 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-19.58l23.3-64h152.56l23.3 64H304a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM176.85 272L224 142.51 271.15 272z\"]\n};\nvar faFontAwesomeLogoFull = {\n prefix: 'fas',\n iconName: 'font-awesome-logo-full',\n icon: [3992, 512, [\"Font Awesome\"], \"f4e6\", \"M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z\"]\n};\nvar faFootballBall = {\n prefix: 'fas',\n iconName: 'football-ball',\n icon: [496, 512, [], \"f44e\", \"M481.5 60.3c-4.8-18.2-19.1-32.5-37.3-37.4C420.3 16.5 383 8.9 339.4 8L496 164.8c-.8-43.5-8.2-80.6-14.5-104.5zm-467 391.4c4.8 18.2 19.1 32.5 37.3 37.4 23.9 6.4 61.2 14 104.8 14.9L0 347.2c.8 43.5 8.2 80.6 14.5 104.5zM4.2 283.4L220.4 500c132.5-19.4 248.8-118.7 271.5-271.4L275.6 12C143.1 31.4 26.8 130.7 4.2 283.4zm317.3-123.6c3.1-3.1 8.2-3.1 11.3 0l11.3 11.3c3.1 3.1 3.1 8.2 0 11.3l-28.3 28.3 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-22.6 22.7 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L248 278.6l-22.6 22.6 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-28.3 28.3c-3.1 3.1-8.2 3.1-11.3 0l-11.3-11.3c-3.1-3.1-3.1-8.2 0-11.3l28.3-28.3-28.3-28.2c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 28.3-28.5z\"]\n};\nvar faForward = {\n prefix: 'fas',\n iconName: 'forward',\n icon: [512, 512, [], \"f04e\", \"M500.5 231.4l-192-160C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2zm-256 0l-192-160C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2z\"]\n};\nvar faFrog = {\n prefix: 'fas',\n iconName: 'frog',\n icon: [576, 512, [], \"f52e\", \"M446.53 97.43C439.67 60.23 407.19 32 368 32c-39.23 0-71.72 28.29-78.54 65.54C126.75 112.96-.5 250.12 0 416.98.11 451.9 29.08 480 64 480h304c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-79.49l35.8-48.33c24.14-36.23 10.35-88.28-33.71-106.6-23.89-9.93-51.55-4.65-72.24 10.88l-32.76 24.59c-7.06 5.31-17.09 3.91-22.41-3.19-5.3-7.08-3.88-17.11 3.19-22.41l34.78-26.09c36.84-27.66 88.28-27.62 125.13 0 10.87 8.15 45.87 39.06 40.8 93.21L469.62 480H560c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-53.63l-98.52-104.68 154.44-86.65A58.16 58.16 0 0 0 576 189.94c0-21.4-11.72-40.95-30.48-51.23-40.56-22.22-98.99-41.28-98.99-41.28zM368 136c-13.26 0-24-10.75-24-24 0-13.26 10.74-24 24-24 13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24z\"]\n};\nvar faFrown = {\n prefix: 'fas',\n iconName: 'frown',\n icon: [496, 512, [], \"f119\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm170.2 218.2C315.8 367.4 282.9 352 248 352s-67.8 15.4-90.2 42.2c-13.5 16.3-38.1-4.2-24.6-20.5C161.7 339.6 203.6 320 248 320s86.3 19.6 114.7 53.8c13.6 16.2-11 36.7-24.5 20.4z\"]\n};\nvar faFrownOpen = {\n prefix: 'fas',\n iconName: 'frown-open',\n icon: [496, 512, [], \"f57a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm187.3 183.3c-31.2-9.6-59.4-15.3-75.3-15.3s-44.1 5.7-75.3 15.3c-11.5 3.5-22.5-6.3-20.5-18.1 7-40 60.1-61.2 95.8-61.2s88.8 21.3 95.8 61.2c2 11.9-9.1 21.6-20.5 18.1zM328 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faFunnelDollar = {\n prefix: 'fas',\n iconName: 'funnel-dollar',\n icon: [640, 512, [], \"f662\", \"M433.46 165.94l101.2-111.87C554.61 34.12 540.48 0 512.26 0H31.74C3.52 0-10.61 34.12 9.34 54.07L192 256v155.92c0 12.59 5.93 24.44 16 32l79.99 60c20.86 15.64 48.47 6.97 59.22-13.57C310.8 455.38 288 406.35 288 352c0-89.79 62.05-165.17 145.46-186.06zM480 192c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160-71.63-160-160-160zm16 239.88V448c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V256c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.04 44.44-42.67 45.07z\"]\n};\nvar faFutbol = {\n prefix: 'fas',\n iconName: 'futbol',\n icon: [512, 512, [], \"f1e3\", \"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-48 0l-.003-.282-26.064 22.741-62.679-58.5 16.454-84.355 34.303 3.072c-24.889-34.216-60.004-60.089-100.709-73.141l13.651 31.939L256 139l-74.953-41.525 13.651-31.939c-40.631 13.028-75.78 38.87-100.709 73.141l34.565-3.073 16.192 84.355-62.678 58.5-26.064-22.741-.003.282c0 43.015 13.497 83.952 38.472 117.991l7.704-33.897 85.138 10.447 36.301 77.826-29.902 17.786c40.202 13.122 84.29 13.148 124.572 0l-29.902-17.786 36.301-77.826 85.138-10.447 7.704 33.897C442.503 339.952 456 299.015 456 256zm-248.102 69.571l-29.894-91.312L256 177.732l77.996 56.527-29.622 91.312h-96.476z\"]\n};\nvar faGamepad = {\n prefix: 'fas',\n iconName: 'gamepad',\n icon: [640, 512, [], \"f11b\", \"M480.07 96H160a160 160 0 1 0 114.24 272h91.52A160 160 0 1 0 480.07 96zM248 268a12 12 0 0 1-12 12h-52v52a12 12 0 0 1-12 12h-24a12 12 0 0 1-12-12v-52H84a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h52v-52a12 12 0 0 1 12-12h24a12 12 0 0 1 12 12v52h52a12 12 0 0 1 12 12zm216 76a40 40 0 1 1 40-40 40 40 0 0 1-40 40zm64-96a40 40 0 1 1 40-40 40 40 0 0 1-40 40z\"]\n};\nvar faGasPump = {\n prefix: 'fas',\n iconName: 'gas-pump',\n icon: [512, 512, [], \"f52f\", \"M336 448H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm157.2-340.7l-81-81c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-6.2 6.2-6.2 16.4 0 22.6L416 97.9V160c0 28.1 20.9 51.3 48 55.2V376c0 13.2-10.8 24-24 24s-24-10.8-24-24v-32c0-48.6-39.4-88-88-88h-8V64c0-35.3-28.7-64-64-64H96C60.7 0 32 28.7 32 64v352h288V304h8c22.1 0 40 17.9 40 40v27.8c0 37.7 27 72 64.5 75.9 43 4.3 79.5-29.5 79.5-71.7V152.6c0-17-6.8-33.3-18.8-45.3zM256 192H96V64h160v128z\"]\n};\nvar faGavel = {\n prefix: 'fas',\n iconName: 'gavel',\n icon: [512, 512, [], \"f0e3\", \"M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z\"]\n};\nvar faGem = {\n prefix: 'fas',\n iconName: 'gem',\n icon: [576, 512, [], \"f3a5\", \"M485.5 0L576 160H474.9L405.7 0h79.8zm-128 0l69.2 160H149.3L218.5 0h139zm-267 0h79.8l-69.2 160H0L90.5 0zM0 192h100.7l123 251.7c1.5 3.1-2.7 5.9-5 3.3L0 192zm148.2 0h279.6l-137 318.2c-1 2.4-4.5 2.4-5.5 0L148.2 192zm204.1 251.7l123-251.7H576L357.3 446.9c-2.3 2.7-6.5-.1-5-3.2z\"]\n};\nvar faGenderless = {\n prefix: 'fas',\n iconName: 'genderless',\n icon: [288, 512, [], \"f22d\", \"M144 176c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80m0-64C64.5 112 0 176.5 0 256s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144z\"]\n};\nvar faGhost = {\n prefix: 'fas',\n iconName: 'ghost',\n icon: [384, 512, [], \"f6e2\", \"M186.1.09C81.01 3.24 0 94.92 0 200.05v263.92c0 14.26 17.23 21.39 27.31 11.31l24.92-18.53c6.66-4.95 16-3.99 21.51 2.21l42.95 48.35c6.25 6.25 16.38 6.25 22.63 0l40.72-45.85c6.37-7.17 17.56-7.17 23.92 0l40.72 45.85c6.25 6.25 16.38 6.25 22.63 0l42.95-48.35c5.51-6.2 14.85-7.17 21.51-2.21l24.92 18.53c10.08 10.08 27.31 2.94 27.31-11.31V192C384 84 294.83-3.17 186.1.09zM128 224c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128 0c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faGift = {\n prefix: 'fas',\n iconName: 'gift',\n icon: [512, 512, [], \"f06b\", \"M32 448c0 17.7 14.3 32 32 32h160V320H32v128zm256 32h160c17.7 0 32-14.3 32-32V320H288v160zm192-320h-42.1c6.2-12.1 10.1-25.5 10.1-40 0-48.5-39.5-88-88-88-41.6 0-68.5 21.3-103 68.3-34.5-47-61.4-68.3-103-68.3-48.5 0-88 39.5-88 88 0 14.5 3.8 27.9 10.1 40H32c-17.7 0-32 14.3-32 32v80c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-80c0-17.7-14.3-32-32-32zm-326.1 0c-22.1 0-40-17.9-40-40s17.9-40 40-40c19.9 0 34.6 3.3 86.1 80h-86.1zm206.1 0h-86.1c51.4-76.5 65.7-80 86.1-80 22.1 0 40 17.9 40 40s-17.9 40-40 40z\"]\n};\nvar faGifts = {\n prefix: 'fas',\n iconName: 'gifts',\n icon: [640, 512, [], \"f79c\", \"M240.6 194.1c1.9-30.8 17.3-61.2 44-79.8C279.4 103.5 268.7 96 256 96h-29.4l30.7-22c7.2-5.1 8.9-15.1 3.7-22.3l-9.3-13c-5.1-7.2-15.1-8.9-22.3-3.7l-32 22.9 11.5-30.6c3.1-8.3-1.1-17.5-9.4-20.6l-15-5.6c-8.3-3.1-17.5 1.1-20.6 9.4l-19.9 53-19.9-53.1C121 2.1 111.8-2.1 103.5 1l-15 5.6C80.2 9.7 76 19 79.2 27.2l11.5 30.6L58.6 35c-7.2-5.1-17.2-3.5-22.3 3.7l-9.3 13c-5.1 7.2-3.5 17.2 3.7 22.3l30.7 22H32c-17.7 0-32 14.3-32 32v352c0 17.7 14.3 32 32 32h168.9c-5.5-9.5-8.9-20.3-8.9-32V256c0-29.9 20.8-55 48.6-61.9zM224 480c0 17.7 14.3 32 32 32h160V384H224v96zm224 32h160c17.7 0 32-14.3 32-32v-96H448v128zm160-288h-20.4c2.6-7.6 4.4-15.5 4.4-23.8 0-35.5-27-72.2-72.1-72.2-48.1 0-75.9 47.7-87.9 75.3-12.1-27.6-39.9-75.3-87.9-75.3-45.1 0-72.1 36.7-72.1 72.2 0 8.3 1.7 16.2 4.4 23.8H256c-17.7 0-32 14.3-32 32v96h192V224h15.3l.7-.2.7.2H448v128h192v-96c0-17.7-14.3-32-32-32zm-272 0c-2.7-1.4-5.1-3-7.2-4.8-7.3-6.4-8.8-13.8-8.8-19 0-9.7 6.4-24.2 24.1-24.2 18.7 0 35.6 27.4 44.5 48H336zm199.2-4.8c-2.1 1.8-4.5 3.4-7.2 4.8h-52.6c8.8-20.3 25.8-48 44.5-48 17.7 0 24.1 14.5 24.1 24.2 0 5.2-1.5 12.6-8.8 19z\"]\n};\nvar faGlassCheers = {\n prefix: 'fas',\n iconName: 'glass-cheers',\n icon: [640, 512, [], \"f79f\", \"M639.4 433.6c-8.4-20.4-31.8-30.1-52.2-21.6l-22.1 9.2-38.7-101.9c47.9-35 64.8-100.3 34.5-152.8L474.3 16c-8-13.9-25.1-19.7-40-13.6L320 49.8 205.7 2.4c-14.9-6.2-32-.3-40 13.6L79.1 166.5C48.9 219 65.7 284.3 113.6 319.2L74.9 421.1l-22.1-9.2c-20.4-8.5-43.7 1.2-52.2 21.6-1.7 4.1.2 8.8 4.3 10.5l162.3 67.4c4.1 1.7 8.7-.2 10.4-4.3 8.4-20.4-1.2-43.8-21.6-52.3l-22.1-9.2L173.3 342c4.4.5 8.8 1.3 13.1 1.3 51.7 0 99.4-33.1 113.4-85.3l20.2-75.4 20.2 75.4c14 52.2 61.7 85.3 113.4 85.3 4.3 0 8.7-.8 13.1-1.3L506 445.6l-22.1 9.2c-20.4 8.5-30.1 31.9-21.6 52.3 1.7 4.1 6.4 6 10.4 4.3L635.1 444c4-1.7 6-6.3 4.3-10.4zM275.9 162.1l-112.1-46.5 36.5-63.4 94.5 39.2-18.9 70.7zm88.2 0l-18.9-70.7 94.5-39.2 36.5 63.4-112.1 46.5z\"]\n};\nvar faGlassMartini = {\n prefix: 'fas',\n iconName: 'glass-martini',\n icon: [512, 512, [], \"f000\", \"M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6z\"]\n};\nvar faGlassMartiniAlt = {\n prefix: 'fas',\n iconName: 'glass-martini-alt',\n icon: [512, 512, [], \"f57b\", \"M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6zM443.77 48l-48 48H116.24l-48-48h375.53z\"]\n};\nvar faGlassWhiskey = {\n prefix: 'fas',\n iconName: 'glass-whiskey',\n icon: [512, 512, [], \"f7a0\", \"M480 32H32C12.5 32-2.4 49.2.3 68.5l56 356.5c4.5 31.5 31.5 54.9 63.4 54.9h273c31.8 0 58.9-23.4 63.4-54.9l55.6-356.5C514.4 49.2 499.5 32 480 32zm-37.4 64l-30 192h-313L69.4 96h373.2z\"]\n};\nvar faGlasses = {\n prefix: 'fas',\n iconName: 'glasses',\n icon: [576, 512, [], \"f530\", \"M574.1 280.37L528.75 98.66c-5.91-23.7-21.59-44.05-43-55.81-21.44-11.73-46.97-14.11-70.19-6.33l-15.25 5.08c-8.39 2.79-12.92 11.86-10.12 20.24l5.06 15.18c2.79 8.38 11.85 12.91 20.23 10.12l13.18-4.39c10.87-3.62 23-3.57 33.16 1.73 10.29 5.37 17.57 14.56 20.37 25.82l38.46 153.82c-22.19-6.81-49.79-12.46-81.2-12.46-34.77 0-73.98 7.02-114.85 26.74h-73.18c-40.87-19.74-80.08-26.75-114.86-26.75-31.42 0-59.02 5.65-81.21 12.46l38.46-153.83c2.79-11.25 10.09-20.45 20.38-25.81 10.16-5.3 22.28-5.35 33.15-1.73l13.17 4.39c8.38 2.79 17.44-1.74 20.23-10.12l5.06-15.18c2.8-8.38-1.73-17.45-10.12-20.24l-15.25-5.08c-23.22-7.78-48.75-5.41-70.19 6.33-21.41 11.77-37.09 32.11-43 55.8L1.9 280.37A64.218 64.218 0 0 0 0 295.86v70.25C0 429.01 51.58 480 115.2 480h37.12c60.28 0 110.37-45.94 114.88-105.37l2.93-38.63h35.75l2.93 38.63C313.31 434.06 363.4 480 423.68 480h37.12c63.62 0 115.2-50.99 115.2-113.88v-70.25c0-5.23-.64-10.43-1.9-15.5zm-370.72 89.42c-1.97 25.91-24.4 46.21-51.06 46.21H115.2C86.97 416 64 393.62 64 366.11v-37.54c18.12-6.49 43.42-12.92 72.58-12.92 23.86 0 47.26 4.33 69.93 12.92l-3.13 41.22zM512 366.12c0 27.51-22.97 49.88-51.2 49.88h-37.12c-26.67 0-49.1-20.3-51.06-46.21l-3.13-41.22c22.67-8.59 46.08-12.92 69.95-12.92 29.12 0 54.43 6.44 72.55 12.93v37.54z\"]\n};\nvar faGlobe = {\n prefix: 'fas',\n iconName: 'globe',\n icon: [496, 512, [], \"f0ac\", \"M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z\"]\n};\nvar faGlobeAfrica = {\n prefix: 'fas',\n iconName: 'globe-africa',\n icon: [496, 512, [], \"f57c\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm160 215.5v6.93c0 5.87-3.32 11.24-8.57 13.86l-15.39 7.7a15.485 15.485 0 0 1-15.53-.97l-18.21-12.14a15.52 15.52 0 0 0-13.5-1.81l-2.65.88c-9.7 3.23-13.66 14.79-7.99 23.3l13.24 19.86c2.87 4.31 7.71 6.9 12.89 6.9h8.21c8.56 0 15.5 6.94 15.5 15.5v11.34c0 3.35-1.09 6.62-3.1 9.3l-18.74 24.98c-1.42 1.9-2.39 4.1-2.83 6.43l-4.3 22.83c-.62 3.29-2.29 6.29-4.76 8.56a159.608 159.608 0 0 0-25 29.16l-13.03 19.55a27.756 27.756 0 0 1-23.09 12.36c-10.51 0-20.12-5.94-24.82-15.34a78.902 78.902 0 0 1-8.33-35.29V367.5c0-8.56-6.94-15.5-15.5-15.5h-25.88c-14.49 0-28.38-5.76-38.63-16a54.659 54.659 0 0 1-16-38.63v-14.06c0-17.19 8.1-33.38 21.85-43.7l27.58-20.69a54.663 54.663 0 0 1 32.78-10.93h.89c8.48 0 16.85 1.97 24.43 5.77l14.72 7.36c3.68 1.84 7.93 2.14 11.83.84l47.31-15.77c6.33-2.11 10.6-8.03 10.6-14.7 0-8.56-6.94-15.5-15.5-15.5h-10.09c-4.11 0-8.05-1.63-10.96-4.54l-6.92-6.92a15.493 15.493 0 0 0-10.96-4.54H199.5c-8.56 0-15.5-6.94-15.5-15.5v-4.4c0-7.11 4.84-13.31 11.74-15.04l14.45-3.61c3.74-.94 7-3.23 9.14-6.44l8.08-12.11c2.87-4.31 7.71-6.9 12.89-6.9h24.21c8.56 0 15.5-6.94 15.5-15.5v-21.7C359.23 71.63 422.86 131.02 441.93 208H423.5c-8.56 0-15.5 6.94-15.5 15.5z\"]\n};\nvar faGlobeAmericas = {\n prefix: 'fas',\n iconName: 'globe-americas',\n icon: [496, 512, [], \"f57d\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z\"]\n};\nvar faGlobeAsia = {\n prefix: 'fas',\n iconName: 'globe-asia',\n icon: [496, 512, [], \"f57e\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm-11.34 240.23c-2.89 4.82-8.1 7.77-13.72 7.77h-.31c-4.24 0-8.31 1.69-11.31 4.69l-5.66 5.66c-3.12 3.12-3.12 8.19 0 11.31l5.66 5.66c3 3 4.69 7.07 4.69 11.31V304c0 8.84-7.16 16-16 16h-6.11c-6.06 0-11.6-3.42-14.31-8.85l-22.62-45.23c-2.44-4.88-8.95-5.94-12.81-2.08l-19.47 19.46c-3 3-7.07 4.69-11.31 4.69H50.81C49.12 277.55 48 266.92 48 256c0-110.28 89.72-200 200-200 21.51 0 42.2 3.51 61.63 9.82l-50.16 38.53c-5.11 3.41-4.63 11.06.86 13.81l10.83 5.41c5.42 2.71 8.84 8.25 8.84 14.31V216c0 4.42-3.58 8-8 8h-3.06c-3.03 0-5.8-1.71-7.15-4.42-1.56-3.12-5.96-3.29-7.76-.3l-17.37 28.95zM408 358.43c0 4.24-1.69 8.31-4.69 11.31l-9.57 9.57c-3 3-7.07 4.69-11.31 4.69h-15.16c-4.24 0-8.31-1.69-11.31-4.69l-13.01-13.01a26.767 26.767 0 0 0-25.42-7.04l-21.27 5.32c-1.27.32-2.57.48-3.88.48h-10.34c-4.24 0-8.31-1.69-11.31-4.69l-11.91-11.91a8.008 8.008 0 0 1-2.34-5.66v-10.2c0-3.27 1.99-6.21 5.03-7.43l39.34-15.74c1.98-.79 3.86-1.82 5.59-3.05l23.71-16.89a7.978 7.978 0 0 1 4.64-1.48h12.09c3.23 0 6.15 1.94 7.39 4.93l5.35 12.85a4 4 0 0 0 3.69 2.46h3.8c1.78 0 3.35-1.18 3.84-2.88l4.2-14.47c.5-1.71 2.06-2.88 3.84-2.88h6.06c2.21 0 4 1.79 4 4v12.93c0 2.12.84 4.16 2.34 5.66l11.91 11.91c3 3 4.69 7.07 4.69 11.31v24.6z\"]\n};\nvar faGlobeEurope = {\n prefix: 'fas',\n iconName: 'globe-europe',\n icon: [496, 512, [], \"f7a2\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm200 248c0 22.5-3.9 44.2-10.8 64.4h-20.3c-4.3 0-8.4-1.7-11.4-4.8l-32-32.6c-4.5-4.6-4.5-12.1.1-16.7l12.5-12.5v-8.7c0-3-1.2-5.9-3.3-8l-9.4-9.4c-2.1-2.1-5-3.3-8-3.3h-16c-6.2 0-11.3-5.1-11.3-11.3 0-3 1.2-5.9 3.3-8l9.4-9.4c2.1-2.1 5-3.3 8-3.3h32c6.2 0 11.3-5.1 11.3-11.3v-9.4c0-6.2-5.1-11.3-11.3-11.3h-36.7c-8.8 0-16 7.2-16 16v4.5c0 6.9-4.4 13-10.9 15.2l-31.6 10.5c-3.3 1.1-5.5 4.1-5.5 7.6v2.2c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8s-3.6-8-8-8H247c-3 0-5.8 1.7-7.2 4.4l-9.4 18.7c-2.7 5.4-8.2 8.8-14.3 8.8H194c-8.8 0-16-7.2-16-16V199c0-4.2 1.7-8.3 4.7-11.3l20.1-20.1c4.6-4.6 7.2-10.9 7.2-17.5 0-3.4 2.2-6.5 5.5-7.6l40-13.3c1.7-.6 3.2-1.5 4.4-2.7l26.8-26.8c2.1-2.1 3.3-5 3.3-8 0-6.2-5.1-11.3-11.3-11.3H258l-16 16v8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-20c0-2.5 1.2-4.9 3.2-6.4l28.9-21.7c1.9-.1 3.8-.3 5.7-.3C358.3 56 448 145.7 448 256zM130.1 149.1c0-3 1.2-5.9 3.3-8l25.4-25.4c2.1-2.1 5-3.3 8-3.3 6.2 0 11.3 5.1 11.3 11.3v16c0 3-1.2 5.9-3.3 8l-9.4 9.4c-2.1 2.1-5 3.3-8 3.3h-16c-6.2 0-11.3-5.1-11.3-11.3zm128 306.4v-7.1c0-8.8-7.2-16-16-16h-20.2c-10.8 0-26.7-5.3-35.4-11.8l-22.2-16.7c-11.5-8.6-18.2-22.1-18.2-36.4v-23.9c0-16 8.4-30.8 22.1-39l42.9-25.7c7.1-4.2 15.2-6.5 23.4-6.5h31.2c10.9 0 21.4 3.9 29.6 10.9l43.2 37.1h18.3c8.5 0 16.6 3.4 22.6 9.4l17.3 17.3c3.4 3.4 8.1 5.3 12.9 5.3H423c-32.4 58.9-93.8 99.5-164.9 103.1z\"]\n};\nvar faGolfBall = {\n prefix: 'fas',\n iconName: 'golf-ball',\n icon: [416, 512, [], \"f450\", \"M96 416h224c0 17.7-14.3 32-32 32h-16c-17.7 0-32 14.3-32 32v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-20c0-17.7-14.3-32-32-32h-16c-17.7 0-32-14.3-32-32zm320-208c0 74.2-39 139.2-97.5 176h-221C39 347.2 0 282.2 0 208 0 93.1 93.1 0 208 0s208 93.1 208 208zm-180.1 43.9c18.3 0 33.1-14.8 33.1-33.1 0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1zm49.1 46.9c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1zm64-64c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1z\"]\n};\nvar faGopuram = {\n prefix: 'fas',\n iconName: 'gopuram',\n icon: [512, 512, [], \"f664\", \"M496 352h-16V240c0-8.8-7.2-16-16-16h-16v-80c0-8.8-7.2-16-16-16h-16V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16S96 7.2 96 16v112H80c-8.8 0-16 7.2-16 16v80H48c-8.8 0-16 7.2-16 16v112H16c-8.8 0-16 7.2-16 16v128c0 8.8 7.2 16 16 16h80V352h32V224h32v-96h32v96h-32v128h-32v160h80v-80c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16v80h80V352h-32V224h-32v-96h32v96h32v128h32v160h80c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zM232 176c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v48h-48zm56 176h-64v-64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16z\"]\n};\nvar faGraduationCap = {\n prefix: 'fas',\n iconName: 'graduation-cap',\n icon: [640, 512, [], \"f19d\", \"M622.34 153.2L343.4 67.5c-15.2-4.67-31.6-4.67-46.79 0L17.66 153.2c-23.54 7.23-23.54 38.36 0 45.59l48.63 14.94c-10.67 13.19-17.23 29.28-17.88 46.9C38.78 266.15 32 276.11 32 288c0 10.78 5.68 19.85 13.86 25.65L20.33 428.53C18.11 438.52 25.71 448 35.94 448h56.11c10.24 0 17.84-9.48 15.62-19.47L82.14 313.65C90.32 307.85 96 298.78 96 288c0-11.57-6.47-21.25-15.66-26.87.76-15.02 8.44-28.3 20.69-36.72L296.6 284.5c9.06 2.78 26.44 6.25 46.79 0l278.95-85.7c23.55-7.24 23.55-38.36 0-45.6zM352.79 315.09c-28.53 8.76-52.84 3.92-65.59 0l-145.02-44.55L128 384c0 35.35 85.96 64 192 64s192-28.65 192-64l-14.18-113.47-145.03 44.56z\"]\n};\nvar faGreaterThan = {\n prefix: 'fas',\n iconName: 'greater-than',\n icon: [384, 512, [], \"f531\", \"M365.52 209.85L59.22 67.01c-16.06-7.49-35.15-.54-42.64 15.52L3.01 111.61c-7.49 16.06-.54 35.15 15.52 42.64L236.96 256.1 18.49 357.99C2.47 365.46-4.46 384.5 3.01 400.52l13.52 29C24 445.54 43.04 452.47 59.06 445l306.47-142.91a32.003 32.003 0 0 0 18.48-29v-34.23c-.01-12.45-7.21-23.76-18.49-29.01z\"]\n};\nvar faGreaterThanEqual = {\n prefix: 'fas',\n iconName: 'greater-than-equal',\n icon: [448, 512, [], \"f532\", \"M55.22 107.69l175.56 68.09-175.44 68.05c-18.39 6.03-27.88 24.39-21.2 41l12.09 30.08c6.68 16.61 26.99 25.19 45.38 19.15L393.02 214.2c13.77-4.52 22.98-16.61 22.98-30.17v-15.96c0-13.56-9.21-25.65-22.98-30.17L91.3 17.92c-18.29-6-38.51 2.53-45.15 19.06L34.12 66.9c-6.64 16.53 2.81 34.79 21.1 40.79zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"]\n};\nvar faGrimace = {\n prefix: 'fas',\n iconName: 'grimace',\n icon: [496, 512, [], \"f57f\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM144 400h-8c-17.7 0-32-14.3-32-32v-8h40v40zm0-56h-40v-8c0-17.7 14.3-32 32-32h8v40zm-8-136c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm72 192h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm-8-104c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64 128c0 17.7-14.3 32-32 32h-8v-40h40v8zm0-24h-40v-40h8c17.7 0 32 14.3 32 32v8z\"]\n};\nvar faGrin = {\n prefix: 'fas',\n iconName: 'grin',\n icon: [496, 512, [], \"f580\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm80 256c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinAlt = {\n prefix: 'fas',\n iconName: 'grin-alt',\n icon: [496, 512, [], \"f581\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm63.7 128.7c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zm-160 0c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinBeam = {\n prefix: 'fas',\n iconName: 'grin-beam',\n icon: [496, 512, [], \"f582\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 144c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinBeamSweat = {\n prefix: 'fas',\n iconName: 'grin-beam-sweat',\n icon: [504, 512, [], \"f583\", \"M456 128c26.5 0 48-21 48-47 0-20-28.5-60.4-41.6-77.8-3.2-4.3-9.6-4.3-12.8 0C436.5 20.6 408 61 408 81c0 26 21.5 47 48 47zm0 32c-44.1 0-80-35.4-80-79 0-4.4.3-14.2 8.1-32.2C345 23.1 298.3 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-35.1-7.4-68.4-20.5-98.6-6.3 1.5-12.7 2.6-19.5 2.6zm-128-8c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinHearts = {\n prefix: 'fas',\n iconName: 'grin-hearts',\n icon: [496, 512, [], \"f584\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM90.4 183.6c6.7-17.6 26.7-26.7 44.9-21.9l7.1 1.9 2-7.1c5-18.1 22.8-30.9 41.5-27.9 21.4 3.4 34.4 24.2 28.8 44.5L195.3 243c-1.2 4.5-5.9 7.2-10.5 6l-70.2-18.2c-20.4-5.4-31.9-27-24.2-47.2zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm133.4-201.3l-70.2 18.2c-4.5 1.2-9.2-1.5-10.5-6L281.3 173c-5.6-20.3 7.4-41.1 28.8-44.5 18.6-3 36.4 9.8 41.5 27.9l2 7.1 7.1-1.9c18.2-4.7 38.2 4.3 44.9 21.9 7.7 20.3-3.8 41.9-24.2 47.2z\"]\n};\nvar faGrinSquint = {\n prefix: 'fas',\n iconName: 'grin-squint',\n icon: [496, 512, [], \"f585\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinSquintTears = {\n prefix: 'fas',\n iconName: 'grin-squint-tears',\n icon: [512, 512, [], \"f586\", \"M409.6 111.9c22.6-3.2 73.5-12 88.3-26.8 19.2-19.2 18.9-50.6-.7-70.2S446-5 426.9 14.2c-14.8 14.8-23.5 65.7-26.8 88.3-.8 5.5 3.9 10.2 9.5 9.4zM102.4 400.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm311.7-256.5c-33 3.9-48.6-25.1-45.7-45.7 3.4-24 7.4-42.1 11.5-56.5C285.1-13.4 161.8-.5 80.6 80.6-.5 161.7-13.4 285 41.4 379.9c14.4-4.1 32.4-8 56.5-11.5 33.2-3.9 48.6 25.2 45.7 45.7-3.4 24-7.4 42.1-11.5 56.5 94.8 54.8 218.1 41.9 299.3-39.2s94-204.4 39.2-299.3c-14.4 4.1-32.5 8-56.5 11.5zM255.7 106c3.3-13.2 22.4-11.5 23.6 1.8l4.8 52.3 52.3 4.8c13.4 1.2 14.9 20.3 1.8 23.6l-90.5 22.6c-8.9 2.2-16.7-5.9-14.5-14.5l22.5-90.6zm-90.9 230.3L160 284l-52.3-4.8c-13.4-1.2-14.9-20.3-1.8-23.6l90.5-22.6c8.8-2.2 16.7 5.8 14.5 14.5L188.3 338c-3.1 13.2-22.2 11.7-23.5-1.7zm215.7 44.2c-29.3 29.3-75.7 50.4-116.7 50.4-18.9 0-36.6-4.5-51-14.7-9.8-6.9-8.7-21.8 2-27.2 28.3-14.6 63.9-42.4 97.8-76.3s61.7-69.6 76.3-97.8c5.4-10.5 20.2-11.9 27.3-2 32.3 45.3 7.1 124.7-35.7 167.6z\"]\n};\nvar faGrinStars = {\n prefix: 'fas',\n iconName: 'grin-stars',\n icon: [496, 512, [], \"f587\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM94.6 168.9l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.2 1 8.9 8.6 4.3 13.2l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L152 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.6-4.7-1.9-12.3 4.3-13.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm157.7-249.9l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L344 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.5-4.6-1.9-12.2 4.3-13.2l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.3.9 9 8.5 4.4 13.1z\"]\n};\nvar faGrinTears = {\n prefix: 'fas',\n iconName: 'grin-tears',\n icon: [640, 512, [], \"f588\", \"M102.4 256.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm523.4 26.8c-14.8-14.8-65.7-23.5-88.3-26.8-5.5-.8-10.3 3.9-9.5 9.5 3.2 22.6 12 73.5 26.8 88.3 19.2 19.2 50.6 18.9 70.2-.7s20-51.2.8-70.3zm-129.4-12.8c-3.8-26.6 19.1-49.5 45.7-45.7 8.9 1.3 16.8 2.7 24.3 4.1C552.7 104.5 447.7 8 320 8S87.3 104.5 73.6 228.5c7.5-1.4 15.4-2.8 24.3-4.1 33.2-3.9 48.6 25.3 45.7 45.7-11.8 82.3-29.9 100.4-35.8 106.4-.9.9-2 1.6-3 2.5 42.7 74.6 123 125 215.2 125s172.5-50.4 215.2-125.1c-1-.9-2.1-1.5-3-2.5-5.9-5.9-24-24-35.8-106.3zM400 152c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.7 9.2-21.6 20.7-17.9C227.1 330.5 272 336 320 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinTongue = {\n prefix: 'fas',\n iconName: 'grin-tongue',\n icon: [496, 512, [], \"f589\", \"M248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-34.9 134.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z\"]\n};\nvar faGrinTongueSquint = {\n prefix: 'fas',\n iconName: 'grin-tongue-squint',\n icon: [496, 512, [], \"f58a\", \"M293.1 374.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-33.8 210.3l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.7 4.7 7.7 15.9 0 20.6zm163 30c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.8-4.7-7.8-15.9 0-20.6l80-48c11.7-6.9 23.9 7.7 15.4 18L343.6 208l33.6 40.3z\"]\n};\nvar faGrinTongueWink = {\n prefix: 'fas',\n iconName: 'grin-tongue-wink',\n icon: [496, 512, [], \"f58b\", \"M344 184c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-56 225l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L112 233c-8.5 7.4-21.6.3-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c1.6 11.1-11.6 18.2-20 10.8zm152 39c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm-50.9 102.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z\"]\n};\nvar faGrinWink = {\n prefix: 'fas',\n iconName: 'grin-wink',\n icon: [496, 512, [], \"f58c\", \"M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm168 25l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.6 11-11.5 18.2-20 10.8zm-243.1 87.8C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6 20.7 17.9-9.2 55-83.2 93.3-143.8 93.3s-134.5-38.3-143.8-93.3c-2-11.9 9.3-21.6 20.7-17.9z\"]\n};\nvar faGripHorizontal = {\n prefix: 'fas',\n iconName: 'grip-horizontal',\n icon: [448, 512, [], \"f58d\", \"M96 288H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM96 96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"]\n};\nvar faGripLines = {\n prefix: 'fas',\n iconName: 'grip-lines',\n icon: [512, 512, [], \"f7a4\", \"M496 288H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-128H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"]\n};\nvar faGripLinesVertical = {\n prefix: 'fas',\n iconName: 'grip-lines-vertical',\n icon: [256, 512, [], \"f7a5\", \"M96 496V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zm128 0V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16z\"]\n};\nvar faGripVertical = {\n prefix: 'fas',\n iconName: 'grip-vertical',\n icon: [320, 512, [], \"f58e\", \"M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"]\n};\nvar faGuitar = {\n prefix: 'fas',\n iconName: 'guitar',\n icon: [512, 512, [], \"f7a6\", \"M502.63 39L473 9.37a32 32 0 0 0-45.26 0L381.46 55.7a35.14 35.14 0 0 0-8.53 13.79L360.77 106l-76.26 76.26c-12.16-8.76-25.5-15.74-40.1-19.14-33.45-7.78-67-.88-89.88 22a82.45 82.45 0 0 0-20.24 33.47c-6 18.56-23.21 32.69-42.15 34.46-23.7 2.27-45.73 11.45-62.61 28.44C-16.11 327-7.9 409 47.58 464.45S185 528 230.56 482.52c17-16.88 26.16-38.9 28.45-62.71 1.76-18.85 15.89-36.13 34.43-42.14a82.6 82.6 0 0 0 33.48-20.25c22.87-22.88 29.74-56.36 22-89.75-3.39-14.64-10.37-28-19.16-40.2L406 151.23l36.48-12.16a35.14 35.14 0 0 0 13.79-8.53l46.33-46.32a32 32 0 0 0 .03-45.22zM208 352a48 48 0 1 1 48-48 48 48 0 0 1-48 48z\"]\n};\nvar faHSquare = {\n prefix: 'fas',\n iconName: 'h-square',\n icon: [448, 512, [], \"f0fd\", \"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-112 48h-32c-8.837 0-16 7.163-16 16v80H160v-80c0-8.837-7.163-16-16-16h-32c-8.837 0-16 7.163-16 16v224c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16v-80h128v80c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144c0-8.837-7.163-16-16-16z\"]\n};\nvar faHamburger = {\n prefix: 'fas',\n iconName: 'hamburger',\n icon: [512, 512, [], \"f805\", \"M464 256H48a48 48 0 0 0 0 96h416a48 48 0 0 0 0-96zm16 128H32a16 16 0 0 0-16 16v16a64 64 0 0 0 64 64h352a64 64 0 0 0 64-64v-16a16 16 0 0 0-16-16zM58.64 224h394.72c34.57 0 54.62-43.9 34.82-75.88C448 83.2 359.55 32.1 256 32c-103.54.1-192 51.2-232.18 116.11C4 180.09 24.07 224 58.64 224zM384 112a16 16 0 1 1-16 16 16 16 0 0 1 16-16zM256 80a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm-128 32a16 16 0 1 1-16 16 16 16 0 0 1 16-16z\"]\n};\nvar faHammer = {\n prefix: 'fas',\n iconName: 'hammer',\n icon: [576, 512, [], \"f6e3\", \"M571.31 193.94l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31-28.9-28.9c5.63-21.31.36-44.9-16.35-61.61l-45.25-45.25c-62.48-62.48-163.79-62.48-226.28 0l90.51 45.25v18.75c0 16.97 6.74 33.25 18.75 45.25l49.14 49.14c16.71 16.71 40.3 21.98 61.61 16.35l28.9 28.9-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l90.51-90.51c6.23-6.24 6.23-16.37-.02-22.62zm-286.72-15.2c-3.7-3.7-6.84-7.79-9.85-11.95L19.64 404.96c-25.57 23.88-26.26 64.19-1.53 88.93s65.05 24.05 88.93-1.53l238.13-255.07c-3.96-2.91-7.9-5.87-11.44-9.41l-49.14-49.14z\"]\n};\nvar faHamsa = {\n prefix: 'fas',\n iconName: 'hamsa',\n icon: [512, 512, [], \"f665\", \"M509.34 307.25C504.28 295.56 492.75 288 480 288h-64V80c0-22-18-40-40-40s-40 18-40 40v134c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V40c0-22-18-40-40-40s-40 18-40 40v174c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V80c0-22-18-40-40-40S96 58 96 80v208H32c-12.75 0-24.28 7.56-29.34 19.25a31.966 31.966 0 0 0 5.94 34.58l102.69 110.03C146.97 490.08 199.69 512 256 512s109.03-21.92 144.72-60.14L503.4 341.83a31.966 31.966 0 0 0 5.94-34.58zM256 416c-53.02 0-96-64-96-64s42.98-64 96-64 96 64 96 64-42.98 64-96 64zm0-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"]\n};\nvar faHandHolding = {\n prefix: 'fas',\n iconName: 'hand-holding',\n icon: [576, 512, [], \"f4bd\", \"M565.3 328.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"]\n};\nvar faHandHoldingHeart = {\n prefix: 'fas',\n iconName: 'hand-holding-heart',\n icon: [576, 512, [], \"f4be\", \"M275.3 250.5c7 7.4 18.4 7.4 25.5 0l108.9-114.2c31.6-33.2 29.8-88.2-5.6-118.8-30.8-26.7-76.7-21.9-104.9 7.7L288 36.9l-11.1-11.6C248.7-4.4 202.8-9.2 172 17.5c-35.3 30.6-37.2 85.6-5.6 118.8l108.9 114.2zm290 77.6c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"]\n};\nvar faHandHoldingMedical = {\n prefix: 'fas',\n iconName: 'hand-holding-medical',\n icon: [576, 512, [], \"e05c\", \"M159.88,175.82h64v64a16,16,0,0,0,16,16h64a16,16,0,0,0,16-16v-64h64a16,16,0,0,0,16-16v-64a16,16,0,0,0-16-16h-64v-64a16,16,0,0,0-16-16h-64a16,16,0,0,0-16,16v64h-64a16,16,0,0,0-16,16v64A16,16,0,0,0,159.88,175.82ZM568.07,336.13a39.91,39.91,0,0,0-55.93-8.47L392.47,415.84H271.86a16,16,0,0,1,0-32H350.1c16,0,30.75-10.87,33.37-26.61a32.06,32.06,0,0,0-31.62-37.38h-160a117.7,117.7,0,0,0-74.12,26.25l-46.5,37.74H15.87a16.11,16.11,0,0,0-16,16v96a16.11,16.11,0,0,0,16,16h347a104.8,104.8,0,0,0,61.7-20.27L559.6,392A40,40,0,0,0,568.07,336.13Z\"]\n};\nvar faHandHoldingUsd = {\n prefix: 'fas',\n iconName: 'hand-holding-usd',\n icon: [576, 512, [], \"f4c0\", \"M271.06,144.3l54.27,14.3a8.59,8.59,0,0,1,6.63,8.1c0,4.6-4.09,8.4-9.12,8.4h-35.6a30,30,0,0,1-11.19-2.2c-5.24-2.2-11.28-1.7-15.3,2l-19,17.5a11.68,11.68,0,0,0-2.25,2.66,11.42,11.42,0,0,0,3.88,15.74,83.77,83.77,0,0,0,34.51,11.5V240c0,8.8,7.83,16,17.37,16h17.37c9.55,0,17.38-7.2,17.38-16V222.4c32.93-3.6,57.84-31,53.5-63-3.15-23-22.46-41.3-46.56-47.7L282.68,97.4a8.59,8.59,0,0,1-6.63-8.1c0-4.6,4.09-8.4,9.12-8.4h35.6A30,30,0,0,1,332,83.1c5.23,2.2,11.28,1.7,15.3-2l19-17.5A11.31,11.31,0,0,0,368.47,61a11.43,11.43,0,0,0-3.84-15.78,83.82,83.82,0,0,0-34.52-11.5V16c0-8.8-7.82-16-17.37-16H295.37C285.82,0,278,7.2,278,16V33.6c-32.89,3.6-57.85,31-53.51,63C227.63,119.6,247,137.9,271.06,144.3ZM565.27,328.1c-11.8-10.7-30.2-10-42.6,0L430.27,402a63.64,63.64,0,0,1-40,14H272a16,16,0,0,1,0-32h78.29c15.9,0,30.71-10.9,33.25-26.6a31.2,31.2,0,0,0,.46-5.46A32,32,0,0,0,352,320H192a117.66,117.66,0,0,0-74.1,26.29L71.4,384H16A16,16,0,0,0,0,400v96a16,16,0,0,0,16,16H372.77a64,64,0,0,0,40-14L564,377a32,32,0,0,0,1.28-48.9Z\"]\n};\nvar faHandHoldingWater = {\n prefix: 'fas',\n iconName: 'hand-holding-water',\n icon: [576, 512, [], \"f4c1\", \"M288 256c53 0 96-42.1 96-94 0-40-57.1-120.7-83.2-155.6-6.4-8.5-19.2-8.5-25.6 0C249.1 41.3 192 122 192 162c0 51.9 43 94 96 94zm277.3 72.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"]\n};\nvar faHandLizard = {\n prefix: 'fas',\n iconName: 'hand-lizard',\n icon: [576, 512, [], \"f258\", \"M384 480h192V363.778a95.998 95.998 0 0 0-14.833-51.263L398.127 54.368A48 48 0 0 0 357.544 32H24C10.745 32 0 42.745 0 56v16c0 30.928 25.072 56 56 56h229.981c12.844 0 21.556 13.067 16.615 24.923l-21.41 51.385A32 32 0 0 1 251.648 224H128c-35.346 0-64 28.654-64 64v8c0 13.255 10.745 24 24 24h147.406a47.995 47.995 0 0 1 25.692 7.455l111.748 70.811A24.001 24.001 0 0 1 384 418.539V480z\"]\n};\nvar faHandMiddleFinger = {\n prefix: 'fas',\n iconName: 'hand-middle-finger',\n icon: [512, 512, [], \"f806\", \"M479.93 317.12a37.33 37.33 0 0 0-28.28-36.19L416 272v-49.59c0-11.44-9.69-21.29-23.15-23.54l-38.4-6.4C336.63 189.5 320 200.86 320 216v32a8 8 0 0 1-16 0V50c0-26.28-20.25-49.2-46.52-50A48 48 0 0 0 208 48v200a8 8 0 0 1-16 0v-32c0-15.15-16.63-26.51-34.45-23.54l-30.68 5.12c-18 3-30.87 16.12-30.87 31.38V376a8 8 0 0 1-16 0v-76l-27.36 15A37.34 37.34 0 0 0 32 348.4v73.47a37.31 37.31 0 0 0 10.93 26.39l30.93 30.93A112 112 0 0 0 153.05 512h215A112 112 0 0 0 480 400z\"]\n};\nvar faHandPaper = {\n prefix: 'fas',\n iconName: 'hand-paper',\n icon: [448, 512, [], \"f256\", \"M408.781 128.007C386.356 127.578 368 146.36 368 168.79V256h-8V79.79c0-22.43-18.356-41.212-40.781-40.783C297.488 39.423 280 57.169 280 79v177h-8V40.79C272 18.36 253.644-.422 231.219.007 209.488.423 192 18.169 192 40v216h-8V80.79c0-22.43-18.356-41.212-40.781-40.783C121.488 40.423 104 58.169 104 80v235.992l-31.648-43.519c-12.993-17.866-38.009-21.817-55.877-8.823-17.865 12.994-21.815 38.01-8.822 55.877l125.601 172.705A48 48 0 0 0 172.073 512h197.59c22.274 0 41.622-15.324 46.724-37.006l26.508-112.66a192.011 192.011 0 0 0 5.104-43.975V168c.001-21.831-17.487-39.577-39.218-39.993z\"]\n};\nvar faHandPeace = {\n prefix: 'fas',\n iconName: 'hand-peace',\n icon: [448, 512, [], \"f25b\", \"M408 216c-22.092 0-40 17.909-40 40h-8v-32c0-22.091-17.908-40-40-40s-40 17.909-40 40v32h-8V48c0-26.51-21.49-48-48-48s-48 21.49-48 48v208h-13.572L92.688 78.449C82.994 53.774 55.134 41.63 30.461 51.324 5.787 61.017-6.356 88.877 3.337 113.551l74.765 190.342-31.09 24.872c-15.381 12.306-19.515 33.978-9.741 51.081l64 112A39.998 39.998 0 0 0 136 512h240c18.562 0 34.686-12.77 38.937-30.838l32-136A39.97 39.97 0 0 0 448 336v-80c0-22.091-17.908-40-40-40z\"]\n};\nvar faHandPointDown = {\n prefix: 'fas',\n iconName: 'hand-point-down',\n icon: [384, 512, [], \"f0a7\", \"M91.826 467.2V317.966c-8.248 5.841-16.558 10.57-24.918 14.153C35.098 345.752-.014 322.222 0 288c.008-18.616 10.897-32.203 29.092-40 28.286-12.122 64.329-78.648 77.323-107.534 7.956-17.857 25.479-28.453 43.845-28.464l.001-.002h171.526c11.812 0 21.897 8.596 23.703 20.269 7.25 46.837 38.483 61.76 38.315 123.731-.007 2.724.195 13.254.195 16 0 50.654-22.122 81.574-71.263 72.6-9.297 18.597-39.486 30.738-62.315 16.45-21.177 24.645-53.896 22.639-70.944 6.299V467.2c0 24.15-20.201 44.8-43.826 44.8-23.283 0-43.826-21.35-43.826-44.8zM112 72V24c0-13.255 10.745-24 24-24h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24zm212-24c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z\"]\n};\nvar faHandPointLeft = {\n prefix: 'fas',\n iconName: 'hand-point-left',\n icon: [512, 512, [], \"f0a5\", \"M44.8 155.826h149.234c-5.841-8.248-10.57-16.558-14.153-24.918C166.248 99.098 189.778 63.986 224 64c18.616.008 32.203 10.897 40 29.092 12.122 28.286 78.648 64.329 107.534 77.323 17.857 7.956 28.453 25.479 28.464 43.845l.002.001v171.526c0 11.812-8.596 21.897-20.269 23.703-46.837 7.25-61.76 38.483-123.731 38.315-2.724-.007-13.254.195-16 .195-50.654 0-81.574-22.122-72.6-71.263-18.597-9.297-30.738-39.486-16.45-62.315-24.645-21.177-22.639-53.896-6.299-70.944H44.8c-24.15 0-44.8-20.201-44.8-43.826 0-23.283 21.35-43.826 44.8-43.826zM440 176h48c13.255 0 24 10.745 24 24v192c0 13.255-10.745 24-24 24h-48c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24zm24 212c11.046 0 20-8.954 20-20s-8.954-20-20-20-20 8.954-20 20 8.954 20 20 20z\"]\n};\nvar faHandPointRight = {\n prefix: 'fas',\n iconName: 'hand-point-right',\n icon: [512, 512, [], \"f0a4\", \"M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z\"]\n};\nvar faHandPointUp = {\n prefix: 'fas',\n iconName: 'hand-point-up',\n icon: [384, 512, [], \"f0a6\", \"M135.652 0c23.625 0 43.826 20.65 43.826 44.8v99.851c17.048-16.34 49.766-18.346 70.944 6.299 22.829-14.288 53.017-2.147 62.315 16.45C361.878 158.426 384 189.346 384 240c0 2.746-.203 13.276-.195 16 .168 61.971-31.065 76.894-38.315 123.731C343.683 391.404 333.599 400 321.786 400H150.261l-.001-.002c-18.366-.011-35.889-10.607-43.845-28.464C93.421 342.648 57.377 276.122 29.092 264 10.897 256.203.008 242.616 0 224c-.014-34.222 35.098-57.752 66.908-44.119 8.359 3.583 16.67 8.312 24.918 14.153V44.8c0-23.45 20.543-44.8 43.826-44.8zM136 416h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24v-48c0-13.255 10.745-24 24-24zm168 28c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z\"]\n};\nvar faHandPointer = {\n prefix: 'fas',\n iconName: 'hand-pointer',\n icon: [448, 512, [], \"f25a\", \"M448 240v96c0 3.084-.356 6.159-1.063 9.162l-32 136C410.686 499.23 394.562 512 376 512H168a40.004 40.004 0 0 1-32.35-16.473l-127.997-176c-12.993-17.866-9.043-42.883 8.822-55.876 17.867-12.994 42.884-9.043 55.877 8.823L104 315.992V40c0-22.091 17.908-40 40-40s40 17.909 40 40v200h8v-40c0-22.091 17.908-40 40-40s40 17.909 40 40v40h8v-24c0-22.091 17.908-40 40-40s40 17.909 40 40v24h8c0-22.091 17.908-40 40-40s40 17.909 40 40zm-256 80h-8v96h8v-96zm88 0h-8v96h8v-96zm88 0h-8v96h8v-96z\"]\n};\nvar faHandRock = {\n prefix: 'fas',\n iconName: 'hand-rock',\n icon: [512, 512, [], \"f255\", \"M464.8 80c-26.9-.4-48.8 21.2-48.8 48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v32h-8V80.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v136l-8-7.1v-48.1c0-26.3-20.9-48.3-47.2-48.8C21.9 127.6 0 149.2 0 176v66.4c0 27.4 11.7 53.5 32.2 71.8l111.7 99.3c10.2 9.1 16.1 22.2 16.1 35.9v6.7c0 13.3 10.7 24 24 24h240c13.3 0 24-10.7 24-24v-2.9c0-12.8 2.6-25.5 7.5-37.3l49-116.3c5-11.8 7.5-24.5 7.5-37.3V128.8c0-26.3-20.9-48.4-47.2-48.8z\"]\n};\nvar faHandScissors = {\n prefix: 'fas',\n iconName: 'hand-scissors',\n icon: [512, 512, [], \"f257\", \"M216 440c0-22.092 17.909-40 40-40v-8h-32c-22.091 0-40-17.908-40-40s17.909-40 40-40h32v-8H48c-26.51 0-48-21.49-48-48s21.49-48 48-48h208v-13.572l-177.551-69.74c-24.674-9.694-36.818-37.555-27.125-62.228 9.693-24.674 37.554-36.817 62.228-27.124l190.342 74.765 24.872-31.09c12.306-15.381 33.978-19.515 51.081-9.741l112 64A40.002 40.002 0 0 1 512 168v240c0 18.562-12.77 34.686-30.838 38.937l-136 32A39.982 39.982 0 0 1 336 480h-80c-22.091 0-40-17.908-40-40z\"]\n};\nvar faHandSparkles = {\n prefix: 'fas',\n iconName: 'hand-sparkles',\n icon: [640, 512, [], \"e05d\", \"M106.66,170.64l.09,0,49.55-20.65a7.32,7.32,0,0,0,3.68-6h0a7.29,7.29,0,0,0-3.68-6l-49.57-20.67-.07,0L86,67.68a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L3.7,138A7.29,7.29,0,0,0,0,144H0a7.32,7.32,0,0,0,3.68,6L53.27,170.6l.07,0L74,220.26a6.65,6.65,0,0,0,11.92,0l20.69-49.62ZM471.38,467.41l-1-.42-1-.5a38.67,38.67,0,0,1,0-69.14l1-.49,1-.43,37.49-15.63,15.63-37.48.41-1,.47-.95c3.85-7.74,10.58-13.63,18.35-17.34,0-1.33.25-2.69.27-4V144a32,32,0,0,0-64,0v72a8,8,0,0,1-8,8H456a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H360a8,8,0,0,1-8-8V32a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H264a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0v241l-23.59-32.49a40,40,0,0,0-64.71,47.09L229.3,492.21A48.07,48.07,0,0,0,268.09,512H465.7c19.24,0,35.65-11.73,43.24-28.79l-.07-.17ZM349.79,339.52,320,351.93l-12.42,29.78a4,4,0,0,1-7.15,0L288,351.93l-29.79-12.41a4,4,0,0,1,0-7.16L288,319.94l12.42-29.78a4,4,0,0,1,7.15,0L320,319.94l29.79,12.42a4,4,0,0,1,0,7.16ZM640,431.91a7.28,7.28,0,0,0-3.68-6l-49.57-20.67-.07,0L566,355.63a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L483.7,426a7.28,7.28,0,0,0-3.68,6h0a7.29,7.29,0,0,0,3.68,5.95l49.57,20.67.07,0L554,508.21a6.65,6.65,0,0,0,11.92,0l20.69-49.62h0l.09,0,49.55-20.66a7.29,7.29,0,0,0,3.68-5.95h0Z\"]\n};\nvar faHandSpock = {\n prefix: 'fas',\n iconName: 'hand-spock',\n icon: [512, 512, [], \"f259\", \"M510.9005,145.27027,442.604,432.09391A103.99507,103.99507,0,0,1,341.43745,512H214.074a135.96968,135.96968,0,0,1-93.18489-36.95291L12.59072,373.12723a39.992,39.992,0,0,1,54.8122-58.24988l60.59342,57.02528v0a283.24849,283.24849,0,0,0-11.6703-80.46734L73.63726,147.36011a40.00575,40.00575,0,1,1,76.71833-22.7187l37.15458,125.39477a8.33113,8.33113,0,0,0,16.05656-4.4414L153.26183,49.95406A39.99638,39.99638,0,1,1,230.73015,30.0166l56.09491,218.15825a10.42047,10.42047,0,0,0,20.30018-.501L344.80766,63.96966a40.052,40.052,0,0,1,51.30245-30.0893c19.86073,6.2998,30.86262,27.67378,26.67564,48.08487l-33.83869,164.966a7.55172,7.55172,0,0,0,14.74406,3.2666l29.3973-123.45874a39.99414,39.99414,0,1,1,77.81208,18.53121Z\"]\n};\nvar faHands = {\n prefix: 'fas',\n iconName: 'hands',\n icon: [640, 512, [], \"f4c2\", \"M204.8 230.4c-10.6-14.1-30.7-17-44.8-6.4-14.1 10.6-17 30.7-6.4 44.8l38.1 50.8c4.8 6.4 4.1 15.3-1.5 20.9l-12.8 12.8c-6.7 6.7-17.6 6.2-23.6-1.1L64 244.4V96c0-17.7-14.3-32-32-32S0 78.3 0 96v218.4c0 10.9 3.7 21.5 10.5 30l104.1 134.3c5 6.5 8.4 13.9 10.4 21.7 1.8 6.9 8.1 11.6 15.3 11.6H272c8.8 0 16-7.2 16-16V384c0-27.7-9-54.6-25.6-76.8l-57.6-76.8zM608 64c-17.7 0-32 14.3-32 32v148.4l-89.8 107.8c-6 7.2-17 7.7-23.6 1.1l-12.8-12.8c-5.6-5.6-6.3-14.5-1.5-20.9l38.1-50.8c10.6-14.1 7.7-34.2-6.4-44.8-14.1-10.6-34.2-7.7-44.8 6.4l-57.6 76.8C361 329.4 352 356.3 352 384v112c0 8.8 7.2 16 16 16h131.7c7.1 0 13.5-4.7 15.3-11.6 2-7.8 5.4-15.2 10.4-21.7l104.1-134.3c6.8-8.5 10.5-19.1 10.5-30V96c0-17.7-14.3-32-32-32z\"]\n};\nvar faHandsHelping = {\n prefix: 'fas',\n iconName: 'hands-helping',\n icon: [640, 512, [], \"f4c4\", \"M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z\"]\n};\nvar faHandsWash = {\n prefix: 'fas',\n iconName: 'hands-wash',\n icon: [576, 512, [], \"e05e\", \"M496,224a48,48,0,1,0-48-48A48,48,0,0,0,496,224ZM311.47,178.45A56.77,56.77,0,0,1,328,176a56,56,0,0,1,19,3.49l15.35-48.61A24,24,0,0,0,342,99.74c-11.53-1.35-22.21,6.44-25.71,17.51l-20.9,66.17ZM93.65,386.33c.8-.19,1.54-.54,2.35-.71V359.93a156,156,0,0,1,107.06-148l73.7-22.76L310.92,81.05a24,24,0,0,0-20.33-31.11c-11.53-1.34-22.22,6.45-25.72,17.52L231.42,173.88a8,8,0,0,1-15.26-4.83L259.53,31.26A24,24,0,0,0,239.2.15C227.67-1.19,217,6.6,213.49,17.66L165.56,169.37a8,8,0,1,1-15.26-4.82l38.56-122a24,24,0,0,0-20.33-31.11C157,10,146.32,17.83,142.82,28.9l-60,189.85L80.76,168.7A24,24,0,0,0,56.9,144.55c-13.23-.05-24.72,10.54-24.9,23.86V281.14A123.69,123.69,0,0,0,93.65,386.33ZM519.1,336H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,279.84,498.71,272,487.1,272H288l47.09-17.06a24,24,0,0,0-14.18-45.88L213.19,242.31A123.88,123.88,0,0,0,128,360v25.65a79.78,79.78,0,0,1,58,108.63A118.9,118.9,0,0,0,248,512H456a24,24,0,0,0,23.54-28.76C477.35,471.84,466.71,464,455.1,464H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,407.84,498.71,400,487.1,400H360a8,8,0,0,1,0-16H520a24,24,0,0,0,23.54-28.76C541.35,343.84,530.71,336,519.1,336ZM416,64a32,32,0,1,0-32-32A32,32,0,0,0,416,64ZM112,416a48,48,0,1,0,48,48A48,48,0,0,0,112,416Z\"]\n};\nvar faHandshake = {\n prefix: 'fas',\n iconName: 'handshake',\n icon: [640, 512, [], \"f2b5\", \"M434.7 64h-85.9c-8 0-15.7 3-21.6 8.4l-98.3 90c-.1.1-.2.3-.3.4-16.6 15.6-16.3 40.5-2.1 56 12.7 13.9 39.4 17.6 56.1 2.7.1-.1.3-.1.4-.2l79.9-73.2c6.5-5.9 16.7-5.5 22.6 1 6 6.5 5.5 16.6-1 22.6l-26.1 23.9L504 313.8c2.9 2.4 5.5 5 7.9 7.7V128l-54.6-54.6c-5.9-6-14.1-9.4-22.6-9.4zM544 128.2v223.9c0 17.7 14.3 32 32 32h64V128.2h-96zm48 223.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM0 384h64c17.7 0 32-14.3 32-32V128.2H0V384zm48-63.9c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16c0-8.9 7.2-16 16-16zm435.9 18.6L334.6 217.5l-30 27.5c-29.7 27.1-75.2 24.5-101.7-4.4-26.9-29.4-24.8-74.9 4.4-101.7L289.1 64h-83.8c-8.5 0-16.6 3.4-22.6 9.4L128 128v223.9h18.3l90.5 81.9c27.4 22.3 67.7 18.1 90-9.3l.2-.2 17.9 15.5c15.9 13 39.4 10.5 52.3-5.4l31.4-38.6 5.4 4.4c13.7 11.1 33.9 9.1 45-4.7l9.5-11.7c11.2-13.8 9.1-33.9-4.6-45.1z\"]\n};\nvar faHandshakeAltSlash = {\n prefix: 'fas',\n iconName: 'handshake-alt-slash',\n icon: [640, 512, [], \"e05f\", \"M358.59,195.6,504.2,313.8a63.4,63.4,0,0,1,22.21,37.91H624a16.05,16.05,0,0,0,16-16V143.91A16,16,0,0,0,624,128H512L457.41,73.41A32,32,0,0,0,434.8,64H348.91a32,32,0,0,0-21.61,8.41l-88.12,80.68-25.69-19.85L289.09,64H205.3a32,32,0,0,0-22.6,9.41l-20.34,20.3L45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.54,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45L303.4,202.72l32.69-29.92,27-24.7a16,16,0,0,1,21.61,23.61ZM16,128A16.05,16.05,0,0,0,0,144V335.91a16,16,0,0,0,16,16H146.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L23.56,128Z\"]\n};\nvar faHandshakeSlash = {\n prefix: 'fas',\n iconName: 'handshake-slash',\n icon: [640, 512, [], \"e060\", \"M0,128.21V384H64a32,32,0,0,0,32-32V184L23.83,128.21ZM48,320.1a16,16,0,1,1-16,16A16,16,0,0,1,48,320.1Zm80,31.81h18.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L128,208.72Zm416-223.7V352.1a32,32,0,0,0,32,32h64V128.21ZM592,352.1a16,16,0,1,1,16-16A16,16,0,0,1,592,352.1ZM303.33,202.67l59.58-54.57a16,16,0,0,1,21.59,23.61L358.41,195.6,504,313.8a73.08,73.08,0,0,1,7.91,7.7V128L457.3,73.41A31.76,31.76,0,0,0,434.7,64H348.8a31.93,31.93,0,0,0-21.6,8.41l-88.07,80.64-25.64-19.81L289.09,64H205.3a32,32,0,0,0-22.6,9.41L162.36,93.72,45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.65-25.27a16,16,0,0,0-2.82-22.45Z\"]\n};\nvar faHanukiah = {\n prefix: 'fas',\n iconName: 'hanukiah',\n icon: [640, 512, [], \"f6e6\", \"M232 160c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm-64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm224 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm88 8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v120h32V168zm-440-8c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm520 0h-32c-8.84 0-16 7.16-16 16v112c0 17.67-14.33 32-32 32H352V128c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v192H96c-17.67 0-32-14.33-32-32V176c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v112c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V176c0-8.84-7.16-16-16-16zm-16-32c13.25 0 24-11.94 24-26.67S608 48 608 48s-24 38.61-24 53.33S594.75 128 608 128zm-576 0c13.25 0 24-11.94 24-26.67S32 48 32 48 8 86.61 8 101.33 18.75 128 32 128zm288-48c13.25 0 24-11.94 24-26.67S320 0 320 0s-24 38.61-24 53.33S306.75 80 320 80zm-208 48c13.25 0 24-11.94 24-26.67S112 48 112 48s-24 38.61-24 53.33S98.75 128 112 128zm64 0c13.25 0 24-11.94 24-26.67S176 48 176 48s-24 38.61-24 53.33S162.75 128 176 128zm64 0c13.25 0 24-11.94 24-26.67S240 48 240 48s-24 38.61-24 53.33S226.75 128 240 128zm160 0c13.25 0 24-11.94 24-26.67S400 48 400 48s-24 38.61-24 53.33S386.75 128 400 128zm64 0c13.25 0 24-11.94 24-26.67S464 48 464 48s-24 38.61-24 53.33S450.75 128 464 128zm64 0c13.25 0 24-11.94 24-26.67S528 48 528 48s-24 38.61-24 53.33S514.75 128 528 128z\"]\n};\nvar faHardHat = {\n prefix: 'fas',\n iconName: 'hard-hat',\n icon: [512, 512, [], \"f807\", \"M480 288c0-80.25-49.28-148.92-119.19-177.62L320 192V80a16 16 0 0 0-16-16h-96a16 16 0 0 0-16 16v112l-40.81-81.62C81.28 139.08 32 207.75 32 288v64h448zm16 96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faHashtag = {\n prefix: 'fas',\n iconName: 'hashtag',\n icon: [448, 512, [], \"f292\", \"M440.667 182.109l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l14.623-81.891C377.123 38.754 371.468 32 363.997 32h-40.632a12 12 0 0 0-11.813 9.891L296.175 128H197.54l14.623-81.891C213.477 38.754 207.822 32 200.35 32h-40.632a12 12 0 0 0-11.813 9.891L132.528 128H53.432a12 12 0 0 0-11.813 9.891l-7.143 40C33.163 185.246 38.818 192 46.289 192h74.81L98.242 320H19.146a12 12 0 0 0-11.813 9.891l-7.143 40C-1.123 377.246 4.532 384 12.003 384h74.81L72.19 465.891C70.877 473.246 76.532 480 84.003 480h40.632a12 12 0 0 0 11.813-9.891L151.826 384h98.634l-14.623 81.891C234.523 473.246 240.178 480 247.65 480h40.632a12 12 0 0 0 11.813-9.891L315.472 384h79.096a12 12 0 0 0 11.813-9.891l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l22.857-128h79.096a12 12 0 0 0 11.813-9.891zM261.889 320h-98.634l22.857-128h98.634l-22.857 128z\"]\n};\nvar faHatCowboy = {\n prefix: 'fas',\n iconName: 'hat-cowboy',\n icon: [640, 512, [], \"f8c0\", \"M490 296.9C480.51 239.51 450.51 64 392.3 64c-14 0-26.49 5.93-37 14a58.21 58.21 0 0 1-70.58 0c-10.51-8-23-14-37-14-58.2 0-88.2 175.47-97.71 232.88C188.81 309.47 243.73 320 320 320s131.23-10.51 170-23.1zm142.9-37.18a16 16 0 0 0-19.75 1.5c-1 .9-101.27 90.78-293.16 90.78-190.82 0-292.22-89.94-293.24-90.84A16 16 0 0 0 1 278.53C1.73 280.55 78.32 480 320 480s318.27-199.45 319-201.47a16 16 0 0 0-6.09-18.81z\"]\n};\nvar faHatCowboySide = {\n prefix: 'fas',\n iconName: 'hat-cowboy-side',\n icon: [640, 512, [], \"f8c1\", \"M260.8 291.06c-28.63-22.94-62-35.06-96.4-35.06C87 256 21.47 318.72 1.43 412.06c-3.55 16.6-.43 33.83 8.57 47.3C18.75 472.47 31.83 480 45.88 480H592c-103.21 0-155-37.07-233.19-104.46zm234.65-18.29L468.4 116.2A64 64 0 0 0 392 64.41L200.85 105a64 64 0 0 0-50.35 55.79L143.61 226c6.9-.83 13.7-2 20.79-2 41.79 0 82 14.55 117.29 42.82l98 84.48C450.76 412.54 494.9 448 592 448a48 48 0 0 0 48-48c0-25.39-29.6-119.33-144.55-127.23z\"]\n};\nvar faHatWizard = {\n prefix: 'fas',\n iconName: 'hat-wizard',\n icon: [512, 512, [], \"f6e8\", \"M496 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-304-64l-64-32 64-32 32-64 32 64 64 32-64 32-16 32h208l-86.41-201.63a63.955 63.955 0 0 1-1.89-45.45L416 0 228.42 107.19a127.989 127.989 0 0 0-53.46 59.15L64 416h144l-16-32zm64-224l16-32 16 32 32 16-32 16-16 32-16-32-32-16 32-16z\"]\n};\nvar faHdd = {\n prefix: 'fas',\n iconName: 'hdd',\n icon: [576, 512, [], \"f0a0\", \"M576 304v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48zm-48-80a79.557 79.557 0 0 1 30.777 6.165L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L17.223 230.165A79.557 79.557 0 0 1 48 224h480zm-48 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm-96 0c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z\"]\n};\nvar faHeadSideCough = {\n prefix: 'fas',\n iconName: 'head-side-cough',\n icon: [640, 512, [], \"e061\", \"M616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304ZM552,416a24,24,0,1,0,24,24A24,24,0,0,0,552,416Zm-64-56a24,24,0,1,0,24,24A24,24,0,0,0,488,360ZM616,464a24,24,0,1,0,24,24A24,24,0,0,0,616,464Zm0-104a24,24,0,1,0,24,24A24,24,0,0,0,616,360Zm-64-40a24,24,0,1,0,24,24A24,24,0,0,0,552,320Zm-74.78-45c-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192C86,0,0,86,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320a32,32,0,0,1,0-64h96V320h32A32,32,0,0,0,477.22,275ZM288,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,288,224Z\"]\n};\nvar faHeadSideCoughSlash = {\n prefix: 'fas',\n iconName: 'head-side-cough-slash',\n icon: [640, 512, [], \"e062\", \"M454.11,319.21c19.56-3.81,31.62-25,23.11-44.21-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192A190.64,190.64,0,0,0,84.18,33.3L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45ZM313.39,210.45,263.61,172c5.88-7.14,14.43-12,24.36-12a32.06,32.06,0,0,1,32,32C320,199,317.24,205.17,313.39,210.45ZM616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304Zm-64,64a24,24,0,1,0-24-24A24,24,0,0,0,552,368ZM288,384a32,32,0,0,1,32-32h19.54L20.73,105.59A190.86,190.86,0,0,0,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320A32,32,0,0,1,288,384Zm328-24a24,24,0,1,0,24,24A24,24,0,0,0,616,360Z\"]\n};\nvar faHeadSideMask = {\n prefix: 'fas',\n iconName: 'head-side-mask',\n icon: [512, 512, [], \"e063\", \"M.15,184.42C-2.17,244.21,23,298.06,64,334.88V512H224V316.51L3.67,156.25A182.28,182.28,0,0,0,.15,184.42ZM509.22,275c-21-47.12-48.5-151.75-73.12-186.75A208.11,208.11,0,0,0,266.11,0H200C117,0,42.48,50.57,13.25,123.65L239.21,288H511.76A31.35,31.35,0,0,0,509.22,275ZM320,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,320,224Zm16,144H496l16-48H256V512H401.88a64,64,0,0,0,60.71-43.76L464,464H336a16,16,0,0,1,0-32H474.67l10.67-32H336a16,16,0,0,1,0-32Z\"]\n};\nvar faHeadSideVirus = {\n prefix: 'fas',\n iconName: 'head-side-virus',\n icon: [512, 512, [], \"e064\", \"M272,240a16,16,0,1,0,16,16A16,16,0,0,0,272,240Zm-64-64a16,16,0,1,0,16,16A16,16,0,0,0,208,176Zm301.2,99c-20.93-47.12-48.43-151.73-73.07-186.75A207.9,207.9,0,0,0,266.09,0H192C86,0,0,86,0,192A191.23,191.23,0,0,0,64,334.81V512H320V448h64a64,64,0,0,0,64-64V320H480A32,32,0,0,0,509.2,275ZM368,240H355.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C290.47,297.09,256,311.37,256,339.88V352a16,16,0,0,1-32,0V339.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H112a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V96a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C313.09,173.53,327.37,208,355.88,208H368a16,16,0,0,1,0,32Z\"]\n};\nvar faHeading = {\n prefix: 'fas',\n iconName: 'heading',\n icon: [512, 512, [], \"f1dc\", \"M448 96v320h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H320a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V288H160v128h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V96H32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16h-32v128h192V96h-32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16z\"]\n};\nvar faHeadphones = {\n prefix: 'fas',\n iconName: 'headphones',\n icon: [512, 512, [], \"f025\", \"M256 32C114.52 32 0 146.496 0 288v48a32 32 0 0 0 17.689 28.622l14.383 7.191C34.083 431.903 83.421 480 144 480h24c13.255 0 24-10.745 24-24V280c0-13.255-10.745-24-24-24h-24c-31.342 0-59.671 12.879-80 33.627V288c0-105.869 86.131-192 192-192s192 86.131 192 192v1.627C427.671 268.879 399.342 256 368 256h-24c-13.255 0-24 10.745-24 24v176c0 13.255 10.745 24 24 24h24c60.579 0 109.917-48.098 111.928-108.187l14.382-7.191A32 32 0 0 0 512 336v-48c0-141.479-114.496-256-256-256z\"]\n};\nvar faHeadphonesAlt = {\n prefix: 'fas',\n iconName: 'headphones-alt',\n icon: [512, 512, [], \"f58f\", \"M160 288h-16c-35.35 0-64 28.7-64 64.12v63.76c0 35.41 28.65 64.12 64 64.12h16c17.67 0 32-14.36 32-32.06V320.06c0-17.71-14.33-32.06-32-32.06zm208 0h-16c-17.67 0-32 14.35-32 32.06v127.88c0 17.7 14.33 32.06 32 32.06h16c35.35 0 64-28.71 64-64.12v-63.76c0-35.41-28.65-64.12-64-64.12zM256 32C112.91 32 4.57 151.13 0 288v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288c0-114.67 93.33-207.8 208-207.82 114.67.02 208 93.15 208 207.82v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288C507.43 151.13 399.09 32 256 32z\"]\n};\nvar faHeadset = {\n prefix: 'fas',\n iconName: 'headset',\n icon: [512, 512, [], \"f590\", \"M192 208c0-17.67-14.33-32-32-32h-16c-35.35 0-64 28.65-64 64v48c0 35.35 28.65 64 64 64h16c17.67 0 32-14.33 32-32V208zm176 144c35.35 0 64-28.65 64-64v-48c0-35.35-28.65-64-64-64h-16c-17.67 0-32 14.33-32 32v112c0 17.67 14.33 32 32 32h16zM256 0C113.18 0 4.58 118.83 0 256v16c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-16c0-114.69 93.31-208 208-208s208 93.31 208 208h-.12c.08 2.43.12 165.72.12 165.72 0 23.35-18.93 42.28-42.28 42.28H320c0-26.51-21.49-48-48-48h-32c-26.51 0-48 21.49-48 48s21.49 48 48 48h181.72c49.86 0 90.28-40.42 90.28-90.28V256C507.42 118.83 398.82 0 256 0z\"]\n};\nvar faHeart = {\n prefix: 'fas',\n iconName: 'heart',\n icon: [512, 512, [], \"f004\", \"M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z\"]\n};\nvar faHeartBroken = {\n prefix: 'fas',\n iconName: 'heart-broken',\n icon: [512, 512, [], \"f7a9\", \"M473.7 73.8l-2.4-2.5c-46-47-118-51.7-169.6-14.8L336 159.9l-96 64 48 128-144-144 96-64-28.6-86.5C159.7 19.6 87 24 40.7 71.4l-2.4 2.4C-10.4 123.6-12.5 202.9 31 256l212.1 218.6c7.1 7.3 18.6 7.3 25.7 0L481 255.9c43.5-53 41.4-132.3-7.3-182.1z\"]\n};\nvar faHeartbeat = {\n prefix: 'fas',\n iconName: 'heartbeat',\n icon: [512, 512, [], \"f21e\", \"M320.2 243.8l-49.7 99.4c-6 12.1-23.4 11.7-28.9-.6l-56.9-126.3-30 71.7H60.6l182.5 186.5c7.1 7.3 18.6 7.3 25.7 0L451.4 288H342.3l-22.1-44.2zM473.7 73.9l-2.4-2.5c-51.5-52.6-135.8-52.6-187.4 0L256 100l-27.9-28.5c-51.5-52.7-135.9-52.7-187.4 0l-2.4 2.4C-10.4 123.7-12.5 203 31 256h102.4l35.9-86.2c5.4-12.9 23.6-13.2 29.4-.4l58.2 129.3 49-97.9c5.9-11.8 22.7-11.8 28.6 0l27.6 55.2H481c43.5-53 41.4-132.3-7.3-182.1z\"]\n};\nvar faHelicopter = {\n prefix: 'fas',\n iconName: 'helicopter',\n icon: [640, 512, [], \"f533\", \"M304 384h272c17.67 0 32-14.33 32-32 0-123.71-100.29-224-224-224V64h176c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H144c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h176v64H112L68.8 70.4C65.78 66.37 61.03 64 56 64H16.01C5.6 64-2.04 73.78.49 83.88L32 192l160 64 86.4 115.2A31.992 31.992 0 0 0 304 384zm112-188.49C478.55 208.3 528.03 257.44 540.79 320H416V195.51zm219.37 263.3l-22.15-22.2c-6.25-6.26-16.24-6.1-22.64.01-7.09 6.77-13.84 11.25-24.64 11.25H240c-8.84 0-16 7.18-16 16.03v32.06c0 8.85 7.16 16.03 16 16.03h325.94c14.88 0 35.3-.47 68.45-29.52 7.02-6.14 7.57-17.05.98-23.66z\"]\n};\nvar faHighlighter = {\n prefix: 'fas',\n iconName: 'highlighter',\n icon: [544, 512, [], \"f591\", \"M0 479.98L99.92 512l35.45-35.45-67.04-67.04L0 479.98zm124.61-240.01a36.592 36.592 0 0 0-10.79 38.1l13.05 42.83-50.93 50.94 96.23 96.23 50.86-50.86 42.74 13.08c13.73 4.2 28.65-.01 38.15-10.78l35.55-41.64-173.34-173.34-41.52 35.44zm403.31-160.7l-63.2-63.2c-20.49-20.49-53.38-21.52-75.12-2.35L190.55 183.68l169.77 169.78L530.27 154.4c19.18-21.74 18.15-54.63-2.35-75.13z\"]\n};\nvar faHiking = {\n prefix: 'fas',\n iconName: 'hiking',\n icon: [384, 512, [], \"f6ec\", \"M80.95 472.23c-4.28 17.16 6.14 34.53 23.28 38.81 2.61.66 5.22.95 7.8.95 14.33 0 27.37-9.7 31.02-24.23l25.24-100.97-52.78-52.78-34.56 138.22zm14.89-196.12L137 117c2.19-8.42-3.14-16.95-11.92-19.06-43.88-10.52-88.35 15.07-99.32 57.17L.49 253.24c-2.19 8.42 3.14 16.95 11.92 19.06l63.56 15.25c8.79 2.1 17.68-3.02 19.87-11.44zM368 160h-16c-8.84 0-16 7.16-16 16v16h-34.75l-46.78-46.78C243.38 134.11 228.61 128 212.91 128c-27.02 0-50.47 18.3-57.03 44.52l-26.92 107.72a32.012 32.012 0 0 0 8.42 30.39L224 397.25V480c0 17.67 14.33 32 32 32s32-14.33 32-32v-82.75c0-17.09-6.66-33.16-18.75-45.25l-46.82-46.82c.15-.5.49-.89.62-1.41l19.89-79.57 22.43 22.43c6 6 14.14 9.38 22.62 9.38h48v240c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V176c.01-8.84-7.15-16-15.99-16zM240 96c26.51 0 48-21.49 48-48S266.51 0 240 0s-48 21.49-48 48 21.49 48 48 48z\"]\n};\nvar faHippo = {\n prefix: 'fas',\n iconName: 'hippo',\n icon: [640, 512, [], \"f6ed\", \"M581.12 96.2c-27.67-.15-52.5 17.58-76.6 26.62C489.98 88.27 455.83 64 416 64c-11.28 0-21.95 2.3-32 5.88V56c0-13.26-10.75-24-24-24h-16c-13.25 0-24 10.74-24 24v48.98C286.01 79.58 241.24 64 192 64 85.96 64 0 135.64 0 224v240c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16v-70.79C128.35 407.57 166.72 416 208 416s79.65-8.43 112-22.79V464c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V288h128v32c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-32c17.67 0 32-14.33 32-32v-92.02c0-34.09-24.79-67.59-58.88-67.78zM448 176c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"]\n};\nvar faHistory = {\n prefix: 'fas',\n iconName: 'history',\n icon: [512, 512, [], \"f1da\", \"M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z\"]\n};\nvar faHockeyPuck = {\n prefix: 'fas',\n iconName: 'hockey-puck',\n icon: [512, 512, [], \"f453\", \"M0 160c0-53 114.6-96 256-96s256 43 256 96-114.6 96-256 96S0 213 0 160zm0 82.2V352c0 53 114.6 96 256 96s256-43 256-96V242.2c-113.4 82.3-398.5 82.4-512 0z\"]\n};\nvar faHollyBerry = {\n prefix: 'fas',\n iconName: 'holly-berry',\n icon: [448, 512, [], \"f7aa\", \"M144 192c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm112-48c0 26.5 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48-48 21.5-48 48zm-32-48c26.5 0 48-21.5 48-48S250.5 0 224 0s-48 21.5-48 48 21.5 48 48 48zm-16.2 139.1c.1-12.4-13.1-20.1-23.8-13.7-34.3 20.3-71.4 32.7-108.7 36.2-9.7.9-15.6 11.3-11.6 20.2 6.2 13.9 11.1 28.6 14.7 43.8 3.6 15.2-5.3 30.6-20.2 35.1-14.9 4.5-30.1 7.6-45.3 9.1-9.7 1-15.7 11.3-11.7 20.2 15 32.8 22.9 69.5 23 107.7.1 14.4 15.2 23.1 27.6 16 33.2-19 68.9-30.5 104.8-33.9 9.7-.9 15.6-11.3 11.6-20.2-6.2-13.9-11.1-28.6-14.7-43.8-3.6-15.2 5.3-30.6 20.2-35.1 14.9-4.5 30.1-7.6 45.3-9.1 9.7-1 15.7-11.3 11.7-20.2-15.5-34.2-23.3-72.5-22.9-112.3zM435 365.6c-15.2-1.6-30.3-4.7-45.3-9.1-14.9-4.5-23.8-19.9-20.2-35.1 3.6-15.2 8.5-29.8 14.7-43.8 4-8.9-1.9-19.3-11.6-20.2-37.3-3.5-74.4-15.9-108.7-36.2-10.7-6.3-23.9 1.4-23.8 13.7 0 1.6-.2 3.2-.2 4.9.2 33.3 7 65.7 19.9 94 5.7 12.4 5.2 26.6-.6 38.9 4.9 1.2 9.9 2.2 14.8 3.7 14.9 4.5 23.8 19.9 20.2 35.1-3.6 15.2-8.5 29.8-14.7 43.8-4 8.9 1.9 19.3 11.6 20.2 35.9 3.4 71.6 14.9 104.8 33.9 12.5 7.1 27.6-1.6 27.6-16 .2-38.2 8-75 23-107.7 4.3-8.7-1.8-19.1-11.5-20.1z\"]\n};\nvar faHome = {\n prefix: 'fas',\n iconName: 'home',\n icon: [576, 512, [], \"f015\", \"M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z\"]\n};\nvar faHorse = {\n prefix: 'fas',\n iconName: 'horse',\n icon: [576, 512, [], \"f6f0\", \"M575.92 76.6c-.01-8.13-3.02-15.87-8.58-21.8-3.78-4.03-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66C576.85 4.68 572.96 0 567.9 0H447.92c-70.69 0-128 57.31-128 128H160c-28.84 0-54.4 12.98-72 33.11V160c-48.53 0-88 39.47-88 88v56c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-56c0-13.22 6.87-24.39 16.78-31.68-.21 2.58-.78 5.05-.78 7.68 0 27.64 11.84 52.36 30.54 69.88l-25.72 68.6a63.945 63.945 0 0 0-2.16 37.99l24.85 99.41A15.982 15.982 0 0 0 107.02 512h65.96c10.41 0 18.05-9.78 15.52-19.88l-26.31-105.26 23.84-63.59L320 345.6V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V318.22c19.74-20.19 32-47.75 32-78.22 0-.22-.07-.42-.08-.64V136.89l16 7.11 18.9 37.7c7.45 14.87 25.05 21.55 40.49 15.37l32.55-13.02a31.997 31.997 0 0 0 20.12-29.74l-.06-77.71zm-64 19.4c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"]\n};\nvar faHorseHead = {\n prefix: 'fas',\n iconName: 'horse-head',\n icon: [512, 512, [], \"f7ab\", \"M509.8 332.5l-69.9-164.3c-14.9-41.2-50.4-71-93-79.2 18-10.6 46.3-35.9 34.2-82.3-1.3-5-7.1-7.9-12-6.1L166.9 76.3C35.9 123.4 0 238.9 0 398.8V480c0 17.7 14.3 32 32 32h236.2c23.8 0 39.3-25 28.6-46.3L256 384v-.7c-45.6-3.5-84.6-30.7-104.3-69.6-1.6-3.1-.9-6.9 1.6-9.3l12.1-12.1c3.9-3.9 10.6-2.7 12.9 2.4 14.8 33.7 48.2 57.4 87.4 57.4 17.2 0 33-5.1 46.8-13.2l46 63.9c6 8.4 15.7 13.3 26 13.3h50.3c8.5 0 16.6-3.4 22.6-9.4l45.3-39.8c8.9-9.1 11.7-22.6 7.1-34.4zM328 224c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z\"]\n};\nvar faHospital = {\n prefix: 'fas',\n iconName: 'hospital',\n icon: [448, 512, [], \"f0f8\", \"M448 492v20H0v-20c0-6.627 5.373-12 12-12h20V120c0-13.255 10.745-24 24-24h88V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v72h88c13.255 0 24 10.745 24 24v360h20c6.627 0 12 5.373 12 12zM308 192h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-168 64h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm104 128h-40c-6.627 0-12 5.373-12 12v84h64v-84c0-6.627-5.373-12-12-12zm64-96h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-116 12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40zM182 96h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6z\"]\n};\nvar faHospitalAlt = {\n prefix: 'fas',\n iconName: 'hospital-alt',\n icon: [576, 512, [], \"f47d\", \"M544 96H416V32c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32v368c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16V128c0-17.7-14.3-32-32-32zM160 436c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm160 128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm16-170c0 3.3-2.7 6-6 6h-26v26c0 3.3-2.7 6-6 6h-20c-3.3 0-6-2.7-6-6v-26h-26c-3.3 0-6-2.7-6-6v-20c0-3.3 2.7-6 6-6h26V86c0-3.3 2.7-6 6-6h20c3.3 0 6 2.7 6 6v26h26c3.3 0 6 2.7 6 6v20zm144 298c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z\"]\n};\nvar faHospitalSymbol = {\n prefix: 'fas',\n iconName: 'hospital-symbol',\n icon: [512, 512, [], \"f47e\", \"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm112 376c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-88h-96v88c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V136c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v88h96v-88c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v240z\"]\n};\nvar faHospitalUser = {\n prefix: 'fas',\n iconName: 'hospital-user',\n icon: [640, 512, [], \"f80d\", \"M480 320a96 96 0 1 0-96-96 96 96 0 0 0 96 96zm48 32a22.88 22.88 0 0 0-7.06 1.09 124.76 124.76 0 0 1-81.89 0A22.82 22.82 0 0 0 432 352a112 112 0 0 0-112 112.62c.14 26.26 21.73 47.38 48 47.38h224c26.27 0 47.86-21.12 48-47.38A112 112 0 0 0 528 352zm-198.09 10.45A145.19 145.19 0 0 1 352 344.62V128a32 32 0 0 0-32-32h-32V32a32 32 0 0 0-32-32H96a32 32 0 0 0-32 32v64H32a32 32 0 0 0-32 32v368a16 16 0 0 0 16 16h288.31A78.62 78.62 0 0 1 288 464.79a143.06 143.06 0 0 1 41.91-102.34zM144 404a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm48-122a6 6 0 0 1-6 6h-20a6 6 0 0 1-6-6v-26h-26a6 6 0 0 1-6-6v-20a6 6 0 0 1 6-6h26V70a6 6 0 0 1 6-6h20a6 6 0 0 1 6 6v26h26a6 6 0 0 1 6 6v20a6 6 0 0 1-6 6h-26zm80 250a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12z\"]\n};\nvar faHotTub = {\n prefix: 'fas',\n iconName: 'hot-tub',\n icon: [512, 512, [], \"f593\", \"M414.21 177.65c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C378.96 6.14 372.22 0 364.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zm-108 0c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C270.96 6.14 264.22 0 256.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zM480 256H256l-110.93-83.2a63.99 63.99 0 0 0-38.4-12.8H64c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V288c0-17.67-14.33-32-32-32zM128 440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zM64 128c35.35 0 64-28.65 64-64S99.35 0 64 0 0 28.65 0 64s28.65 64 64 64z\"]\n};\nvar faHotdog = {\n prefix: 'fas',\n iconName: 'hotdog',\n icon: [512, 512, [], \"f80f\", \"M488.56 23.44a80 80 0 0 0-113.12 0l-352 352a80 80 0 1 0 113.12 113.12l352-352a80 80 0 0 0 0-113.12zm-49.93 95.19c-19.6 19.59-37.52 22.67-51.93 25.14C373.76 146 364.4 147.6 352 160s-14 21.76-16.23 34.71c-2.48 14.4-5.55 32.33-25.15 51.92s-37.52 22.67-51.92 25.15C245.75 274 236.4 275.6 224 288s-14 21.75-16.23 34.7c-2.47 14.4-5.54 32.33-25.14 51.92s-37.53 22.68-51.93 25.15C117.76 402 108.4 403.6 96 416a16 16 0 0 1-22.63-22.63c19.6-19.59 37.52-22.67 51.92-25.14 13-2.22 22.3-3.82 34.71-16.23s14-21.75 16.22-34.7c2.48-14.4 5.55-32.33 25.15-51.92s37.52-22.67 51.92-25.14c13-2.22 22.3-3.83 34.7-16.23s14-21.76 16.24-34.71c2.47-14.4 5.54-32.33 25.14-51.92s37.52-22.68 51.92-25.15C394.24 110 403.59 108.41 416 96a16 16 0 0 1 22.63 22.63zM31.44 322.18L322.18 31.44l-11.54-11.55c-25-25-63.85-26.66-86.79-3.72L16.17 223.85c-22.94 22.94-21.27 61.79 3.72 86.78zm449.12-132.36L189.82 480.56l11.54 11.55c25 25 63.85 26.66 86.79 3.72l207.68-207.68c22.94-22.94 21.27-61.79-3.72-86.79z\"]\n};\nvar faHotel = {\n prefix: 'fas',\n iconName: 'hotel',\n icon: [576, 512, [], \"f594\", \"M560 64c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h15.98v384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h240v-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v80h240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-16V64h16zm-304 44.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm0 96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm-128-96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zM179.2 256h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8zM192 384c0-53.02 42.98-96 96-96s96 42.98 96 96H192zm256-140.8c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4z\"]\n};\nvar faHourglass = {\n prefix: 'fas',\n iconName: 'hourglass',\n icon: [384, 512, [], \"f254\", \"M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64z\"]\n};\nvar faHourglassEnd = {\n prefix: 'fas',\n iconName: 'hourglass-end',\n icon: [384, 512, [], \"f253\", \"M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64zM192 208c-57.787 0-104-66.518-104-144h208c0 77.945-46.51 144-104 144z\"]\n};\nvar faHourglassHalf = {\n prefix: 'fas',\n iconName: 'hourglass-half',\n icon: [384, 512, [], \"f252\", \"M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z\"]\n};\nvar faHourglassStart = {\n prefix: 'fas',\n iconName: 'hourglass-start',\n icon: [384, 512, [], \"f251\", \"M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-64 448H88c0-77.458 46.204-144 104-144 57.786 0 104 66.517 104 144z\"]\n};\nvar faHouseDamage = {\n prefix: 'fas',\n iconName: 'house-damage',\n icon: [576, 512, [], \"f6f1\", \"M288 114.96L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496c0 8.84 7.16 16 16 16h149.23L192 439.19l104.11-64-60.16-119.22L384 392.75l-104.11 64L319.81 512H496c8.84 0 16-7.16 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2L288 114.96zm282.69 121.32L512 184.45V48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v51.69L314.75 10.31C307.12 3.45 297.56.01 288 0s-19.1 3.41-26.7 10.27L5.31 236.28c-6.57 5.91-7.12 16.02-1.21 22.6l21.4 23.82c5.9 6.57 16.02 7.12 22.6 1.21L277.42 81.63c6.05-5.33 15.12-5.33 21.17 0L527.91 283.9c6.57 5.9 16.69 5.36 22.6-1.21l21.4-23.82c5.9-6.57 5.36-16.69-1.22-22.59z\"]\n};\nvar faHouseUser = {\n prefix: 'fas',\n iconName: 'house-user',\n icon: [576, 512, [], \"e065\", \"M570.69,236.27,512,184.44V48a16,16,0,0,0-16-16H432a16,16,0,0,0-16,16V99.67L314.78,10.3C308.5,4.61,296.53,0,288,0s-20.46,4.61-26.74,10.3l-256,226A18.27,18.27,0,0,0,0,248.2a18.64,18.64,0,0,0,4.09,10.71L25.5,282.7a21.14,21.14,0,0,0,12,5.3,21.67,21.67,0,0,0,10.69-4.11l15.9-14V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V269.88l15.91,14A21.94,21.94,0,0,0,538.63,288a20.89,20.89,0,0,0,11.87-5.31l21.41-23.81A21.64,21.64,0,0,0,576,248.19,21,21,0,0,0,570.69,236.27ZM288,176a64,64,0,1,1-64,64A64,64,0,0,1,288,176ZM400,448H176a16,16,0,0,1-16-16,96,96,0,0,1,96-96h64a96,96,0,0,1,96,96A16,16,0,0,1,400,448Z\"]\n};\nvar faHryvnia = {\n prefix: 'fas',\n iconName: 'hryvnia',\n icon: [384, 512, [], \"f6f2\", \"M368 240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-41.86c13.41-28.63 13.74-63.33-4.13-94.05C303.34 49.84 267.1 32 229.96 32h-78.82c-24.32 0-47.86 8.53-66.54 24.09L72.83 65.9c-10.18 8.49-11.56 23.62-3.07 33.8l20.49 24.59c8.49 10.19 23.62 11.56 33.81 3.07l11.73-9.78c4.32-3.6 9.77-5.57 15.39-5.57h83.62c11.69 0 21.2 9.52 21.2 21.2 0 5.91-2.48 11.58-6.81 15.58L219.7 176H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h134.37l-34.67 32H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h41.86c-13.41 28.63-13.74 63.33 4.13 94.05C80.66 462.15 116.9 480 154.04 480h78.82c24.32 0 47.86-8.53 66.54-24.09l11.77-9.81c10.18-8.49 11.56-23.62 3.07-33.8l-20.49-24.59c-8.49-10.19-23.62-11.56-33.81-3.07l-11.75 9.8a23.992 23.992 0 0 1-15.36 5.56H149.2c-11.69 0-21.2-9.52-21.2-21.2 0-5.91 2.48-11.58 6.81-15.58L164.3 336H368c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H233.63l34.67-32H368z\"]\n};\nvar faICursor = {\n prefix: 'fas',\n iconName: 'i-cursor',\n icon: [256, 512, [], \"f246\", \"M256 52.048V12.065C256 5.496 250.726.148 244.158.066 211.621-.344 166.469.011 128 37.959 90.266.736 46.979-.114 11.913.114 5.318.157 0 5.519 0 12.114v39.645c0 6.687 5.458 12.078 12.145 11.998C38.111 63.447 96 67.243 96 112.182V224H60c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h36v112c0 44.932-56.075 48.031-83.95 47.959C5.404 447.942 0 453.306 0 459.952v39.983c0 6.569 5.274 11.917 11.842 11.999 32.537.409 77.689.054 116.158-37.894 37.734 37.223 81.021 38.073 116.087 37.845 6.595-.043 11.913-5.405 11.913-12V460.24c0-6.687-5.458-12.078-12.145-11.998C217.889 448.553 160 444.939 160 400V288h36c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-36V112.182c0-44.932 56.075-48.213 83.95-48.142 6.646.018 12.05-5.346 12.05-11.992z\"]\n};\nvar faIceCream = {\n prefix: 'fas',\n iconName: 'ice-cream',\n icon: [448, 512, [], \"f810\", \"M368 160h-.94a144 144 0 1 0-286.12 0H80a48 48 0 0 0 0 96h288a48 48 0 0 0 0-96zM195.38 493.69a31.52 31.52 0 0 0 57.24 0L352 288H96z\"]\n};\nvar faIcicles = {\n prefix: 'fas',\n iconName: 'icicles',\n icon: [512, 512, [], \"f7ad\", \"M511.4 37.9C515.1 18.2 500 0 480 0H32C10.6 0-4.8 20.7 1.4 41.2l87.1 273.4c2.5 7.2 12.7 7.2 15.1 0L140 190.5l44.2 187.3c1.9 8.3 13.7 8.3 15.6 0l46.5-196.9 34.1 133.4c2.3 7.6 13 7.6 15.3 0l45.8-172.5 66.7 363.8c1.7 8.6 14 8.6 15.7 0l87.5-467.7z\"]\n};\nvar faIcons = {\n prefix: 'fas',\n iconName: 'icons',\n icon: [512, 512, [], \"f86d\", \"M116.65 219.35a15.68 15.68 0 0 0 22.65 0l96.75-99.83c28.15-29 26.5-77.1-4.91-103.88C203.75-7.7 163-3.5 137.86 22.44L128 32.58l-9.85-10.14C93.05-3.5 52.25-7.7 24.86 15.64c-31.41 26.78-33 74.85-5 103.88zm143.92 100.49h-48l-7.08-14.24a27.39 27.39 0 0 0-25.66-17.78h-71.71a27.39 27.39 0 0 0-25.66 17.78l-7 14.24h-48A27.45 27.45 0 0 0 0 347.3v137.25A27.44 27.44 0 0 0 27.43 512h233.14A27.45 27.45 0 0 0 288 484.55V347.3a27.45 27.45 0 0 0-27.43-27.46zM144 468a52 52 0 1 1 52-52 52 52 0 0 1-52 52zm355.4-115.9h-60.58l22.36-50.75c2.1-6.65-3.93-13.21-12.18-13.21h-75.59c-6.3 0-11.66 3.9-12.5 9.1l-16.8 106.93c-1 6.3 4.88 11.89 12.5 11.89h62.31l-24.2 83c-1.89 6.65 4.2 12.9 12.23 12.9a13.26 13.26 0 0 0 10.92-5.25l92.4-138.91c4.88-6.91-1.16-15.7-10.87-15.7zM478.08.33L329.51 23.17C314.87 25.42 304 38.92 304 54.83V161.6a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V99.66l112-17.22v47.18a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V32c0-19.48-16-34.42-33.92-31.67z\"]\n};\nvar faIdBadge = {\n prefix: 'fas',\n iconName: 'id-badge',\n icon: [384, 512, [], \"f2c1\", \"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM144 32h96c8.8 0 16 7.2 16 16s-7.2 16-16 16h-96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm48 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 416 80 407.4 80 396.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"]\n};\nvar faIdCard = {\n prefix: 'fas',\n iconName: 'id-card',\n icon: [576, 512, [], \"f2c2\", \"M528 32H48C21.5 32 0 53.5 0 80v16h576V80c0-26.5-21.5-48-48-48zM0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V128H0v304zm352-232c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zM176 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM67.1 396.2C75.5 370.5 99.6 352 128 352h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.9-5.2 19.8-15.6 19.8H82.7c-10.4 0-18.8-10-15.6-19.8z\"]\n};\nvar faIdCardAlt = {\n prefix: 'fas',\n iconName: 'id-card-alt',\n icon: [576, 512, [], \"f47f\", \"M528 64H384v96H192V64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM288 224c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm93.3 224H194.7c-10.4 0-18.8-10-15.6-19.8 8.3-25.6 32.4-44.2 60.9-44.2h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.8-5.2 19.8-15.6 19.8zM352 32c0-17.7-14.3-32-32-32h-64c-17.7 0-32 14.3-32 32v96h128V32z\"]\n};\nvar faIgloo = {\n prefix: 'fas',\n iconName: 'igloo',\n icon: [576, 512, [], \"f7ae\", \"M320 33.9c-10.5-1.2-21.2-1.9-32-1.9-99.8 0-187.8 50.8-239.4 128H320V33.9zM96 192H30.3C11.1 230.6 0 274 0 320h96V192zM352 39.4V160h175.4C487.2 99.9 424.8 55.9 352 39.4zM480 320h96c0-46-11.1-89.4-30.3-128H480v128zm-64 64v96h128c17.7 0 32-14.3 32-32v-96H411.5c2.6 10.3 4.5 20.9 4.5 32zm32-192H128v128h49.8c22.2-38.1 63-64 110.2-64s88 25.9 110.2 64H448V192zM0 448c0 17.7 14.3 32 32 32h128v-96c0-11.1 1.9-21.7 4.5-32H0v96zm288-160c-53 0-96 43-96 96v96h192v-96c0-53-43-96-96-96z\"]\n};\nvar faImage = {\n prefix: 'fas',\n iconName: 'image',\n icon: [512, 512, [], \"f03e\", \"M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z\"]\n};\nvar faImages = {\n prefix: 'fas',\n iconName: 'images',\n icon: [576, 512, [], \"f302\", \"M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v208c0 44.112 35.888 80 80 80h336zm96-80V80c0-26.51-21.49-48-48-48H144c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48h384c26.51 0 48-21.49 48-48zM256 128c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-96 144l55.515-55.515c4.686-4.686 12.284-4.686 16.971 0L272 256l135.515-135.515c4.686-4.686 12.284-4.686 16.971 0L512 208v112H160v-48z\"]\n};\nvar faInbox = {\n prefix: 'fas',\n iconName: 'inbox',\n icon: [576, 512, [], \"f01c\", \"M567.938 243.908L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L8.062 243.908A47.994 47.994 0 0 0 0 270.533V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V270.533a47.994 47.994 0 0 0-8.062-26.625zM162.252 128h251.497l85.333 128H376l-32 64H232l-32-64H76.918l85.334-128z\"]\n};\nvar faIndent = {\n prefix: 'fas',\n iconName: 'indent',\n icon: [448, 512, [], \"f03c\", \"M27.31 363.3l96-96a16 16 0 0 0 0-22.62l-96-96C17.27 138.66 0 145.78 0 160v192c0 14.31 17.33 21.3 27.31 11.3zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faIndustry = {\n prefix: 'fas',\n iconName: 'industry',\n icon: [512, 512, [], \"f275\", \"M475.115 163.781L336 252.309v-68.28c0-18.916-20.931-30.399-36.885-20.248L160 252.309V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h464c13.255 0 24-10.745 24-24V184.029c0-18.917-20.931-30.399-36.885-20.248z\"]\n};\nvar faInfinity = {\n prefix: 'fas',\n iconName: 'infinity',\n icon: [640, 512, [], \"f534\", \"M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z\"]\n};\nvar faInfo = {\n prefix: 'fas',\n iconName: 'info',\n icon: [192, 512, [], \"f129\", \"M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z\"]\n};\nvar faInfoCircle = {\n prefix: 'fas',\n iconName: 'info-circle',\n icon: [512, 512, [], \"f05a\", \"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z\"]\n};\nvar faItalic = {\n prefix: 'fas',\n iconName: 'italic',\n icon: [320, 512, [], \"f033\", \"M320 48v32a16 16 0 0 1-16 16h-62.76l-80 320H208a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h62.76l80-320H112a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z\"]\n};\nvar faJedi = {\n prefix: 'fas',\n iconName: 'jedi',\n icon: [576, 512, [], \"f669\", \"M535.95308,352c-42.64069,94.17188-137.64086,160-247.9848,160q-6.39844,0-12.84377-.29688C171.15558,506.9375,81.26481,442.23438,40.01474,352H79.93668L21.3272,293.40625a264.82522,264.82522,0,0,1-5.10938-39.42187,273.6653,273.6653,0,0,1,.5-29.98438H63.93665L22.546,182.625A269.79782,269.79782,0,0,1,130.51489,20.54688a16.06393,16.06393,0,0,1,9.28127-3,16.36332,16.36332,0,0,1,13.5,7.25,16.02739,16.02739,0,0,1,1.625,15.09374,138.387,138.387,0,0,0-9.84376,51.26563c0,45.10937,21.04691,86.57813,57.71884,113.73437a16.29989,16.29989,0,0,1,1.20313,25.39063c-26.54692,23.98437-41.17194,56.5-41.17194,91.57813,0,60.03124,42.95319,110.28124,99.89079,121.92187l2.5-65.26563L238.062,397a8.33911,8.33911,0,0,1-10-.75,8.025,8.025,0,0,1-1.39063-9.9375l20.125-33.76562-42.06257-8.73438a7.9898,7.9898,0,0,1,0-15.65625l42.06257-8.71875-20.10941-33.73438a7.99122,7.99122,0,0,1,11.35939-10.71874L268.437,295.64062,279.95265,7.67188a7.97138,7.97138,0,0,1,8-7.67188h.04687a8.02064,8.02064,0,0,1,7.95314,7.70312L307.48394,295.625l30.39068-20.67188a8.08327,8.08327,0,0,1,10,.8125,7.99866,7.99866,0,0,1,1.39062,9.90626L329.12461,319.4375l42.07819,8.73438a7.99373,7.99373,0,0,1,0,15.65624l-42.07819,8.71876,20.1094,33.73437a7.97791,7.97791,0,0,1-1.32812,9.92187A8.25739,8.25739,0,0,1,337.87462,397L310.7027,378.53125l2.5,65.34375c48.48446-9.40625,87.57828-48.15625,97.31267-96.5A123.52652,123.52652,0,0,0,371.9528,230.29688a16.30634,16.30634,0,0,1,1.20313-25.42188c36.65631-27.17188,57.6876-68.60938,57.6876-113.73438a138.01689,138.01689,0,0,0-9.85939-51.3125,15.98132,15.98132,0,0,1,1.60937-15.09374,16.36914,16.36914,0,0,1,13.5-7.23438,16.02453,16.02453,0,0,1,9.25,2.98438A271.26947,271.26947,0,0,1,553.25,182.76562L511.99992,224h46.9532C559.3125,229.76562,560,235.45312,560,241.26562a270.092,270.092,0,0,1-5.125,51.85938L495.98427,352Z\"]\n};\nvar faJoint = {\n prefix: 'fas',\n iconName: 'joint',\n icon: [640, 512, [], \"f595\", \"M444.34 181.1c22.38 15.68 35.66 41.16 35.66 68.59V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-43.24-21.01-83.41-56.34-108.06C463.85 125.02 448 99.34 448 70.31V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v66.4c0 43.69 24.56 81.63 60.34 106.7zM194.97 358.98C126.03 370.07 59.69 394.69 0 432c83.65 52.28 180.3 80 278.94 80h88.57L254.79 380.49c-14.74-17.2-37.45-25.11-59.82-21.51zM553.28 87.09c-5.67-3.8-9.28-9.96-9.28-16.78V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v62.31c0 22.02 10.17 43.41 28.64 55.39C550.79 153.04 576 199.54 576 249.69V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-65.44-32.41-126.19-86.72-162.6zM360.89 352.05c-34.4.06-86.81.15-88.21.17l117.8 137.43A63.987 63.987 0 0 0 439.07 512h88.45L409.57 374.4a63.955 63.955 0 0 0-48.68-22.35zM616 352H432l117.99 137.65A63.987 63.987 0 0 0 598.58 512H616c13.25 0 24-10.75 24-24V376c0-13.26-10.75-24-24-24z\"]\n};\nvar faJournalWhills = {\n prefix: 'fas',\n iconName: 'journal-whills',\n icon: [448, 512, [], \"f66a\", \"M438.40625,377.59375c-3.20313,12.8125-3.20313,57.60937,0,73.60937Q447.9922,460.78907,448,470.40625v16c0,16-12.79688,25.59375-25.59375,25.59375H96c-54.40625,0-96-41.59375-96-96V96C0,41.59375,41.59375,0,96,0H422.40625C438.40625,0,448,9.59375,448,25.59375v332.8125Q448,372.79688,438.40625,377.59375ZM380.79688,384H96c-16,0-32,12.79688-32,32s12.79688,32,32,32H380.79688ZM128.01562,176.01562c0,.51563.14063.98438.14063,1.5l37.10937,32.46876A7.99954,7.99954,0,0,1,160,224h-.01562a9.17678,9.17678,0,0,1-5.25-1.98438L131.14062,201.375C142.6875,250.95312,186.90625,288,240,288s97.3125-37.04688,108.875-86.625l-23.59375,20.64062a8.02516,8.02516,0,0,1-5.26563,1.96876H320a9.14641,9.14641,0,0,1-6.01562-2.71876A9.26508,9.26508,0,0,1,312,216a9.097,9.097,0,0,1,2.73438-6.01562l37.10937-32.46876c.01563-.53124.15625-1,.15625-1.51562,0-11.04688-2.09375-21.51562-5.06251-31.59375l-21.26562,21.25a8.00467,8.00467,0,0,1-11.32812-11.3125l26.42187-26.40625a111.81517,111.81517,0,0,0-46.35937-49.26562,63.02336,63.02336,0,0,1-14.0625,82.64062A55.83846,55.83846,0,0,1,251.625,254.73438l-1.42188-34.28126,12.67188,8.625a3.967,3.967,0,0,0,2.25.6875,3.98059,3.98059,0,0,0,3.43749-6.03124l-8.53124-14.3125,17.90625-3.71876a4.00647,4.00647,0,0,0,0-7.84374l-17.90625-3.71876,8.53124-14.3125a3.98059,3.98059,0,0,0-3.43749-6.03124,4.726,4.726,0,0,0-2.25.67187L248.6875,184.125,244,71.82812a4.00386,4.00386,0,0,0-8,0l-4.625,110.8125-12-8.15624a4.003,4.003,0,0,0-5.68751,5.35937l8.53126,14.3125L204.3125,197.875a3.99686,3.99686,0,0,0,0,7.82812l17.90625,3.73438-8.53126,14.29688a4.72469,4.72469,0,0,0-.56249,2.04687,4.59547,4.59547,0,0,0,1.25,2.90625,4.01059,4.01059,0,0,0,2.75,1.09375,4.09016,4.09016,0,0,0,2.25-.6875l10.35937-7.04687L228.375,254.76562a55.86414,55.86414,0,0,1-28.71875-93.45312,63.01119,63.01119,0,0,1-14.04688-82.65625,111.93158,111.93158,0,0,0-46.375,49.26563l26.42187,26.42187a7.99917,7.99917,0,0,1-11.3125,11.3125l-21.26563-21.26563C130.09375,154.48438,128,164.95312,128.01562,176.01562Z\"]\n};\nvar faKaaba = {\n prefix: 'fas',\n iconName: 'kaaba',\n icon: [576, 512, [], \"f66b\", \"M554.12 83.51L318.36 4.93a95.962 95.962 0 0 0-60.71 0L21.88 83.51A32.006 32.006 0 0 0 0 113.87v49.01l265.02-79.51c15.03-4.5 30.92-4.5 45.98 0l265 79.51v-49.01c0-13.77-8.81-26-21.88-30.36zm-279.9 30.52L0 196.3v228.38c0 15 10.42 27.98 25.06 31.24l242.12 53.8a95.937 95.937 0 0 0 41.65 0l242.12-53.8c14.64-3.25 25.06-16.24 25.06-31.24V196.29l-274.2-82.26c-9.04-2.72-18.59-2.72-27.59 0zM128 230.11c0 3.61-2.41 6.77-5.89 7.72l-80 21.82C37.02 261.03 32 257.2 32 251.93v-16.58c0-3.61 2.41-6.77 5.89-7.72l80-21.82c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm144-39.28c0 3.61-2.41 6.77-5.89 7.72l-96 26.18c-5.09 1.39-10.11-2.44-10.11-7.72v-16.58c0-3.61 2.41-6.77 5.89-7.72l96-26.18c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm176 22.7c0-5.28 5.02-9.11 10.11-7.72l80 21.82c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-80-21.82a7.997 7.997 0 0 1-5.89-7.72v-16.58zm-144-39.27c0-5.28 5.02-9.11 10.11-7.72l96 26.18c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-96-26.18a7.997 7.997 0 0 1-5.89-7.72v-16.58z\"]\n};\nvar faKey = {\n prefix: 'fas',\n iconName: 'key',\n icon: [512, 512, [], \"f084\", \"M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z\"]\n};\nvar faKeyboard = {\n prefix: 'fas',\n iconName: 'keyboard',\n icon: [576, 512, [], \"f11c\", \"M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z\"]\n};\nvar faKhanda = {\n prefix: 'fas',\n iconName: 'khanda',\n icon: [512, 512, [], \"f66d\", \"M415.81 66c-6.37-3.5-14.37-2.33-19.36 3.02a15.974 15.974 0 0 0-1.91 19.52c16.49 26.16 25.2 56.39 25.2 87.41-.19 53.25-26.77 102.69-71.27 132.41l-76.63 53.35v-20.1l44.05-36.09c3.92-4.2 5-10.09 2.81-15.28L310.85 273c33.84-19.26 56.94-55.25 56.94-96.99 0-40.79-22.02-76.13-54.59-95.71l5.22-11.44c2.34-5.53.93-11.83-3.57-16.04L255.86 0l-58.99 52.81c-4.5 4.21-5.9 10.51-3.57 16.04l5.22 11.44c-32.57 19.58-54.59 54.93-54.59 95.72 0 41.75 23.09 77.73 56.94 96.99l-7.85 17.24c-2.19 5.18-1.1 11.07 2.81 15.28l44.05 36.09v19.9l-76.59-53.33C119.02 278.62 92.44 229.19 92.26 176c0-31.08 8.71-61.31 25.2-87.47 3.87-6.16 2.4-13.77-2.59-19.08-5-5.34-13.68-6.2-20.02-2.7C16.32 109.6-22.3 205.3 13.36 295.99c7.07 17.99 17.89 34.38 30.46 49.06l55.97 65.36c4.87 5.69 13.04 7.24 19.65 3.72l79.35-42.23L228 392.23l-47.08 32.78c-1.67-.37-3.23-1.01-5.01-1.01-13.25 0-23.99 10.74-23.99 24 0 13.25 10.74 24 23.99 24 12.1 0 21.69-9.11 23.33-20.76l40.63-28.28v29.95c-9.39 5.57-15.99 15.38-15.99 27.1 0 17.67 14.32 32 31.98 32s31.98-14.33 31.98-32c0-11.71-6.61-21.52-15.99-27.1v-30.15l40.91 28.48C314.41 462.89 324 472 336.09 472c13.25 0 23.99-10.75 23.99-24 0-13.26-10.74-24-23.99-24-1.78 0-3.34.64-5.01 1.01L284 392.23l29.21-20.34 79.35 42.23c6.61 3.52 14.78 1.97 19.65-3.71l52.51-61.31c18.87-22.02 34-47.5 41.25-75.59 21.62-83.66-16.45-167.27-90.16-207.51zm-95.99 110c0 22.3-11.49 41.92-28.83 53.38l-5.65-12.41c-8.75-24.52-8.75-51.04 0-75.56l7.83-17.18c16.07 11.65 26.65 30.45 26.65 51.77zm-127.93 0c0-21.32 10.58-40.12 26.66-51.76l7.83 17.18c8.75 24.52 8.75 51.03 0 75.56l-5.65 12.41c-17.34-11.46-28.84-31.09-28.84-53.39z\"]\n};\nvar faKiss = {\n prefix: 'fas',\n iconName: 'kiss',\n icon: [496, 512, [], \"f596\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm136 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm24-156c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faKissBeam = {\n prefix: 'fas',\n iconName: 'kiss-beam',\n icon: [496, 512, [], \"f597\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-39 219.9l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5zM304 396c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm65-168.1l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5z\"]\n};\nvar faKissWinkHeart = {\n prefix: 'fas',\n iconName: 'kiss-wink-heart',\n icon: [504, 512, [], \"f598\", \"M501.1 402.5c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zm-177.6-4c-5.6-20.3-2.3-42 9-59.7 29.7-46.3 98.7-45.5 127.8 4.3 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-.3-.7-23.9-84.6-23.9-84.6zM168 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm120 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-5.7-12.3 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.8-3.7-4.6-16.6 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C274.6 368.7 288 383 288 396zm16-179c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S400 181 404 206.2c1.7 11.1-11.3 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 217z\"]\n};\nvar faKiwiBird = {\n prefix: 'fas',\n iconName: 'kiwi-bird',\n icon: [576, 512, [], \"f535\", \"M575.81 217.98C572.64 157.41 518.28 112 457.63 112h-9.37c-52.82 0-104.25-16.25-147.74-46.24-41.99-28.96-96.04-41.62-153.21-28.7C129.3 41.12-.08 78.24 0 224c.04 70.95 38.68 132.8 95.99 166.01V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-54.26c15.36 3.96 31.4 6.26 48 6.26 5.44 0 10.68-.73 16-1.18V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-59.43c14.24-5.06 27.88-11.39 40.34-19.51C342.07 355.25 393.86 336 448.46 336c25.48 0 16.01-.31 23.05-.78l74.41 136.44c2.86 5.23 8.3 8.34 14.05 8.34 1.31 0 2.64-.16 3.95-.5 7.09-1.8 12.05-8.19 12.05-15.5 0 0 .14-240.24-.16-246.02zM463.97 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm80 153.25l-39.86-73.08c15.12-5.83 28.73-14.6 39.86-25.98v99.06z\"]\n};\nvar faLandmark = {\n prefix: 'fas',\n iconName: 'landmark',\n icon: [512, 512, [], \"f66f\", \"M501.62 92.11L267.24 2.04a31.958 31.958 0 0 0-22.47 0L10.38 92.11A16.001 16.001 0 0 0 0 107.09V144c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-36.91c0-6.67-4.14-12.64-10.38-14.98zM64 192v160H48c-8.84 0-16 7.16-16 16v48h448v-48c0-8.84-7.16-16-16-16h-16V192h-64v160h-96V192h-64v160h-96V192H64zm432 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faLanguage = {\n prefix: 'fas',\n iconName: 'language',\n icon: [640, 512, [], \"f1ab\", \"M152.1 236.2c-3.5-12.1-7.8-33.2-7.8-33.2h-.5s-4.3 21.1-7.8 33.2l-11.1 37.5H163zM616 96H336v320h280c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm-24 120c0 6.6-5.4 12-12 12h-11.4c-6.9 23.6-21.7 47.4-42.7 69.9 8.4 6.4 17.1 12.5 26.1 18 5.5 3.4 7.3 10.5 4.1 16.2l-7.9 13.9c-3.4 5.9-10.9 7.8-16.7 4.3-12.6-7.8-24.5-16.1-35.4-24.9-10.9 8.7-22.7 17.1-35.4 24.9-5.8 3.5-13.3 1.6-16.7-4.3l-7.9-13.9c-3.2-5.6-1.4-12.8 4.2-16.2 9.3-5.7 18-11.7 26.1-18-7.9-8.4-14.9-17-21-25.7-4-5.7-2.2-13.6 3.7-17.1l6.5-3.9 7.3-4.3c5.4-3.2 12.4-1.7 16 3.4 5 7 10.8 14 17.4 20.9 13.5-14.2 23.8-28.9 30-43.2H412c-6.6 0-12-5.4-12-12v-16c0-6.6 5.4-12 12-12h64v-16c0-6.6 5.4-12 12-12h16c6.6 0 12 5.4 12 12v16h64c6.6 0 12 5.4 12 12zM0 120v272c0 13.3 10.7 24 24 24h280V96H24c-13.3 0-24 10.7-24 24zm58.9 216.1L116.4 167c1.7-4.9 6.2-8.1 11.4-8.1h32.5c5.1 0 9.7 3.3 11.4 8.1l57.5 169.1c2.6 7.8-3.1 15.9-11.4 15.9h-22.9a12 12 0 0 1-11.5-8.6l-9.4-31.9h-60.2l-9.1 31.8c-1.5 5.1-6.2 8.7-11.5 8.7H70.3c-8.2 0-14-8.1-11.4-15.9z\"]\n};\nvar faLaptop = {\n prefix: 'fas',\n iconName: 'laptop',\n icon: [640, 512, [], \"f109\", \"M624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z\"]\n};\nvar faLaptopCode = {\n prefix: 'fas',\n iconName: 'laptop-code',\n icon: [640, 512, [], \"f5fc\", \"M255.03 261.65c6.25 6.25 16.38 6.25 22.63 0l11.31-11.31c6.25-6.25 6.25-16.38 0-22.63L253.25 192l35.71-35.72c6.25-6.25 6.25-16.38 0-22.63l-11.31-11.31c-6.25-6.25-16.38-6.25-22.63 0l-58.34 58.34c-6.25 6.25-6.25 16.38 0 22.63l58.35 58.34zm96.01-11.3l11.31 11.31c6.25 6.25 16.38 6.25 22.63 0l58.34-58.34c6.25-6.25 6.25-16.38 0-22.63l-58.34-58.34c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63L386.75 192l-35.71 35.72c-6.25 6.25-6.25 16.38 0 22.63zM624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z\"]\n};\nvar faLaptopHouse = {\n prefix: 'fas',\n iconName: 'laptop-house',\n icon: [640, 512, [], \"e066\", \"M272,288H208a16,16,0,0,1-16-16V208a16,16,0,0,1,16-16h64a16,16,0,0,1,16,16v37.12C299.11,232.24,315,224,332.8,224H469.74l6.65-7.53A16.51,16.51,0,0,0,480,207a16.31,16.31,0,0,0-4.75-10.61L416,144V48a16,16,0,0,0-16-16H368a16,16,0,0,0-16,16V87.3L263.5,8.92C258,4,247.45,0,240.05,0s-17.93,4-23.47,8.92L4.78,196.42A16.15,16.15,0,0,0,0,207a16.4,16.4,0,0,0,3.55,9.39L22.34,237.7A16.22,16.22,0,0,0,33,242.48,16.51,16.51,0,0,0,42.34,239L64,219.88V384a32,32,0,0,0,32,32H272ZM629.33,448H592V288c0-17.67-12.89-32-28.8-32H332.8c-15.91,0-28.8,14.33-28.8,32V448H266.67A10.67,10.67,0,0,0,256,458.67v10.66A42.82,42.82,0,0,0,298.6,512H597.4A42.82,42.82,0,0,0,640,469.33V458.67A10.67,10.67,0,0,0,629.33,448ZM544,448H352V304H544Z\"]\n};\nvar faLaptopMedical = {\n prefix: 'fas',\n iconName: 'laptop-medical',\n icon: [640, 512, [], \"f812\", \"M232 224h56v56a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8h-56v-56a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8zM576 48a48.14 48.14 0 0 0-48-48H112a48.14 48.14 0 0 0-48 48v336h512zm-64 272H128V64h384zm112 96H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33-17.47-32.77-32H16a16 16 0 0 0-16 16v16a64.19 64.19 0 0 0 64 64h512a64.19 64.19 0 0 0 64-64v-16a16 16 0 0 0-16-16z\"]\n};\nvar faLaugh = {\n prefix: 'fas',\n iconName: 'laugh',\n icon: [496, 512, [], \"f599\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 152c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm88 272h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18-8.9 71-69.5 126-142.9 126z\"]\n};\nvar faLaughBeam = {\n prefix: 'fas',\n iconName: 'laugh-beam',\n icon: [496, 512, [], \"f59a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm24 199.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.8 4.1-15.1-4.5zm-160 0c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"]\n};\nvar faLaughSquint = {\n prefix: 'fas',\n iconName: 'laugh-squint',\n icon: [496, 512, [], \"f59b\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 161.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 180l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"]\n};\nvar faLaughWink = {\n prefix: 'fas',\n iconName: 'laugh-wink',\n icon: [496, 512, [], \"f59c\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm20.1 198.1c4-25.2 34.2-42.1 59.9-42.1s55.9 16.9 59.9 42.1c1.7 11.1-11.4 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 217c-8.4 7.4-21.6.3-19.9-10.9zM168 160c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm230.9 146C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"]\n};\nvar faLayerGroup = {\n prefix: 'fas',\n iconName: 'layer-group',\n icon: [512, 512, [], \"f5fd\", \"M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z\"]\n};\nvar faLeaf = {\n prefix: 'fas',\n iconName: 'leaf',\n icon: [576, 512, [], \"f06c\", \"M546.2 9.7c-5.6-12.5-21.6-13-28.3-1.2C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 7 .8 13.7 1.5 20.5C161.3 262.8 253.4 224 384 224c8.8 0 16 7.2 16 16s-7.2 16-16 16C132.6 256 26 410.1 2.4 468c-6.6 16.3 1.2 34.9 17.5 41.6 16.4 6.8 35-1.1 41.8-17.3 1.5-3.6 20.9-47.9 71.9-90.6 32.4 43.9 94 85.8 174.9 77.2C465.5 467.5 576 326.7 576 154.3c0-50.2-10.8-102.2-29.8-144.6z\"]\n};\nvar faLemon = {\n prefix: 'fas',\n iconName: 'lemon',\n icon: [512, 512, [], \"f094\", \"M489.038 22.963C465.944-.13 434.648-5.93 413.947 6.129c-58.906 34.312-181.25-53.077-321.073 86.746S40.441 355.041 6.129 413.945c-12.059 20.702-6.26 51.999 16.833 75.093 23.095 23.095 54.392 28.891 75.095 16.832 58.901-34.31 181.246 53.079 321.068-86.743S471.56 156.96 505.871 98.056c12.059-20.702 6.261-51.999-16.833-75.093zM243.881 95.522c-58.189 14.547-133.808 90.155-148.358 148.358-1.817 7.27-8.342 12.124-15.511 12.124-1.284 0-2.59-.156-3.893-.481-8.572-2.144-13.784-10.83-11.642-19.403C81.901 166.427 166.316 81.93 236.119 64.478c8.575-2.143 17.261 3.069 19.403 11.642s-3.069 17.259-11.641 19.402z\"]\n};\nvar faLessThan = {\n prefix: 'fas',\n iconName: 'less-than',\n icon: [384, 512, [], \"f536\", \"M365.46 357.74L147.04 255.89l218.47-101.88c16.02-7.47 22.95-26.51 15.48-42.53l-13.52-29C360 66.46 340.96 59.53 324.94 67L18.48 209.91a32.014 32.014 0 0 0-18.48 29v34.24c0 12.44 7.21 23.75 18.48 29l306.31 142.83c16.06 7.49 35.15.54 42.64-15.52l13.56-29.08c7.49-16.06.54-35.15-15.53-42.64z\"]\n};\nvar faLessThanEqual = {\n prefix: 'fas',\n iconName: 'less-than-equal',\n icon: [448, 512, [], \"f537\", \"M54.98 214.2l301.41 119.87c18.39 6.03 38.71-2.54 45.38-19.15l12.09-30.08c6.68-16.61-2.82-34.97-21.21-41l-175.44-68.05 175.56-68.09c18.29-6 27.74-24.27 21.1-40.79l-12.03-29.92c-6.64-16.53-26.86-25.06-45.15-19.06L54.98 137.89C41.21 142.41 32 154.5 32 168.07v15.96c0 13.56 9.21 25.65 22.98 30.17zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"]\n};\nvar faLevelDownAlt = {\n prefix: 'fas',\n iconName: 'level-down-alt',\n icon: [320, 512, [], \"f3be\", \"M313.553 392.331L209.587 504.334c-9.485 10.214-25.676 10.229-35.174 0L70.438 392.331C56.232 377.031 67.062 352 88.025 352H152V80H68.024a11.996 11.996 0 0 1-8.485-3.515l-56-56C-4.021 12.926 1.333 0 12.024 0H208c13.255 0 24 10.745 24 24v328h63.966c20.878 0 31.851 24.969 17.587 40.331z\"]\n};\nvar faLevelUpAlt = {\n prefix: 'fas',\n iconName: 'level-up-alt',\n icon: [320, 512, [], \"f3bf\", \"M313.553 119.669L209.587 7.666c-9.485-10.214-25.676-10.229-35.174 0L70.438 119.669C56.232 134.969 67.062 160 88.025 160H152v272H68.024a11.996 11.996 0 0 0-8.485 3.515l-56 56C-4.021 499.074 1.333 512 12.024 512H208c13.255 0 24-10.745 24-24V160h63.966c20.878 0 31.851-24.969 17.587-40.331z\"]\n};\nvar faLifeRing = {\n prefix: 'fas',\n iconName: 'life-ring',\n icon: [512, 512, [], \"f1cd\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm173.696 119.559l-63.399 63.399c-10.987-18.559-26.67-34.252-45.255-45.255l63.399-63.399a218.396 218.396 0 0 1 45.255 45.255zM256 352c-53.019 0-96-42.981-96-96s42.981-96 96-96 96 42.981 96 96-42.981 96-96 96zM127.559 82.304l63.399 63.399c-18.559 10.987-34.252 26.67-45.255 45.255l-63.399-63.399a218.372 218.372 0 0 1 45.255-45.255zM82.304 384.441l63.399-63.399c10.987 18.559 26.67 34.252 45.255 45.255l-63.399 63.399a218.396 218.396 0 0 1-45.255-45.255zm302.137 45.255l-63.399-63.399c18.559-10.987 34.252-26.67 45.255-45.255l63.399 63.399a218.403 218.403 0 0 1-45.255 45.255z\"]\n};\nvar faLightbulb = {\n prefix: 'fas',\n iconName: 'lightbulb',\n icon: [352, 512, [], \"f0eb\", \"M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"]\n};\nvar faLink = {\n prefix: 'fas',\n iconName: 'link',\n icon: [512, 512, [], \"f0c1\", \"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z\"]\n};\nvar faLiraSign = {\n prefix: 'fas',\n iconName: 'lira-sign',\n icon: [384, 512, [], \"f195\", \"M371.994 256h-48.019C317.64 256 312 260.912 312 267.246 312 368 230.179 416 144 416V256.781l134.603-29.912A12 12 0 0 0 288 215.155v-40.976c0-7.677-7.109-13.38-14.603-11.714L144 191.219V160.78l134.603-29.912A12 12 0 0 0 288 119.154V78.179c0-7.677-7.109-13.38-14.603-11.714L144 95.219V44c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v68.997L9.397 125.131A12 12 0 0 0 0 136.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 178.558v30.439L9.397 221.131A12 12 0 0 0 0 232.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 274.558V468c0 6.627 5.373 12 12 12h79.583c134.091 0 223.255-77.834 228.408-211.592.261-6.782-5.211-12.408-11.997-12.408z\"]\n};\nvar faList = {\n prefix: 'fas',\n iconName: 'list',\n icon: [512, 512, [], \"f03a\", \"M80 368H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm0-320H16A16 16 0 0 0 0 64v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V64a16 16 0 0 0-16-16zm0 160H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm416 176H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faListAlt = {\n prefix: 'fas',\n iconName: 'list-alt',\n icon: [512, 512, [], \"f022\", \"M464 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM128 120c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm288-136v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12z\"]\n};\nvar faListOl = {\n prefix: 'fas',\n iconName: 'list-ol',\n icon: [512, 512, [], \"f0cb\", \"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"]\n};\nvar faListUl = {\n prefix: 'fas',\n iconName: 'list-ul',\n icon: [512, 512, [], \"f0ca\", \"M48 48a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm448 16H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faLocationArrow = {\n prefix: 'fas',\n iconName: 'location-arrow',\n icon: [512, 512, [], \"f124\", \"M444.52 3.52L28.74 195.42c-47.97 22.39-31.98 92.75 19.19 92.75h175.91v175.91c0 51.17 70.36 67.17 92.75 19.19l191.9-415.78c15.99-38.39-25.59-79.97-63.97-63.97z\"]\n};\nvar faLock = {\n prefix: 'fas',\n iconName: 'lock',\n icon: [448, 512, [], \"f023\", \"M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z\"]\n};\nvar faLockOpen = {\n prefix: 'fas',\n iconName: 'lock-open',\n icon: [576, 512, [], \"f3c1\", \"M423.5 0C339.5.3 272 69.5 272 153.5V224H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48h-48v-71.1c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v80c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-80C576 68 507.5-.3 423.5 0z\"]\n};\nvar faLongArrowAltDown = {\n prefix: 'fas',\n iconName: 'long-arrow-alt-down',\n icon: [256, 512, [], \"f309\", \"M168 345.941V44c0-6.627-5.373-12-12-12h-56c-6.627 0-12 5.373-12 12v301.941H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.569 9.373 33.941 0l86.059-86.059c15.119-15.119 4.411-40.971-16.971-40.971H168z\"]\n};\nvar faLongArrowAltLeft = {\n prefix: 'fas',\n iconName: 'long-arrow-alt-left',\n icon: [448, 512, [], \"f30a\", \"M134.059 296H436c6.627 0 12-5.373 12-12v-56c0-6.627-5.373-12-12-12H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.569 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296z\"]\n};\nvar faLongArrowAltRight = {\n prefix: 'fas',\n iconName: 'long-arrow-alt-right',\n icon: [448, 512, [], \"f30b\", \"M313.941 216H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h301.941v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.569 0-33.941l-86.059-86.059c-15.119-15.119-40.971-4.411-40.971 16.971V216z\"]\n};\nvar faLongArrowAltUp = {\n prefix: 'fas',\n iconName: 'long-arrow-alt-up',\n icon: [256, 512, [], \"f30c\", \"M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z\"]\n};\nvar faLowVision = {\n prefix: 'fas',\n iconName: 'low-vision',\n icon: [576, 512, [], \"f2a8\", \"M569.344 231.631C512.96 135.949 407.81 72 288 72c-28.468 0-56.102 3.619-82.451 10.409L152.778 10.24c-7.601-10.858-22.564-13.5-33.423-5.9l-13.114 9.178c-10.86 7.601-13.502 22.566-5.9 33.426l43.131 58.395C89.449 131.73 40.228 174.683 6.682 231.581c-.01.017-.023.033-.034.05-8.765 14.875-8.964 33.528 0 48.739 38.5 65.332 99.742 115.862 172.859 141.349L55.316 244.302A272.194 272.194 0 0 1 83.61 208.39l119.4 170.58h.01l40.63 58.04a330.055 330.055 0 0 0 78.94 1.17l-189.98-271.4a277.628 277.628 0 0 1 38.777-21.563l251.836 356.544c7.601 10.858 22.564 13.499 33.423 5.9l13.114-9.178c10.86-7.601 13.502-22.567 5.9-33.426l-43.12-58.377-.007-.009c57.161-27.978 104.835-72.04 136.81-126.301a47.938 47.938 0 0 0 .001-48.739zM390.026 345.94l-19.066-27.23c24.682-32.567 27.711-76.353 8.8-111.68v.03c0 23.65-19.17 42.82-42.82 42.82-23.828 0-42.82-19.349-42.82-42.82 0-23.65 19.17-42.82 42.82-42.82h.03c-24.75-13.249-53.522-15.643-79.51-7.68l-19.068-27.237C253.758 123.306 270.488 120 288 120c75.162 0 136 60.826 136 136 0 34.504-12.833 65.975-33.974 89.94z\"]\n};\nvar faLuggageCart = {\n prefix: 'fas',\n iconName: 'luggage-cart',\n icon: [640, 512, [], \"f59d\", \"M224 320h32V96h-32c-17.67 0-32 14.33-32 32v160c0 17.67 14.33 32 32 32zm352-32V128c0-17.67-14.33-32-32-32h-32v224h32c17.67 0 32-14.33 32-32zm48 96H128V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h48v368c0 8.84 7.16 16 16 16h82.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16h197.88c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM480 96V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v272h192V96zm-48 0h-96V48h96v48z\"]\n};\nvar faLungs = {\n prefix: 'fas',\n iconName: 'lungs',\n icon: [640, 512, [], \"f604\", \"M636.11 390.15C614.44 308.85 580.07 231 534.1 159.13 511.98 124.56 498.03 96 454.05 96 415.36 96 384 125.42 384 161.71v60.11l-32.88-21.92a15.996 15.996 0 0 1-7.12-13.31V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v170.59c0 5.35-2.67 10.34-7.12 13.31L256 221.82v-60.11C256 125.42 224.64 96 185.95 96c-43.98 0-57.93 28.56-80.05 63.13C59.93 231 25.56 308.85 3.89 390.15 1.3 399.84 0 409.79 0 419.78c0 61.23 62.48 105.44 125.24 88.62l59.5-15.95c42.18-11.3 71.26-47.47 71.26-88.62v-87.49l-85.84 57.23a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09L320 235.23l167.59 111.72a7.994 7.994 0 0 1 2.22 11.09l-8.88 13.31a7.994 7.994 0 0 1-11.09 2.22L384 316.34v87.49c0 41.15 29.08 77.31 71.26 88.62l59.5 15.95C577.52 525.22 640 481.01 640 419.78c0-9.99-1.3-19.94-3.89-29.63z\"]\n};\nvar faLungsVirus = {\n prefix: 'fas',\n iconName: 'lungs-virus',\n icon: [640, 512, [], \"e067\", \"M344,150.68V16A16,16,0,0,0,328,0H312a16,16,0,0,0-16,16V150.68a46.45,46.45,0,0,1,48,0ZM195.54,444.46a48.06,48.06,0,0,1,0-67.88l8.58-8.58H192a48,48,0,0,1,0-96h12.12l-8.58-8.57a48,48,0,0,1,60.46-74V161.75C256,125.38,224.62,96,186,96c-44,0-58,28.5-80.12,63.13a819.52,819.52,0,0,0-102,231A113.16,113.16,0,0,0,0,419.75C0,481,62.5,525.26,125.25,508.38l59.5-15.87a98.51,98.51,0,0,0,52.5-34.75,46.49,46.49,0,0,1-41.71-13.3Zm226.29-22.63a16,16,0,0,0,0-22.62l-8.58-8.58C393.09,370.47,407.37,336,435.88,336H448a16,16,0,0,0,0-32H435.88c-28.51,0-42.79-34.47-22.63-54.62l8.58-8.58a16,16,0,0,0-22.63-22.63l-8.57,8.58C370.47,246.91,336,232.63,336,204.12V192a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.58c20.16,20.15,5.88,54.62-22.63,54.62H192a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.58a16,16,0,1,0,22.63,22.62l8.57-8.57C269.53,393.1,304,407.38,304,435.88V448a16,16,0,0,0,32,0V435.88c0-28.5,34.47-42.78,54.63-22.62l8.57,8.57a16,16,0,0,0,22.63,0ZM288,304a16,16,0,1,1,16-16A16,16,0,0,1,288,304Zm64,64a16,16,0,1,1,16-16A16,16,0,0,1,352,368Zm284.12,22.13a819.52,819.52,0,0,0-102-231C512,124.5,498,96,454,96c-38.62,0-70,29.38-70,65.75v27.72a48,48,0,0,1,60.46,74L435.88,272H448a48,48,0,0,1,0,96H435.88l8.58,8.58a47.7,47.7,0,0,1-41.71,81.18,98.51,98.51,0,0,0,52.5,34.75l59.5,15.87C577.5,525.26,640,481,640,419.75A113.16,113.16,0,0,0,636.12,390.13Z\"]\n};\nvar faMagic = {\n prefix: 'fas',\n iconName: 'magic',\n icon: [512, 512, [], \"f0d0\", \"M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z\"]\n};\nvar faMagnet = {\n prefix: 'fas',\n iconName: 'magnet',\n icon: [512, 512, [], \"f076\", \"M164.07 148.1H12a12 12 0 0 1-12-12v-80a36 36 0 0 1 36-36h104a36 36 0 0 1 36 36v80a11.89 11.89 0 0 1-11.93 12zm347.93-12V56a36 36 0 0 0-36-36H372a36 36 0 0 0-36 36v80a12 12 0 0 0 12 12h152a11.89 11.89 0 0 0 12-11.9zm-164 44a12 12 0 0 0-12 12v52c0 128.1-160 127.9-160 0v-52a12 12 0 0 0-12-12H12.1a12 12 0 0 0-12 12.1c.1 21.4.6 40.3 0 53.3 0 150.6 136.17 246.6 256.75 246.6s255-96 255-246.7c-.6-12.8-.2-33 0-53.2a12 12 0 0 0-12-12.1z\"]\n};\nvar faMailBulk = {\n prefix: 'fas',\n iconName: 'mail-bulk',\n icon: [576, 512, [], \"f674\", \"M160 448c-25.6 0-51.2-22.4-64-32-64-44.8-83.2-60.8-96-70.4V480c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V345.6c-12.8 9.6-32 25.6-96 70.4-12.8 9.6-38.4 32-64 32zm128-192H32c-17.67 0-32 14.33-32 32v16c25.6 19.2 22.4 19.2 115.2 86.4 9.6 6.4 28.8 25.6 44.8 25.6s35.2-19.2 44.8-22.4c92.8-67.2 89.6-67.2 115.2-86.4V288c0-17.67-14.33-32-32-32zm256-96H224c-17.67 0-32 14.33-32 32v32h96c33.21 0 60.59 25.42 63.71 57.82l.29-.22V416h192c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zm-32 128h-64v-64h64v64zm-352-96c0-35.29 28.71-64 64-64h224V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v192h96v-32z\"]\n};\nvar faMale = {\n prefix: 'fas',\n iconName: 'male',\n icon: [192, 512, [], \"f183\", \"M96 0c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64S60.654 0 96 0m48 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H48c-26.51 0-48 21.49-48 48v136c0 13.255 10.745 24 24 24h16v136c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24V352h16c13.255 0 24-10.745 24-24V192c0-26.51-21.49-48-48-48z\"]\n};\nvar faMap = {\n prefix: 'fas',\n iconName: 'map',\n icon: [576, 512, [], \"f279\", \"M0 117.66v346.32c0 11.32 11.43 19.06 21.94 14.86L160 416V32L20.12 87.95A32.006 32.006 0 0 0 0 117.66zM192 416l192 64V96L192 32v384zM554.06 33.16L416 96v384l139.88-55.95A31.996 31.996 0 0 0 576 394.34V48.02c0-11.32-11.43-19.06-21.94-14.86z\"]\n};\nvar faMapMarked = {\n prefix: 'fas',\n iconName: 'map-marked',\n icon: [576, 512, [], \"f59f\", \"M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z\"]\n};\nvar faMapMarkedAlt = {\n prefix: 'fas',\n iconName: 'map-marked-alt',\n icon: [576, 512, [], \"f5a0\", \"M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z\"]\n};\nvar faMapMarker = {\n prefix: 'fas',\n iconName: 'map-marker',\n icon: [384, 512, [], \"f041\", \"M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0z\"]\n};\nvar faMapMarkerAlt = {\n prefix: 'fas',\n iconName: 'map-marker-alt',\n icon: [384, 512, [], \"f3c5\", \"M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z\"]\n};\nvar faMapPin = {\n prefix: 'fas',\n iconName: 'map-pin',\n icon: [288, 512, [], \"f276\", \"M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z\"]\n};\nvar faMapSigns = {\n prefix: 'fas',\n iconName: 'map-signs',\n icon: [512, 512, [], \"f277\", \"M507.31 84.69L464 41.37c-6-6-14.14-9.37-22.63-9.37H288V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v16H56c-13.25 0-24 10.75-24 24v80c0 13.25 10.75 24 24 24h385.37c8.49 0 16.62-3.37 22.63-9.37l43.31-43.31c6.25-6.26 6.25-16.38 0-22.63zM224 496c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-64v112zm232-272H288v-32h-64v32H70.63c-8.49 0-16.62 3.37-22.63 9.37L4.69 276.69c-6.25 6.25-6.25 16.38 0 22.63L48 342.63c6 6 14.14 9.37 22.63 9.37H456c13.25 0 24-10.75 24-24v-80c0-13.25-10.75-24-24-24z\"]\n};\nvar faMarker = {\n prefix: 'fas',\n iconName: 'marker',\n icon: [512, 512, [], \"f5a1\", \"M93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l75.4-75.4-128.02-128.02-75.4 75.4zM485.49 26.51c-35.35-35.35-92.67-35.35-128.02 0l-21.76 21.76-36.56-36.55c-15.62-15.62-40.95-15.62-56.56 0L138.47 115.84c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0l87.15-87.15 19.59 19.59L191.98 192 320 320.02l165.49-165.49c35.35-35.35 35.35-92.66 0-128.02z\"]\n};\nvar faMars = {\n prefix: 'fas',\n iconName: 'mars',\n icon: [384, 512, [], \"f222\", \"M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c0-6.6-5.4-12-12-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faMarsDouble = {\n prefix: 'fas',\n iconName: 'mars-double',\n icon: [512, 512, [], \"f227\", \"M340 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C198.5 72.1 172.2 64 144 64 64.5 64 0 128.5 0 208s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.5 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 288c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm356-128.1h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7c-18.2-11.4-39-18.9-61.5-21.3-2.1 21.8-8.2 43.3-18.4 63.3 1.1 0 2.2-.1 3.2-.1 44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80c0-1.1 0-2.2.1-3.2-20 10.2-41.5 16.4-63.3 18.4C168.4 455.6 229.6 512 304 512c79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12v-79c0-6.7-5.4-12.1-12-12.1z\"]\n};\nvar faMarsStroke = {\n prefix: 'fas',\n iconName: 'mars-stroke',\n icon: [384, 512, [], \"f229\", \"M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-17.5 17.5-14.1-14.1c-4.7-4.7-12.3-4.7-17 0L224.5 133c-4.7 4.7-4.7 12.3 0 17l14.1 14.1-18 18c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l18-18 14.1 14.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L329.2 164l17.5-17.5 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c-.1-6.6-5.5-12-12.1-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faMarsStrokeH = {\n prefix: 'fas',\n iconName: 'mars-stroke-h',\n icon: [480, 512, [], \"f22b\", \"M476.2 247.5l-55.9-55.9c-7.6-7.6-20.5-2.2-20.5 8.5V224H376v-20c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v20h-27.6c-5.8-25.6-18.7-49.9-38.6-69.8C189.6 98 98.4 98 42.2 154.2c-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 19.9-19.9 32.8-44.2 38.6-69.8H312v20c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-20h23.9v23.9c0 10.7 12.9 16 20.5 8.5l55.9-55.9c4.6-4.7 4.6-12.3-.1-17zm-275.6 65.1c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z\"]\n};\nvar faMarsStrokeV = {\n prefix: 'fas',\n iconName: 'mars-stroke-v',\n icon: [288, 512, [], \"f22a\", \"M245.8 234.2c-19.9-19.9-44.2-32.8-69.8-38.6v-25.4h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V81.4h23.9c10.7 0 16-12.9 8.5-20.5L152.5 5.1c-4.7-4.7-12.3-4.7-17 0L79.6 61c-7.6 7.6-2.2 20.5 8.5 20.5H112v24.7H92c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h20v25.4c-25.6 5.8-49.9 18.7-69.8 38.6-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 56.3-56.2 56.3-147.4 0-203.6zm-45.2 158.4c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z\"]\n};\nvar faMask = {\n prefix: 'fas',\n iconName: 'mask',\n icon: [640, 512, [], \"f6fa\", \"M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c15.66-22.99 46.97-22.99 62.63 0l25.73 37.79C401.66 427.31 439.23 448 479.13 448c189.86 0 290.63-384-158.46-384zM184 308.36c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05zm272 0c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05z\"]\n};\nvar faMedal = {\n prefix: 'fas',\n iconName: 'medal',\n icon: [512, 512, [], \"f5a2\", \"M223.75 130.75L154.62 15.54A31.997 31.997 0 0 0 127.18 0H16.03C3.08 0-4.5 14.57 2.92 25.18l111.27 158.96c29.72-27.77 67.52-46.83 109.56-53.39zM495.97 0H384.82c-11.24 0-21.66 5.9-27.44 15.54l-69.13 115.21c42.04 6.56 79.84 25.62 109.56 53.38L509.08 25.18C516.5 14.57 508.92 0 495.97 0zM256 160c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm92.52 157.26l-37.93 36.96 8.97 52.22c1.6 9.36-8.26 16.51-16.65 12.09L256 393.88l-46.9 24.65c-8.4 4.45-18.25-2.74-16.65-12.09l8.97-52.22-37.93-36.96c-6.82-6.64-3.05-18.23 6.35-19.59l52.43-7.64 23.43-47.52c2.11-4.28 6.19-6.39 10.28-6.39 4.11 0 8.22 2.14 10.33 6.39l23.43 47.52 52.43 7.64c9.4 1.36 13.17 12.95 6.35 19.59z\"]\n};\nvar faMedkit = {\n prefix: 'fas',\n iconName: 'medkit',\n icon: [512, 512, [], \"f0fa\", \"M96 480h320V128h-32V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v48H96v352zm96-384h128v32H192V96zm320 80v256c0 26.51-21.49 48-48 48h-16V128h16c26.51 0 48 21.49 48 48zM64 480H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v352zm288-208v32c0 8.837-7.163 16-16 16h-48v48c0 8.837-7.163 16-16 16h-32c-8.837 0-16-7.163-16-16v-48h-48c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h48v-48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v48h48c8.837 0 16 7.163 16 16z\"]\n};\nvar faMeh = {\n prefix: 'fas',\n iconName: 'meh',\n icon: [496, 512, [], \"f11a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm176 192H152c-21.2 0-21.2-32 0-32h192c21.2 0 21.2 32 0 32zm-16-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faMehBlank = {\n prefix: 'fas',\n iconName: 'meh-blank',\n icon: [496, 512, [], \"f5a4\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faMehRollingEyes = {\n prefix: 'fas',\n iconName: 'meh-rolling-eyes',\n icon: [496, 512, [], \"f5a5\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 224c0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64s-64-28.7-64-64zm224 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-112c-35.3 0-64-28.7-64-64 0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64z\"]\n};\nvar faMemory = {\n prefix: 'fas',\n iconName: 'memory',\n icon: [640, 512, [], \"f538\", \"M640 130.94V96c0-17.67-14.33-32-32-32H32C14.33 64 0 78.33 0 96v34.94c18.6 6.61 32 24.19 32 45.06s-13.4 38.45-32 45.06V320h640v-98.94c-18.6-6.61-32-24.19-32-45.06s13.4-38.45 32-45.06zM224 256h-64V128h64v128zm128 0h-64V128h64v128zm128 0h-64V128h64v128zM0 448h64v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h64v-96H0v96z\"]\n};\nvar faMenorah = {\n prefix: 'fas',\n iconName: 'menorah',\n icon: [640, 512, [], \"f676\", \"M144 128h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm192 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm80-32c17.67 0 32-14.33 32-32S608 0 608 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S512 0 512 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S416 0 416 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S320 0 320 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S224 0 224 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S128 0 128 0 96 46.33 96 64s14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S32 0 32 0 0 46.33 0 64s14.33 32 32 32zm544 192c0 17.67-14.33 32-32 32H352V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v176H96c-17.67 0-32-14.33-32-32V144c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v144c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v144z\"]\n};\nvar faMercury = {\n prefix: 'fas',\n iconName: 'mercury',\n icon: [288, 512, [], \"f223\", \"M288 208c0-44.2-19.9-83.7-51.2-110.1 2.5-1.8 4.9-3.8 7.2-5.8 24.7-21.2 39.8-48.8 43.2-78.8.9-7.1-4.7-13.3-11.9-13.3h-40.5C229 0 224.1 4.1 223 9.8c-2.4 12.5-9.6 24.3-20.7 33.8C187 56.8 166.3 64 144 64s-43-7.2-58.4-20.4C74.5 34.1 67.4 22.3 64.9 9.8 63.8 4.1 58.9 0 53.2 0H12.7C5.5 0-.1 6.2.8 13.3 4.2 43.4 19.2 71 44 92.2c2.3 2 4.7 3.9 7.2 5.8C19.9 124.3 0 163.8 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z\"]\n};\nvar faMeteor = {\n prefix: 'fas',\n iconName: 'meteor',\n icon: [512, 512, [], \"f753\", \"M511.328,20.8027c-11.60759,38.70264-34.30724,111.70173-61.30311,187.70077,6.99893,2.09372,13.4042,4,18.60653,5.59368a16.06158,16.06158,0,0,1,9.49854,22.906c-22.106,42.29635-82.69047,152.795-142.47819,214.40356-.99984,1.09373-1.99969,2.5-2.99954,3.49995A194.83046,194.83046,0,1,1,57.085,179.41009c.99985-1,2.40588-2,3.49947-3,61.59994-59.90549,171.97367-120.40473,214.37343-142.4982a16.058,16.058,0,0,1,22.90274,9.49988c1.59351,5.09368,3.49947,11.5936,5.5929,18.59351C379.34818,35.00565,452.43074,12.30281,491.12794.70921A16.18325,16.18325,0,0,1,511.328,20.8027ZM319.951,320.00207A127.98041,127.98041,0,1,0,191.97061,448.00046,127.97573,127.97573,0,0,0,319.951,320.00207Zm-127.98041-31.9996a31.9951,31.9951,0,1,1-31.9951-31.9996A31.959,31.959,0,0,1,191.97061,288.00247Zm31.9951,79.999a15.99755,15.99755,0,1,1-15.99755-15.9998A16.04975,16.04975,0,0,1,223.96571,368.00147Z\"]\n};\nvar faMicrochip = {\n prefix: 'fas',\n iconName: 'microchip',\n icon: [512, 512, [], \"f2db\", \"M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z\"]\n};\nvar faMicrophone = {\n prefix: 'fas',\n iconName: 'microphone',\n icon: [352, 512, [], \"f130\", \"M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z\"]\n};\nvar faMicrophoneAlt = {\n prefix: 'fas',\n iconName: 'microphone-alt',\n icon: [352, 512, [], \"f3c9\", \"M336 192h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16zM176 352c53.02 0 96-42.98 96-96h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96z\"]\n};\nvar faMicrophoneAltSlash = {\n prefix: 'fas',\n iconName: 'microphone-alt-slash',\n icon: [640, 512, [], \"f539\", \"M633.82 458.1L476.26 336.33C488.74 312.21 496 284.98 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67h-43.67l-41.4-32H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.78c11.71-1.62 23.1-4.28 33.96-8.08l-50.4-38.96c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z\"]\n};\nvar faMicrophoneSlash = {\n prefix: 'fas',\n iconName: 'microphone-slash',\n icon: [640, 512, [], \"f131\", \"M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z\"]\n};\nvar faMicroscope = {\n prefix: 'fas',\n iconName: 'microscope',\n icon: [512, 512, [], \"f610\", \"M160 320h12v16c0 8.84 7.16 16 16 16h40c8.84 0 16-7.16 16-16v-16h12c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32V16c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v16c-17.67 0-32 14.33-32 32v224c0 17.67 14.33 32 32 32zm304 128h-1.29C493.24 413.99 512 369.2 512 320c0-105.88-86.12-192-192-192v64c70.58 0 128 57.42 128 128s-57.42 128-128 128H48c-26.51 0-48 21.49-48 48 0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48zm-360-32h208c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8z\"]\n};\nvar faMinus = {\n prefix: 'fas',\n iconName: 'minus',\n icon: [448, 512, [], \"f068\", \"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"]\n};\nvar faMinusCircle = {\n prefix: 'fas',\n iconName: 'minus-circle',\n icon: [512, 512, [], \"f056\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z\"]\n};\nvar faMinusSquare = {\n prefix: 'fas',\n iconName: 'minus-square',\n icon: [448, 512, [], \"f146\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM92 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H92z\"]\n};\nvar faMitten = {\n prefix: 'fas',\n iconName: 'mitten',\n icon: [448, 512, [], \"f7b5\", \"M368 416H48c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16zm57-209.1c-27.2-22.6-67.5-19-90.1 8.2l-20.9 25-29.6-128.4c-18-77.5-95.4-125.9-172.8-108C34.2 21.6-14.2 98.9 3.7 176.4L51.6 384h309l72.5-87c22.7-27.2 19-67.5-8.1-90.1z\"]\n};\nvar faMobile = {\n prefix: 'fas',\n iconName: 'mobile',\n icon: [320, 512, [], \"f10b\", \"M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faMobileAlt = {\n prefix: 'fas',\n iconName: 'mobile-alt',\n icon: [320, 512, [], \"f3cd\", \"M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm112-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v312z\"]\n};\nvar faMoneyBill = {\n prefix: 'fas',\n iconName: 'money-bill',\n icon: [640, 512, [], \"f0d6\", \"M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 176c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 48h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z\"]\n};\nvar faMoneyBillAlt = {\n prefix: 'fas',\n iconName: 'money-bill-alt',\n icon: [640, 512, [], \"f3d1\", \"M352 288h-16v-88c0-4.42-3.58-8-8-8h-13.58c-4.74 0-9.37 1.4-13.31 4.03l-15.33 10.22a7.994 7.994 0 0 0-2.22 11.09l8.88 13.31a7.994 7.994 0 0 0 11.09 2.22l.47-.31V288h-16c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h64c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 192c-53.02 0-96-50.15-96-112 0-61.86 42.98-112 96-112s96 50.14 96 112c0 61.87-43 112-96 112zm272 32h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z\"]\n};\nvar faMoneyBillWave = {\n prefix: 'fas',\n iconName: 'money-bill-wave',\n icon: [640, 512, [], \"f53a\", \"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM48 132.22c20.12 5.04 41.12 7.57 62.72 8.93C104.84 170.54 79 192.69 48 192.69v-60.47zm0 285v-47.78c34.37 0 62.18 27.27 63.71 61.4-22.53-1.81-43.59-6.31-63.71-13.62zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 27.78c-17.52-4.39-35.71-6.85-54.32-8.44 5.87-26.08 27.5-45.88 54.32-49.28v57.72zm0-236.11c-30.89-3.91-54.86-29.7-55.81-61.55 19.54 2.17 38.09 6.23 55.81 12.66v48.89z\"]\n};\nvar faMoneyBillWaveAlt = {\n prefix: 'fas',\n iconName: 'money-bill-wave-alt',\n icon: [640, 512, [], \"f53b\", \"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96z\"]\n};\nvar faMoneyCheck = {\n prefix: 'fas',\n iconName: 'money-check',\n icon: [640, 512, [], \"f53c\", \"M0 448c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128H0v320zm448-208c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-32zm0 120c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H456c-4.42 0-8-3.58-8-8v-16zM64 264c0-4.42 3.58-8 8-8h304c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm0 96c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zM624 32H16C7.16 32 0 39.16 0 48v48h640V48c0-8.84-7.16-16-16-16z\"]\n};\nvar faMoneyCheckAlt = {\n prefix: 'fas',\n iconName: 'money-check-alt',\n icon: [640, 512, [], \"f53d\", \"M608 32H32C14.33 32 0 46.33 0 64v384c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM176 327.88V344c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V152c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07zM416 312c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm160 0c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h272c4.42 0 8 3.58 8 8v16z\"]\n};\nvar faMonument = {\n prefix: 'fas',\n iconName: 'monument',\n icon: [384, 512, [], \"f5a6\", \"M368 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h352c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-78.86-347.26a31.97 31.97 0 0 0-9.21-19.44L203.31 4.69c-6.25-6.25-16.38-6.25-22.63 0l-76.6 76.61a31.97 31.97 0 0 0-9.21 19.44L64 416h256l-30.86-315.26zM240 307.2c0 6.4-6.4 12.8-12.8 12.8h-70.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h70.4c6.4 0 12.8 6.4 12.8 12.8v38.4z\"]\n};\nvar faMoon = {\n prefix: 'fas',\n iconName: 'moon',\n icon: [512, 512, [], \"f186\", \"M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z\"]\n};\nvar faMortarPestle = {\n prefix: 'fas',\n iconName: 'mortar-pestle',\n icon: [512, 512, [], \"f5a7\", \"M501.54 60.91c17.22-17.22 12.51-46.25-9.27-57.14a35.696 35.696 0 0 0-37.37 3.37L251.09 160h151.37l99.08-99.09zM496 192H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c0 80.98 50.2 150.11 121.13 178.32-12.76 16.87-21.72 36.8-24.95 58.69-1.46 9.92 6.04 18.98 16.07 18.98h223.5c10.03 0 17.53-9.06 16.07-18.98-3.22-21.89-12.18-41.82-24.95-58.69C429.8 406.11 480 336.98 480 256h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faMosque = {\n prefix: 'fas',\n iconName: 'mosque',\n icon: [640, 512, [], \"f678\", \"M0 480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V160H0v320zm579.16-192c17.86-17.39 28.84-37.34 28.84-58.91 0-52.86-41.79-93.79-87.92-122.9-41.94-26.47-80.63-57.77-111.96-96.22L400 0l-8.12 9.97c-31.33 38.45-70.01 69.76-111.96 96.22C233.79 135.3 192 176.23 192 229.09c0 21.57 10.98 41.52 28.84 58.91h358.32zM608 320H192c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h32v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h64v-72c0-48 48-72 48-72s48 24 48 72v72h64v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h32c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM64 0S0 32 0 96v32h128V96c0-64-64-96-64-96z\"]\n};\nvar faMotorcycle = {\n prefix: 'fas',\n iconName: 'motorcycle',\n icon: [640, 512, [], \"f21c\", \"M512.9 192c-14.9-.1-29.1 2.3-42.4 6.9L437.6 144H520c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24h-45.3c-6.8 0-13.3 2.9-17.8 7.9l-37.5 41.7-22.8-38C392.2 68.4 384.4 64 376 64h-80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h66.4l19.2 32H227.9c-17.7-23.1-44.9-40-99.9-40H72.5C59 104 47.7 115 48 128.5c.2 13 10.9 23.5 24 23.5h56c24.5 0 38.7 10.9 47.8 24.8l-11.3 20.5c-13-3.9-26.9-5.7-41.3-5.2C55.9 194.5 1.6 249.6 0 317c-1.6 72.1 56.3 131 128 131 59.6 0 109.7-40.8 124-96h84.2c13.7 0 24.6-11.4 24-25.1-2.1-47.1 17.5-93.7 56.2-125l12.5 20.8c-27.6 23.7-45.1 58.9-44.8 98.2.5 69.6 57.2 126.5 126.8 127.1 71.6.7 129.8-57.5 129.2-129.1-.7-69.6-57.6-126.4-127.2-126.9zM128 400c-44.1 0-80-35.9-80-80s35.9-80 80-80c4.2 0 8.4.3 12.5 1L99 316.4c-8.8 16 2.8 35.6 21 35.6h81.3c-12.4 28.2-40.6 48-73.3 48zm463.9-75.6c-2.2 40.6-35 73.4-75.5 75.5-46.1 2.5-84.4-34.3-84.4-79.9 0-21.4 8.4-40.8 22.1-55.1l49.4 82.4c4.5 7.6 14.4 10 22 5.5l13.7-8.2c7.6-4.5 10-14.4 5.5-22l-48.6-80.9c5.2-1.1 10.5-1.6 15.9-1.6 45.6-.1 82.3 38.2 79.9 84.3z\"]\n};\nvar faMountain = {\n prefix: 'fas',\n iconName: 'mountain',\n icon: [640, 512, [], \"f6fc\", \"M634.92 462.7l-288-448C341.03 5.54 330.89 0 320 0s-21.03 5.54-26.92 14.7l-288 448a32.001 32.001 0 0 0-1.17 32.64A32.004 32.004 0 0 0 32 512h576c11.71 0 22.48-6.39 28.09-16.67a31.983 31.983 0 0 0-1.17-32.63zM320 91.18L405.39 224H320l-64 64-38.06-38.06L320 91.18z\"]\n};\nvar faMouse = {\n prefix: 'fas',\n iconName: 'mouse',\n icon: [384, 512, [], \"f8cc\", \"M0 352a160 160 0 0 0 160 160h64a160 160 0 0 0 160-160V224H0zM176 0h-16A160 160 0 0 0 0 160v32h176zm48 0h-16v192h176v-32A160 160 0 0 0 224 0z\"]\n};\nvar faMousePointer = {\n prefix: 'fas',\n iconName: 'mouse-pointer',\n icon: [320, 512, [], \"f245\", \"M302.189 329.126H196.105l55.831 135.993c3.889 9.428-.555 19.999-9.444 23.999l-49.165 21.427c-9.165 4-19.443-.571-23.332-9.714l-53.053-129.136-86.664 89.138C18.729 472.71 0 463.554 0 447.977V18.299C0 1.899 19.921-6.096 30.277 5.443l284.412 292.542c11.472 11.179 3.007 31.141-12.5 31.141z\"]\n};\nvar faMugHot = {\n prefix: 'fas',\n iconName: 'mug-hot',\n icon: [512, 512, [], \"f7b6\", \"M127.1 146.5c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C111.8 5.9 105 0 96.8 0H80.4C70.6 0 63 8.5 64.1 18c3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zm112 0c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C223.8 5.9 217 0 208.8 0h-16.4c-9.8 0-17.5 8.5-16.3 18 3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zM400 192H32c-17.7 0-32 14.3-32 32v192c0 53 43 96 96 96h192c53 0 96-43 96-96h16c61.8 0 112-50.2 112-112s-50.2-112-112-112zm0 160h-16v-96h16c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faMusic = {\n prefix: 'fas',\n iconName: 'music',\n icon: [512, 512, [], \"f001\", \"M470.38 1.51L150.41 96A32 32 0 0 0 128 126.51v261.41A139 139 0 0 0 96 384c-53 0-96 28.66-96 64s43 64 96 64 96-28.66 96-64V214.32l256-75v184.61a138.4 138.4 0 0 0-32-3.93c-53 0-96 28.66-96 64s43 64 96 64 96-28.65 96-64V32a32 32 0 0 0-41.62-30.49z\"]\n};\nvar faNetworkWired = {\n prefix: 'fas',\n iconName: 'network-wired',\n icon: [640, 512, [], \"f6ff\", \"M640 264v-16c0-8.84-7.16-16-16-16H344v-40h72c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h72v40H16c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h104v40H64c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h304v40h-56c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h104c8.84 0 16-7.16 16-16zM256 128V64h128v64H256zm-64 320H96v-64h96v64zm352 0h-96v-64h96v64z\"]\n};\nvar faNeuter = {\n prefix: 'fas',\n iconName: 'neuter',\n icon: [288, 512, [], \"f22c\", \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V468c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V316.4c64.1-14.5 112-71.9 112-140.4zm-144 80c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faNewspaper = {\n prefix: 'fas',\n iconName: 'newspaper',\n icon: [576, 512, [], \"f1ea\", \"M552 64H88c-13.255 0-24 10.745-24 24v8H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h472c26.51 0 48-21.49 48-48V88c0-13.255-10.745-24-24-24zM56 400a8 8 0 0 1-8-8V144h16v248a8 8 0 0 1-8 8zm236-16H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm-208-96H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm0-96H140c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12z\"]\n};\nvar faNotEqual = {\n prefix: 'fas',\n iconName: 'not-equal',\n icon: [448, 512, [], \"f53e\", \"M416 208c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32h-23.88l51.87-66.81c5.37-7.02 4.04-17.06-2.97-22.43L415.61 3.3c-7.02-5.38-17.06-4.04-22.44 2.97L311.09 112H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h204.56l-74.53 96H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h55.49l-51.87 66.81c-5.37 7.01-4.04 17.05 2.97 22.43L64 508.7c7.02 5.38 17.06 4.04 22.43-2.97L168.52 400H416c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32H243.05l74.53-96H416z\"]\n};\nvar faNotesMedical = {\n prefix: 'fas',\n iconName: 'notes-medical',\n icon: [384, 512, [], \"f481\", \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm96 304c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm0-192c0 4.4-3.6 8-8 8H104c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faObjectGroup = {\n prefix: 'fas',\n iconName: 'object-group',\n icon: [512, 512, [], \"f247\", \"M480 128V96h20c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v20H64V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v40c0 6.627 5.373 12 12 12h20v320H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-20h384v20c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-20V128zM96 276V140c0-6.627 5.373-12 12-12h168c6.627 0 12 5.373 12 12v136c0 6.627-5.373 12-12 12H108c-6.627 0-12-5.373-12-12zm320 96c0 6.627-5.373 12-12 12H236c-6.627 0-12-5.373-12-12v-52h72c13.255 0 24-10.745 24-24v-72h84c6.627 0 12 5.373 12 12v136z\"]\n};\nvar faObjectUngroup = {\n prefix: 'fas',\n iconName: 'object-ungroup',\n icon: [576, 512, [], \"f248\", \"M64 320v26a6 6 0 0 1-6 6H6a6 6 0 0 1-6-6v-52a6 6 0 0 1 6-6h26V96H6a6 6 0 0 1-6-6V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v26h288V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-26v192h26a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-52a6 6 0 0 1-6-6v-26H64zm480-64v-32h26a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-52a6 6 0 0 0-6 6v26H408v72h8c13.255 0 24 10.745 24 24v64c0 13.255-10.745 24-24 24h-64c-13.255 0-24-10.745-24-24v-8H192v72h-26a6 6 0 0 0-6 6v52a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-26h288v26a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-26V256z\"]\n};\nvar faOilCan = {\n prefix: 'fas',\n iconName: 'oil-can',\n icon: [640, 512, [], \"f613\", \"M629.8 160.31L416 224l-50.49-25.24a64.07 64.07 0 0 0-28.62-6.76H280v-48h56c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h56v48h-56L37.72 166.86a31.9 31.9 0 0 0-5.79-.53C14.67 166.33 0 180.36 0 198.34v94.95c0 15.46 11.06 28.72 26.28 31.48L96 337.46V384c0 17.67 14.33 32 32 32h274.63c8.55 0 16.75-3.42 22.76-9.51l212.26-214.75c1.5-1.5 2.34-3.54 2.34-5.66V168c.01-5.31-5.08-9.15-10.19-7.69zM96 288.67l-48-8.73v-62.43l48 8.73v62.43zm453.33 84.66c0 23.56 19.1 42.67 42.67 42.67s42.67-19.1 42.67-42.67S592 288 592 288s-42.67 61.77-42.67 85.33z\"]\n};\nvar faOm = {\n prefix: 'fas',\n iconName: 'om',\n icon: [512, 512, [], \"f679\", \"M360.6 60.94a10.43 10.43 0 0 0 14.76 0l21.57-21.56a10.43 10.43 0 0 0 0-14.76L375.35 3.06c-4.08-4.07-10.68-4.07-14.76 0l-21.57 21.56a10.43 10.43 0 0 0 0 14.76l21.58 21.56zM412.11 192c-26.69 0-51.77 10.39-70.64 29.25l-24.25 24.25c-6.78 6.77-15.78 10.5-25.38 10.5H245c10.54-22.1 14.17-48.11 7.73-75.23-10.1-42.55-46.36-76.11-89.52-83.19-36.15-5.93-70.9 5.04-96.01 28.78-7.36 6.96-6.97 18.85 1.12 24.93l26.15 19.63c5.72 4.3 13.66 4.32 19.2-.21 8.45-6.9 19.02-10.71 30.27-10.71 26.47 0 48.01 21.53 48.01 48s-21.54 48-48.01 48h-31.9c-11.96 0-19.74 12.58-14.39 23.28l16.09 32.17c2.53 5.06 7.6 8.1 13.17 8.55h33.03c35.3 0 64.01 28.7 64.01 64s-28.71 64-64.01 64c-96.02 0-122.35-54.02-145.15-92.03-4.53-7.55-14.77-3.58-14.79 5.22C-.09 416 41.13 512 159.94 512c70.59 0 128.02-57.42 128.02-128 0-23.42-6.78-45.1-17.81-64h21.69c26.69 0 51.77-10.39 70.64-29.25l24.25-24.25c6.78-6.77 15.78-10.5 25.38-10.5 19.78 0 35.88 16.09 35.88 35.88V392c0 13.23-18.77 24-32.01 24-39.4 0-66.67-24.24-81.82-42.89-4.77-5.87-14.2-2.54-14.2 5.02V416s0 64 96.02 64c48.54 0 96.02-39.47 96.02-88V291.88c0-55.08-44.8-99.88-99.89-99.88zm42.18-124.73c-85.55 65.12-169.05 2.75-172.58.05-6.02-4.62-14.44-4.38-20.14.55-5.74 4.92-7.27 13.17-3.66 19.8 1.61 2.95 40.37 72.34 118.8 72.34 79.92 0 98.78-31.36 101.75-37.66 1.02-2.12 1.53-4.47 1.53-6.83V80c0-13.22-15.14-20.69-25.7-12.73z\"]\n};\nvar faOtter = {\n prefix: 'fas',\n iconName: 'otter',\n icon: [640, 512, [], \"f700\", \"M608 32h-32l-13.25-13.25A63.97 63.97 0 0 0 517.49 0H497c-11.14 0-22.08 2.91-31.75 8.43L312 96h-56C149.96 96 64 181.96 64 288v1.61c0 32.75-16 62.14-39.56 84.89-18.19 17.58-28.1 43.68-23.19 71.8 6.76 38.8 42.9 65.7 82.28 65.7H192c17.67 0 32-14.33 32-32s-14.33-32-32-32H80c-8.83 0-16-7.17-16-16s7.17-16 16-16h224c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-64l149.49-80.5L448 416h80c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-28.22l-55.11-110.21L521.14 192H544c53.02 0 96-42.98 96-96V64c0-17.67-14.33-32-32-32zm-96 16c8.84 0 16 7.16 16 16s-7.16 16-16 16-16-7.16-16-16 7.16-16 16-16zm32 96h-34.96L407.2 198.84l-13.77-27.55L512 112h77.05c-6.62 18.58-24.22 32-45.05 32z\"]\n};\nvar faOutdent = {\n prefix: 'fas',\n iconName: 'outdent',\n icon: [448, 512, [], \"f03b\", \"M100.69 363.29c10 10 27.31 2.93 27.31-11.31V160c0-14.32-17.33-21.31-27.31-11.31l-96 96a16 16 0 0 0 0 22.62zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faPager = {\n prefix: 'fas',\n iconName: 'pager',\n icon: [512, 512, [], \"f815\", \"M448 64H64a64 64 0 0 0-64 64v256a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64V128a64 64 0 0 0-64-64zM160 368H80a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h80zm128-16a16 16 0 0 1-16 16h-80v-48h80a16 16 0 0 1 16 16zm160-128a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32v-64a32 32 0 0 1 32-32h320a32 32 0 0 1 32 32z\"]\n};\nvar faPaintBrush = {\n prefix: 'fas',\n iconName: 'paint-brush',\n icon: [512, 512, [], \"f1fc\", \"M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z\"]\n};\nvar faPaintRoller = {\n prefix: 'fas',\n iconName: 'paint-roller',\n icon: [512, 512, [], \"f5aa\", \"M416 128V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32zm32-64v128c0 17.67-14.33 32-32 32H256c-35.35 0-64 28.65-64 64v32c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32v-32h160c53.02 0 96-42.98 96-96v-64c0-35.35-28.65-64-64-64z\"]\n};\nvar faPalette = {\n prefix: 'fas',\n iconName: 'palette',\n icon: [512, 512, [], \"f53f\", \"M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faPallet = {\n prefix: 'fas',\n iconName: 'pallet',\n icon: [640, 512, [], \"f482\", \"M144 256h352c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H384v128l-64-32-64 32V0H144c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16zm480 128c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v64H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-48v-64h48zm-336 64H128v-64h160v64zm224 0H352v-64h160v64z\"]\n};\nvar faPaperPlane = {\n prefix: 'fas',\n iconName: 'paper-plane',\n icon: [512, 512, [], \"f1d8\", \"M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z\"]\n};\nvar faPaperclip = {\n prefix: 'fas',\n iconName: 'paperclip',\n icon: [448, 512, [], \"f0c6\", \"M43.246 466.142c-58.43-60.289-57.341-157.511 1.386-217.581L254.392 34c44.316-45.332 116.351-45.336 160.671 0 43.89 44.894 43.943 117.329 0 162.276L232.214 383.128c-29.855 30.537-78.633 30.111-107.982-.998-28.275-29.97-27.368-77.473 1.452-106.953l143.743-146.835c6.182-6.314 16.312-6.422 22.626-.241l22.861 22.379c6.315 6.182 6.422 16.312.241 22.626L171.427 319.927c-4.932 5.045-5.236 13.428-.648 18.292 4.372 4.634 11.245 4.711 15.688.165l182.849-186.851c19.613-20.062 19.613-52.725-.011-72.798-19.189-19.627-49.957-19.637-69.154 0L90.39 293.295c-34.763 35.56-35.299 93.12-1.191 128.313 34.01 35.093 88.985 35.137 123.058.286l172.06-175.999c6.177-6.319 16.307-6.433 22.626-.256l22.877 22.364c6.319 6.177 6.434 16.307.256 22.626l-172.06 175.998c-59.576 60.938-155.943 60.216-214.77-.485z\"]\n};\nvar faParachuteBox = {\n prefix: 'fas',\n iconName: 'parachute-box',\n icon: [512, 512, [], \"f4cd\", \"M511.9 175c-9.1-75.6-78.4-132.4-158.3-158.7C390 55.7 416 116.9 416 192h28.1L327.5 321.5c-2.5-.6-4.8-1.5-7.5-1.5h-48V192h112C384 76.8 315.1 0 256 0S128 76.8 128 192h112v128h-48c-2.7 0-5 .9-7.5 1.5L67.9 192H96c0-75.1 26-136.3 62.4-175.7C78.5 42.7 9.2 99.5.1 175c-1.1 9.1 6.8 17 16 17h8.7l136.7 151.9c-.7 2.6-1.6 5.2-1.6 8.1v128c0 17.7 14.3 32 32 32h128c17.7 0 32-14.3 32-32V352c0-2.9-.9-5.4-1.6-8.1L487.1 192h8.7c9.3 0 17.2-7.8 16.1-17z\"]\n};\nvar faParagraph = {\n prefix: 'fas',\n iconName: 'paragraph',\n icon: [448, 512, [], \"f1dd\", \"M448 48v32a16 16 0 0 1-16 16h-48v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V96h-32v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V352h-32a160 160 0 0 1 0-320h240a16 16 0 0 1 16 16z\"]\n};\nvar faParking = {\n prefix: 'fas',\n iconName: 'parking',\n icon: [448, 512, [], \"f540\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM240 320h-48v48c0 8.8-7.2 16-16 16h-32c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h96c52.9 0 96 43.1 96 96s-43.1 96-96 96zm0-128h-48v64h48c17.6 0 32-14.4 32-32s-14.4-32-32-32z\"]\n};\nvar faPassport = {\n prefix: 'fas',\n iconName: 'passport',\n icon: [448, 512, [], \"f5ab\", \"M129.62 176h39.09c1.49-27.03 6.54-51.35 14.21-70.41-27.71 13.24-48.02 39.19-53.3 70.41zm0 32c5.29 31.22 25.59 57.17 53.3 70.41-7.68-19.06-12.72-43.38-14.21-70.41h-39.09zM224 286.69c7.69-7.45 20.77-34.42 23.43-78.69h-46.87c2.67 44.26 15.75 71.24 23.44 78.69zM200.57 176h46.87c-2.66-44.26-15.74-71.24-23.43-78.69-7.7 7.45-20.78 34.43-23.44 78.69zm64.51 102.41c27.71-13.24 48.02-39.19 53.3-70.41h-39.09c-1.49 27.03-6.53 51.35-14.21 70.41zM416 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h352c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zm-80 416H112c-8.8 0-16-7.2-16-16s7.2-16 16-16h224c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-112-96c-70.69 0-128-57.31-128-128S153.31 64 224 64s128 57.31 128 128-57.31 128-128 128zm41.08-214.41c7.68 19.06 12.72 43.38 14.21 70.41h39.09c-5.28-31.22-25.59-57.17-53.3-70.41z\"]\n};\nvar faPastafarianism = {\n prefix: 'fas',\n iconName: 'pastafarianism',\n icon: [640, 512, [], \"f67b\", \"M624.54 347.67c-32.7-12.52-57.36 4.25-75.37 16.45-17.06 11.53-23.25 14.42-31.41 11.36-8.12-3.09-10.83-9.38-15.89-29.38-3.33-13.15-7.44-29.32-17.95-42.65 2.24-2.91 4.43-5.79 6.38-8.57C500.47 304.45 513.71 312 532 312c33.95 0 50.87-25.78 62.06-42.83 10.59-16.14 15-21.17 21.94-21.17 13.25 0 24-10.75 24-24s-10.75-24-24-24c-33.95 0-50.87 25.78-62.06 42.83-10.6 16.14-15 21.17-21.94 21.17-17.31 0-37.48-61.43-97.26-101.91l17.25-34.5C485.43 125.5 512 97.98 512 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 13.02 3.94 25.1 10.62 35.21l-18.15 36.3c-16.98-4.6-35.6-7.51-56.46-7.51s-39.49 2.91-56.46 7.51l-18.15-36.3C252.06 89.1 256 77.02 256 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 33.98 26.56 61.5 60.02 63.6l17.25 34.5C145.68 202.44 125.15 264 108 264c-6.94 0-11.34-5.03-21.94-21.17C74.88 225.78 57.96 200 24 200c-13.25 0-24 10.75-24 24s10.75 24 24 24c6.94 0 11.34 5.03 21.94 21.17C57.13 286.22 74.05 312 108 312c18.29 0 31.53-7.55 41.7-17.11 1.95 2.79 4.14 5.66 6.38 8.57-10.51 13.33-14.62 29.5-17.95 42.65-5.06 20-7.77 26.28-15.89 29.38-8.11 3.06-14.33.17-31.41-11.36-18.03-12.2-42.72-28.92-75.37-16.45-12.39 4.72-18.59 18.58-13.87 30.97 4.72 12.41 18.61 18.61 30.97 13.88 8.16-3.09 14.34-.19 31.39 11.36 13.55 9.16 30.83 20.86 52.42 20.84 7.17 0 14.83-1.28 22.97-4.39 32.66-12.44 39.98-41.33 45.33-62.44 2.21-8.72 3.99-14.49 5.95-18.87 16.62 13.61 36.95 25.88 61.64 34.17-9.96 37-32.18 90.8-60.26 90.8-13.25 0-24 10.75-24 24s10.75 24 24 24c66.74 0 97.05-88.63 107.42-129.14 6.69.6 13.42 1.14 20.58 1.14s13.89-.54 20.58-1.14C350.95 423.37 381.26 512 448 512c13.25 0 24-10.75 24-24s-10.75-24-24-24c-27.94 0-50.21-53.81-60.22-90.81 24.69-8.29 45-20.56 61.62-34.16 1.96 4.38 3.74 10.15 5.95 18.87 5.34 21.11 12.67 50 45.33 62.44 8.14 3.11 15.8 4.39 22.97 4.39 21.59 0 38.87-11.69 52.42-20.84 17.05-11.55 23.28-14.45 31.39-11.36 12.39 4.75 26.27-1.47 30.97-13.88 4.71-12.4-1.49-26.26-13.89-30.98zM448 48c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zm-256 0c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16z\"]\n};\nvar faPaste = {\n prefix: 'fas',\n iconName: 'paste',\n icon: [448, 512, [], \"f0ea\", \"M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z\"]\n};\nvar faPause = {\n prefix: 'fas',\n iconName: 'pause',\n icon: [448, 512, [], \"f04c\", \"M144 479H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zm304-48V79c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48z\"]\n};\nvar faPauseCircle = {\n prefix: 'fas',\n iconName: 'pause-circle',\n icon: [512, 512, [], \"f28b\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-16 328c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160zm112 0c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160z\"]\n};\nvar faPaw = {\n prefix: 'fas',\n iconName: 'paw',\n icon: [512, 512, [], \"f1b0\", \"M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm-147.28-12.61c-10.4-34.65-42.44-57.09-71.56-50.13-29.12 6.96-44.29 40.69-33.89 75.34 10.4 34.65 42.44 57.09 71.56 50.13 29.12-6.96 44.29-40.69 33.89-75.34zm84.72-20.78c30.94-8.14 46.42-49.94 34.58-93.36s-46.52-72.01-77.46-63.87-46.42 49.94-34.58 93.36c11.84 43.42 46.53 72.02 77.46 63.87zm281.39-29.34c-29.12-6.96-61.15 15.48-71.56 50.13-10.4 34.65 4.77 68.38 33.89 75.34 29.12 6.96 61.15-15.48 71.56-50.13 10.4-34.65-4.77-68.38-33.89-75.34zm-156.27 29.34c30.94 8.14 65.62-20.45 77.46-63.87 11.84-43.42-3.64-85.21-34.58-93.36s-65.62 20.45-77.46 63.87c-11.84 43.42 3.64 85.22 34.58 93.36z\"]\n};\nvar faPeace = {\n prefix: 'fas',\n iconName: 'peace',\n icon: [496, 512, [], \"f67c\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm184 248c0 31.93-8.2 61.97-22.57 88.17L280 240.63V74.97c86.23 15.21 152 90.5 152 181.03zM216 437.03c-33.86-5.97-64.49-21.2-89.29-43.02L216 322.57v114.46zm64-114.46L369.29 394c-24.8 21.82-55.43 37.05-89.29 43.02V322.57zm-64-247.6v165.66L86.57 344.17C72.2 317.97 64 287.93 64 256c0-90.53 65.77-165.82 152-181.03z\"]\n};\nvar faPen = {\n prefix: 'fas',\n iconName: 'pen',\n icon: [512, 512, [], \"f304\", \"M290.74 93.24l128.02 128.02-277.99 277.99-114.14 12.6C11.35 513.54-1.56 500.62.14 485.34l12.7-114.22 277.9-277.88zm207.2-19.06l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.76 18.75-49.16 0-67.91z\"]\n};\nvar faPenAlt = {\n prefix: 'fas',\n iconName: 'pen-alt',\n icon: [512, 512, [], \"f305\", \"M497.94 74.17l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91zm-246.8-20.53c-15.62-15.62-40.94-15.62-56.56 0L75.8 172.43c-6.25 6.25-6.25 16.38 0 22.62l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l101.82-101.82 22.63 22.62L93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l196.79-196.79-82.77-82.77-84.85-84.85z\"]\n};\nvar faPenFancy = {\n prefix: 'fas',\n iconName: 'pen-fancy',\n icon: [512, 512, [], \"f5ac\", \"M79.18 282.94a32.005 32.005 0 0 0-20.24 20.24L0 480l4.69 4.69 92.89-92.89c-.66-2.56-1.57-5.03-1.57-7.8 0-17.67 14.33-32 32-32s32 14.33 32 32-14.33 32-32 32c-2.77 0-5.24-.91-7.8-1.57l-92.89 92.89L32 512l176.82-58.94a31.983 31.983 0 0 0 20.24-20.24l33.07-84.07-98.88-98.88-84.07 33.07zM369.25 28.32L186.14 227.81l97.85 97.85 199.49-183.11C568.4 67.48 443.73-55.94 369.25 28.32z\"]\n};\nvar faPenNib = {\n prefix: 'fas',\n iconName: 'pen-nib',\n icon: [512, 512, [], \"f5ad\", \"M136.6 138.79a64.003 64.003 0 0 0-43.31 41.35L0 460l14.69 14.69L164.8 324.58c-2.99-6.26-4.8-13.18-4.8-20.58 0-26.51 21.49-48 48-48s48 21.49 48 48-21.49 48-48 48c-7.4 0-14.32-1.81-20.58-4.8L37.31 497.31 52 512l279.86-93.29a64.003 64.003 0 0 0 41.35-43.31L416 224 288 96l-151.4 42.79zm361.34-64.62l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91z\"]\n};\nvar faPenSquare = {\n prefix: 'fas',\n iconName: 'pen-square',\n icon: [448, 512, [], \"f14b\", \"M400 480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zM238.1 177.9L102.4 313.6l-6.3 57.1c-.8 7.6 5.6 14.1 13.3 13.3l57.1-6.3L302.2 242c2.3-2.3 2.3-6.1 0-8.5L246.7 178c-2.5-2.4-6.3-2.4-8.6-.1zM345 165.1L314.9 135c-9.4-9.4-24.6-9.4-33.9 0l-23.1 23.1c-2.3 2.3-2.3 6.1 0 8.5l55.5 55.5c2.3 2.3 6.1 2.3 8.5 0L345 199c9.3-9.3 9.3-24.5 0-33.9z\"]\n};\nvar faPencilAlt = {\n prefix: 'fas',\n iconName: 'pencil-alt',\n icon: [512, 512, [], \"f303\", \"M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z\"]\n};\nvar faPencilRuler = {\n prefix: 'fas',\n iconName: 'pencil-ruler',\n icon: [512, 512, [], \"f5ae\", \"M109.46 244.04l134.58-134.56-44.12-44.12-61.68 61.68a7.919 7.919 0 0 1-11.21 0l-11.21-11.21c-3.1-3.1-3.1-8.12 0-11.21l61.68-61.68-33.64-33.65C131.47-3.1 111.39-3.1 99 9.29L9.29 99c-12.38 12.39-12.39 32.47 0 44.86l100.17 100.18zm388.47-116.8c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25c-18.76-18.76-49.18-18.76-67.95 0l-46.02 46.01 113.2 113.2 46.02-46.03zM316.08 82.71l-297 296.96L.32 487.11c-2.53 14.49 10.09 27.11 24.59 24.56l107.45-18.84L429.28 195.9 316.08 82.71zm186.63 285.43l-33.64-33.64-61.68 61.68c-3.1 3.1-8.12 3.1-11.21 0l-11.21-11.21c-3.09-3.1-3.09-8.12 0-11.21l61.68-61.68-44.14-44.14L267.93 402.5l100.21 100.2c12.39 12.39 32.47 12.39 44.86 0l89.71-89.7c12.39-12.39 12.39-32.47 0-44.86z\"]\n};\nvar faPeopleArrows = {\n prefix: 'fas',\n iconName: 'people-arrows',\n icon: [576, 512, [], \"e068\", \"M96,128A64,64,0,1,0,32,64,64,64,0,0,0,96,128Zm0,176.08a44.11,44.11,0,0,1,13.64-32L181.77,204c1.65-1.55,3.77-2.31,5.61-3.57A63.91,63.91,0,0,0,128,160H64A64,64,0,0,0,0,224v96a32,32,0,0,0,32,32V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V383.61l-50.36-47.53A44.08,44.08,0,0,1,96,304.08ZM480,128a64,64,0,1,0-64-64A64,64,0,0,0,480,128Zm32,32H448a63.91,63.91,0,0,0-59.38,40.42c1.84,1.27,4,2,5.62,3.59l72.12,68.06a44.37,44.37,0,0,1,0,64L416,383.62V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V352a32,32,0,0,0,32-32V224A64,64,0,0,0,512,160ZM444.4,295.34l-72.12-68.06A12,12,0,0,0,352,236v36H224V236a12,12,0,0,0-20.28-8.73L131.6,295.34a12.4,12.4,0,0,0,0,17.47l72.12,68.07A12,12,0,0,0,224,372.14V336H352v36.14a12,12,0,0,0,20.28,8.74l72.12-68.07A12.4,12.4,0,0,0,444.4,295.34Z\"]\n};\nvar faPeopleCarry = {\n prefix: 'fas',\n iconName: 'people-carry',\n icon: [640, 512, [], \"f4ce\", \"M128 96c26.5 0 48-21.5 48-48S154.5 0 128 0 80 21.5 80 48s21.5 48 48 48zm384 0c26.5 0 48-21.5 48-48S538.5 0 512 0s-48 21.5-48 48 21.5 48 48 48zm125.7 372.1l-44-110-41.1 46.4-2 18.2 27.7 69.2c5 12.5 17 20.1 29.7 20.1 4 0 8-.7 11.9-2.3 16.4-6.6 24.4-25.2 17.8-41.6zm-34.2-209.8L585 178.1c-4.6-20-18.6-36.8-37.5-44.9-18.5-8-39-6.7-56.1 3.3-22.7 13.4-39.7 34.5-48.1 59.4L432 229.8 416 240v-96c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v96l-16.1-10.2-11.3-33.9c-8.3-25-25.4-46-48.1-59.4-17.2-10-37.6-11.3-56.1-3.3-18.9 8.1-32.9 24.9-37.5 44.9l-18.4 80.2c-4.6 20 .7 41.2 14.4 56.7l67.2 75.9 10.1 92.6C130 499.8 143.8 512 160 512c1.2 0 2.3-.1 3.5-.2 17.6-1.9 30.2-17.7 28.3-35.3l-10.1-92.8c-1.5-13-6.9-25.1-15.6-35l-43.3-49 17.6-70.3 6.8 20.4c4.1 12.5 11.9 23.4 24.5 32.6l51.1 32.5c4.6 2.9 12.1 4.6 17.2 5h160c5.1-.4 12.6-2.1 17.2-5l51.1-32.5c12.6-9.2 20.4-20 24.5-32.6l6.8-20.4 17.6 70.3-43.3 49c-8.7 9.9-14.1 22-15.6 35l-10.1 92.8c-1.9 17.6 10.8 33.4 28.3 35.3 1.2.1 2.3.2 3.5.2 16.1 0 30-12.1 31.8-28.5l10.1-92.6 67.2-75.9c13.6-15.5 19-36.7 14.4-56.7zM46.3 358.1l-44 110c-6.6 16.4 1.4 35 17.8 41.6 16.8 6.6 35.1-1.7 41.6-17.8l27.7-69.2-2-18.2-41.1-46.4z\"]\n};\nvar faPepperHot = {\n prefix: 'fas',\n iconName: 'pepper-hot',\n icon: [512, 512, [], \"f816\", \"M330.67 263.12V173.4l-52.75-24.22C219.44 218.76 197.58 400 56 400a56 56 0 0 0 0 112c212.64 0 370.65-122.87 419.18-210.34l-37.05-38.54zm131.09-128.37C493.92 74.91 477.18 26.48 458.62 3a8 8 0 0 0-11.93-.59l-22.9 23a8.06 8.06 0 0 0-.89 10.23c6.86 10.36 17.05 35.1-1.4 72.32A142.85 142.85 0 0 0 364.34 96c-28 0-54 8.54-76.34 22.59l74.67 34.29v78.24h89.09L506.44 288c3.26-12.62 5.56-25.63 5.56-39.31a154 154 0 0 0-50.24-113.94z\"]\n};\nvar faPercent = {\n prefix: 'fas',\n iconName: 'percent',\n icon: [448, 512, [], \"f295\", \"M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z\"]\n};\nvar faPercentage = {\n prefix: 'fas',\n iconName: 'percentage',\n icon: [384, 512, [], \"f541\", \"M109.25 173.25c24.99-24.99 24.99-65.52 0-90.51-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 25 25 65.52 25 90.51 0zm256 165.49c-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 24.99 24.99 65.52 24.99 90.51 0 25-24.99 25-65.51 0-90.51zm-1.94-231.43l-22.62-22.62c-12.5-12.5-32.76-12.5-45.25 0L20.69 359.44c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.25 0l274.75-274.75c12.5-12.49 12.5-32.75 0-45.25z\"]\n};\nvar faPersonBooth = {\n prefix: 'fas',\n iconName: 'person-booth',\n icon: [576, 512, [], \"f756\", \"M192 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h-64v176zm32-272h-50.9l-45.2-45.3C115.8 166.6 99.7 160 82.7 160H64c-17.1 0-33.2 6.7-45.3 18.8C6.7 190.9 0 207 0 224.1L.2 320 0 480c0 17.7 14.3 32 31.9 32 17.6 0 32-14.3 32-32l.1-100.7c.9.5 1.6 1.3 2.5 1.7l29.1 43v56c0 17.7 14.3 32 32 32s32-14.3 32-32v-56.5c0-9.9-2.3-19.8-6.7-28.6l-41.2-61.3V253l20.9 20.9c9.1 9.1 21.1 14.1 33.9 14.1H224c17.7 0 32-14.3 32-32s-14.3-32-32-32zM64 128c26.5 0 48-21.5 48-48S90.5 32 64 32 16 53.5 16 80s21.5 48 48 48zm224-96l31.5 223.1-30.9 154.6c-4.3 21.6 13 38.3 31.4 38.3 15.2 0 28-9.1 32.3-30.4.9 16.9 14.6 30.4 31.7 30.4 17.7 0 32-14.3 32-32 0 17.7 14.3 32 32 32s32-14.3 32-32V0H288v32zm-96 0v160h64V0h-32c-17.7 0-32 14.3-32 32zM544 0h-32v496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32c0-17.7-14.3-32-32-32z\"]\n};\nvar faPhone = {\n prefix: 'fas',\n iconName: 'phone',\n icon: [512, 512, [], \"f095\", \"M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z\"]\n};\nvar faPhoneAlt = {\n prefix: 'fas',\n iconName: 'phone-alt',\n icon: [512, 512, [], \"f879\", \"M497.39 361.8l-112-48a24 24 0 0 0-28 6.9l-49.6 60.6A370.66 370.66 0 0 1 130.6 204.11l60.6-49.6a23.94 23.94 0 0 0 6.9-28l-48-112A24.16 24.16 0 0 0 122.6.61l-104 24A24 24 0 0 0 0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.6l24-104a24.29 24.29 0 0 0-14.01-27.6z\"]\n};\nvar faPhoneSlash = {\n prefix: 'fas',\n iconName: 'phone-slash',\n icon: [640, 512, [], \"f3dd\", \"M268.2 381.4l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48c-10.7 4.6-16.5 16.1-13.9 27.5l24 104c2.5 10.8 12.1 18.6 23.4 18.6 100.7 0 193.7-32.4 269.7-86.9l-80-61.8c-10.9 6.5-22.1 12.7-33.6 18.1zm365.6 76.7L475.1 335.5C537.9 256.4 576 156.9 576 48c0-11.2-7.7-20.9-18.6-23.4l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-12.2 26.1-27.9 50.3-46 72.8L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z\"]\n};\nvar faPhoneSquare = {\n prefix: 'fas',\n iconName: 'phone-square',\n icon: [448, 512, [], \"f098\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM94 416c-7.033 0-13.057-4.873-14.616-11.627l-14.998-65a15 15 0 0 1 8.707-17.16l69.998-29.999a15 15 0 0 1 17.518 4.289l30.997 37.885c48.944-22.963 88.297-62.858 110.781-110.78l-37.886-30.997a15.001 15.001 0 0 1-4.289-17.518l30-69.998a15 15 0 0 1 17.16-8.707l65 14.998A14.997 14.997 0 0 1 384 126c0 160.292-129.945 290-290 290z\"]\n};\nvar faPhoneSquareAlt = {\n prefix: 'fas',\n iconName: 'phone-square-alt',\n icon: [448, 512, [], \"f87b\", \"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-16.39 307.37l-15 65A15 15 0 0 1 354 416C194 416 64 286.29 64 126a15.7 15.7 0 0 1 11.63-14.61l65-15A18.23 18.23 0 0 1 144 96a16.27 16.27 0 0 1 13.79 9.09l30 70A17.9 17.9 0 0 1 189 181a17 17 0 0 1-5.5 11.61l-37.89 31a231.91 231.91 0 0 0 110.78 110.78l31-37.89A17 17 0 0 1 299 291a17.85 17.85 0 0 1 5.91 1.21l70 30A16.25 16.25 0 0 1 384 336a17.41 17.41 0 0 1-.39 3.37z\"]\n};\nvar faPhoneVolume = {\n prefix: 'fas',\n iconName: 'phone-volume',\n icon: [384, 512, [], \"f2a0\", \"M97.333 506.966c-129.874-129.874-129.681-340.252 0-469.933 5.698-5.698 14.527-6.632 21.263-2.422l64.817 40.513a17.187 17.187 0 0 1 6.849 20.958l-32.408 81.021a17.188 17.188 0 0 1-17.669 10.719l-55.81-5.58c-21.051 58.261-20.612 122.471 0 179.515l55.811-5.581a17.188 17.188 0 0 1 17.669 10.719l32.408 81.022a17.188 17.188 0 0 1-6.849 20.958l-64.817 40.513a17.19 17.19 0 0 1-21.264-2.422zM247.126 95.473c11.832 20.047 11.832 45.008 0 65.055-3.95 6.693-13.108 7.959-18.718 2.581l-5.975-5.726c-3.911-3.748-4.793-9.622-2.261-14.41a32.063 32.063 0 0 0 0-29.945c-2.533-4.788-1.65-10.662 2.261-14.41l5.975-5.726c5.61-5.378 14.768-4.112 18.718 2.581zm91.787-91.187c60.14 71.604 60.092 175.882 0 247.428-4.474 5.327-12.53 5.746-17.552.933l-5.798-5.557c-4.56-4.371-4.977-11.529-.93-16.379 49.687-59.538 49.646-145.933 0-205.422-4.047-4.85-3.631-12.008.93-16.379l5.798-5.557c5.022-4.813 13.078-4.394 17.552.933zm-45.972 44.941c36.05 46.322 36.108 111.149 0 157.546-4.39 5.641-12.697 6.251-17.856 1.304l-5.818-5.579c-4.4-4.219-4.998-11.095-1.285-15.931 26.536-34.564 26.534-82.572 0-117.134-3.713-4.836-3.115-11.711 1.285-15.931l5.818-5.579c5.159-4.947 13.466-4.337 17.856 1.304z\"]\n};\nvar faPhotoVideo = {\n prefix: 'fas',\n iconName: 'photo-video',\n icon: [640, 512, [], \"f87c\", \"M608 0H160a32 32 0 0 0-32 32v96h160V64h192v320h128a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zM232 103a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm352 208a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm-168 57H32a32 32 0 0 0-32 32v288a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM96 224a32 32 0 1 1-32 32 32 32 0 0 1 32-32zm288 224H64v-32l64-64 32 32 128-128 96 96z\"]\n};\nvar faPiggyBank = {\n prefix: 'fas',\n iconName: 'piggy-bank',\n icon: [576, 512, [], \"f4d3\", \"M560 224h-29.5c-8.8-20-21.6-37.7-37.4-52.5L512 96h-32c-29.4 0-55.4 13.5-73 34.3-7.6-1.1-15.1-2.3-23-2.3H256c-77.4 0-141.9 55-156.8 128H56c-14.8 0-26.5-13.5-23.5-28.8C34.7 215.8 45.4 208 57 208h1c3.3 0 6-2.7 6-6v-20c0-3.3-2.7-6-6-6-28.5 0-53.9 20.4-57.5 48.6C-3.9 258.8 22.7 288 56 288h40c0 52.2 25.4 98.1 64 127.3V496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-48h128v48c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80.7c11.8-8.9 22.3-19.4 31.3-31.3H560c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16zm-128 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM256 96h128c5.4 0 10.7.4 15.9.8 0-.3.1-.5.1-.8 0-53-43-96-96-96s-96 43-96 96c0 2.1.5 4.1.6 6.2 15.2-3.9 31-6.2 47.4-6.2z\"]\n};\nvar faPills = {\n prefix: 'fas',\n iconName: 'pills',\n icon: [576, 512, [], \"f484\", \"M112 32C50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V144c0-61.9-50.1-112-112-112zm48 224H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm139.7-29.7c-3.5-3.5-9.4-3.1-12.3.8-45.3 62.5-40.4 150.1 15.9 206.4 56.3 56.3 143.9 61.2 206.4 15.9 4-2.9 4.3-8.8.8-12.3L299.7 226.3zm229.8-19c-56.3-56.3-143.9-61.2-206.4-15.9-4 2.9-4.3 8.8-.8 12.3l210.8 210.8c3.5 3.5 9.4 3.1 12.3-.8 45.3-62.6 40.5-150.1-15.9-206.4z\"]\n};\nvar faPizzaSlice = {\n prefix: 'fas',\n iconName: 'pizza-slice',\n icon: [512, 512, [], \"f818\", \"M158.87.15c-16.16-1.52-31.2 8.42-35.33 24.12l-14.81 56.27c187.62 5.49 314.54 130.61 322.48 317l56.94-15.78c15.72-4.36 25.49-19.68 23.62-35.9C490.89 165.08 340.78 17.32 158.87.15zm-58.47 112L.55 491.64a16.21 16.21 0 0 0 20 19.75l379-105.1c-4.27-174.89-123.08-292.14-299.15-294.1zM128 416a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm48-152a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm104 104a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]\n};\nvar faPlaceOfWorship = {\n prefix: 'fas',\n iconName: 'place-of-worship',\n icon: [640, 512, [], \"f67f\", \"M620.61 366.55L512 320v192h112c8.84 0 16-7.16 16-16V395.96a32 32 0 0 0-19.39-29.41zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.55A32 32 0 0 0 0 395.96zm464.46-149.28L416 217.6V102.63c0-8.49-3.37-16.62-9.38-22.63L331.31 4.69c-6.25-6.25-16.38-6.25-22.62 0L233.38 80c-6 6-9.38 14.14-9.38 22.63V217.6l-48.46 29.08A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.66-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44z\"]\n};\nvar faPlane = {\n prefix: 'fas',\n iconName: 'plane',\n icon: [576, 512, [], \"f072\", \"M480 192H365.71L260.61 8.06A16.014 16.014 0 0 0 246.71 0h-65.5c-10.63 0-18.3 10.17-15.38 20.39L214.86 192H112l-43.2-57.6c-3.02-4.03-7.77-6.4-12.8-6.4H16.01C5.6 128-2.04 137.78.49 147.88L32 256 .49 364.12C-2.04 374.22 5.6 384 16.01 384H56c5.04 0 9.78-2.37 12.8-6.4L112 320h102.86l-49.03 171.6c-2.92 10.22 4.75 20.4 15.38 20.4h65.5c5.74 0 11.04-3.08 13.89-8.06L365.71 320H480c35.35 0 96-28.65 96-64s-60.65-64-96-64z\"]\n};\nvar faPlaneArrival = {\n prefix: 'fas',\n iconName: 'plane-arrival',\n icon: [640, 512, [], \"f5af\", \"M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM44.81 205.66l88.74 80a62.607 62.607 0 0 0 25.47 13.93l287.6 78.35c26.48 7.21 54.56 8.72 81 1.36 29.67-8.27 43.44-21.21 47.25-35.71 3.83-14.5-1.73-32.71-23.37-54.96-19.28-19.82-44.35-32.79-70.83-40l-97.51-26.56L282.8 30.22c-1.51-5.81-5.95-10.35-11.66-11.91L206.05.58c-10.56-2.88-20.9 5.32-20.71 16.44l47.92 164.21-102.2-27.84-27.59-67.88c-1.93-4.89-6.01-8.57-11.02-9.93L52.72 64.75c-10.34-2.82-20.53 5-20.72 15.88l.23 101.78c.19 8.91 6.03 17.34 12.58 23.25z\"]\n};\nvar faPlaneDeparture = {\n prefix: 'fas',\n iconName: 'plane-departure',\n icon: [640, 512, [], \"f5b0\", \"M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM80.55 341.27c6.28 6.84 15.1 10.72 24.33 10.71l130.54-.18a65.62 65.62 0 0 0 29.64-7.12l290.96-147.65c26.74-13.57 50.71-32.94 67.02-58.31 18.31-28.48 20.3-49.09 13.07-63.65-7.21-14.57-24.74-25.27-58.25-27.45-29.85-1.94-59.54 5.92-86.28 19.48l-98.51 49.99-218.7-82.06a17.799 17.799 0 0 0-18-1.11L90.62 67.29c-10.67 5.41-13.25 19.65-5.17 28.53l156.22 98.1-103.21 52.38-72.35-36.47a17.804 17.804 0 0 0-16.07.02L9.91 230.22c-10.44 5.3-13.19 19.12-5.57 28.08l76.21 82.97z\"]\n};\nvar faPlaneSlash = {\n prefix: 'fas',\n iconName: 'plane-slash',\n icon: [640, 512, [], \"e069\", \"M32.48,147.88,64,256,32.48,364.13A16,16,0,0,0,48,384H88a16,16,0,0,0,12.8-6.41L144,320H246.85l-49,171.59A16,16,0,0,0,213.2,512h65.5a16,16,0,0,0,13.89-8.06l66.6-116.54L34.35,136.34A15.47,15.47,0,0,0,32.48,147.88ZM633.82,458.09,455.14,320H512c35.34,0,96-28.66,96-64s-60.66-64-96-64H397.7L292.61,8.06C290.06,3.61,283.84,0,278.71,0H213.2a16,16,0,0,0-15.38,20.39l36.94,129.29L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09Z\"]\n};\nvar faPlay = {\n prefix: 'fas',\n iconName: 'play',\n icon: [448, 512, [], \"f04b\", \"M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z\"]\n};\nvar faPlayCircle = {\n prefix: 'fas',\n iconName: 'play-circle',\n icon: [512, 512, [], \"f144\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z\"]\n};\nvar faPlug = {\n prefix: 'fas',\n iconName: 'plug',\n icon: [384, 512, [], \"f1e6\", \"M320,32a32,32,0,0,0-64,0v96h64Zm48,128H16A16,16,0,0,0,0,176v32a16,16,0,0,0,16,16H32v32A160.07,160.07,0,0,0,160,412.8V512h64V412.8A160.07,160.07,0,0,0,352,256V224h16a16,16,0,0,0,16-16V176A16,16,0,0,0,368,160ZM128,32a32,32,0,0,0-64,0v96h64Z\"]\n};\nvar faPlus = {\n prefix: 'fas',\n iconName: 'plus',\n icon: [448, 512, [], \"f067\", \"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"]\n};\nvar faPlusCircle = {\n prefix: 'fas',\n iconName: 'plus-circle',\n icon: [512, 512, [], \"f055\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z\"]\n};\nvar faPlusSquare = {\n prefix: 'fas',\n iconName: 'plus-square',\n icon: [448, 512, [], \"f0fe\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z\"]\n};\nvar faPodcast = {\n prefix: 'fas',\n iconName: 'podcast',\n icon: [448, 512, [], \"f2ce\", \"M267.429 488.563C262.286 507.573 242.858 512 224 512c-18.857 0-38.286-4.427-43.428-23.437C172.927 460.134 160 388.898 160 355.75c0-35.156 31.142-43.75 64-43.75s64 8.594 64 43.75c0 32.949-12.871 104.179-20.571 132.813zM156.867 288.554c-18.693-18.308-29.958-44.173-28.784-72.599 2.054-49.724 42.395-89.956 92.124-91.881C274.862 121.958 320 165.807 320 220c0 26.827-11.064 51.116-28.866 68.552-2.675 2.62-2.401 6.986.628 9.187 9.312 6.765 16.46 15.343 21.234 25.363 1.741 3.654 6.497 4.66 9.449 1.891 28.826-27.043 46.553-65.783 45.511-108.565-1.855-76.206-63.595-138.208-139.793-140.369C146.869 73.753 80 139.215 80 220c0 41.361 17.532 78.7 45.55 104.989 2.953 2.771 7.711 1.77 9.453-1.887 4.774-10.021 11.923-18.598 21.235-25.363 3.029-2.2 3.304-6.566.629-9.185zM224 0C100.204 0 0 100.185 0 224c0 89.992 52.602 165.647 125.739 201.408 4.333 2.118 9.267-1.544 8.535-6.31-2.382-15.512-4.342-30.946-5.406-44.339-.146-1.836-1.149-3.486-2.678-4.512-47.4-31.806-78.564-86.016-78.187-147.347.592-96.237 79.29-174.648 175.529-174.899C320.793 47.747 400 126.797 400 224c0 61.932-32.158 116.49-80.65 147.867-.999 14.037-3.069 30.588-5.624 47.23-.732 4.767 4.203 8.429 8.535 6.31C395.227 389.727 448 314.187 448 224 448 100.205 347.815 0 224 0zm0 160c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64z\"]\n};\nvar faPoll = {\n prefix: 'fas',\n iconName: 'poll',\n icon: [448, 512, [], \"f681\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM160 368c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V240c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v128zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V144c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v224zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64z\"]\n};\nvar faPollH = {\n prefix: 'fas',\n iconName: 'poll-h',\n icon: [448, 512, [], \"f682\", \"M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM112 192c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h128c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-64z\"]\n};\nvar faPoo = {\n prefix: 'fas',\n iconName: 'poo',\n icon: [512, 512, [], \"f2fe\", \"M451.4 369.1C468.7 356 480 335.4 480 312c0-39.8-32.2-72-72-72h-14.1c13.4-11.7 22.1-28.8 22.1-48 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C250.3 14.6 256 30.6 256 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 19.2 8.7 36.3 22.1 48H104c-39.8 0-72 32.2-72 72 0 23.4 11.3 44 28.6 57.1C26.3 374.6 0 404.1 0 440c0 39.8 32.2 72 72 72h368c39.8 0 72-32.2 72-72 0-35.9-26.3-65.4-60.6-70.9zM192 256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm159.5 139C341 422.9 293 448 256 448s-85-25.1-95.5-53c-2-5.3 2-11 7.8-11h175.4c5.8 0 9.8 5.7 7.8 11zM320 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faPooStorm = {\n prefix: 'fas',\n iconName: 'poo-storm',\n icon: [448, 512, [], \"f75a\", \"M308 336h-57.7l17.3-64.9c2-7.6-3.7-15.1-11.6-15.1h-68c-6 0-11.1 4.5-11.9 10.4l-16 120c-1 7.2 4.6 13.6 11.9 13.6h59.3l-23 97.2c-1.8 7.6 4 14.8 11.7 14.8 4.2 0 8.2-2.2 10.4-6l88-152c4.6-8-1.2-18-10.4-18zm66.4-111.3c5.9-9.6 9.6-20.6 9.6-32.7 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C218.3 14.6 224 30.6 224 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 12.1 3.7 23.1 9.6 32.7C32.6 228 0 262.2 0 304c0 44 36 80 80 80h48.3c.1-.6 0-1.2 0-1.8l16-120c3-21.8 21.7-38.2 43.7-38.2h68c13.8 0 26.5 6.3 34.9 17.2s11.2 24.8 7.6 38.1l-6.6 24.7h16c15.7 0 30.3 8.4 38.1 22 7.8 13.6 7.8 30.5 0 44l-8.1 14h30c44 0 80-36 80-80 .1-41.8-32.5-76-73.5-79.3z\"]\n};\nvar faPoop = {\n prefix: 'fas',\n iconName: 'poop',\n icon: [512, 512, [], \"f619\", \"M451.36 369.14C468.66 355.99 480 335.41 480 312c0-39.77-32.24-72-72-72h-14.07c13.42-11.73 22.07-28.78 22.07-48 0-35.35-28.65-64-64-64h-5.88c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96-5.17 0-10.15.74-15.11 1.52C250.31 14.64 256 30.62 256 48c0 44.18-35.82 80-80 80h-16c-35.35 0-64 28.65-64 64 0 19.22 8.65 36.27 22.07 48H104c-39.76 0-72 32.23-72 72 0 23.41 11.34 43.99 28.64 57.14C26.31 374.62 0 404.12 0 440c0 39.76 32.24 72 72 72h368c39.76 0 72-32.24 72-72 0-35.88-26.31-65.38-60.64-70.86z\"]\n};\nvar faPortrait = {\n prefix: 'fas',\n iconName: 'portrait',\n icon: [384, 512, [], \"f3e0\", \"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM192 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 384 80 375.4 80 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"]\n};\nvar faPoundSign = {\n prefix: 'fas',\n iconName: 'pound-sign',\n icon: [320, 512, [], \"f154\", \"M308 352h-45.495c-6.627 0-12 5.373-12 12v50.848H128V288h84c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-84v-63.556c0-32.266 24.562-57.086 61.792-57.086 23.658 0 45.878 11.505 57.652 18.849 5.151 3.213 11.888 2.051 15.688-2.685l28.493-35.513c4.233-5.276 3.279-13.005-2.119-17.081C273.124 54.56 236.576 32 187.931 32 106.026 32 48 84.742 48 157.961V224H20c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h28v128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12V364c0-6.627-5.373-12-12-12z\"]\n};\nvar faPowerOff = {\n prefix: 'fas',\n iconName: 'power-off',\n icon: [512, 512, [], \"f011\", \"M400 54.1c63 45 104 118.6 104 201.9 0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 173.1 48.9 99.3 111.8 54.2c11.7-8.3 28-4.8 35 7.7L162.6 90c5.9 10.5 3.1 23.8-6.6 31-41.5 30.8-68 79.6-68 134.9-.1 92.3 74.5 168.1 168 168.1 91.6 0 168.6-74.2 168-169.1-.3-51.8-24.7-101.8-68.1-134-9.7-7.2-12.4-20.5-6.5-30.9l15.8-28.1c7-12.4 23.2-16.1 34.8-7.8zM296 264V24c0-13.3-10.7-24-24-24h-32c-13.3 0-24 10.7-24 24v240c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24z\"]\n};\nvar faPray = {\n prefix: 'fas',\n iconName: 'pray',\n icon: [384, 512, [], \"f683\", \"M256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-30.63 169.75c14.06 16.72 39 19.09 55.97 5.22l88-72.02c17.09-13.98 19.59-39.19 5.62-56.28-13.97-17.11-39.19-19.59-56.31-5.62l-57.44 47-38.91-46.31c-15.44-18.39-39.22-27.92-64-25.33-24.19 2.48-45.25 16.27-56.37 36.92l-49.37 92.03c-23.4 43.64-8.69 96.37 34.19 123.75L131.56 432H40c-22.09 0-40 17.91-40 40s17.91 40 40 40h208c34.08 0 53.77-42.79 28.28-68.28L166.42 333.86l34.8-64.87 24.15 28.76z\"]\n};\nvar faPrayingHands = {\n prefix: 'fas',\n iconName: 'praying-hands',\n icon: [640, 512, [], \"f684\", \"M272 191.91c-17.6 0-32 14.4-32 32v80c0 8.84-7.16 16-16 16s-16-7.16-16-16v-76.55c0-17.39 4.72-34.47 13.69-49.39l77.75-129.59c9.09-15.16 4.19-34.81-10.97-43.91-14.45-8.67-32.72-4.3-42.3 9.21-.2.23-.62.21-.79.48l-117.26 175.9C117.56 205.9 112 224.31 112 243.29v80.23l-90.12 30.04A31.974 31.974 0 0 0 0 383.91v96c0 10.82 8.52 32 32 32 2.69 0 5.41-.34 8.06-1.03l179.19-46.62C269.16 449.99 304 403.8 304 351.91v-128c0-17.6-14.4-32-32-32zm346.12 161.73L528 323.6v-80.23c0-18.98-5.56-37.39-16.12-53.23L394.62 14.25c-.18-.27-.59-.24-.79-.48-9.58-13.51-27.85-17.88-42.3-9.21-15.16 9.09-20.06 28.75-10.97 43.91l77.75 129.59c8.97 14.92 13.69 32 13.69 49.39V304c0 8.84-7.16 16-16 16s-16-7.16-16-16v-80c0-17.6-14.4-32-32-32s-32 14.4-32 32v128c0 51.89 34.84 98.08 84.75 112.34l179.19 46.62c2.66.69 5.38 1.03 8.06 1.03 23.48 0 32-21.18 32-32v-96c0-13.77-8.81-25.99-21.88-30.35z\"]\n};\nvar faPrescription = {\n prefix: 'fas',\n iconName: 'prescription',\n icon: [384, 512, [], \"f5b1\", \"M301.26 352l78.06-78.06c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0L256 306.74l-83.96-83.96C219.31 216.8 256 176.89 256 128c0-53.02-42.98-96-96-96H16C7.16 32 0 39.16 0 48v256c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-80h18.75l128 128-78.06 78.06c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0L256 397.25l78.06 78.06c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63L301.26 352zM64 96h96c17.64 0 32 14.36 32 32s-14.36 32-32 32H64V96z\"]\n};\nvar faPrescriptionBottle = {\n prefix: 'fas',\n iconName: 'prescription-bottle',\n icon: [384, 512, [], \"f485\", \"M32 192h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v64zM360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24z\"]\n};\nvar faPrescriptionBottleAlt = {\n prefix: 'fas',\n iconName: 'prescription-bottle-alt',\n icon: [384, 512, [], \"f486\", \"M360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24zM32 480c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v352zm64-184c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48z\"]\n};\nvar faPrint = {\n prefix: 'fas',\n iconName: 'print',\n icon: [512, 512, [], \"f02f\", \"M448 192V77.25c0-8.49-3.37-16.62-9.37-22.63L393.37 9.37c-6-6-14.14-9.37-22.63-9.37H96C78.33 0 64 14.33 64 32v160c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h48c8.84 0 16-7.16 16-16V256c0-35.35-28.65-64-64-64zm-64 256H128v-96h256v96zm0-224H128V64h192v48c0 8.84 7.16 16 16 16h48v96zm48 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faProcedures = {\n prefix: 'fas',\n iconName: 'procedures',\n icon: [640, 512, [], \"f487\", \"M528 224H272c-8.8 0-16 7.2-16 16v144H64V144c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48h512v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-61.9-50.1-112-112-112zM136 96h126.1l27.6 55.2c5.9 11.8 22.7 11.8 28.6 0L368 51.8 390.1 96H512c8.8 0 16-7.2 16-16s-7.2-16-16-16H409.9L382.3 8.8C376.4-3 359.6-3 353.7 8.8L304 108.2l-19.9-39.8c-1.4-2.7-4.1-4.4-7.2-4.4H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm24 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z\"]\n};\nvar faProjectDiagram = {\n prefix: 'fas',\n iconName: 'project-diagram',\n icon: [640, 512, [], \"f542\", \"M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z\"]\n};\nvar faPumpMedical = {\n prefix: 'fas',\n iconName: 'pump-medical',\n icon: [384, 512, [], \"e06a\", \"M235.51,159.82H84.24A64,64,0,0,0,20.51,218L.14,442a64,64,0,0,0,63.74,69.8h192A64,64,0,0,0,319.61,442L299.24,218A64,64,0,0,0,235.51,159.82Zm4.37,173.33a13.35,13.35,0,0,1-13.34,13.34h-40v40a13.33,13.33,0,0,1-13.33,13.33H146.54a13.33,13.33,0,0,1-13.33-13.33v-40h-40a13.34,13.34,0,0,1-13.33-13.34V306.49a13.33,13.33,0,0,1,13.33-13.34h40v-40a13.33,13.33,0,0,1,13.33-13.33h26.67a13.33,13.33,0,0,1,13.33,13.33v40h40a13.34,13.34,0,0,1,13.34,13.34ZM379.19,93.88,335.87,50.56a64,64,0,0,0-45.24-18.74H223.88a32,32,0,0,0-32-32h-64a32,32,0,0,0-32,32v96h128v-32h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.19,93.88Z\"]\n};\nvar faPumpSoap = {\n prefix: 'fas',\n iconName: 'pump-soap',\n icon: [384, 512, [], \"e06b\", \"M235.63,160H84.37a64,64,0,0,0-63.74,58.21L.27,442.21A64,64,0,0,0,64,512H256a64,64,0,0,0,63.74-69.79l-20.36-224A64,64,0,0,0,235.63,160ZM160,416c-33.12,0-60-26.33-60-58.75,0-25,35.7-75.47,52-97.27A10,10,0,0,1,168,260c16.33,21.8,52,72.27,52,97.27C220,389.67,193.12,416,160,416ZM379.31,94.06,336,50.74A64,64,0,0,0,290.75,32H224A32,32,0,0,0,192,0H128A32,32,0,0,0,96,32v96H224V96h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.31,94.06Z\"]\n};\nvar faPuzzlePiece = {\n prefix: 'fas',\n iconName: 'puzzle-piece',\n icon: [576, 512, [], \"f12e\", \"M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z\"]\n};\nvar faQrcode = {\n prefix: 'fas',\n iconName: 'qrcode',\n icon: [448, 512, [], \"f029\", \"M0 224h192V32H0v192zM64 96h64v64H64V96zm192-64v192h192V32H256zm128 128h-64V96h64v64zM0 480h192V288H0v192zm64-128h64v64H64v-64zm352-64h32v128h-96v-32h-32v96h-64V288h96v32h64v-32zm0 160h32v32h-32v-32zm-64 0h32v32h-32v-32z\"]\n};\nvar faQuestion = {\n prefix: 'fas',\n iconName: 'question',\n icon: [384, 512, [], \"f128\", \"M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z\"]\n};\nvar faQuestionCircle = {\n prefix: 'fas',\n iconName: 'question-circle',\n icon: [512, 512, [], \"f059\", \"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z\"]\n};\nvar faQuidditch = {\n prefix: 'fas',\n iconName: 'quidditch',\n icon: [640, 512, [], \"f458\", \"M256.5 216.8L343.2 326s-16.6 102.4-76.6 150.1C206.7 523.8 0 510.2 0 510.2s3.8-23.1 11-55.4l94.6-112.2c4-4.7-.9-11.6-6.6-9.5l-60.4 22.1c14.4-41.7 32.7-80 54.6-97.5 59.9-47.8 163.3-40.9 163.3-40.9zm238 135c-44 0-79.8 35.8-79.8 79.9 0 44.1 35.7 79.9 79.8 79.9 44.1 0 79.8-35.8 79.8-79.9 0-44.2-35.8-79.9-79.8-79.9zM636.5 31L616.7 6c-5.5-6.9-15.5-8-22.4-2.6L361.8 181.3l-34.1-43c-5.1-6.4-15.1-5.2-18.6 2.2l-25.3 54.6 86.7 109.2 58.8-12.4c8-1.7 11.4-11.2 6.3-17.6l-34.1-42.9L634 53.5c6.9-5.5 8-15.6 2.5-22.5z\"]\n};\nvar faQuoteLeft = {\n prefix: 'fas',\n iconName: 'quote-left',\n icon: [512, 512, [], \"f10d\", \"M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z\"]\n};\nvar faQuoteRight = {\n prefix: 'fas',\n iconName: 'quote-right',\n icon: [512, 512, [], \"f10e\", \"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z\"]\n};\nvar faQuran = {\n prefix: 'fas',\n iconName: 'quran',\n icon: [448, 512, [], \"f687\", \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM301.08 145.82c.6-1.21 1.76-1.82 2.92-1.82s2.32.61 2.92 1.82l11.18 22.65 25 3.63c2.67.39 3.74 3.67 1.81 5.56l-18.09 17.63 4.27 24.89c.36 2.11-1.31 3.82-3.21 3.82-.5 0-1.02-.12-1.52-.38L304 211.87l-22.36 11.75c-.5.26-1.02.38-1.52.38-1.9 0-3.57-1.71-3.21-3.82l4.27-24.89-18.09-17.63c-1.94-1.89-.87-5.17 1.81-5.56l24.99-3.63 11.19-22.65zm-57.89-69.01c13.67 0 27.26 2.49 40.38 7.41a6.775 6.775 0 1 1-2.38 13.12c-.67 0-3.09-.21-4.13-.21-52.31 0-94.86 42.55-94.86 94.86 0 52.3 42.55 94.86 94.86 94.86 1.03 0 3.48-.21 4.13-.21 3.93 0 6.8 3.14 6.8 6.78 0 2.98-1.94 5.51-4.62 6.42-13.07 4.87-26.59 7.34-40.19 7.34C179.67 307.19 128 255.51 128 192c0-63.52 51.67-115.19 115.19-115.19zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\"]\n};\nvar faRadiation = {\n prefix: 'fas',\n iconName: 'radiation',\n icon: [496, 512, [], \"f7b9\", \"M328.2 255.8h151.6c9.1 0 16.8-7.7 16.2-16.8-5.1-75.8-44.4-142.2-102.5-184.2-7.4-5.3-17.9-2.9-22.7 4.8L290.4 188c22.6 14.3 37.8 39.2 37.8 67.8zm-37.8 67.7c-12.3 7.7-26.8 12.4-42.4 12.4-15.6 0-30-4.7-42.4-12.4L125.2 452c-4.8 7.7-2.4 18.1 5.6 22.4C165.7 493.2 205.6 504 248 504s82.3-10.8 117.2-29.6c8-4.3 10.4-14.8 5.6-22.4l-80.4-128.5zM248 303.8c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm-231.8-48h151.6c0-28.6 15.2-53.5 37.8-67.7L125.2 59.7c-4.8-7.7-15.3-10.2-22.7-4.8C44.4 96.9 5.1 163.3 0 239.1c-.6 9 7.1 16.7 16.2 16.7z\"]\n};\nvar faRadiationAlt = {\n prefix: 'fas',\n iconName: 'radiation-alt',\n icon: [496, 512, [], \"f7ba\", \"M312 256h79.1c9.2 0 16.9-7.7 16-16.8-4.6-43.6-27-81.8-59.5-107.8-7.6-6.1-18.8-4.5-24 3.8L281.9 202c18 11.2 30.1 31.2 30.1 54zm-97.8 54.1L172.4 377c-4.9 7.8-2.4 18.4 5.8 22.5 21.1 10.4 44.7 16.5 69.8 16.5s48.7-6.1 69.9-16.5c8.2-4.1 10.6-14.7 5.8-22.5l-41.8-66.9c-9.8 6.2-21.4 9.9-33.8 9.9s-24.1-3.7-33.9-9.9zM104.9 256H184c0-22.8 12.1-42.8 30.2-54.1l-41.7-66.8c-5.2-8.3-16.4-9.9-24-3.8-32.6 26-54.9 64.2-59.5 107.8-1.1 9.2 6.7 16.9 15.9 16.9zM248 504c137 0 248-111 248-248S385 8 248 8 0 119 0 256s111 248 248 248zm0-432c101.5 0 184 82.5 184 184s-82.5 184-184 184S64 357.5 64 256 146.5 72 248 72zm0 216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"]\n};\nvar faRainbow = {\n prefix: 'fas',\n iconName: 'rainbow',\n icon: [576, 512, [], \"f75b\", \"M268.3 32.7C115.4 42.9 0 176.9 0 330.2V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C64 186.8 180.9 80.3 317.5 97.9 430.4 112.4 512 214 512 327.8V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-165.3-140-298.6-307.7-287.3zm-5.6 96.9C166 142 96 229.1 96 326.7V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-74.8 64.5-134.8 140.8-127.4 66.5 6.5 115.2 66.2 115.2 133.1V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-114.2-100.2-205.4-217.3-190.4zm6.2 96.3c-45.6 8.9-76.9 51.5-76.9 97.9V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-17.6 14.3-32 32-32s32 14.4 32 32v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-59.2-53.8-106-115.1-94.1z\"]\n};\nvar faRandom = {\n prefix: 'fas',\n iconName: 'random',\n icon: [512, 512, [], \"f074\", \"M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z\"]\n};\nvar faReceipt = {\n prefix: 'fas',\n iconName: 'receipt',\n icon: [384, 512, [], \"f543\", \"M358.4 3.2L320 48 265.6 3.2a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.2a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.2C15-4.7 0 2.8 0 16v480c0 13.2 15 20.7 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8c10.5 7.9 25.6.4 25.6-12.8V16c0-13.2-15-20.7-25.6-12.8zM320 360c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faRecordVinyl = {\n prefix: 'fas',\n iconName: 'record-vinyl',\n icon: [512, 512, [], \"f8d9\", \"M256 152a104 104 0 1 0 104 104 104 104 0 0 0-104-104zm0 128a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm0-272C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 376a128 128 0 1 1 128-128 128 128 0 0 1-128 128z\"]\n};\nvar faRecycle = {\n prefix: 'fas',\n iconName: 'recycle',\n icon: [512, 512, [], \"f1b8\", \"M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z\"]\n};\nvar faRedo = {\n prefix: 'fas',\n iconName: 'redo',\n icon: [512, 512, [], \"f01e\", \"M500.33 0h-47.41a12 12 0 0 0-12 12.57l4 82.76A247.42 247.42 0 0 0 256 8C119.34 8 7.9 119.53 8 256.19 8.1 393.07 119.1 504 256 504a247.1 247.1 0 0 0 166.18-63.91 12 12 0 0 0 .48-17.43l-34-34a12 12 0 0 0-16.38-.55A176 176 0 1 1 402.1 157.8l-101.53-4.87a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12h200.33a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12z\"]\n};\nvar faRedoAlt = {\n prefix: 'fas',\n iconName: 'redo-alt',\n icon: [512, 512, [], \"f2f9\", \"M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z\"]\n};\nvar faRegistered = {\n prefix: 'fas',\n iconName: 'registered',\n icon: [512, 512, [], \"f25d\", \"M285.363 207.475c0 18.6-9.831 28.431-28.431 28.431h-29.876v-56.14h23.378c28.668 0 34.929 8.773 34.929 27.709zM504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM363.411 360.414c-46.729-84.825-43.299-78.636-44.702-80.98 23.432-15.172 37.945-42.979 37.945-74.486 0-54.244-31.5-89.252-105.498-89.252h-70.667c-13.255 0-24 10.745-24 24V372c0 13.255 10.745 24 24 24h22.567c13.255 0 24-10.745 24-24v-71.663h25.556l44.129 82.937a24.001 24.001 0 0 0 21.188 12.727h24.464c18.261-.001 29.829-19.591 21.018-35.587z\"]\n};\nvar faRemoveFormat = {\n prefix: 'fas',\n iconName: 'remove-format',\n icon: [640, 512, [], \"f87d\", \"M336 416h-11.17l9.26-27.77L267 336.4 240.49 416H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm297.82 42.1L377 259.59 426.17 112H544v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16H176a16 16 0 0 0-16 16v43.9L45.46 3.38A16 16 0 0 0 23 6.19L3.37 31.46a16 16 0 0 0 2.81 22.45l588.36 454.72a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zM309.91 207.76L224 141.36V112h117.83z\"]\n};\nvar faReply = {\n prefix: 'fas',\n iconName: 'reply',\n icon: [512, 512, [], \"f3e5\", \"M8.309 189.836L184.313 37.851C199.719 24.546 224 35.347 224 56.015v80.053c160.629 1.839 288 34.032 288 186.258 0 61.441-39.581 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 45.344-145.012-21.507-183.51-176.59-185.742V360c0 20.7-24.3 31.453-39.687 18.164l-176.004-152c-11.071-9.562-11.086-26.753 0-36.328z\"]\n};\nvar faReplyAll = {\n prefix: 'fas',\n iconName: 'reply-all',\n icon: [576, 512, [], \"f122\", \"M136.309 189.836L312.313 37.851C327.72 24.546 352 35.348 352 56.015v82.763c129.182 10.231 224 52.212 224 183.548 0 61.441-39.582 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 38.512-123.162-3.922-169.482-112.59-182.015v84.175c0 20.701-24.3 31.453-39.687 18.164L136.309 226.164c-11.071-9.561-11.086-26.753 0-36.328zm-128 36.328L184.313 378.15C199.7 391.439 224 380.687 224 359.986v-15.818l-108.606-93.785A55.96 55.96 0 0 1 96 207.998a55.953 55.953 0 0 1 19.393-42.38L224 71.832V56.015c0-20.667-24.28-31.469-39.687-18.164L8.309 189.836c-11.086 9.575-11.071 26.767 0 36.328z\"]\n};\nvar faRepublican = {\n prefix: 'fas',\n iconName: 'republican',\n icon: [640, 512, [], \"f75e\", \"M544 192c0-88.4-71.6-160-160-160H160C71.6 32 0 103.6 0 192v64h544v-64zm-367.7-21.6l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L128 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L272 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L416 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zM624 320h-32c-8.8 0-16 7.2-16 16v64c0 8.8-7.2 16-16 16s-16-7.2-16-16V288H0v176c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16v-80h192v80c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16V352h32v43.3c0 41.8 30 80.1 71.6 84.3 47.8 4.9 88.4-32.7 88.4-79.6v-64c0-8.8-7.2-16-16-16z\"]\n};\nvar faRestroom = {\n prefix: 'fas',\n iconName: 'restroom',\n icon: [640, 512, [], \"f7bd\", \"M128 128c35.3 0 64-28.7 64-64S163.3 0 128 0 64 28.7 64 64s28.7 64 64 64zm384 0c35.3 0 64-28.7 64-64S547.3 0 512 0s-64 28.7-64 64 28.7 64 64 64zm127.3 226.5l-45.6-185.8c-3.3-13.5-15.5-23-29.8-24.2-15 9.7-32.8 15.5-52 15.5-19.2 0-37-5.8-52-15.5-14.3 1.2-26.5 10.7-29.8 24.2l-45.6 185.8C381 369.6 393 384 409.2 384H464v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V384h54.8c16.2 0 28.2-14.4 24.5-29.5zM336 0h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zM180.1 144.4c-15 9.8-32.9 15.6-52.1 15.6-19.2 0-37.1-5.8-52.1-15.6C51.3 146.5 32 166.9 32 192v136c0 13.3 10.7 24 24 24h8v136c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V352h8c13.3 0 24-10.7 24-24V192c0-25.1-19.3-45.5-43.9-47.6z\"]\n};\nvar faRetweet = {\n prefix: 'fas',\n iconName: 'retweet',\n icon: [640, 512, [], \"f079\", \"M629.657 343.598L528.971 444.284c-9.373 9.372-24.568 9.372-33.941 0L394.343 343.598c-9.373-9.373-9.373-24.569 0-33.941l10.823-10.823c9.562-9.562 25.133-9.34 34.419.492L480 342.118V160H292.451a24.005 24.005 0 0 1-16.971-7.029l-16-16C244.361 121.851 255.069 96 276.451 96H520c13.255 0 24 10.745 24 24v222.118l40.416-42.792c9.285-9.831 24.856-10.054 34.419-.492l10.823 10.823c9.372 9.372 9.372 24.569-.001 33.941zm-265.138 15.431A23.999 23.999 0 0 0 347.548 352H160V169.881l40.416 42.792c9.286 9.831 24.856 10.054 34.419.491l10.822-10.822c9.373-9.373 9.373-24.569 0-33.941L144.971 67.716c-9.373-9.373-24.569-9.373-33.941 0L10.343 168.402c-9.373 9.373-9.373 24.569 0 33.941l10.822 10.822c9.562 9.562 25.133 9.34 34.419-.491L96 169.881V392c0 13.255 10.745 24 24 24h243.549c21.382 0 32.09-25.851 16.971-40.971l-16.001-16z\"]\n};\nvar faRibbon = {\n prefix: 'fas',\n iconName: 'ribbon',\n icon: [448, 512, [], \"f4d6\", \"M6.1 444.3c-9.6 10.8-7.5 27.6 4.5 35.7l68.8 27.9c9.9 6.7 23.3 5 31.3-3.8l91.8-101.9-79.2-87.9-117.2 130zm435.8 0s-292-324.6-295.4-330.1c15.4-8.4 40.2-17.9 77.5-17.9s62.1 9.5 77.5 17.9c-3.3 5.6-56 64.6-56 64.6l79.1 87.7 34.2-38c28.7-31.9 33.3-78.6 11.4-115.5l-43.7-73.5c-4.3-7.2-9.9-13.3-16.8-18-40.7-27.6-127.4-29.7-171.4 0-6.9 4.7-12.5 10.8-16.8 18l-43.6 73.2c-1.5 2.5-37.1 62.2 11.5 116L337.5 504c8 8.9 21.4 10.5 31.3 3.8l68.8-27.9c11.9-8 14-24.8 4.3-35.6z\"]\n};\nvar faRing = {\n prefix: 'fas',\n iconName: 'ring',\n icon: [512, 512, [], \"f70b\", \"M256 64C110.06 64 0 125.91 0 208v98.13C0 384.48 114.62 448 256 448s256-63.52 256-141.87V208c0-82.09-110.06-144-256-144zm0 64c106.04 0 192 35.82 192 80 0 9.26-3.97 18.12-10.91 26.39C392.15 208.21 328.23 192 256 192s-136.15 16.21-181.09 42.39C67.97 226.12 64 217.26 64 208c0-44.18 85.96-80 192-80zM120.43 264.64C155.04 249.93 201.64 240 256 240s100.96 9.93 135.57 24.64C356.84 279.07 308.93 288 256 288s-100.84-8.93-135.57-23.36z\"]\n};\nvar faRoad = {\n prefix: 'fas',\n iconName: 'road',\n icon: [576, 512, [], \"f018\", \"M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16c.5 4.72-3.21 8.84-7.96 8.84h-29.16c-4.75 0-8.46-4.12-7.96-8.84L267.91 64h-97.59c-11.93 0-22.76 7.29-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68c.86-8.14 7.72-14.32 15.91-14.32h68.8c8.19 0 15.05 6.18 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM260.4 135.16a8 8 0 0 1 7.96-7.16h39.29c4.09 0 7.53 3.09 7.96 7.16l4.6 43.58c.75 7.09-4.81 13.26-11.93 13.26h-40.54c-7.13 0-12.68-6.17-11.93-13.26l4.59-43.58zM315.64 304h-55.29c-9.5 0-16.91-8.23-15.91-17.68l5.07-48c.86-8.14 7.72-14.32 15.91-14.32h45.15c8.19 0 15.05 6.18 15.91 14.32l5.07 48c1 9.45-6.41 17.68-15.91 17.68z\"]\n};\nvar faRobot = {\n prefix: 'fas',\n iconName: 'robot',\n icon: [640, 512, [], \"f544\", \"M32,224H64V416H32A31.96166,31.96166,0,0,1,0,384V256A31.96166,31.96166,0,0,1,32,224Zm512-48V448a64.06328,64.06328,0,0,1-64,64H160a64.06328,64.06328,0,0,1-64-64V176a79.974,79.974,0,0,1,80-80H288V32a32,32,0,0,1,64,0V96H464A79.974,79.974,0,0,1,544,176ZM264,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,264,256Zm-8,128H192v32h64Zm96,0H288v32h64ZM456,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,456,256Zm-8,128H384v32h64ZM640,256V384a31.96166,31.96166,0,0,1-32,32H576V224h32A31.96166,31.96166,0,0,1,640,256Z\"]\n};\nvar faRocket = {\n prefix: 'fas',\n iconName: 'rocket',\n icon: [512, 512, [], \"f135\", \"M505.12019,19.09375c-1.18945-5.53125-6.65819-11-12.207-12.1875C460.716,0,435.507,0,410.40747,0,307.17523,0,245.26909,55.20312,199.05238,128H94.83772c-16.34763.01562-35.55658,11.875-42.88664,26.48438L2.51562,253.29688A28.4,28.4,0,0,0,0,264a24.00867,24.00867,0,0,0,24.00582,24H127.81618l-22.47457,22.46875c-11.36521,11.36133-12.99607,32.25781,0,45.25L156.24582,406.625c11.15623,11.1875,32.15619,13.15625,45.27726,0l22.47457-22.46875V488a24.00867,24.00867,0,0,0,24.00581,24,28.55934,28.55934,0,0,0,10.707-2.51562l98.72834-49.39063c14.62888-7.29687,26.50776-26.5,26.50776-42.85937V312.79688c72.59753-46.3125,128.03493-108.40626,128.03493-211.09376C512.07526,76.5,512.07526,51.29688,505.12019,19.09375ZM384.04033,168A40,40,0,1,1,424.05,128,40.02322,40.02322,0,0,1,384.04033,168Z\"]\n};\nvar faRoute = {\n prefix: 'fas',\n iconName: 'route',\n icon: [512, 512, [], \"f4d7\", \"M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faRss = {\n prefix: 'fas',\n iconName: 'rss',\n icon: [448, 512, [], \"f09e\", \"M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z\"]\n};\nvar faRssSquare = {\n prefix: 'fas',\n iconName: 'rss-square',\n icon: [448, 512, [], \"f143\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM112 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm157.533 0h-34.335c-6.011 0-11.051-4.636-11.442-10.634-5.214-80.05-69.243-143.92-149.123-149.123-5.997-.39-10.633-5.431-10.633-11.441v-34.335c0-6.535 5.468-11.777 11.994-11.425 110.546 5.974 198.997 94.536 204.964 204.964.352 6.526-4.89 11.994-11.425 11.994zm103.027 0h-34.334c-6.161 0-11.175-4.882-11.427-11.038-5.598-136.535-115.204-246.161-251.76-251.76C68.882 152.949 64 147.935 64 141.774V107.44c0-6.454 5.338-11.664 11.787-11.432 167.83 6.025 302.21 141.191 308.205 308.205.232 6.449-4.978 11.787-11.432 11.787z\"]\n};\nvar faRubleSign = {\n prefix: 'fas',\n iconName: 'ruble-sign',\n icon: [384, 512, [], \"f158\", \"M239.36 320C324.48 320 384 260.542 384 175.071S324.48 32 239.36 32H76c-6.627 0-12 5.373-12 12v206.632H12c-6.627 0-12 5.373-12 12V308c0 6.627 5.373 12 12 12h52v32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v52c0 6.627 5.373 12 12 12h58.56c6.627 0 12-5.373 12-12v-52H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H146.56v-32h92.8zm-92.8-219.252h78.72c46.72 0 74.88 29.11 74.88 74.323 0 45.832-28.16 75.561-76.16 75.561h-77.44V100.748z\"]\n};\nvar faRuler = {\n prefix: 'fas',\n iconName: 'ruler',\n icon: [640, 512, [], \"f545\", \"M635.7 167.2L556.1 31.7c-8.8-15-28.3-20.1-43.5-11.5l-69 39.1L503.3 161c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L416 75l-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L333.2 122 278 153.3 337.8 255c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-59.7-101.7-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-27.9-47.5-55.2 31.3 59.7 101.7c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L84.9 262.9l-69 39.1C.7 310.7-4.6 329.8 4.2 344.8l79.6 135.6c8.8 15 28.3 20.1 43.5 11.5L624.1 210c15.2-8.6 20.4-27.8 11.6-42.8z\"]\n};\nvar faRulerCombined = {\n prefix: 'fas',\n iconName: 'ruler-combined',\n icon: [512, 512, [], \"f546\", \"M160 288h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56v-64h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56V96h-56c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8h56V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 2.77.91 5.24 1.57 7.8L160 329.38V288zm320 64h-32v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-41.37L24.2 510.43c2.56.66 5.04 1.57 7.8 1.57h448c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"]\n};\nvar faRulerHorizontal = {\n prefix: 'fas',\n iconName: 'ruler-horizontal',\n icon: [576, 512, [], \"f547\", \"M544 128h-48v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8H88c-4.42 0-8-3.58-8-8v-88H32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h512c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32z\"]\n};\nvar faRulerVertical = {\n prefix: 'fas',\n iconName: 'ruler-vertical',\n icon: [256, 512, [], \"f548\", \"M168 416c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64h-88z\"]\n};\nvar faRunning = {\n prefix: 'fas',\n iconName: 'running',\n icon: [416, 512, [], \"f70c\", \"M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z\"]\n};\nvar faRupeeSign = {\n prefix: 'fas',\n iconName: 'rupee-sign',\n icon: [320, 512, [], \"f156\", \"M308 96c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v44.748c0 6.627 5.373 12 12 12h85.28c27.308 0 48.261 9.958 60.97 27.252H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h158.757c-6.217 36.086-32.961 58.632-74.757 58.632H12c-6.627 0-12 5.373-12 12v53.012c0 3.349 1.4 6.546 3.861 8.818l165.052 152.356a12.001 12.001 0 0 0 8.139 3.182h82.562c10.924 0 16.166-13.408 8.139-20.818L116.871 319.906c76.499-2.34 131.144-53.395 138.318-127.906H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-58.69c-3.486-11.541-8.28-22.246-14.252-32H308z\"]\n};\nvar faSadCry = {\n prefix: 'fas',\n iconName: 'sad-cry',\n icon: [496, 512, [], \"f5b3\", \"M248 8C111 8 0 119 0 256c0 90.1 48.2 168.7 120 212.1V288c0-8.8 7.2-16 16-16s16 7.2 16 16v196.7c29.5 12.4 62 19.3 96 19.3s66.5-6.9 96-19.3V288c0-8.8 7.2-16 16-16s16 7.2 16 16v180.1C447.8 424.7 496 346 496 256 496 119 385 8 248 8zm-65.5 216.5c-14.8-13.2-46.2-13.2-61 0L112 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c.8 5-1.7 10-6.1 12.4-5.8 3.1-11.2.7-13.7-1.6l-9.7-8.5zM248 416c-26.5 0-48-28.7-48-64s21.5-64 48-64 48 28.7 48 64-21.5 64-48 64zm149.8-181.5c-5.8 3.1-11.2.7-13.7-1.6l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S400 197 404 222.2c.6 4.9-1.8 9.9-6.2 12.3z\"]\n};\nvar faSadTear = {\n prefix: 'fas',\n iconName: 'sad-tear',\n icon: [496, 512, [], \"f5b4\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM152 416c-26.5 0-48-21-48-47 0-20 28.5-60.4 41.6-77.8 3.2-4.3 9.6-4.3 12.8 0C171.5 308.6 200 349 200 369c0 26-21.5 47-48 47zm16-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm170.2 154.2C315.8 367.4 282.9 352 248 352c-21.2 0-21.2-32 0-32 44.4 0 86.3 19.6 114.7 53.8 13.8 16.4-11.2 36.5-24.5 20.4z\"]\n};\nvar faSatellite = {\n prefix: 'fas',\n iconName: 'satellite',\n icon: [512, 512, [], \"f7bf\", \"M502.60969,310.04206l-96.70393,96.71625a31.88151,31.88151,0,0,1-45.00765,0L280.572,326.34115l-9.89231,9.90759a190.56343,190.56343,0,0,1-5.40716,168.52287c-4.50077,8.50115-16.39342,9.59505-23.20707,2.79725L134.54715,400.05428l-17.7999,17.79929c.70324,2.60972,1.60965,5.00067,1.60965,7.79793a32.00544,32.00544,0,1,1-32.00544-32.00434c2.79735,0,5.18838.90637,7.7982,1.60959l17.7999-17.79929L4.43129,269.94287c-6.798-6.81342-5.70409-18.6119,2.79735-23.20627a190.58161,190.58161,0,0,1,168.52864-5.407l9.79854-9.79821-80.31053-80.41716a32.002,32.002,0,0,1,0-45.09987L201.96474,9.29814A31.62639,31.62639,0,0,1,224.46868,0a31.99951,31.99951,0,0,1,22.59759,9.29814l80.32615,80.30777,47.805-47.89713a33.6075,33.6075,0,0,1,47.50808,0l47.50807,47.50645a33.63308,33.63308,0,0,1,0,47.50644l-47.805,47.89713L502.71908,265.036A31.78938,31.78938,0,0,1,502.60969,310.04206ZM219.56159,197.433l73.82505-73.82252-68.918-68.9-73.80942,73.80689Zm237.74352,90.106-68.90233-68.9156-73.825,73.82252,68.918,68.9Z\"]\n};\nvar faSatelliteDish = {\n prefix: 'fas',\n iconName: 'satellite-dish',\n icon: [512, 512, [], \"f7c0\", \"M305.44954,462.59c7.39157,7.29792,6.18829,20.09661-3.00038,25.00356-77.713,41.80281-176.72559,29.9105-242.34331-35.7082C-5.49624,386.28227-17.404,287.362,24.41381,209.554c4.89125-9.095,17.68975-10.29834,25.00318-3.00043L166.22872,323.36708l27.39411-27.39452c-.68759-2.60974-1.594-5.00071-1.594-7.81361a32.00407,32.00407,0,1,1,32.00407,32.00455c-2.79723,0-5.20378-.89075-7.79786-1.594l-27.40974,27.41015ZM511.9758,303.06732a16.10336,16.10336,0,0,1-16.002,17.00242H463.86031a15.96956,15.96956,0,0,1-15.89265-15.00213C440.46671,175.5492,336.45348,70.53427,207.03078,63.53328a15.84486,15.84486,0,0,1-15.00191-15.90852V16.02652A16.09389,16.09389,0,0,1,209.031.02425C372.25491,8.61922,503.47472,139.841,511.9758,303.06732Zm-96.01221-.29692a16.21093,16.21093,0,0,1-16.11142,17.29934H367.645a16.06862,16.06862,0,0,1-15.89265-14.70522c-6.90712-77.01094-68.118-138.91037-144.92467-145.22376a15.94,15.94,0,0,1-14.79876-15.89289V112.13393a16.134,16.134,0,0,1,17.29908-16.096C319.45132,104.5391,407.55627,192.64538,415.96359,302.7704Z\"]\n};\nvar faSave = {\n prefix: 'fas',\n iconName: 'save',\n icon: [448, 512, [], \"f0c7\", \"M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z\"]\n};\nvar faSchool = {\n prefix: 'fas',\n iconName: 'school',\n icon: [640, 512, [], \"f549\", \"M0 224v272c0 8.84 7.16 16 16 16h80V192H32c-17.67 0-32 14.33-32 32zm360-48h-24v-40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v64c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm137.75-63.96l-160-106.67a32.02 32.02 0 0 0-35.5 0l-160 106.67A32.002 32.002 0 0 0 128 138.66V512h128V368c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v144h128V138.67c0-10.7-5.35-20.7-14.25-26.63zM320 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm288-64h-64v320h80c8.84 0 16-7.16 16-16V224c0-17.67-14.33-32-32-32z\"]\n};\nvar faScrewdriver = {\n prefix: 'fas',\n iconName: 'screwdriver',\n icon: [512, 512, [], \"f54a\", \"M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z\"]\n};\nvar faScroll = {\n prefix: 'fas',\n iconName: 'scroll',\n icon: [640, 512, [], \"f70e\", \"M48 0C21.53 0 0 21.53 0 48v64c0 8.84 7.16 16 16 16h80V48C96 21.53 74.47 0 48 0zm208 412.57V352h288V96c0-52.94-43.06-96-96-96H111.59C121.74 13.41 128 29.92 128 48v368c0 38.87 34.65 69.65 74.75 63.12C234.22 474 256 444.46 256 412.57zM288 384v32c0 52.93-43.06 96-96 96h336c61.86 0 112-50.14 112-112 0-8.84-7.16-16-16-16H288z\"]\n};\nvar faSdCard = {\n prefix: 'fas',\n iconName: 'sd-card',\n icon: [384, 512, [], \"f7c2\", \"M320 0H128L0 128v320c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zM160 160h-48V64h48v96zm80 0h-48V64h48v96zm80 0h-48V64h48v96z\"]\n};\nvar faSearch = {\n prefix: 'fas',\n iconName: 'search',\n icon: [512, 512, [], \"f002\", \"M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z\"]\n};\nvar faSearchDollar = {\n prefix: 'fas',\n iconName: 'search-dollar',\n icon: [512, 512, [], \"f688\", \"M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm27.11-152.54l-45.01-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V112c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.63.63-42.68 20.55-42.68 45.07 0 19.97 12.99 37.81 31.58 43.39l45.01 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.1c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V304c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.63-.63 42.68-20.54 42.68-45.07 0-19.97-12.99-37.81-31.59-43.39z\"]\n};\nvar faSearchLocation = {\n prefix: 'fas',\n iconName: 'search-location',\n icon: [512, 512, [], \"f689\", \"M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm.02-239.96c-40.78 0-73.84 33.05-73.84 73.83 0 32.96 48.26 93.05 66.75 114.86a9.24 9.24 0 0 0 14.18 0c18.49-21.81 66.75-81.89 66.75-114.86 0-40.78-33.06-73.83-73.84-73.83zm0 96c-13.26 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faSearchMinus = {\n prefix: 'fas',\n iconName: 'search-minus',\n icon: [512, 512, [], \"f010\", \"M304 192v32c0 6.6-5.4 12-12 12H124c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z\"]\n};\nvar faSearchPlus = {\n prefix: 'fas',\n iconName: 'search-plus',\n icon: [512, 512, [], \"f00e\", \"M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z\"]\n};\nvar faSeedling = {\n prefix: 'fas',\n iconName: 'seedling',\n icon: [512, 512, [], \"f4d8\", \"M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z\"]\n};\nvar faServer = {\n prefix: 'fas',\n iconName: 'server',\n icon: [512, 512, [], \"f233\", \"M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z\"]\n};\nvar faShapes = {\n prefix: 'fas',\n iconName: 'shapes',\n icon: [512, 512, [], \"f61f\", \"M128,256A128,128,0,1,0,256,384,128,128,0,0,0,128,256Zm379-54.86L400.07,18.29a37.26,37.26,0,0,0-64.14,0L229,201.14C214.76,225.52,232.58,256,261.09,256H474.91C503.42,256,521.24,225.52,507,201.14ZM480,288H320a32,32,0,0,0-32,32V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V320A32,32,0,0,0,480,288Z\"]\n};\nvar faShare = {\n prefix: 'fas',\n iconName: 'share',\n icon: [512, 512, [], \"f064\", \"M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z\"]\n};\nvar faShareAlt = {\n prefix: 'fas',\n iconName: 'share-alt',\n icon: [448, 512, [], \"f1e0\", \"M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z\"]\n};\nvar faShareAltSquare = {\n prefix: 'fas',\n iconName: 'share-alt-square',\n icon: [448, 512, [], \"f1e1\", \"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zM304 296c-14.562 0-27.823 5.561-37.783 14.671l-67.958-40.775a56.339 56.339 0 0 0 0-27.793l67.958-40.775C276.177 210.439 289.438 216 304 216c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56c0 4.797.605 9.453 1.74 13.897l-67.958 40.775C171.823 205.561 158.562 200 144 200c-30.928 0-56 25.072-56 56s25.072 56 56 56c14.562 0 27.823-5.561 37.783-14.671l67.958 40.775a56.088 56.088 0 0 0-1.74 13.897c0 30.928 25.072 56 56 56s56-25.072 56-56C360 321.072 334.928 296 304 296z\"]\n};\nvar faShareSquare = {\n prefix: 'fas',\n iconName: 'share-square',\n icon: [576, 512, [], \"f14d\", \"M568.482 177.448L424.479 313.433C409.3 327.768 384 317.14 384 295.985v-71.963c-144.575.97-205.566 35.113-164.775 171.353 4.483 14.973-12.846 26.567-25.006 17.33C155.252 383.105 120 326.488 120 269.339c0-143.937 117.599-172.5 264-173.312V24.012c0-21.174 25.317-31.768 40.479-17.448l144.003 135.988c10.02 9.463 10.028 25.425 0 34.896zM384 379.128V448H64V128h50.916a11.99 11.99 0 0 0 8.648-3.693c14.953-15.568 32.237-27.89 51.014-37.676C185.708 80.83 181.584 64 169.033 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-88.806c0-8.288-8.197-14.066-16.011-11.302a71.83 71.83 0 0 1-34.189 3.377c-7.27-1.046-13.8 4.514-13.8 11.859z\"]\n};\nvar faShekelSign = {\n prefix: 'fas',\n iconName: 'shekel-sign',\n icon: [448, 512, [], \"f20b\", \"M248 168v168c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V168c0-75.11-60.89-136-136-136H24C10.75 32 0 42.74 0 56v408c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112h112c30.93 0 56 25.07 56 56zM432 32h-48c-8.84 0-16 7.16-16 16v296c0 30.93-25.07 56-56 56H200V176c0-8.84-7.16-16-16-16h-48c-8.84 0-16 7.16-16 16v280c0 13.25 10.75 24 24 24h168c75.11 0 136-60.89 136-136V48c0-8.84-7.16-16-16-16z\"]\n};\nvar faShieldAlt = {\n prefix: 'fas',\n iconName: 'shield-alt',\n icon: [512, 512, [], \"f3ed\", \"M466.5 83.7l-192-80a48.15 48.15 0 0 0-36.9 0l-192 80C27.7 91.1 16 108.6 16 128c0 198.5 114.5 335.7 221.5 380.3 11.8 4.9 25.1 4.9 36.9 0C360.1 472.6 496 349.3 496 128c0-19.4-11.7-36.9-29.5-44.3zM256.1 446.3l-.1-381 175.9 73.3c-3.3 151.4-82.1 261.1-175.8 307.7z\"]\n};\nvar faShieldVirus = {\n prefix: 'fas',\n iconName: 'shield-virus',\n icon: [512, 512, [], \"e06c\", \"M224,192a16,16,0,1,0,16,16A16,16,0,0,0,224,192ZM466.5,83.68l-192-80A57.4,57.4,0,0,0,256.05,0a57.4,57.4,0,0,0-18.46,3.67l-192,80A47.93,47.93,0,0,0,16,128C16,326.5,130.5,463.72,237.5,508.32a48.09,48.09,0,0,0,36.91,0C360.09,472.61,496,349.3,496,128A48,48,0,0,0,466.5,83.68ZM384,256H371.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C306.47,313.09,272,327.37,272,355.88V368a16,16,0,0,1-32,0V355.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H128a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V112a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C329.09,189.53,343.37,224,371.88,224H384a16,16,0,0,1,0,32Zm-96,0a16,16,0,1,0,16,16A16,16,0,0,0,288,256Z\"]\n};\nvar faShip = {\n prefix: 'fas',\n iconName: 'ship',\n icon: [640, 512, [], \"f21a\", \"M496.616 372.639l70.012-70.012c16.899-16.9 9.942-45.771-12.836-53.092L512 236.102V96c0-17.673-14.327-32-32-32h-64V24c0-13.255-10.745-24-24-24H248c-13.255 0-24 10.745-24 24v40h-64c-17.673 0-32 14.327-32 32v140.102l-41.792 13.433c-22.753 7.313-29.754 36.173-12.836 53.092l70.012 70.012C125.828 416.287 85.587 448 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24 61.023 0 107.499-20.61 143.258-59.396C181.677 487.432 216.021 512 256 512h128c39.979 0 74.323-24.568 88.742-59.396C508.495 491.384 554.968 512 616 512c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24-60.817 0-101.542-31.001-119.384-75.361zM192 128h256v87.531l-118.208-37.995a31.995 31.995 0 0 0-19.584 0L192 215.531V128z\"]\n};\nvar faShippingFast = {\n prefix: 'fas',\n iconName: 'shipping-fast',\n icon: [640, 512, [], \"f48b\", \"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H112C85.5 0 64 21.5 64 48v48H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h272c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H64v128c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"]\n};\nvar faShoePrints = {\n prefix: 'fas',\n iconName: 'shoe-prints',\n icon: [640, 512, [], \"f54b\", \"M192 160h32V32h-32c-35.35 0-64 28.65-64 64s28.65 64 64 64zM0 416c0 35.35 28.65 64 64 64h32V352H64c-35.35 0-64 28.65-64 64zm337.46-128c-34.91 0-76.16 13.12-104.73 32-24.79 16.38-44.52 32-104.73 32v128l57.53 15.97c26.21 7.28 53.01 13.12 80.31 15.05 32.69 2.31 65.6.67 97.58-6.2C472.9 481.3 512 429.22 512 384c0-64-84.18-96-174.54-96zM491.42 7.19C459.44.32 426.53-1.33 393.84.99c-27.3 1.93-54.1 7.77-80.31 15.04L256 32v128c60.2 0 79.94 15.62 104.73 32 28.57 18.88 69.82 32 104.73 32C555.82 224 640 192 640 128c0-45.22-39.1-97.3-148.58-120.81z\"]\n};\nvar faShoppingBag = {\n prefix: 'fas',\n iconName: 'shopping-bag',\n icon: [448, 512, [], \"f290\", \"M352 160v-32C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128v32H0v272c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V160h-96zm-192-32c0-35.29 28.71-64 64-64s64 28.71 64 64v32H160v-32zm160 120c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm-192 0c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24z\"]\n};\nvar faShoppingBasket = {\n prefix: 'fas',\n iconName: 'shopping-basket',\n icon: [576, 512, [], \"f291\", \"M576 216v16c0 13.255-10.745 24-24 24h-8l-26.113 182.788C514.509 462.435 494.257 480 470.37 480H105.63c-23.887 0-44.139-17.565-47.518-41.212L32 256h-8c-13.255 0-24-10.745-24-24v-16c0-13.255 10.745-24 24-24h67.341l106.78-146.821c10.395-14.292 30.407-17.453 44.701-7.058 14.293 10.395 17.453 30.408 7.058 44.701L170.477 192h235.046L326.12 82.821c-10.395-14.292-7.234-34.306 7.059-44.701 14.291-10.395 34.306-7.235 44.701 7.058L484.659 192H552c13.255 0 24 10.745 24 24zM312 392V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm112 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm-224 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24z\"]\n};\nvar faShoppingCart = {\n prefix: 'fas',\n iconName: 'shopping-cart',\n icon: [576, 512, [], \"f07a\", \"M528.12 301.319l47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z\"]\n};\nvar faShower = {\n prefix: 'fas',\n iconName: 'shower',\n icon: [512, 512, [], \"f2cc\", \"M304,320a16,16,0,1,0,16,16A16,16,0,0,0,304,320Zm32-96a16,16,0,1,0,16,16A16,16,0,0,0,336,224Zm32,64a16,16,0,1,0-16-16A16,16,0,0,0,368,288Zm-32,32a16,16,0,1,0-16-16A16,16,0,0,0,336,320Zm-32-64a16,16,0,1,0,16,16A16,16,0,0,0,304,256Zm128-32a16,16,0,1,0-16-16A16,16,0,0,0,432,224Zm-48,16a16,16,0,1,0,16-16A16,16,0,0,0,384,240Zm-16-48a16,16,0,1,0,16,16A16,16,0,0,0,368,192Zm96,32a16,16,0,1,0,16,16A16,16,0,0,0,464,224Zm32-32a16,16,0,1,0,16,16A16,16,0,0,0,496,192Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,432,256Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,400,288Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,336,352Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,304,384Zm64-64a16,16,0,1,0,16,16A16,16,0,0,0,368,320Zm21.65-218.35-11.3-11.31a16,16,0,0,0-22.63,0L350.05,96A111.19,111.19,0,0,0,272,64c-19.24,0-37.08,5.3-52.9,13.85l-10-10A121.72,121.72,0,0,0,123.44,32C55.49,31.5,0,92.91,0,160.85V464a16,16,0,0,0,16,16H48a16,16,0,0,0,16-16V158.4c0-30.15,21-58.2,51-61.93a58.38,58.38,0,0,1,48.93,16.67l10,10C165.3,138.92,160,156.76,160,176a111.23,111.23,0,0,0,32,78.05l-5.66,5.67a16,16,0,0,0,0,22.62l11.3,11.31a16,16,0,0,0,22.63,0L389.65,124.28A16,16,0,0,0,389.65,101.65Z\"]\n};\nvar faShuttleVan = {\n prefix: 'fas',\n iconName: 'shuttle-van',\n icon: [640, 512, [], \"f5b6\", \"M628.88 210.65L494.39 49.27A48.01 48.01 0 0 0 457.52 32H32C14.33 32 0 46.33 0 64v288c0 17.67 14.33 32 32 32h32c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h32c17.67 0 32-14.33 32-32V241.38c0-11.23-3.94-22.1-11.12-30.73zM64 192V96h96v96H64zm96 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm160-240h-96V96h96v96zm160 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-96-240V96h66.02l80 96H384z\"]\n};\nvar faSign = {\n prefix: 'fas',\n iconName: 'sign',\n icon: [512, 512, [], \"f4d9\", \"M496 64H128V16c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16v48H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V128h368c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM160 384h320V160H160v224z\"]\n};\nvar faSignInAlt = {\n prefix: 'fas',\n iconName: 'sign-in-alt',\n icon: [512, 512, [], \"f2f6\", \"M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z\"]\n};\nvar faSignLanguage = {\n prefix: 'fas',\n iconName: 'sign-language',\n icon: [448, 512, [], \"f2a7\", \"M91.434 483.987c-.307-16.018 13.109-29.129 29.13-29.129h62.293v-5.714H56.993c-16.021 0-29.437-13.111-29.13-29.129C28.16 404.491 40.835 392 56.428 392h126.429v-5.714H29.136c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h154.286v-5.714H57.707c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h168.566l-31.085-22.606c-12.762-9.281-15.583-27.149-6.302-39.912 9.281-12.761 27.15-15.582 39.912-6.302l123.361 89.715a34.287 34.287 0 0 1 14.12 27.728v141.136c0 15.91-10.946 29.73-26.433 33.374l-80.471 18.934a137.16 137.16 0 0 1-31.411 3.646H120c-15.593-.001-28.269-12.492-28.566-28.014zm73.249-225.701h36.423l-11.187-8.136c-18.579-13.511-20.313-40.887-3.17-56.536l-13.004-16.7c-9.843-12.641-28.43-15.171-40.88-5.088-12.065 9.771-14.133 27.447-4.553 39.75l36.371 46.71zm283.298-2.103l-5.003-152.452c-.518-15.771-13.722-28.136-29.493-27.619-15.773.518-28.137 13.722-27.619 29.493l1.262 38.415L283.565 11.019c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l76.889 98.745-4.509 3.511-94.79-121.734c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l94.443 121.288-4.509 3.511-77.675-99.754c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l52.053 66.849c12.497-8.257 29.055-8.285 41.69.904l123.36 89.714c10.904 7.93 17.415 20.715 17.415 34.198v16.999l61.064-47.549a34.285 34.285 0 0 0 13.202-28.177z\"]\n};\nvar faSignOutAlt = {\n prefix: 'fas',\n iconName: 'sign-out-alt',\n icon: [512, 512, [], \"f2f5\", \"M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z\"]\n};\nvar faSignal = {\n prefix: 'fas',\n iconName: 'signal',\n icon: [640, 512, [], \"f012\", \"M216 288h-48c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V304c0-8.84-7.16-16-16-16zM88 384H40c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16zm256-192h-48c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm128-96h-48c-8.84 0-16 7.16-16 16v384c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112c0-8.84-7.16-16-16-16zM600 0h-48c-8.84 0-16 7.16-16 16v480c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z\"]\n};\nvar faSignature = {\n prefix: 'fas',\n iconName: 'signature',\n icon: [640, 512, [], \"f5b7\", \"M623.2 192c-51.8 3.5-125.7 54.7-163.1 71.5-29.1 13.1-54.2 24.4-76.1 24.4-22.6 0-26-16.2-21.3-51.9 1.1-8 11.7-79.2-42.7-76.1-25.1 1.5-64.3 24.8-169.5 126L192 182.2c30.4-75.9-53.2-151.5-129.7-102.8L7.4 116.3C0 121-2.2 130.9 2.5 138.4l17.2 27c4.7 7.5 14.6 9.7 22.1 4.9l58-38.9c18.4-11.7 40.7 7.2 32.7 27.1L34.3 404.1C27.5 421 37 448 64 448c8.3 0 16.5-3.2 22.6-9.4 42.2-42.2 154.7-150.7 211.2-195.8-2.2 28.5-2.1 58.9 20.6 83.8 15.3 16.8 37.3 25.3 65.5 25.3 35.6 0 68-14.6 102.3-30 33-14.8 99-62.6 138.4-65.8 8.5-.7 15.2-7.3 15.2-15.8v-32.1c.2-9.1-7.5-16.8-16.6-16.2z\"]\n};\nvar faSimCard = {\n prefix: 'fas',\n iconName: 'sim-card',\n icon: [384, 512, [], \"f7c4\", \"M0 64v384c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V128L256 0H64C28.7 0 0 28.7 0 64zm224 192h-64v-64h64v64zm96 0h-64v-64h32c17.7 0 32 14.3 32 32v32zm-64 128h64v32c0 17.7-14.3 32-32 32h-32v-64zm-96 0h64v64h-64v-64zm-96 0h64v64H96c-17.7 0-32-14.3-32-32v-32zm0-96h256v64H64v-64zm0-64c0-17.7 14.3-32 32-32h32v64H64v-32z\"]\n};\nvar faSink = {\n prefix: 'fas',\n iconName: 'sink',\n icon: [512, 512, [], \"e06d\", \"M32,416a96,96,0,0,0,96,96H384a96,96,0,0,0,96-96V384H32ZM496,288H400V256h64a16,16,0,0,0,16-16V224a16,16,0,0,0-16-16H384a32,32,0,0,0-32,32v48H288V96a32,32,0,0,1,64,0v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V96A96.16,96.16,0,0,0,300.87,1.86C255.29,10.71,224,53.36,224,99.79V288H160V240a32,32,0,0,0-32-32H48a16,16,0,0,0-16,16v16a16,16,0,0,0,16,16h64v32H16A16,16,0,0,0,0,304v32a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V304A16,16,0,0,0,496,288Z\"]\n};\nvar faSitemap = {\n prefix: 'fas',\n iconName: 'sitemap',\n icon: [640, 512, [], \"f0e8\", \"M128 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm-24-80h192v48h48v-48h192v48h48v-57.59c0-21.17-17.23-38.41-38.41-38.41H344v-64h40c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H256c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h40v64H94.41C73.23 224 56 241.23 56 262.41V320h48v-48zm264 80h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm240 0h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"]\n};\nvar faSkating = {\n prefix: 'fas',\n iconName: 'skating',\n icon: [448, 512, [], \"f7c5\", \"M400 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm0 448c-8.8 0-16 7.2-16 16s-7.2 16-16 16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm-282.2 8.6c-6.2 6.2-16.4 6.3-22.6 0l-67.9-67.9c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l67.9 67.9c9.4 9.4 21.7 14 34 14s24.6-4.7 33.9-14c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.3-22.7 0zm56.1-179.8l-93.7 93.7c-12.5 12.5-12.5 32.8 0 45.2 6.2 6.2 14.4 9.4 22.6 9.4s16.4-3.1 22.6-9.4l91.9-91.9-30.2-30.2c-5-5-9.4-10.7-13.2-16.8zM128 160h105.5l-20.1 17.2c-13.5 11.5-21.6 28.4-22.3 46.1-.7 17.8 6.1 35.2 18.7 47.7l78.2 78.2V432c0 17.7 14.3 32 32 32s32-14.3 32-32v-89.4c0-12.6-5.1-25-14.1-33.9l-61-61c.5-.4 1.2-.6 1.7-1.1l82.3-82.3c11.5-11.5 14.9-28.6 8.7-43.6-6.2-15-20.7-24.7-37-24.7H128c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faSkiing = {\n prefix: 'fas',\n iconName: 'skiing',\n icon: [512, 512, [], \"f7c9\", \"M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm73 356.1c-9.4-9.4-24.6-9.4-33.9 0-12.1 12.1-30.5 15.4-45.1 8.7l-135.8-70.2 49.2-73.8c12.7-19 10.2-44.5-6-60.6L293 215.7l-107-53.1c-2.9 19.9 3.4 40 17.7 54.4l75.1 75.2-45.9 68.8L35 258.7c-11.7-6-26.2-1.5-32.3 10.3-6.1 11.8-1.5 26.3 10.3 32.3l391.9 202.5c11.9 5.5 24.5 8.1 37.1 8.1 23.2 0 46-9 63-26 9.3-9.3 9.3-24.5 0-33.8zM120 91.6l-11.5 22.5c14.4 7.3 31.2 4.9 42.8-4.8l47.2 23.4c-.1.1-.1.2-.2.3l114.5 56.8 32.4-13 6.4 19.1c4 12.1 12.6 22 24 27.7l58.1 29c15.9 7.9 35 1.5 42.9-14.3 7.9-15.8 1.5-35-14.3-42.9l-52.1-26.1-17.1-51.2c-8.1-24.2-40.9-56.6-84.5-39.2l-81.2 32.5-62.5-31c.3-14.5-7.2-28.6-20.9-35.6l-11.1 21.7h-.2l-34.4-7c-1.8-.4-3.7.2-5 1.7-1.9 2.2-1.7 5.5.5 7.4l26.2 23z\"]\n};\nvar faSkiingNordic = {\n prefix: 'fas',\n iconName: 'skiing-nordic',\n icon: [576, 512, [], \"f7ca\", \"M336 96c26.5 0 48-21.5 48-48S362.5 0 336 0s-48 21.5-48 48 21.5 48 48 48zm216 320c-13.2 0-24 10.7-24 24 0 13.2-10.8 24-24 24h-69.5L460 285.6c11.7-4.7 20.1-16.2 20.1-29.6 0-17.7-14.3-32-32-32h-44L378 170.8c-12.5-25.5-35.5-44.2-61.8-50.9L245 98.7c-28.3-6.8-57.8-.5-80.8 17.1l-39.7 30.4c-14 10.7-16.7 30.8-5.9 44.9.7.9 1.7 1.3 2.4 2.1L66.9 464H24c-13.2 0-24 10.7-24 24s10.8 24 24 24h480c39.7 0 72-32.3 72-72 0-13.2-10.8-24-24-24zm-260.5 48h-96.9l43.1-91-22-13c-12.1-7.2-21.9-16.9-29.5-27.8L123.7 464H99.5l52.3-261.4c4.1-1 8.1-2.9 11.7-5.6l39.7-30.4c7.7-5.9 17.4-8 25.3-6.1l14.7 4.4-37.5 87.4c-12.6 29.5-1.3 64 26.3 80.3l85 50.2-25.5 81.2zm110.6 0h-43.6l23.6-75.5c5.9-20.8-2.9-43.1-21.6-54.4L299.3 298l31.3-78.3 20.3 41.4c8 16.3 24.9 26.9 43.1 26.9h33.3l-25.2 176z\"]\n};\nvar faSkull = {\n prefix: 'fas',\n iconName: 'skull',\n icon: [512, 512, [], \"f54c\", \"M256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.6 6.9 15.2 18.1 13.5 29.9l-9.4 66.2c-1.4 9.6 6 18.2 15.7 18.2H192v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h64v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h77.7c9.7 0 17.1-8.6 15.7-18.2l-9.4-66.2c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm-96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm192 0c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z\"]\n};\nvar faSkullCrossbones = {\n prefix: 'fas',\n iconName: 'skull-crossbones',\n icon: [448, 512, [], \"f714\", \"M439.15 453.06L297.17 384l141.99-69.06c7.9-3.95 11.11-13.56 7.15-21.46L432 264.85c-3.95-7.9-13.56-11.11-21.47-7.16L224 348.41 37.47 257.69c-7.9-3.95-17.51-.75-21.47 7.16L1.69 293.48c-3.95 7.9-.75 17.51 7.15 21.46L150.83 384 8.85 453.06c-7.9 3.95-11.11 13.56-7.15 21.47l14.31 28.63c3.95 7.9 13.56 11.11 21.47 7.15L224 419.59l186.53 90.72c7.9 3.95 17.51.75 21.47-7.15l14.31-28.63c3.95-7.91.74-17.52-7.16-21.47zM150 237.28l-5.48 25.87c-2.67 12.62 5.42 24.85 16.45 24.85h126.08c11.03 0 19.12-12.23 16.45-24.85l-5.5-25.87c41.78-22.41 70-62.75 70-109.28C368 57.31 303.53 0 224 0S80 57.31 80 128c0 46.53 28.22 86.87 70 109.28zM280 112c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32zm-112 0c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32z\"]\n};\nvar faSlash = {\n prefix: 'fas',\n iconName: 'slash',\n icon: [640, 512, [], \"f715\", \"M594.53 508.63L6.18 53.9c-6.97-5.42-8.23-15.47-2.81-22.45L23.01 6.18C28.43-.8 38.49-2.06 45.47 3.37L633.82 458.1c6.97 5.42 8.23 15.47 2.81 22.45l-19.64 25.27c-5.42 6.98-15.48 8.23-22.46 2.81z\"]\n};\nvar faSleigh = {\n prefix: 'fas',\n iconName: 'sleigh',\n icon: [640, 512, [], \"f7cc\", \"M612.7 350.7l-9.3-7.4c-6.9-5.5-17-4.4-22.5 2.5l-10 12.5c-5.5 6.9-4.4 17 2.5 22.5l9.3 7.4c5.9 4.7 9.2 11.7 9.2 19.2 0 13.6-11 24.6-24.6 24.6H48c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h516c39 0 73.7-29.3 75.9-68.3 1.4-23.8-8.7-46.3-27.2-61zM32 224c0 59.6 40.9 109.2 96 123.5V400h64v-48h192v48h64v-48c53 0 96-43 96-96v-96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-96v64c0 35.3-28.7 64-64 64h-20.7c-65.8 0-125.9-37.2-155.3-96-29.4-58.8-89.6-96-155.3-96H32C14.3 32 0 46.3 0 64s14.3 32 32 32v128z\"]\n};\nvar faSlidersH = {\n prefix: 'fas',\n iconName: 'sliders-h',\n icon: [512, 512, [], \"f1de\", \"M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z\"]\n};\nvar faSmile = {\n prefix: 'fas',\n iconName: 'smile',\n icon: [496, 512, [], \"f118\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm194.8 170.2C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.6-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.4-16.2 38.1 4.2 24.6 20.5z\"]\n};\nvar faSmileBeam = {\n prefix: 'fas',\n iconName: 'smile-beam',\n icon: [496, 512, [], \"f5b8\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM112 223.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zm250.8 122.8C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.3 24.6 20.5zm6.2-118.3l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.6 8.6-11 11.9-15.1 4.5z\"]\n};\nvar faSmileWink = {\n prefix: 'fas',\n iconName: 'smile-wink',\n icon: [496, 512, [], \"f4da\", \"M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm158.5 16.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.7 11.1-11.4 18.3-19.8 10.8l-9.7-8.5zM157.8 325.8C180.2 352.7 213 368 248 368s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.2 24.6 20.5C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11.2-36.7 24.6-20.4z\"]\n};\nvar faSmog = {\n prefix: 'fas',\n iconName: 'smog',\n icon: [640, 512, [], \"f75f\", \"M624 368H80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm-480 96H16c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm416 0H224c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h336c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zM144 288h156.1c22.5 19.7 51.6 32 83.9 32s61.3-12.3 83.9-32H528c61.9 0 112-50.1 112-112S589.9 64 528 64c-18 0-34.7 4.6-49.7 12.1C454 31 406.8 0 352 0c-41 0-77.8 17.3-104 44.8C221.8 17.3 185 0 144 0 64.5 0 0 64.5 0 144s64.5 144 144 144z\"]\n};\nvar faSmoking = {\n prefix: 'fas',\n iconName: 'smoking',\n icon: [640, 512, [], \"f48d\", \"M632 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zM553.3 87.1c-5.7-3.8-9.3-10-9.3-16.8V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v62.3c0 22 10.2 43.4 28.6 55.4 42.2 27.3 67.4 73.8 67.4 124V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-65.5-32.4-126.2-86.7-162.6zM432 352H48c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h384c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zm-32 112H224v-64h176v64zm87.7-322.4C463.8 125 448 99.3 448 70.3V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v66.4c0 43.7 24.6 81.6 60.3 106.7 22.4 15.7 35.7 41.2 35.7 68.6V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-43.3-21-83.4-56.3-108.1zM536 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z\"]\n};\nvar faSmokingBan = {\n prefix: 'fas',\n iconName: 'smoking-ban',\n icon: [512, 512, [], \"f54d\", \"M96 304c0 8.8 7.2 16 16 16h117.5l-96-96H112c-8.8 0-16 7.2-16 16v64zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 448c-105.9 0-192-86.1-192-192 0-41.4 13.3-79.7 35.7-111.1l267.4 267.4C335.7 434.7 297.4 448 256 448zm45.2-192H384v32h-50.8l-32-32zm111.1 111.1L365.2 320H400c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16H269.2L144.9 99.7C176.3 77.3 214.6 64 256 64c105.9 0 192 86.1 192 192 0 41.4-13.3 79.7-35.7 111.1zM320.6 128c-15.6 0-28.6-11.2-31.4-25.9-.7-3.6-4-6.1-7.7-6.1h-16.2c-5 0-8.7 4.5-8 9.4 4.6 30.9 31.2 54.6 63.3 54.6 15.6 0 28.6 11.2 31.4 25.9.7 3.6 4 6.1 7.7 6.1h16.2c5 0 8.7-4.5 8-9.4-4.6-30.9-31.2-54.6-63.3-54.6z\"]\n};\nvar faSms = {\n prefix: 'fas',\n iconName: 'sms',\n icon: [512, 512, [], \"f7cd\", \"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7 1.3 3 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128.2 304H116c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H156c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-19 38.6-42.4 38.6zm191.8-8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-68.2l-24.8 55.8c-2.9 5.9-11.4 5.9-14.3 0L224 227.8V296c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V192c0-8.8 7.2-16 16-16h16c6.1 0 11.6 3.4 14.3 8.8l17.7 35.4 17.7-35.4c2.7-5.4 8.3-8.8 14.3-8.8h16c8.8 0 16 7.2 16 16v104zm48.3 8H356c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H396c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-18.9 38.6-42.3 38.6z\"]\n};\nvar faSnowboarding = {\n prefix: 'fas',\n iconName: 'snowboarding',\n icon: [512, 512, [], \"f7ce\", \"M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm28.8 153.6c5.8 4.3 12.5 6.4 19.2 6.4 9.7 0 19.3-4.4 25.6-12.8 10.6-14.1 7.8-34.2-6.4-44.8l-111.4-83.5c-13.8-10.3-29.1-18.4-45.4-23.8l-63.7-21.2-26.1-52.1C244.7 2 225.5-4.4 209.7 3.5c-15.8 7.9-22.2 27.1-14.3 42.9l29.1 58.1c5.7 11.4 15.6 19.9 27.7 24l16.4 5.5-41.2 20.6c-21.8 10.9-35.4 32.8-35.4 57.2v53.1l-74.1 24.7c-16.8 5.6-25.8 23.7-20.2 40.5 1.7 5.2 4.9 9.4 8.7 12.9l-38.7-14.1c-9.7-3.5-17.4-10.6-21.8-20-5.6-12-19.9-17.2-31.9-11.6s-17.2 19.9-11.6 31.9c9.8 21 27.1 36.9 48.9 44.8l364.8 132.7c9.7 3.5 19.7 5.3 29.7 5.3 12.5 0 24.9-2.7 36.5-8.2 12-5.6 17.2-19.9 11.6-31.9S474 454.7 462 460.3c-9.3 4.4-19.8 4.8-29.5 1.3l-90.8-33.1c8.7-4.1 15.6-11.8 17.8-21.9l21.9-102c3.9-18.2-3.2-37.2-18.1-48.4l-52-39 66-30.5 83.5 62.9zm-144.4 51.7l-19.7 92c-1.5 7.1-.1 13.9 2.8 20l-169.4-61.6c2.7-.2 5.4-.4 8-1.3l85-28.4c19.6-6.5 32.8-24.8 32.8-45.5V256l60.5 45.3z\"]\n};\nvar faSnowflake = {\n prefix: 'fas',\n iconName: 'snowflake',\n icon: [448, 512, [], \"f2dc\", \"M440.3 345.2l-33.8-19.5 26-7c8.2-2.2 13.1-10.7 10.9-18.9l-4-14.9c-2.2-8.2-10.7-13.1-18.9-10.9l-70.8 19-63.9-37 63.8-36.9 70.8 19c8.2 2.2 16.7-2.7 18.9-10.9l4-14.9c2.2-8.2-2.7-16.7-10.9-18.9l-26-7 33.8-19.5c7.4-4.3 9.9-13.7 5.7-21.1L430.4 119c-4.3-7.4-13.7-9.9-21.1-5.7l-33.8 19.5 7-26c2.2-8.2-2.7-16.7-10.9-18.9l-14.9-4c-8.2-2.2-16.7 2.7-18.9 10.9l-19 70.8-62.8 36.2v-77.5l53.7-53.7c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0L256 56.4V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v40.4l-19.7-19.7c-6.2-6.2-16.4-6.2-22.6 0L138.3 48c-6.3 6.2-6.3 16.4 0 22.6l53.7 53.7v77.5l-62.8-36.2-19-70.8c-2.2-8.2-10.7-13.1-18.9-10.9l-14.9 4c-8.2 2.2-13.1 10.7-10.9 18.9l7 26-33.8-19.5c-7.4-4.3-16.8-1.7-21.1 5.7L2.1 145.7c-4.3 7.4-1.7 16.8 5.7 21.1l33.8 19.5-26 7c-8.3 2.2-13.2 10.7-11 19l4 14.9c2.2 8.2 10.7 13.1 18.9 10.9l70.8-19 63.8 36.9-63.8 36.9-70.8-19c-8.2-2.2-16.7 2.7-18.9 10.9l-4 14.9c-2.2 8.2 2.7 16.7 10.9 18.9l26 7-33.8 19.6c-7.4 4.3-9.9 13.7-5.7 21.1l15.5 26.8c4.3 7.4 13.7 9.9 21.1 5.7l33.8-19.5-7 26c-2.2 8.2 2.7 16.7 10.9 18.9l14.9 4c8.2 2.2 16.7-2.7 18.9-10.9l19-70.8 62.8-36.2v77.5l-53.7 53.7c-6.3 6.2-6.3 16.4 0 22.6l11.3 11.3c6.2 6.2 16.4 6.2 22.6 0l19.7-19.7V496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-40.4l19.7 19.7c6.2 6.2 16.4 6.2 22.6 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6L256 387.7v-77.5l62.8 36.2 19 70.8c2.2 8.2 10.7 13.1 18.9 10.9l14.9-4c8.2-2.2 13.1-10.7 10.9-18.9l-7-26 33.8 19.5c7.4 4.3 16.8 1.7 21.1-5.7l15.5-26.8c4.3-7.3 1.8-16.8-5.6-21z\"]\n};\nvar faSnowman = {\n prefix: 'fas',\n iconName: 'snowman',\n icon: [512, 512, [], \"f7d0\", \"M510.9 152.3l-5.9-14.5c-3.3-8-12.6-11.9-20.8-8.7L456 140.6v-29c0-8.6-7.2-15.6-16-15.6h-16c-8.8 0-16 7-16 15.6v46.9c0 .5.3 1 .3 1.5l-56.4 23c-5.9-10-13.3-18.9-22-26.6 13.6-16.6 22-37.4 22-60.5 0-53-43-96-96-96s-96 43-96 96c0 23.1 8.5 43.9 22 60.5-8.7 7.7-16 16.6-22 26.6l-56.4-23c.1-.5.3-1 .3-1.5v-46.9C104 103 96.8 96 88 96H72c-8.8 0-16 7-16 15.6v29l-28.1-11.5c-8.2-3.2-17.5.7-20.8 8.7l-5.9 14.5c-3.3 8 .7 17.1 8.9 20.3l135.2 55.2c-.4 4-1.2 8-1.2 12.2 0 10.1 1.7 19.6 4.2 28.9C120.9 296.4 104 334.2 104 376c0 54 28.4 100.9 70.8 127.8 9.3 5.9 20.3 8.2 31.3 8.2h99.2c13.3 0 26.3-4.1 37.2-11.7 46.5-32.3 74.4-89.4 62.9-152.6-5.5-30.2-20.5-57.6-41.6-79 2.5-9.2 4.2-18.7 4.2-28.7 0-4.2-.8-8.1-1.2-12.2L502 172.6c8.1-3.1 12.1-12.2 8.9-20.3zM224 96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 272c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-88s-16-23.2-16-32 7.2-16 16-16 16 7.2 16 16-16 32-16 32zm32-56c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faSnowplow = {\n prefix: 'fas',\n iconName: 'snowplow',\n icon: [640, 512, [], \"f7d2\", \"M120 376c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm238.6 49.4c-14.5-14.5-22.6-34.1-22.6-54.6V269.2c0-20.5 8.1-40.1 22.6-54.6l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6l-22.6-22.6c-6.2-6.2-16.4-6.2-22.6 0l-36.7 36.7c-26.5 26.5-41.4 62.4-41.4 99.9V288h-64v-50.9c0-8.7-1.8-17.2-5.2-25.2L364.5 29.1C356.9 11.4 339.6 0 320.3 0H176c-26.5 0-48 21.5-48 48v112h-16c-26.5 0-48 21.5-48 48v91.2C26.3 317.2 0 355.4 0 400c0 61.9 50.1 112 112 112h256c61.9 0 112-50.1 112-112 0-17.3-4.2-33.4-11.2-48H512v18.7c0 37.5 14.9 73.4 41.4 99.9l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0l22.6-22.6c6.2-6.2 6.2-16.4 0-22.6l-36.7-36.7zM192 64h117.8l68.6 160H256l-64-64V64zm176 384H112c-26.5 0-48-21.5-48-48s21.5-48 48-48h256c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faSoap = {\n prefix: 'fas',\n iconName: 'soap',\n icon: [512, 512, [], \"e06e\", \"M416,192a95.42,95.42,0,0,1-30.94,70.21A95.8,95.8,0,0,1,352,448H160a96,96,0,0,1,0-192h88.91A95.3,95.3,0,0,1,224,192H96A96,96,0,0,0,0,288V416a96,96,0,0,0,96,96H416a96,96,0,0,0,96-96V288A96,96,0,0,0,416,192Zm-96,64a64,64,0,1,0-64-64A64,64,0,0,0,320,256ZM208,96a48,48,0,1,0-48-48A48,48,0,0,0,208,96ZM384,64a32,32,0,1,0-32-32A32,32,0,0,0,384,64ZM160,288a64,64,0,0,0,0,128H352a64,64,0,0,0,0-128Z\"]\n};\nvar faSocks = {\n prefix: 'fas',\n iconName: 'socks',\n icon: [512, 512, [], \"f696\", \"M214.66 311.01L288 256V96H128v176l-86.65 64.61c-39.4 29.56-53.86 84.42-29.21 127.06C30.39 495.25 63.27 512 96.08 512c20.03 0 40.25-6.25 57.52-19.2l21.86-16.39c-29.85-55.38-13.54-125.84 39.2-165.4zM288 32c0-11.05 3.07-21.3 8.02-30.38C293.4.92 290.85 0 288 0H160c-17.67 0-32 14.33-32 32v32h160V32zM480 0H352c-17.67 0-32 14.33-32 32v32h192V32c0-17.67-14.33-32-32-32zM320 272l-86.13 64.61c-39.4 29.56-53.86 84.42-29.21 127.06 18.25 31.58 50.61 48.33 83.42 48.33 20.03 0 40.25-6.25 57.52-19.2l115.2-86.4A127.997 127.997 0 0 0 512 304V96H320v176z\"]\n};\nvar faSolarPanel = {\n prefix: 'fas',\n iconName: 'solar-panel',\n icon: [640, 512, [], \"f5ba\", \"M431.98 448.01l-47.97.05V416h-128v32.21l-47.98.05c-8.82.01-15.97 7.16-15.98 15.99l-.05 31.73c-.01 8.85 7.17 16.03 16.02 16.02l223.96-.26c8.82-.01 15.97-7.16 15.98-15.98l.04-31.73c.01-8.85-7.17-16.03-16.02-16.02zM585.2 26.74C582.58 11.31 568.99 0 553.06 0H86.93C71 0 57.41 11.31 54.79 26.74-3.32 369.16.04 348.08.03 352c-.03 17.32 14.29 32 32.6 32h574.74c18.23 0 32.51-14.56 32.59-31.79.02-4.08 3.35 16.95-54.76-325.47zM259.83 64h120.33l9.77 96H250.06l9.77-96zm-75.17 256H71.09L90.1 208h105.97l-11.41 112zm16.29-160H98.24l16.29-96h96.19l-9.77 96zm32.82 160l11.4-112h149.65l11.4 112H233.77zm195.5-256h96.19l16.29 96H439.04l-9.77-96zm26.06 256l-11.4-112H549.9l19.01 112H455.33z\"]\n};\nvar faSort = {\n prefix: 'fas',\n iconName: 'sort',\n icon: [320, 512, [], \"f0dc\", \"M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z\"]\n};\nvar faSortAlphaDown = {\n prefix: 'fas',\n iconName: 'sort-alpha-down',\n icon: [448, 512, [], \"f15d\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm240-64H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z\"]\n};\nvar faSortAlphaDownAlt = {\n prefix: 'fas',\n iconName: 'sort-alpha-down-alt',\n icon: [448, 512, [], \"f881\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm112-128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z\"]\n};\nvar faSortAlphaUp = {\n prefix: 'fas',\n iconName: 'sort-alpha-up',\n icon: [448, 512, [], \"f15e\", \"M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm400 128H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z\"]\n};\nvar faSortAlphaUpAlt = {\n prefix: 'fas',\n iconName: 'sort-alpha-up-alt',\n icon: [448, 512, [], \"f882\", \"M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm272 64h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z\"]\n};\nvar faSortAmountDown = {\n prefix: 'fas',\n iconName: 'sort-amount-down',\n icon: [512, 512, [], \"f160\", \"M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-128-64h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm256-192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faSortAmountDownAlt = {\n prefix: 'fas',\n iconName: 'sort-amount-down-alt',\n icon: [512, 512, [], \"f884\", \"M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm-64 0h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"]\n};\nvar faSortAmountUp = {\n prefix: 'fas',\n iconName: 'sort-amount-up',\n icon: [512, 512, [], \"f161\", \"M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.77 160 16 160zm416 0H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faSortAmountUpAlt = {\n prefix: 'fas',\n iconName: 'sort-amount-up-alt',\n icon: [512, 512, [], \"f885\", \"M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.39-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160z\"]\n};\nvar faSortDown = {\n prefix: 'fas',\n iconName: 'sort-down',\n icon: [320, 512, [], \"f0dd\", \"M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41z\"]\n};\nvar faSortNumericDown = {\n prefix: 'fas',\n iconName: 'sort-numeric-down',\n icon: [448, 512, [], \"f162\", \"M304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zm26.15 162.91a79 79 0 0 0-55 54.17c-14.25 51.05 21.21 97.77 68.85 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zm-176-4h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"]\n};\nvar faSortNumericDownAlt = {\n prefix: 'fas',\n iconName: 'sort-numeric-down-alt',\n icon: [448, 512, [], \"f886\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm224 64h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\"]\n};\nvar faSortNumericUp = {\n prefix: 'fas',\n iconName: 'sort-numeric-up',\n icon: [448, 512, [], \"f163\", \"M330.17 258.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zM304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zM107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31z\"]\n};\nvar faSortNumericUpAlt = {\n prefix: 'fas',\n iconName: 'sort-numeric-up-alt',\n icon: [448, 512, [], \"f887\", \"M107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31zM400 416h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\"]\n};\nvar faSortUp = {\n prefix: 'fas',\n iconName: 'sort-up',\n icon: [320, 512, [], \"f0de\", \"M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z\"]\n};\nvar faSpa = {\n prefix: 'fas',\n iconName: 'spa',\n icon: [576, 512, [], \"f5bb\", \"M568.25 192c-29.04.13-135.01 6.16-213.84 83-33.12 29.63-53.36 63.3-66.41 94.86-13.05-31.56-33.29-65.23-66.41-94.86-78.83-76.84-184.8-82.87-213.84-83-4.41-.02-7.79 3.4-7.75 7.82.23 27.92 7.14 126.14 88.77 199.3C172.79 480.94 256 480 288 480s115.19.95 199.23-80.88c81.64-73.17 88.54-171.38 88.77-199.3.04-4.42-3.34-7.84-7.75-7.82zM287.98 302.6c12.82-18.85 27.6-35.78 44.09-50.52 19.09-18.61 39.58-33.3 60.26-45.18-16.44-70.5-51.72-133.05-96.73-172.22-4.11-3.58-11.02-3.58-15.14 0-44.99 39.14-80.27 101.63-96.74 172.07 20.37 11.7 40.5 26.14 59.22 44.39a282.768 282.768 0 0 1 45.04 51.46z\"]\n};\nvar faSpaceShuttle = {\n prefix: 'fas',\n iconName: 'space-shuttle',\n icon: [640, 512, [], \"f197\", \"M592.604 208.244C559.735 192.836 515.777 184 472 184H186.327c-4.952-6.555-10.585-11.978-16.72-16H376C229.157 137.747 219.403 32 96.003 32H96v128H80V32c-26.51 0-48 28.654-48 64v64c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v16c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v64c0 35.346 21.49 64 48 64V352h16v128h.003c123.4 0 133.154-105.747 279.997-136H169.606c6.135-4.022 11.768-9.445 16.72-16H472c43.777 0 87.735-8.836 120.604-24.244C622.282 289.845 640 271.992 640 256s-17.718-33.845-47.396-47.756zM488 296a8 8 0 0 1-8-8v-64a8 8 0 0 1 8-8c31.909 0 31.942 80 0 80z\"]\n};\nvar faSpellCheck = {\n prefix: 'fas',\n iconName: 'spell-check',\n icon: [576, 512, [], \"f891\", \"M272 256h91.36c43.2 0 82-32.2 84.51-75.34a79.82 79.82 0 0 0-25.26-63.07 79.81 79.81 0 0 0 9.06-44.91C427.9 30.57 389.3 0 347 0h-75a16 16 0 0 0-16 16v224a16 16 0 0 0 16 16zm40-200h40a24 24 0 0 1 0 48h-40zm0 96h56a24 24 0 0 1 0 48h-56zM155.12 22.25A32 32 0 0 0 124.64 0H99.36a32 32 0 0 0-30.48 22.25L.59 235.73A16 16 0 0 0 16 256h24.93a16 16 0 0 0 15.42-11.73L68.29 208h87.42l11.94 36.27A16 16 0 0 0 183.07 256H208a16 16 0 0 0 15.42-20.27zM89.37 144L112 75.3l22.63 68.7zm482 132.48l-45.21-45.3a15.88 15.88 0 0 0-22.59 0l-151.5 151.5-55.41-55.5a15.88 15.88 0 0 0-22.59 0l-45.3 45.3a16 16 0 0 0 0 22.59l112 112.21a15.89 15.89 0 0 0 22.6 0l208-208.21a16 16 0 0 0-.02-22.59z\"]\n};\nvar faSpider = {\n prefix: 'fas',\n iconName: 'spider',\n icon: [576, 512, [], \"f717\", \"M151.17 167.35L177.1 176h4.67l5.22-26.12c.72-3.58 1.8-7.58 3.21-11.79l-20.29-40.58 23.8-71.39c2.79-8.38-1.73-17.44-10.12-20.24L168.42.82c-8.38-2.8-17.45 1.73-20.24 10.12l-25.89 77.68a32.04 32.04 0 0 0 1.73 24.43l27.15 54.3zm422.14 182.03l-52.75-79.12a32.002 32.002 0 0 0-26.62-14.25H416l68.99-24.36a32.03 32.03 0 0 0 16.51-12.61l53.6-80.41c4.9-7.35 2.91-17.29-4.44-22.19l-13.31-8.88c-7.35-4.9-17.29-2.91-22.19 4.44l-50.56 75.83L404.1 208H368l-10.37-51.85C355.44 145.18 340.26 96 288 96c-52.26 0-67.44 49.18-69.63 60.15L208 208h-36.1l-60.49-20.17L60.84 112c-4.9-7.35-14.83-9.34-22.19-4.44l-13.31 8.88c-7.35 4.9-9.34 14.83-4.44 22.19l53.6 80.41a32.03 32.03 0 0 0 16.51 12.61L160 256H82.06a32.02 32.02 0 0 0-26.63 14.25L2.69 349.38c-4.9 7.35-2.92 17.29 4.44 22.19l13.31 8.88c7.35 4.9 17.29 2.91 22.19-4.44l48-72h47.06l-60.83 97.33A31.988 31.988 0 0 0 72 418.3V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-73.11l74.08-118.53c-1.01 14.05-2.08 28.11-2.08 42.21C192 399.64 232.76 448 288 448s96-48.36 96-101.43c0-14.1-1.08-28.16-2.08-42.21L456 422.89V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-77.71c0-6-1.69-11.88-4.86-16.96L438.31 304h47.06l48 72c4.9 7.35 14.84 9.34 22.19 4.44l13.31-8.88c7.36-4.9 9.34-14.83 4.44-22.18zM406.09 97.51l-20.29 40.58c1.41 4.21 2.49 8.21 3.21 11.79l5.22 26.12h4.67l25.93-8.65 27.15-54.3a31.995 31.995 0 0 0 1.73-24.43l-25.89-77.68C425.03 2.56 415.96-1.98 407.58.82l-15.17 5.06c-8.38 2.8-12.91 11.86-10.12 20.24l23.8 71.39z\"]\n};\nvar faSpinner = {\n prefix: 'fas',\n iconName: 'spinner',\n icon: [512, 512, [], \"f110\", \"M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z\"]\n};\nvar faSplotch = {\n prefix: 'fas',\n iconName: 'splotch',\n icon: [512, 512, [], \"f5bc\", \"M472.29 195.89l-67.06-22.95c-19.28-6.6-33.54-20.92-38.14-38.3L351.1 74.19c-11.58-43.77-76.57-57.13-109.98-22.62l-46.14 47.67c-13.26 13.71-33.54 20.93-54.2 19.31l-71.88-5.62c-52.05-4.07-86.93 44.88-59.03 82.83l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24L24.62 355.4c-20.59 41.25 22.84 84.87 73.49 73.81l69.96-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101.04 7.57 104.45-37.22l4.7-61.86c1.35-17.79 12.8-33.86 30.63-42.99l62-31.74c44.88-22.96 39.59-80.17-8.95-96.79z\"]\n};\nvar faSprayCan = {\n prefix: 'fas',\n iconName: 'spray-can',\n icon: [512, 512, [], \"f5bd\", \"M224 32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96h128V32zm256 96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-256 32H96c-53.02 0-96 42.98-96 96v224c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V256c0-53.02-42.98-96-96-96zm-64 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zM480 96c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm-96 32c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-96-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 0c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 192c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"]\n};\nvar faSquare = {\n prefix: 'fas',\n iconName: 'square',\n icon: [448, 512, [], \"f0c8\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"]\n};\nvar faSquareFull = {\n prefix: 'fas',\n iconName: 'square-full',\n icon: [512, 512, [], \"f45c\", \"M512 512H0V0h512v512z\"]\n};\nvar faSquareRootAlt = {\n prefix: 'fas',\n iconName: 'square-root-alt',\n icon: [576, 512, [], \"f698\", \"M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z\"]\n};\nvar faStamp = {\n prefix: 'fas',\n iconName: 'stamp',\n icon: [512, 512, [], \"f5bf\", \"M32 512h448v-64H32v64zm384-256h-66.56c-16.26 0-29.44-13.18-29.44-29.44v-9.46c0-27.37 8.88-53.41 21.46-77.72 9.11-17.61 12.9-38.39 9.05-60.42-6.77-38.78-38.47-70.7-77.26-77.45C212.62-9.04 160 37.33 160 96c0 14.16 3.12 27.54 8.69 39.58C182.02 164.43 192 194.7 192 226.49v.07c0 16.26-13.18 29.44-29.44 29.44H96c-53.02 0-96 42.98-96 96v32c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-32c0-53.02-42.98-96-96-96z\"]\n};\nvar faStar = {\n prefix: 'fas',\n iconName: 'star',\n icon: [576, 512, [], \"f005\", \"M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z\"]\n};\nvar faStarAndCrescent = {\n prefix: 'fas',\n iconName: 'star-and-crescent',\n icon: [512, 512, [], \"f699\", \"M340.47 466.36c-1.45 0-6.89.46-9.18.46-116.25 0-210.82-94.57-210.82-210.82S215.04 45.18 331.29 45.18c2.32 0 7.7.46 9.18.46 7.13 0 13.33-5.03 14.75-12.07 1.46-7.25-2.55-14.49-9.47-17.09C316.58 5.54 286.39 0 256 0 114.84 0 0 114.84 0 256s114.84 256 256 256c30.23 0 60.28-5.49 89.32-16.32 5.96-2.02 10.28-7.64 10.28-14.26 0-8.09-6.39-15.06-15.13-15.06zm162.99-252.5l-76.38-11.1-34.16-69.21c-1.83-3.7-5.38-5.55-8.93-5.55s-7.1 1.85-8.93 5.55l-34.16 69.21-76.38 11.1c-8.17 1.18-11.43 11.22-5.52 16.99l55.27 53.87-13.05 76.07c-1.11 6.44 4.01 11.66 9.81 11.66 1.53 0 3.11-.36 4.64-1.17L384 335.37l68.31 35.91c1.53.8 3.11 1.17 4.64 1.17 5.8 0 10.92-5.23 9.81-11.66l-13.05-76.07 55.27-53.87c5.91-5.77 2.65-15.81-5.52-16.99z\"]\n};\nvar faStarHalf = {\n prefix: 'fas',\n iconName: 'star-half',\n icon: [576, 512, [], \"f089\", \"M288 0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6V0z\"]\n};\nvar faStarHalfAlt = {\n prefix: 'fas',\n iconName: 'star-half-alt',\n icon: [536, 512, [], \"f5c0\", \"M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z\"]\n};\nvar faStarOfDavid = {\n prefix: 'fas',\n iconName: 'star-of-david',\n icon: [464, 512, [], \"f69a\", \"M405.68 256l53.21-89.39C473.3 142.4 455.48 112 426.88 112H319.96l-55.95-93.98C256.86 6.01 244.43 0 232 0s-24.86 6.01-32.01 18.02L144.04 112H37.11c-28.6 0-46.42 30.4-32.01 54.61L58.32 256 5.1 345.39C-9.31 369.6 8.51 400 37.11 400h106.93l55.95 93.98C207.14 505.99 219.57 512 232 512s24.86-6.01 32.01-18.02L319.96 400h106.93c28.6 0 46.42-30.4 32.01-54.61L405.68 256zm-12.78-88l-19.8 33.26L353.3 168h39.6zm-52.39 88l-52.39 88H175.88l-52.39-88 52.38-88h112.25l52.39 88zM232 73.72L254.79 112h-45.57L232 73.72zM71.1 168h39.6l-19.8 33.26L71.1 168zm0 176l19.8-33.26L110.7 344H71.1zM232 438.28L209.21 400h45.57L232 438.28zM353.29 344l19.8-33.26L392.9 344h-39.61z\"]\n};\nvar faStarOfLife = {\n prefix: 'fas',\n iconName: 'star-of-life',\n icon: [480, 512, [], \"f621\", \"M471.99 334.43L336.06 256l135.93-78.43c7.66-4.42 10.28-14.2 5.86-21.86l-32.02-55.43c-4.42-7.65-14.21-10.28-21.87-5.86l-135.93 78.43V16c0-8.84-7.17-16-16.01-16h-64.04c-8.84 0-16.01 7.16-16.01 16v156.86L56.04 94.43c-7.66-4.42-17.45-1.79-21.87 5.86L2.15 155.71c-4.42 7.65-1.8 17.44 5.86 21.86L143.94 256 8.01 334.43c-7.66 4.42-10.28 14.21-5.86 21.86l32.02 55.43c4.42 7.65 14.21 10.27 21.87 5.86l135.93-78.43V496c0 8.84 7.17 16 16.01 16h64.04c8.84 0 16.01-7.16 16.01-16V339.14l135.93 78.43c7.66 4.42 17.45 1.8 21.87-5.86l32.02-55.43c4.42-7.65 1.8-17.43-5.86-21.85z\"]\n};\nvar faStepBackward = {\n prefix: 'fas',\n iconName: 'step-backward',\n icon: [448, 512, [], \"f048\", \"M64 468V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v176.4l195.5-181C352.1 22.3 384 36.6 384 64v384c0 27.4-31.9 41.7-52.5 24.6L136 292.7V468c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12z\"]\n};\nvar faStepForward = {\n prefix: 'fas',\n iconName: 'step-forward',\n icon: [448, 512, [], \"f051\", \"M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z\"]\n};\nvar faStethoscope = {\n prefix: 'fas',\n iconName: 'stethoscope',\n icon: [512, 512, [], \"f0f1\", \"M447.1 112c-34.2.5-62.3 28.4-63 62.6-.5 24.3 12.5 45.6 32 56.8V344c0 57.3-50.2 104-112 104-60 0-109.2-44.1-111.9-99.2C265 333.8 320 269.2 320 192V36.6c0-11.4-8.1-21.3-19.3-23.5L237.8.5c-13-2.6-25.6 5.8-28.2 18.8L206.4 35c-2.6 13 5.8 25.6 18.8 28.2l30.7 6.1v121.4c0 52.9-42.2 96.7-95.1 97.2-53.4.5-96.9-42.7-96.9-96V69.4l30.7-6.1c13-2.6 21.4-15.2 18.8-28.2l-3.1-15.7C107.7 6.4 95.1-2 82.1.6L19.3 13C8.1 15.3 0 25.1 0 36.6V192c0 77.3 55.1 142 128.1 156.8C130.7 439.2 208.6 512 304 512c97 0 176-75.4 176-168V231.4c19.1-11.1 32-31.7 32-55.4 0-35.7-29.2-64.5-64.9-64zm.9 80c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faStickyNote = {\n prefix: 'fas',\n iconName: 'sticky-note',\n icon: [448, 512, [], \"f249\", \"M312 320h136V56c0-13.3-10.7-24-24-24H24C10.7 32 0 42.7 0 56v400c0 13.3 10.7 24 24 24h264V344c0-13.2 10.8-24 24-24zm129 55l-98 98c-4.5 4.5-10.6 7-17 7h-6V352h128v6.1c0 6.3-2.5 12.4-7 16.9z\"]\n};\nvar faStop = {\n prefix: 'fas',\n iconName: 'stop',\n icon: [448, 512, [], \"f04d\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"]\n};\nvar faStopCircle = {\n prefix: 'fas',\n iconName: 'stop-circle',\n icon: [512, 512, [], \"f28d\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z\"]\n};\nvar faStopwatch = {\n prefix: 'fas',\n iconName: 'stopwatch',\n icon: [448, 512, [], \"f2f2\", \"M432 304c0 114.9-93.1 208-208 208S16 418.9 16 304c0-104 76.3-190.2 176-205.5V64h-28c-6.6 0-12-5.4-12-12V12c0-6.6 5.4-12 12-12h120c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-28v34.5c37.5 5.8 71.7 21.6 99.7 44.6l27.5-27.5c4.7-4.7 12.3-4.7 17 0l28.3 28.3c4.7 4.7 4.7 12.3 0 17l-29.4 29.4-.6.6C419.7 223.3 432 262.2 432 304zm-176 36V188.5c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12V340c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z\"]\n};\nvar faStopwatch20 = {\n prefix: 'fas',\n iconName: 'stopwatch-20',\n icon: [448, 512, [], \"e06f\", \"M398.5,190.91l.59-.61,26.59-26.58a16,16,0,0,0,0-22.63L403,118.41a16,16,0,0,0-22.63,0l-24.68,24.68A206.68,206.68,0,0,0,256,98.5V64h32a16,16,0,0,0,16-16V16A16,16,0,0,0,288,0H160a16.05,16.05,0,0,0-16,16V48a16.05,16.05,0,0,0,16,16h32V98.5A207.92,207.92,0,0,0,16.09,297.57C12.64,411.5,106.76,510.22,220.72,512,337.13,513.77,432,420,432,304A206,206,0,0,0,398.5,190.91ZM204.37,377.55a8.2,8.2,0,0,1,8.32,8.07v22.31a8.2,8.2,0,0,1-8.32,8.07H121.52a16.46,16.46,0,0,1-16.61-17.62c2.78-35.22,14.67-57.41,38.45-91.37,20.42-29.19,27.1-37.32,27.1-62.34,0-16.92-1.79-24.27-12.21-24.27-9.39,0-12.69,7.4-12.69,22.68v5.23a8.2,8.2,0,0,1-8.33,8.07h-24.9a8.2,8.2,0,0,1-8.33-8.07v-4.07c0-27.3,8.48-60.24,56.43-60.24,43,0,55.57,25.85,55.57,61,0,35.58-12.44,51.21-34.35,81.31-11.56,15-24.61,35.57-26.41,51.2ZM344,352.32c0,35.16-12.3,63.68-57.23,63.68C243.19,416,232,386.48,232,352.55V247.22c0-40.73,19.58-63.22,56.2-63.22C325,184,344,206.64,344,245.3ZM287.87,221.73c-9.41,0-13.23,7.5-13.23,20V357.68c0,13.11,3.59,20.59,13.23,20.59s13-8,13-21.27V241.06C300.89,229.79,297.88,221.73,287.87,221.73Z\"]\n};\nvar faStore = {\n prefix: 'fas',\n iconName: 'store',\n icon: [616, 512, [], \"f54e\", \"M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-33.5 53.5-3.8 127.9 58.8 136.4 4.5.6 9.1.9 13.7.9 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.8 33.1 4.7 0 9.2-.3 13.7-.9 62.8-8.4 92.6-82.8 59-136.4zM529.5 288c-10 0-19.9-1.5-29.5-3.8V384H116v-99.8c-9.6 2.2-19.5 3.8-29.5 3.8-6 0-12.1-.4-18-1.2-5.6-.8-11.1-2.1-16.4-3.6V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32V283.2c-5.4 1.6-10.8 2.9-16.4 3.6-6.1.8-12.1 1.2-18.2 1.2z\"]\n};\nvar faStoreAlt = {\n prefix: 'fas',\n iconName: 'store-alt',\n icon: [640, 512, [], \"f54f\", \"M320 384H128V224H64v256c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V224h-64v160zm314.6-241.8l-85.3-128c-6-8.9-16-14.2-26.7-14.2H117.4c-10.7 0-20.7 5.3-26.6 14.2l-85.3 128c-14.2 21.3 1 49.8 26.6 49.8H608c25.5 0 40.7-28.5 26.6-49.8zM512 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h-64v272z\"]\n};\nvar faStoreAltSlash = {\n prefix: 'fas',\n iconName: 'store-alt-slash',\n icon: [640, 512, [], \"e070\", \"M17.89,123.62,5.51,142.2c-14.2,21.3,1,49.8,26.59,49.8h74.26ZM576,413.42V224H512V364L384,265V224H330.92l-41.4-32H608c25.5,0,40.7-28.5,26.59-49.8l-85.29-128A32.18,32.18,0,0,0,522.6,0H117.42A31.87,31.87,0,0,0,90.81,14.2l-10.66,16L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.81l19.64-25.26a16,16,0,0,0-2.81-22.45ZM320,384H128V224H64V480a32,32,0,0,0,32,32H352a32,32,0,0,0,32-32V406.59l-64-49.47Z\"]\n};\nvar faStoreSlash = {\n prefix: 'fas',\n iconName: 'store-slash',\n icon: [640, 512, [], \"e071\", \"M121.51,384V284.2a119.43,119.43,0,0,1-28,3.8,123.46,123.46,0,0,1-17.1-1.2,114.88,114.88,0,0,1-15.58-3.6V480c0,17.7,13.59,32,30.4,32H505.75L348.42,384Zm-28-128.09c25.1,0,47.29-10.72,64-27.24L24,120.05c-30.52,53.39-2.45,126.53,56.49,135A95.68,95.68,0,0,0,93.48,255.91ZM602.13,458.09,547.2,413.41V283.2a93.5,93.5,0,0,1-15.57,3.6,127.31,127.31,0,0,1-17.29,1.2,114.89,114.89,0,0,1-28-3.8v79.68L348.52,251.77a88.06,88.06,0,0,0,25.41,4.14c28.11,0,53-13,70.11-33.11,17.19,20.11,42.08,33.11,70.11,33.11a94.31,94.31,0,0,0,13-.91c59.66-8.41,88-82.8,56.06-136.4L521.55,15A30.1,30.1,0,0,0,495.81,0H112A30.11,30.11,0,0,0,86.27,15L76.88,30.78,43.19,3.38A14.68,14.68,0,0,0,21.86,6.19L3.2,31.45A16.58,16.58,0,0,0,5.87,53.91L564.81,508.63a14.69,14.69,0,0,0,21.33-2.82l18.66-25.26A16.58,16.58,0,0,0,602.13,458.09Z\"]\n};\nvar faStream = {\n prefix: 'fas',\n iconName: 'stream',\n icon: [512, 512, [], \"f550\", \"M16 128h416c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H16C7.16 32 0 39.16 0 48v64c0 8.84 7.16 16 16 16zm480 80H80c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-64 176H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16z\"]\n};\nvar faStreetView = {\n prefix: 'fas',\n iconName: 'street-view',\n icon: [512, 512, [], \"f21d\", \"M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z\"]\n};\nvar faStrikethrough = {\n prefix: 'fas',\n iconName: 'strikethrough',\n icon: [512, 512, [], \"f0cc\", \"M496 224H293.9l-87.17-26.83A43.55 43.55 0 0 1 219.55 112h66.79A49.89 49.89 0 0 1 331 139.58a16 16 0 0 0 21.46 7.15l42.94-21.47a16 16 0 0 0 7.16-21.46l-.53-1A128 128 0 0 0 287.51 32h-68a123.68 123.68 0 0 0-123 135.64c2 20.89 10.1 39.83 21.78 56.36H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-180.24 96A43 43 0 0 1 336 356.45 43.59 43.59 0 0 1 292.45 400h-66.79A49.89 49.89 0 0 1 181 372.42a16 16 0 0 0-21.46-7.15l-42.94 21.47a16 16 0 0 0-7.16 21.46l.53 1A128 128 0 0 0 224.49 480h68a123.68 123.68 0 0 0 123-135.64 114.25 114.25 0 0 0-5.34-24.36z\"]\n};\nvar faStroopwafel = {\n prefix: 'fas',\n iconName: 'stroopwafel',\n icon: [512, 512, [], \"f551\", \"M188.12 210.74L142.86 256l45.25 45.25L233.37 256l-45.25-45.26zm113.13-22.62L256 142.86l-45.25 45.25L256 233.37l45.25-45.25zm-90.5 135.76L256 369.14l45.26-45.26L256 278.63l-45.25 45.25zM256 0C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm186.68 295.6l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-28.29-28.29-45.25 45.25 33.94 33.94 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-33.94-33.94-45.26 45.26 28.29 28.29c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0L256 414.39l-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l28.29-28.29-45.25-45.26-33.94 33.94 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 33.94-33.94-45.25-45.25-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0L69.32 295.6c-3.12-3.12-3.12-8.19 0-11.31L97.61 256l-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l28.29 28.29 45.25-45.26-33.94-33.94-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 33.94 33.94 45.26-45.25-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0L256 97.61l28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-28.29 28.29 45.26 45.25 33.94-33.94-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-33.94 33.94 45.25 45.26 28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31L414.39 256l28.29 28.28a8.015 8.015 0 0 1 0 11.32zM278.63 256l45.26 45.25L369.14 256l-45.25-45.26L278.63 256z\"]\n};\nvar faSubscript = {\n prefix: 'fas',\n iconName: 'subscript',\n icon: [512, 512, [], \"f12c\", \"M496 448h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 352h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z\"]\n};\nvar faSubway = {\n prefix: 'fas',\n iconName: 'subway',\n icon: [448, 512, [], \"f239\", \"M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zM200 232V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm200 0V120c0-13.255-10.745-24-24-24H272c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm-48 56c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm-256 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\"]\n};\nvar faSuitcase = {\n prefix: 'fas',\n iconName: 'suitcase',\n icon: [512, 512, [], \"f0f2\", \"M128 480h256V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v400zm64-384h128v32H192V96zm320 80v256c0 26.5-21.5 48-48 48h-48V128h48c26.5 0 48 21.5 48 48zM96 480H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h48v352z\"]\n};\nvar faSuitcaseRolling = {\n prefix: 'fas',\n iconName: 'suitcase-rolling',\n icon: [384, 512, [], \"f5c1\", \"M336 160H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h16v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h128v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h16c26.51 0 48-21.49 48-48V208c0-26.51-21.49-48-48-48zm-16 216c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zM144 48h96v80h48V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v80h48V48z\"]\n};\nvar faSun = {\n prefix: 'fas',\n iconName: 'sun',\n icon: [512, 512, [], \"f185\", \"M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z\"]\n};\nvar faSuperscript = {\n prefix: 'fas',\n iconName: 'superscript',\n icon: [512, 512, [], \"f12b\", \"M496 160h-16V16a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 64h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z\"]\n};\nvar faSurprise = {\n prefix: 'fas',\n iconName: 'surprise',\n icon: [496, 512, [], \"f5c2\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm112 208c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm80-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faSwatchbook = {\n prefix: 'fas',\n iconName: 'swatchbook',\n icon: [512, 512, [], \"f5c3\", \"M434.66,167.71h0L344.5,77.36a31.83,31.83,0,0,0-45-.07h0l-.07.07L224,152.88V424L434.66,212.9A32,32,0,0,0,434.66,167.71ZM480,320H373.09L186.68,506.51c-2.06,2.07-4.5,3.58-6.68,5.49H480a32,32,0,0,0,32-32V352A32,32,0,0,0,480,320ZM192,32A32,32,0,0,0,160,0H32A32,32,0,0,0,0,32V416a96,96,0,0,0,192,0ZM96,440a24,24,0,1,1,24-24A24,24,0,0,1,96,440Zm32-184H64V192h64Zm0-128H64V64h64Z\"]\n};\nvar faSwimmer = {\n prefix: 'fas',\n iconName: 'swimmer',\n icon: [640, 512, [], \"f5c4\", \"M189.61 310.58c3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c16.02-14.77 34.5-22.58 53.46-22.58h16.3c18.96 0 37.45 7.81 53.46 22.58 3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c14.86-13.71 31.88-21.12 49.39-22.16l-112.84-80.6 18-12.86c3.64-2.58 8.28-3.52 12.62-2.61l100.35 21.53c25.91 5.53 51.44-10.97 57-36.88 5.55-25.92-10.95-51.44-36.88-57L437.68 98.47c-30.73-6.58-63.02.12-88.56 18.38l-80.02 57.17c-10.38 7.39-19.36 16.44-26.72 26.94L173.75 299c5.47 3.23 10.82 6.93 15.86 11.58zM624 352h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 343.58 442.04 352 416 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 343.58 250.04 352 224 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 343.58 58.04 352 32 352H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-512-96c44.18 0 80-35.82 80-80s-35.82-80-80-80-80 35.82-80 80 35.82 80 80 80z\"]\n};\nvar faSwimmingPool = {\n prefix: 'fas',\n iconName: 'swimming-pool',\n icon: [640, 512, [], \"f5c5\", \"M624 416h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 407.58 442.04 416 416 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 407.58 250.04 416 224 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 407.58 58.04 416 32 416H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-400-32v-96h192v96c19.12 0 30.86-6.16 34.39-9.42 9.17-8.46 19.2-14.34 29.61-18.07V128c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v96H224v-96c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v228.5c10.41 3.73 20.44 9.62 29.61 18.07 3.53 3.27 15.27 9.43 34.39 9.43z\"]\n};\nvar faSynagogue = {\n prefix: 'fas',\n iconName: 'synagogue',\n icon: [640, 512, [], \"f69b\", \"M70 196.51L6.67 268.29A26.643 26.643 0 0 0 0 285.93V512h128V239.58l-38-43.07c-5.31-6.01-14.69-6.01-20 0zm563.33 71.78L570 196.51c-5.31-6.02-14.69-6.02-20 0l-38 43.07V512h128V285.93c0-6.5-2.37-12.77-6.67-17.64zM339.99 7.01c-11.69-9.35-28.29-9.35-39.98 0l-128 102.4A32.005 32.005 0 0 0 160 134.4V512h96v-92.57c0-31.88 21.78-61.43 53.25-66.55C349.34 346.35 384 377.13 384 416v96h96V134.4c0-9.72-4.42-18.92-12.01-24.99l-128-102.4zm52.07 215.55c1.98 3.15-.29 7.24-4 7.24h-38.94L324 269.79c-1.85 2.95-6.15 2.95-8 0l-25.12-39.98h-38.94c-3.72 0-5.98-4.09-4-7.24l19.2-30.56-19.2-30.56c-1.98-3.15.29-7.24 4-7.24h38.94l25.12-40c1.85-2.95 6.15-2.95 8 0l25.12 39.98h38.95c3.71 0 5.98 4.09 4 7.24L372.87 192l19.19 30.56z\"]\n};\nvar faSync = {\n prefix: 'fas',\n iconName: 'sync',\n icon: [512, 512, [], \"f021\", \"M440.65 12.57l4 82.77A247.16 247.16 0 0 0 255.83 8C134.73 8 33.91 94.92 12.29 209.82A12 12 0 0 0 24.09 224h49.05a12 12 0 0 0 11.67-9.26 175.91 175.91 0 0 1 317-56.94l-101.46-4.86a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12H500a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12h-47.37a12 12 0 0 0-11.98 12.57zM255.83 432a175.61 175.61 0 0 1-146-77.8l101.8 4.87a12 12 0 0 0 12.57-12v-47.4a12 12 0 0 0-12-12H12a12 12 0 0 0-12 12V500a12 12 0 0 0 12 12h47.35a12 12 0 0 0 12-12.6l-4.15-82.57A247.17 247.17 0 0 0 255.83 504c121.11 0 221.93-86.92 243.55-201.82a12 12 0 0 0-11.8-14.18h-49.05a12 12 0 0 0-11.67 9.26A175.86 175.86 0 0 1 255.83 432z\"]\n};\nvar faSyncAlt = {\n prefix: 'fas',\n iconName: 'sync-alt',\n icon: [512, 512, [], \"f2f1\", \"M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.749zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28 77.418-.07 144.315-53.144 162.787-126.849 1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24z\"]\n};\nvar faSyringe = {\n prefix: 'fas',\n iconName: 'syringe',\n icon: [512, 512, [], \"f48e\", \"M201.5 174.8l55.7 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-55.7-55.8-45.3 45.3 55.8 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L111 265.2l-26.4 26.4c-17.3 17.3-25.6 41.1-23 65.4l7.1 63.6L2.3 487c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l66.3-66.3 63.6 7.1c23.9 2.6 47.9-5.4 65.4-23l181.9-181.9-135.7-135.7-64.9 65zm308.2-93.3L430.5 2.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l28.3 28.3-45.3 45.3-56.6-56.6-17-17c-3.1-3.1-8.2-3.1-11.3 0l-33.9 33.9c-3.1 3.1-3.1 8.2 0 11.3l17 17L424.8 223l17 17c3.1 3.1 8.2 3.1 11.3 0l33.9-34c3.1-3.1 3.1-8.2 0-11.3l-73.5-73.5 45.3-45.3 28.3 28.3c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.2 3.1-8.2 0-11.4z\"]\n};\nvar faTable = {\n prefix: 'fas',\n iconName: 'table',\n icon: [512, 512, [], \"f0ce\", \"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z\"]\n};\nvar faTableTennis = {\n prefix: 'fas',\n iconName: 'table-tennis',\n icon: [512, 512, [], \"f45d\", \"M496.2 296.5C527.7 218.7 512 126.2 449 63.1 365.1-21 229-21 145.1 63.1l-56 56.1 211.5 211.5c46.1-62.1 131.5-77.4 195.6-34.2zm-217.9 79.7L57.9 155.9c-27.3 45.3-21.7 105 17.3 144.1l34.5 34.6L6.7 424c-8.6 7.5-9.1 20.7-1 28.8l53.4 53.5c8 8.1 21.2 7.6 28.7-1L177.1 402l35.7 35.7c19.7 19.7 44.6 30.5 70.3 33.3-7.1-17-11-35.6-11-55.1-.1-13.8 2.5-27 6.2-39.7zM416 320c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z\"]\n};\nvar faTablet = {\n prefix: 'fas',\n iconName: 'tablet',\n icon: [448, 512, [], \"f10a\", \"M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faTabletAlt = {\n prefix: 'fas',\n iconName: 'tablet-alt',\n icon: [448, 512, [], \"f3fa\", \"M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm176-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h328c6.6 0 12 5.4 12 12v312z\"]\n};\nvar faTablets = {\n prefix: 'fas',\n iconName: 'tablets',\n icon: [640, 512, [], \"f490\", \"M160 192C78.9 192 12.5 250.5.1 326.7c-.8 4.8 3.3 9.3 8.3 9.3h303.3c5 0 9.1-4.5 8.3-9.3C307.5 250.5 241.1 192 160 192zm151.6 176H8.4c-5 0-9.1 4.5-8.3 9.3C12.5 453.5 78.9 512 160 512s147.5-58.5 159.9-134.7c.8-4.8-3.3-9.3-8.3-9.3zM593.4 46.6c-56.5-56.5-144.2-61.4-206.9-16-4 2.9-4.3 8.9-.8 12.3L597 254.3c3.5 3.5 9.5 3.2 12.3-.8 45.5-62.7 40.6-150.4-15.9-206.9zM363 65.7c-3.5-3.5-9.5-3.2-12.3.8-45.4 62.7-40.5 150.4 15.9 206.9 56.5 56.5 144.2 61.4 206.9 15.9 4-2.9 4.3-8.9.8-12.3L363 65.7z\"]\n};\nvar faTachometerAlt = {\n prefix: 'fas',\n iconName: 'tachometer-alt',\n icon: [576, 512, [], \"f3fd\", \"M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67l-9.22 27.67c-5.13 3.49-10.97 6.01-17.64 6.01-17.67 0-32-14.33-32-32S270.33 96 288 96zM96 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm48-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm246.77-72.41l-61.33 184C343.13 347.33 352 364.54 352 384c0 11.72-3.38 22.55-8.88 32H232.88c-5.5-9.45-8.88-20.28-8.88-32 0-33.94 26.5-61.43 59.9-63.59l61.34-184.01c4.17-12.56 17.73-19.45 30.36-15.17 12.57 4.19 19.35 17.79 15.17 30.36zm14.66 57.2l15.52-46.55c3.47-1.29 7.13-2.23 11.05-2.23 17.67 0 32 14.33 32 32s-14.33 32-32 32c-11.38-.01-20.89-6.28-26.57-15.22zM480 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faTag = {\n prefix: 'fas',\n iconName: 'tag',\n icon: [512, 512, [], \"f02b\", \"M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\"]\n};\nvar faTags = {\n prefix: 'fas',\n iconName: 'tags',\n icon: [640, 512, [], \"f02c\", \"M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.744 18.745 49.136 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zM112 160c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm513.941 133.823L421.823 497.941c-18.745 18.745-49.137 18.745-67.882 0l-.36-.36L527.64 323.522c16.999-16.999 26.36-39.6 26.36-63.64s-9.362-46.641-26.36-63.64L331.397 0h48.721a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882z\"]\n};\nvar faTape = {\n prefix: 'fas',\n iconName: 'tape',\n icon: [640, 512, [], \"f4db\", \"M224 192c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm400 224H380.6c41.5-40.7 67.4-97.3 67.4-160 0-123.7-100.3-224-224-224S0 132.3 0 256s100.3 224 224 224h400c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400-64c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z\"]\n};\nvar faTasks = {\n prefix: 'fas',\n iconName: 'tasks',\n icon: [512, 512, [], \"f0ae\", \"M139.61 35.5a12 12 0 0 0-17 0L58.93 98.81l-22.7-22.12a12 12 0 0 0-17 0L3.53 92.41a12 12 0 0 0 0 17l47.59 47.4a12.78 12.78 0 0 0 17.61 0l15.59-15.62L156.52 69a12.09 12.09 0 0 0 .09-17zm0 159.19a12 12 0 0 0-17 0l-63.68 63.72-22.7-22.1a12 12 0 0 0-17 0L3.53 252a12 12 0 0 0 0 17L51 316.5a12.77 12.77 0 0 0 17.6 0l15.7-15.69 72.2-72.22a12 12 0 0 0 .09-16.9zM64 368c-26.49 0-48.59 21.5-48.59 48S37.53 464 64 464a48 48 0 0 0 0-96zm432 16H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faTaxi = {\n prefix: 'fas',\n iconName: 'taxi',\n icon: [512, 512, [], \"f1ba\", \"M462 241.64l-22-84.84c-9.6-35.2-41.6-60.8-76.8-60.8H352V64c0-17.67-14.33-32-32-32H192c-17.67 0-32 14.33-32 32v32h-11.2c-35.2 0-67.2 25.6-76.8 60.8l-22 84.84C21.41 248.04 0 273.47 0 304v48c0 23.63 12.95 44.04 32 55.12V448c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-40.88c19.05-11.09 32-31.5 32-55.12v-48c0-30.53-21.41-55.96-50-62.36zM96 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm20.55-112l17.2-66.36c2.23-8.16 9.59-13.64 15.06-13.64h214.4c5.47 0 12.83 5.48 14.85 12.86L395.45 240h-278.9zM416 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faTeeth = {\n prefix: 'fas',\n iconName: 'teeth',\n icon: [640, 512, [], \"f62e\", \"M544 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96zM160 368c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm128 128c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64z\"]\n};\nvar faTeethOpen = {\n prefix: 'fas',\n iconName: 'teeth-open',\n icon: [640, 512, [], \"f62f\", \"M544 0H96C42.98 0 0 42.98 0 96v64c0 35.35 28.66 64 64 64h512c35.34 0 64-28.65 64-64V96c0-53.02-42.98-96-96-96zM160 176c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm128 0c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm0 144H64c-35.34 0-64 28.65-64 64v32c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96v-32c0-35.35-28.66-64-64-64zm-416 80c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32zm144-8c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm144 0c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm128 8c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32z\"]\n};\nvar faTemperatureHigh = {\n prefix: 'fas',\n iconName: 'temperature-high',\n icon: [512, 512, [], \"f769\", \"M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V112c0-8.8-7.2-16-16-16s-16 7.2-16 16v210.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z\"]\n};\nvar faTemperatureLow = {\n prefix: 'fas',\n iconName: 'temperature-low',\n icon: [512, 512, [], \"f76b\", \"M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V304c0-8.8-7.2-16-16-16s-16 7.2-16 16v18.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z\"]\n};\nvar faTenge = {\n prefix: 'fas',\n iconName: 'tenge',\n icon: [384, 512, [], \"f7d7\", \"M372 160H12c-6.6 0-12 5.4-12 12v56c0 6.6 5.4 12 12 12h140v228c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12V240h140c6.6 0 12-5.4 12-12v-56c0-6.6-5.4-12-12-12zm0-128H12C5.4 32 0 37.4 0 44v56c0 6.6 5.4 12 12 12h360c6.6 0 12-5.4 12-12V44c0-6.6-5.4-12-12-12z\"]\n};\nvar faTerminal = {\n prefix: 'fas',\n iconName: 'terminal',\n icon: [640, 512, [], \"f120\", \"M257.981 272.971L63.638 467.314c-9.373 9.373-24.569 9.373-33.941 0L7.029 444.647c-9.357-9.357-9.375-24.522-.04-33.901L161.011 256 6.99 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L257.981 239.03c9.373 9.372 9.373 24.568 0 33.941zM640 456v-32c0-13.255-10.745-24-24-24H312c-13.255 0-24 10.745-24 24v32c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24z\"]\n};\nvar faTextHeight = {\n prefix: 'fas',\n iconName: 'text-height',\n icon: [576, 512, [], \"f034\", \"M304 32H16A16 16 0 0 0 0 48v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32h56v304H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-40V112h56v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm256 336h-48V144h48c14.31 0 21.33-17.31 11.31-27.31l-80-80a16 16 0 0 0-22.62 0l-80 80C379.36 126 384.36 144 400 144h48v224h-48c-14.31 0-21.32 17.31-11.31 27.31l80 80a16 16 0 0 0 22.62 0l80-80C580.64 386 575.64 368 560 368z\"]\n};\nvar faTextWidth = {\n prefix: 'fas',\n iconName: 'text-width',\n icon: [448, 512, [], \"f035\", \"M432 32H16A16 16 0 0 0 0 48v80a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-16h120v112h-24a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-24V112h120v16a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm-68.69 260.69C354 283.36 336 288.36 336 304v48H112v-48c0-14.31-17.31-21.32-27.31-11.31l-80 80a16 16 0 0 0 0 22.62l80 80C94 484.64 112 479.64 112 464v-48h224v48c0 14.31 17.31 21.33 27.31 11.31l80-80a16 16 0 0 0 0-22.62z\"]\n};\nvar faTh = {\n prefix: 'fas',\n iconName: 'th',\n icon: [512, 512, [], \"f00a\", \"M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z\"]\n};\nvar faThLarge = {\n prefix: 'fas',\n iconName: 'th-large',\n icon: [512, 512, [], \"f009\", \"M296 32h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H296c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24zm-80 0H24C10.745 32 0 42.745 0 56v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zM0 296v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm296 184h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H296c-13.255 0-24 10.745-24 24v160c0 13.255 10.745 24 24 24z\"]\n};\nvar faThList = {\n prefix: 'fas',\n iconName: 'th-list',\n icon: [512, 512, [], \"f00b\", \"M149.333 216v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-80c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zM125.333 32H24C10.745 32 0 42.745 0 56v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zm80 448H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm-24-424v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24zm24 264H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24z\"]\n};\nvar faTheaterMasks = {\n prefix: 'fas',\n iconName: 'theater-masks',\n icon: [640, 512, [], \"f630\", \"M206.86 245.15c-35.88 10.45-59.95 41.2-57.53 74.1 11.4-12.72 28.81-23.7 49.9-30.92l7.63-43.18zM95.81 295L64.08 115.49c-.29-1.62.28-2.62.24-2.65 57.76-32.06 123.12-49.01 189.01-49.01 1.61 0 3.23.17 4.85.19 13.95-13.47 31.73-22.83 51.59-26 18.89-3.02 38.05-4.55 57.18-5.32-9.99-13.95-24.48-24.23-41.77-27C301.27 1.89 277.24 0 253.32 0 176.66 0 101.02 19.42 33.2 57.06 9.03 70.48-3.92 98.48 1.05 126.58l31.73 179.51c14.23 80.52 136.33 142.08 204.45 142.08 3.59 0 6.75-.46 10.01-.8-13.52-17.08-28.94-40.48-39.5-67.58-47.61-12.98-106.06-51.62-111.93-84.79zm97.55-137.46c-.73-4.12-2.23-7.87-4.07-11.4-8.25 8.91-20.67 15.75-35.32 18.32-14.65 2.58-28.67.4-39.48-5.17-.52 3.94-.64 7.98.09 12.1 3.84 21.7 24.58 36.19 46.34 32.37 21.75-3.82 36.28-24.52 32.44-46.22zM606.8 120.9c-88.98-49.38-191.43-67.41-291.98-51.35-27.31 4.36-49.08 26.26-54.04 54.36l-31.73 179.51c-15.39 87.05 95.28 196.27 158.31 207.35 63.03 11.09 204.47-53.79 219.86-140.84l31.73-179.51c4.97-28.11-7.98-56.11-32.15-69.52zm-273.24 96.8c3.84-21.7 24.58-36.19 46.34-32.36 21.76 3.83 36.28 24.52 32.45 46.22-.73 4.12-2.23 7.87-4.07 11.4-8.25-8.91-20.67-15.75-35.32-18.32-14.65-2.58-28.67-.4-39.48 5.17-.53-3.95-.65-7.99.08-12.11zm70.47 198.76c-55.68-9.79-93.52-59.27-89.04-112.9 20.6 25.54 56.21 46.17 99.49 53.78 43.28 7.61 83.82.37 111.93-16.6-14.18 51.94-66.71 85.51-122.38 75.72zm130.3-151.34c-8.25-8.91-20.68-15.75-35.33-18.32-14.65-2.58-28.67-.4-39.48 5.17-.52-3.94-.64-7.98.09-12.1 3.84-21.7 24.58-36.19 46.34-32.37 21.75 3.83 36.28 24.52 32.45 46.22-.73 4.13-2.23 7.88-4.07 11.4z\"]\n};\nvar faThermometer = {\n prefix: 'fas',\n iconName: 'thermometer',\n icon: [512, 512, [], \"f491\", \"M476.8 20.4c-37.5-30.7-95.5-26.3-131.9 10.2l-45.7 46 50.5 50.5c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.4-50.5-45.1 45.4 50.3 50.4c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L209 167.4l-45.1 45.4L214 263c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.1-50.2L96 281.1V382L7 471c-9.4 9.4-9.4 24.6 0 33.9 9.4 9.4 24.6 9.4 33.9 0l89-89h99.9L484 162.6c34.9-34.9 42.2-101.5-7.2-142.2z\"]\n};\nvar faThermometerEmpty = {\n prefix: 'fas',\n iconName: 'thermometer-empty',\n icon: [256, 512, [], \"f2cb\", \"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"]\n};\nvar faThermometerFull = {\n prefix: 'fas',\n iconName: 'thermometer-full',\n icon: [256, 512, [], \"f2c7\", \"M224 96c0-53.019-42.981-96-96-96S32 42.981 32 96v203.347C12.225 321.756.166 351.136.002 383.333c-.359 70.303 56.787 128.176 127.089 128.664.299.002.61.003.909.003 70.698 0 128-57.304 128-128 0-32.459-12.088-62.09-32-84.653V96zm-96 368l-.576-.002c-43.86-.304-79.647-36.544-79.423-80.42.173-33.98 19.266-51.652 31.999-66.08V96c0-26.467 21.533-48 48-48s48 21.533 48 48v221.498c12.63 14.312 32 32.164 32 66.502 0 44.112-35.888 80-80 80zm64-80c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V96c0-17.673 14.327-32 32-32s32 14.327 32 32v232.583c19.124 11.068 32 31.732 32 55.417z\"]\n};\nvar faThermometerHalf = {\n prefix: 'fas',\n iconName: 'thermometer-half',\n icon: [256, 512, [], \"f2c9\", \"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V224c0-17.673 14.327-32 32-32s32 14.327 32 32v104.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"]\n};\nvar faThermometerQuarter = {\n prefix: 'fas',\n iconName: 'thermometer-quarter',\n icon: [256, 512, [], \"f2ca\", \"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V288c0-17.673 14.327-32 32-32s32 14.327 32 32v40.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"]\n};\nvar faThermometerThreeQuarters = {\n prefix: 'fas',\n iconName: 'thermometer-three-quarters',\n icon: [256, 512, [], \"f2c8\", \"M192 384c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64 0-23.685 12.876-44.349 32-55.417V160c0-17.673 14.327-32 32-32s32 14.327 32 32v168.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"]\n};\nvar faThumbsDown = {\n prefix: 'fas',\n iconName: 'thumbs-down',\n icon: [512, 512, [], \"f165\", \"M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z\"]\n};\nvar faThumbsUp = {\n prefix: 'fas',\n iconName: 'thumbs-up',\n icon: [512, 512, [], \"f164\", \"M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z\"]\n};\nvar faThumbtack = {\n prefix: 'fas',\n iconName: 'thumbtack',\n icon: [384, 512, [], \"f08d\", \"M298.028 214.267L285.793 96H328c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v48c0 13.255 10.745 24 24 24h42.207L85.972 214.267C37.465 236.82 0 277.261 0 328c0 13.255 10.745 24 24 24h136v104.007c0 1.242.289 2.467.845 3.578l24 48c2.941 5.882 11.364 5.893 14.311 0l24-48a8.008 8.008 0 0 0 .845-3.578V352h136c13.255 0 24-10.745 24-24-.001-51.183-37.983-91.42-85.973-113.733z\"]\n};\nvar faTicketAlt = {\n prefix: 'fas',\n iconName: 'ticket-alt',\n icon: [576, 512, [], \"f3ff\", \"M128 160h320v192H128V160zm400 96c0 26.51 21.49 48 48 48v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c26.51 0 48-21.49 48-48s-21.49-48-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v96c-26.51 0-48 21.49-48 48zm-48-104c0-13.255-10.745-24-24-24H120c-13.255 0-24 10.745-24 24v208c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V152z\"]\n};\nvar faTimes = {\n prefix: 'fas',\n iconName: 'times',\n icon: [352, 512, [], \"f00d\", \"M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z\"]\n};\nvar faTimesCircle = {\n prefix: 'fas',\n iconName: 'times-circle',\n icon: [512, 512, [], \"f057\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z\"]\n};\nvar faTint = {\n prefix: 'fas',\n iconName: 'tint',\n icon: [352, 512, [], \"f043\", \"M205.22 22.09c-7.94-28.78-49.44-30.12-58.44 0C100.01 179.85 0 222.72 0 333.91 0 432.35 78.72 512 176 512s176-79.65 176-178.09c0-111.75-99.79-153.34-146.78-311.82zM176 448c-61.75 0-112-50.25-112-112 0-8.84 7.16-16 16-16s16 7.16 16 16c0 44.11 35.89 80 80 80 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"]\n};\nvar faTintSlash = {\n prefix: 'fas',\n iconName: 'tint-slash',\n icon: [640, 512, [], \"f5c7\", \"M633.82 458.1L494.97 350.78c.52-5.57 1.03-11.16 1.03-16.87 0-111.76-99.79-153.34-146.78-311.82-7.94-28.78-49.44-30.12-58.44 0-15.52 52.34-36.87 91.96-58.49 125.68L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM144 333.91C144 432.35 222.72 512 320 512c44.71 0 85.37-16.96 116.4-44.7L162.72 255.78c-11.41 23.5-18.72 48.35-18.72 78.13z\"]\n};\nvar faTired = {\n prefix: 'fas',\n iconName: 'tired',\n icon: [496, 512, [], \"f5c8\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 288c51.9 0 115.3 43.8 123.2 106.7 1.7 13.6-8 24.6-17.7 20.4-25.9-11.1-64.4-17.4-105.5-17.4s-79.6 6.3-105.5 17.4c-9.8 4.2-19.4-7-17.7-20.4C132.7 331.8 196.1 288 248 288z\"]\n};\nvar faToggleOff = {\n prefix: 'fas',\n iconName: 'toggle-off',\n icon: [576, 512, [], \"f204\", \"M384 64H192C85.961 64 0 149.961 0 256s85.961 192 192 192h192c106.039 0 192-85.961 192-192S490.039 64 384 64zM64 256c0-70.741 57.249-128 128-128 70.741 0 128 57.249 128 128 0 70.741-57.249 128-128 128-70.741 0-128-57.249-128-128zm320 128h-48.905c65.217-72.858 65.236-183.12 0-256H384c70.741 0 128 57.249 128 128 0 70.74-57.249 128-128 128z\"]\n};\nvar faToggleOn = {\n prefix: 'fas',\n iconName: 'toggle-on',\n icon: [576, 512, [], \"f205\", \"M384 64H192C86 64 0 150 0 256s86 192 192 192h192c106 0 192-86 192-192S490 64 384 64zm0 320c-70.8 0-128-57.3-128-128 0-70.8 57.3-128 128-128 70.8 0 128 57.3 128 128 0 70.8-57.3 128-128 128z\"]\n};\nvar faToilet = {\n prefix: 'fas',\n iconName: 'toilet',\n icon: [384, 512, [], \"f7d8\", \"M368 48c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v16c0 8.8 7.2 16 16 16h16v156.7C11.8 214.8 0 226.9 0 240c0 67.2 34.6 126.2 86.8 160.5l-21.4 70.2C59.1 491.2 74.5 512 96 512h192c21.5 0 36.9-20.8 30.6-41.3l-21.4-70.2C349.4 366.2 384 307.2 384 240c0-13.1-11.8-25.2-32-35.3V48h16zM80 72c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H88c-4.4 0-8-3.6-8-8V72zm112 200c-77.1 0-139.6-14.3-139.6-32s62.5-32 139.6-32 139.6 14.3 139.6 32-62.5 32-139.6 32z\"]\n};\nvar faToiletPaper = {\n prefix: 'fas',\n iconName: 'toilet-paper',\n icon: [576, 512, [], \"f71e\", \"M128 0C74.98 0 32 85.96 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87C-2.62 501.3 5.09 512 16.01 512h280.92c13.77 0 26-8.81 30.36-21.88 12.83-38.48 24.71-72.4 24.71-126.05V192c0-83.6 23.67-153.52 60.44-192H128zM96 224c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM480 0c-53.02 0-96 85.96-96 192s42.98 192 96 192 96-85.96 96-192S533.02 0 480 0zm0 256c-17.67 0-32-28.65-32-64s14.33-64 32-64 32 28.65 32 64-14.33 64-32 64z\"]\n};\nvar faToiletPaperSlash = {\n prefix: 'fas',\n iconName: 'toilet-paper-slash',\n icon: [640, 512, [], \"e072\", \"M64,192V364.13c0,41.12-9.75,62.75-31.12,126.87A16,16,0,0,0,48,512H328.86a31.87,31.87,0,0,0,30.38-21.87c9.31-27.83,18-53.35,22.18-85.55l-316-244.25C64.53,170.66,64,181.19,64,192ZM633.82,458.09l-102-78.81C575.28,360.91,608,284.32,608,192,608,86,565,0,512,0s-96,86-96,192c0,42,7,80.4,18.43,112L384,265V192c0-83.62,23.63-153.5,60.5-192H160c-23.33,0-44.63,16.83-61.26,44.53L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09ZM512,256c-17.63,0-32-28.62-32-64s14.37-64,32-64,32,28.63,32,64S529.62,256,512,256Z\"]\n};\nvar faToolbox = {\n prefix: 'fas',\n iconName: 'toolbox',\n icon: [512, 512, [], \"f552\", \"M502.63 214.63l-45.25-45.25c-6-6-14.14-9.37-22.63-9.37H384V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v80H77.25c-8.49 0-16.62 3.37-22.63 9.37L9.37 214.63c-6 6-9.37 14.14-9.37 22.63V320h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-82.75c0-8.48-3.37-16.62-9.37-22.62zM320 160H192V96h128v64zm64 208c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H192v16c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H0v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96H384v16z\"]\n};\nvar faTools = {\n prefix: 'fas',\n iconName: 'tools',\n icon: [512, 512, [], \"f7d9\", \"M501.1 395.7L384 278.6c-23.1-23.1-57.6-27.6-85.4-13.9L192 158.1V96L64 0 0 64l96 128h62.1l106.6 106.6c-13.6 27.8-9.2 62.3 13.9 85.4l117.1 117.1c14.6 14.6 38.2 14.6 52.7 0l52.7-52.7c14.5-14.6 14.5-38.2 0-52.7zM331.7 225c28.3 0 54.9 11 74.9 31l19.4 19.4c15.8-6.9 30.8-16.5 43.8-29.5 37.1-37.1 49.7-89.3 37.9-136.7-2.2-9-13.5-12.1-20.1-5.5l-74.4 74.4-67.9-11.3L334 98.9l74.4-74.4c6.6-6.6 3.4-17.9-5.7-20.2-47.4-11.7-99.6.9-136.6 37.9-28.5 28.5-41.9 66.1-41.2 103.6l82.1 82.1c8.1-1.9 16.5-2.9 24.7-2.9zm-103.9 82l-56.7-56.7L18.7 402.8c-25 25-25 65.5 0 90.5s65.5 25 90.5 0l123.6-123.6c-7.6-19.9-9.9-41.6-5-62.7zM64 472c-13.2 0-24-10.8-24-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13.2-10.7 24-24 24z\"]\n};\nvar faTooth = {\n prefix: 'fas',\n iconName: 'tooth',\n icon: [448, 512, [], \"f5c9\", \"M443.98 96.25c-11.01-45.22-47.11-82.06-92.01-93.72-32.19-8.36-63 5.1-89.14 24.33-3.25 2.39-6.96 3.73-10.5 5.48l28.32 18.21c7.42 4.77 9.58 14.67 4.8 22.11-4.46 6.95-14.27 9.86-22.11 4.8L162.83 12.84c-20.7-10.85-43.38-16.4-66.81-10.31-44.9 11.67-81 48.5-92.01 93.72-10.13 41.62-.42 80.81 21.5 110.43 23.36 31.57 32.68 68.66 36.29 107.35 4.4 47.16 10.33 94.16 20.94 140.32l7.8 33.95c3.19 13.87 15.49 23.7 29.67 23.7 13.97 0 26.15-9.55 29.54-23.16l34.47-138.42c4.56-18.32 20.96-31.16 39.76-31.16s35.2 12.85 39.76 31.16l34.47 138.42c3.39 13.61 15.57 23.16 29.54 23.16 14.18 0 26.48-9.83 29.67-23.7l7.8-33.95c10.61-46.15 16.53-93.16 20.94-140.32 3.61-38.7 12.93-75.78 36.29-107.35 21.95-29.61 31.66-68.8 21.53-110.43z\"]\n};\nvar faTorah = {\n prefix: 'fas',\n iconName: 'torah',\n icon: [640, 512, [], \"f6a0\", \"M320.05 366.48l17.72-29.64h-35.46zm99.21-166H382.4l18.46 30.82zM48 0C21.49 0 0 14.33 0 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32C96 14.33 74.51 0 48 0zm172.74 311.5h36.85l-18.46-30.82zm161.71 0h36.86l-18.45-30.8zM128 464h384V48H128zm66.77-278.13a21.22 21.22 0 0 1 18.48-10.71h59.45l29.13-48.71a21.13 21.13 0 0 1 18.22-10.37A20.76 20.76 0 0 1 338 126.29l29.25 48.86h59.52a21.12 21.12 0 0 1 18.1 32L415.63 256 445 305a20.69 20.69 0 0 1 .24 21.12 21.25 21.25 0 0 1-18.48 10.72h-59.47l-29.13 48.7a21.13 21.13 0 0 1-18.16 10.4 20.79 20.79 0 0 1-18-10.22l-29.25-48.88h-59.5a21.11 21.11 0 0 1-18.1-32L224.36 256 195 207a20.7 20.7 0 0 1-.23-21.13zM592 0c-26.51 0-48 14.33-48 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32c0-17.67-21.49-32-48-32zM320 145.53l-17.78 29.62h35.46zm-62.45 55h-36.81l18.44 30.8zm29.58 111h65.79L386.09 256l-33.23-55.52h-65.79L253.9 256z\"]\n};\nvar faToriiGate = {\n prefix: 'fas',\n iconName: 'torii-gate',\n icon: [512, 512, [], \"f6a1\", \"M376.45 32h-240.9A303.17 303.17 0 0 1 0 0v96c0 17.67 14.33 32 32 32h32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h256v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h48c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-48v-64h32c17.67 0 32-14.33 32-32V0a303.17 303.17 0 0 1-135.55 32zM128 128h96v64h-96v-64zm256 64h-96v-64h96v64z\"]\n};\nvar faTractor = {\n prefix: 'fas',\n iconName: 'tractor',\n icon: [640, 512, [], \"f722\", \"M528 336c-48.6 0-88 39.4-88 88s39.4 88 88 88 88-39.4 88-88-39.4-88-88-88zm0 112c-13.23 0-24-10.77-24-24s10.77-24 24-24 24 10.77 24 24-10.77 24-24 24zm80-288h-64v-40.2c0-14.12 4.7-27.76 13.15-38.84 4.42-5.8 3.55-14.06-1.32-19.49L534.2 37.3c-6.66-7.45-18.32-6.92-24.7.78C490.58 60.9 480 89.81 480 119.8V160H377.67L321.58 29.14A47.914 47.914 0 0 0 277.45 0H144c-26.47 0-48 21.53-48 48v146.52c-8.63-6.73-20.96-6.46-28.89 1.47L36 227.1c-8.59 8.59-8.59 22.52 0 31.11l5.06 5.06c-4.99 9.26-8.96 18.82-11.91 28.72H22c-12.15 0-22 9.85-22 22v44c0 12.15 9.85 22 22 22h7.14c2.96 9.91 6.92 19.46 11.91 28.73l-5.06 5.06c-8.59 8.59-8.59 22.52 0 31.11L67.1 476c8.59 8.59 22.52 8.59 31.11 0l5.06-5.06c9.26 4.99 18.82 8.96 28.72 11.91V490c0 12.15 9.85 22 22 22h44c12.15 0 22-9.85 22-22v-7.14c9.9-2.95 19.46-6.92 28.72-11.91l5.06 5.06c8.59 8.59 22.52 8.59 31.11 0l31.11-31.11c8.59-8.59 8.59-22.52 0-31.11l-5.06-5.06c4.99-9.26 8.96-18.82 11.91-28.72H330c12.15 0 22-9.85 22-22v-6h80.54c21.91-28.99 56.32-48 95.46-48 18.64 0 36.07 4.61 51.8 12.2l50.82-50.82c6-6 9.37-14.14 9.37-22.63V192c.01-17.67-14.32-32-31.99-32zM176 416c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm22-256h-38V64h106.89l41.15 96H198z\"]\n};\nvar faTrademark = {\n prefix: 'fas',\n iconName: 'trademark',\n icon: [640, 512, [], \"f25c\", \"M260.6 96H12c-6.6 0-12 5.4-12 12v43.1c0 6.6 5.4 12 12 12h85.1V404c0 6.6 5.4 12 12 12h54.3c6.6 0 12-5.4 12-12V163.1h85.1c6.6 0 12-5.4 12-12V108c.1-6.6-5.3-12-11.9-12zM640 403l-24-296c-.5-6.2-5.7-11-12-11h-65.4c-5.1 0-9.7 3.3-11.3 8.1l-43.8 127.1c-7.2 20.6-16.1 52.8-16.1 52.8h-.9s-8.9-32.2-16.1-52.8l-43.8-127.1c-1.7-4.8-6.2-8.1-11.3-8.1h-65.4c-6.2 0-11.4 4.8-12 11l-24.4 296c-.6 7 4.9 13 12 13H360c6.3 0 11.5-4.9 12-11.2l9.1-132.9c1.8-24.2 0-53.7 0-53.7h.9s10.7 33.6 17.9 53.7l30.7 84.7c1.7 4.7 6.2 7.9 11.3 7.9h50.3c5.1 0 9.6-3.2 11.3-7.9l30.7-84.7c7.2-20.1 17.9-53.7 17.9-53.7h.9s-1.8 29.5 0 53.7l9.1 132.9c.4 6.3 5.7 11.2 12 11.2H628c7 0 12.5-6 12-13z\"]\n};\nvar faTrafficLight = {\n prefix: 'fas',\n iconName: 'traffic-light',\n icon: [384, 512, [], \"f637\", \"M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.84 28.25 78.69 66.99 91.05C79.42 468.72 130.6 512 192 512s112.58-43.28 125.01-100.95C355.75 398.69 384 362.84 384 320h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z\"]\n};\nvar faTrailer = {\n prefix: 'fas',\n iconName: 'trailer',\n icon: [640, 512, [], \"e041\", \"M624,320H544V80a16,16,0,0,0-16-16H16A16,16,0,0,0,0,80V368a16,16,0,0,0,16,16H65.61c7.83-54.21,54-96,110.39-96s102.56,41.79,110.39,96H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM96,243.68a176.29,176.29,0,0,0-32,20.71V136a8,8,0,0,1,8-8H88a8,8,0,0,1,8,8Zm96-18.54c-5.31-.49-10.57-1.14-16-1.14s-10.69.65-16,1.14V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,39.25a176.29,176.29,0,0,0-32-20.71V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8ZM384,320H352V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,0H448V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm-304,0a80,80,0,1,0,80,80A80,80,0,0,0,176,320Zm0,112a32,32,0,1,1,32-32A32,32,0,0,1,176,432Z\"]\n};\nvar faTrain = {\n prefix: 'fas',\n iconName: 'train',\n icon: [448, 512, [], \"f238\", \"M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zm-48 136V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24zm-176 64c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56z\"]\n};\nvar faTram = {\n prefix: 'fas',\n iconName: 'tram',\n icon: [512, 512, [], \"f7da\", \"M288 64c17.7 0 32-14.3 32-32S305.7 0 288 0s-32 14.3-32 32 14.3 32 32 32zm223.5-12.1c-2.3-8.6-11-13.6-19.6-11.3l-480 128c-8.5 2.3-13.6 11-11.3 19.6C2.5 195.3 8.9 200 16 200c1.4 0 2.8-.2 4.1-.5L240 140.8V224H64c-17.7 0-32 14.3-32 32v224c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32H272v-91.7l228.1-60.8c8.6-2.3 13.6-11.1 11.4-19.6zM176 384H80v-96h96v96zm160-96h96v96h-96v-96zm-32 0v96h-96v-96h96zM192 96c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"]\n};\nvar faTransgender = {\n prefix: 'fas',\n iconName: 'transgender',\n icon: [384, 512, [], \"f224\", \"M372 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C198.5 104.1 172.2 96 144 96 64.5 96 0 160.5 0 240c0 68.5 47.9 125.9 112 140.4V408H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM144 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faTransgenderAlt = {\n prefix: 'fas',\n iconName: 'transgender-alt',\n icon: [480, 512, [], \"f225\", \"M468 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C294.5 104.1 268.2 96 240 96c-28.2 0-54.5 8.1-76.7 22.1l-16.5-16.5 19.8-19.8c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0l-19.8 19.8-19-19 16.9-16.9C107.1 12.9 101.7 0 91 0H12C5.4 0 0 5.4 0 12v79c0 10.7 12.9 16 20.5 8.5l16.9-16.9 19 19-19.8 19.8c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l19.8-19.8 16.5 16.5C104.1 185.5 96 211.8 96 240c0 68.5 47.9 125.9 112 140.4V408h-36c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM240 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faTrash = {\n prefix: 'fas',\n iconName: 'trash',\n icon: [448, 512, [], \"f1f8\", \"M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32z\"]\n};\nvar faTrashAlt = {\n prefix: 'fas',\n iconName: 'trash-alt',\n icon: [448, 512, [], \"f2ed\", \"M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm272-256a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faTrashRestore = {\n prefix: 'fas',\n iconName: 'trash-restore',\n icon: [448, 512, [], \"f829\", \"M53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32zm70.11-175.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faTrashRestoreAlt = {\n prefix: 'fas',\n iconName: 'trash-restore-alt',\n icon: [448, 512, [], \"f82a\", \"M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm91.31-172.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faTree = {\n prefix: 'fas',\n iconName: 'tree',\n icon: [384, 512, [], \"f1bb\", \"M378.31 378.49L298.42 288h30.63c9.01 0 16.98-5 20.78-13.06 3.8-8.04 2.55-17.26-3.28-24.05L268.42 160h28.89c9.1 0 17.3-5.35 20.86-13.61 3.52-8.13 1.86-17.59-4.24-24.08L203.66 4.83c-6.03-6.45-17.28-6.45-23.32 0L70.06 122.31c-6.1 6.49-7.75 15.95-4.24 24.08C69.38 154.65 77.59 160 86.69 160h28.89l-78.14 90.91c-5.81 6.78-7.06 15.99-3.27 24.04C37.97 283 45.93 288 54.95 288h30.63L5.69 378.49c-6 6.79-7.36 16.09-3.56 24.26 3.75 8.05 12 13.25 21.01 13.25H160v24.45l-30.29 48.4c-5.32 10.64 2.42 23.16 14.31 23.16h95.96c11.89 0 19.63-12.52 14.31-23.16L224 440.45V416h136.86c9.01 0 17.26-5.2 21.01-13.25 3.8-8.17 2.44-17.47-3.56-24.26z\"]\n};\nvar faTrophy = {\n prefix: 'fas',\n iconName: 'trophy',\n icon: [576, 512, [], \"f091\", \"M552 64H448V24c0-13.3-10.7-24-24-24H152c-13.3 0-24 10.7-24 24v40H24C10.7 64 0 74.7 0 88v56c0 35.7 22.5 72.4 61.9 100.7 31.5 22.7 69.8 37.1 110 41.7C203.3 338.5 240 360 240 360v72h-48c-35.3 0-64 20.7-64 56v12c0 6.6 5.4 12 12 12h296c6.6 0 12-5.4 12-12v-12c0-35.3-28.7-56-64-56h-48v-72s36.7-21.5 68.1-73.6c40.3-4.6 78.6-19 110-41.7 39.3-28.3 61.9-65 61.9-100.7V88c0-13.3-10.7-24-24-24zM99.3 192.8C74.9 175.2 64 155.6 64 144v-16h64.2c1 32.6 5.8 61.2 12.8 86.2-15.1-5.2-29.2-12.4-41.7-21.4zM512 144c0 16.1-17.7 36.1-35.3 48.8-12.5 9-26.7 16.2-41.8 21.4 7-25 11.8-53.6 12.8-86.2H512v16z\"]\n};\nvar faTruck = {\n prefix: 'fas',\n iconName: 'truck',\n icon: [640, 512, [], \"f0d1\", \"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"]\n};\nvar faTruckLoading = {\n prefix: 'fas',\n iconName: 'truck-loading',\n icon: [640, 512, [], \"f4de\", \"M50.2 375.6c2.3 8.5 11.1 13.6 19.6 11.3l216.4-58c8.5-2.3 13.6-11.1 11.3-19.6l-49.7-185.5c-2.3-8.5-11.1-13.6-19.6-11.3L151 133.3l24.8 92.7-61.8 16.5-24.8-92.7-77.3 20.7C3.4 172.8-1.7 181.6.6 190.1l49.6 185.5zM384 0c-17.7 0-32 14.3-32 32v323.6L5.9 450c-4.3 1.2-6.8 5.6-5.6 9.8l12.6 46.3c1.2 4.3 5.6 6.8 9.8 5.6l393.7-107.4C418.8 464.1 467.6 512 528 512c61.9 0 112-50.1 112-112V0H384zm144 448c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"]\n};\nvar faTruckMonster = {\n prefix: 'fas',\n iconName: 'truck-monster',\n icon: [640, 512, [], \"f63b\", \"M624 224h-16v-64c0-17.67-14.33-32-32-32h-73.6L419.22 24.02A64.025 64.025 0 0 0 369.24 0H256c-17.67 0-32 14.33-32 32v96H48c-8.84 0-16 7.16-16 16v80H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16.72c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64h65.45c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-336-96V64h81.24l51.2 64H288zm304 224h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 512 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67A110.85 110.85 0 0 0 373.2 352H368c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32c-.02-8.84-7.18-16-16.02-16zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-208-80h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 192 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0L58.18 304.8c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67a110.85 110.85 0 0 0-8.65 20.89H48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32C288 359.16 280.84 352 272 352zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z\"]\n};\nvar faTruckMoving = {\n prefix: 'fas',\n iconName: 'truck-moving',\n icon: [640, 512, [], \"f4df\", \"M621.3 237.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7H480V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v336c0 44.2 35.8 80 80 80 26.3 0 49.4-12.9 64-32.4 14.6 19.6 37.7 32.4 64 32.4 44.2 0 80-35.8 80-80 0-5.5-.6-10.8-1.6-16h163.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H624c8.8 0 16-7.2 16-16v-85.5c0-17-6.7-33.2-18.7-45.2zM80 432c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm128 0c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm272-224h37.5c4.3 0 8.3 1.7 11.3 4.7l43.3 43.3H480v-48zm48 224c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z\"]\n};\nvar faTruckPickup = {\n prefix: 'fas',\n iconName: 'truck-pickup',\n icon: [640, 512, [], \"f63c\", \"M624 288h-16v-64c0-17.67-14.33-32-32-32h-48L419.22 56.02A64.025 64.025 0 0 0 369.24 32H256c-17.67 0-32 14.33-32 32v128H64c-17.67 0-32 14.33-32 32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h49.61c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16h67.23c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM288 96h81.24l76.8 96H288V96zM176 416c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm288 0c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z\"]\n};\nvar faTshirt = {\n prefix: 'fas',\n iconName: 'tshirt',\n icon: [640, 512, [], \"f553\", \"M631.2 96.5L436.5 0C416.4 27.8 371.9 47.2 320 47.2S223.6 27.8 203.5 0L8.8 96.5c-7.9 4-11.1 13.6-7.2 21.5l57.2 114.5c4 7.9 13.6 11.1 21.5 7.2l56.6-27.7c10.6-5.2 23 2.5 23 14.4V480c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V226.3c0-11.8 12.4-19.6 23-14.4l56.6 27.7c7.9 4 17.5.8 21.5-7.2L638.3 118c4-7.9.8-17.6-7.1-21.5z\"]\n};\nvar faTty = {\n prefix: 'fas',\n iconName: 'tty',\n icon: [512, 512, [], \"f1e4\", \"M5.37 103.822c138.532-138.532 362.936-138.326 501.262 0 6.078 6.078 7.074 15.496 2.583 22.681l-43.214 69.138a18.332 18.332 0 0 1-22.356 7.305l-86.422-34.569a18.335 18.335 0 0 1-11.434-18.846L351.741 90c-62.145-22.454-130.636-21.986-191.483 0l5.953 59.532a18.331 18.331 0 0 1-11.434 18.846l-86.423 34.568a18.334 18.334 0 0 1-22.356-7.305L2.787 126.502a18.333 18.333 0 0 1 2.583-22.68zM96 308v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H92c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zM96 500v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H140c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z\"]\n};\nvar faTv = {\n prefix: 'fas',\n iconName: 'tv',\n icon: [640, 512, [], \"f26c\", \"M592 0H48A48 48 0 0 0 0 48v320a48 48 0 0 0 48 48h240v32H112a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H352v-32h240a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zm-16 352H64V64h512z\"]\n};\nvar faUmbrella = {\n prefix: 'fas',\n iconName: 'umbrella',\n icon: [576, 512, [], \"f0e9\", \"M575.7 280.8C547.1 144.5 437.3 62.6 320 49.9V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v17.9C138.3 62.6 29.5 144.5.3 280.8c-2.2 10.1 8.5 21.3 18.7 11.4 52-55 107.7-52.4 158.6 37 5.3 9.5 14.9 8.6 19.7 0 20.2-35.4 44.9-73.2 90.7-73.2 58.5 0 88.2 68.8 90.7 73.2 4.8 8.6 14.4 9.5 19.7 0 51-89.5 107.1-91.4 158.6-37 10.3 10 20.9-1.3 18.7-11.4zM256 301.7V432c0 8.8-7.2 16-16 16-7.8 0-13.2-5.3-15.1-10.7-5.9-16.7-24.1-25.4-40.8-19.5-16.7 5.9-25.4 24.2-19.5 40.8 11.2 31.9 41.6 53.3 75.4 53.3 44.1 0 80-35.9 80-80V301.6c-9.1-7.9-19.8-13.6-32-13.6-12.3.1-22.4 4.8-32 13.7z\"]\n};\nvar faUmbrellaBeach = {\n prefix: 'fas',\n iconName: 'umbrella-beach',\n icon: [640, 512, [], \"f5ca\", \"M115.38 136.9l102.11 37.18c35.19-81.54 86.21-144.29 139-173.7-95.88-4.89-188.78 36.96-248.53 111.8-6.69 8.4-2.66 21.05 7.42 24.72zm132.25 48.16l238.48 86.83c35.76-121.38 18.7-231.66-42.63-253.98-7.4-2.7-15.13-4-23.09-4-58.02.01-128.27 69.17-172.76 171.15zM521.48 60.5c6.22 16.3 10.83 34.6 13.2 55.19 5.74 49.89-1.42 108.23-18.95 166.98l102.62 37.36c10.09 3.67 21.31-3.43 21.57-14.17 2.32-95.69-41.91-187.44-118.44-245.36zM560 447.98H321.06L386 269.5l-60.14-21.9-72.9 200.37H16c-8.84 0-16 7.16-16 16.01v32.01C0 504.83 7.16 512 16 512h544c8.84 0 16-7.17 16-16.01v-32.01c0-8.84-7.16-16-16-16z\"]\n};\nvar faUnderline = {\n prefix: 'fas',\n iconName: 'underline',\n icon: [448, 512, [], \"f0cd\", \"M32 64h32v160c0 88.22 71.78 160 160 160s160-71.78 160-160V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H272a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32v160a80 80 0 0 1-160 0V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm400 384H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faUndo = {\n prefix: 'fas',\n iconName: 'undo',\n icon: [512, 512, [], \"f0e2\", \"M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z\"]\n};\nvar faUndoAlt = {\n prefix: 'fas',\n iconName: 'undo-alt',\n icon: [512, 512, [], \"f2ea\", \"M255.545 8c-66.269.119-126.438 26.233-170.86 68.685L48.971 40.971C33.851 25.851 8 36.559 8 57.941V192c0 13.255 10.745 24 24 24h134.059c21.382 0 32.09-25.851 16.971-40.971l-41.75-41.75c30.864-28.899 70.801-44.907 113.23-45.273 92.398-.798 170.283 73.977 169.484 169.442C423.236 348.009 349.816 424 256 424c-41.127 0-79.997-14.678-110.63-41.556-4.743-4.161-11.906-3.908-16.368.553L89.34 422.659c-4.872 4.872-4.631 12.815.482 17.433C133.798 479.813 192.074 504 256 504c136.966 0 247.999-111.033 248-247.998C504.001 119.193 392.354 7.755 255.545 8z\"]\n};\nvar faUniversalAccess = {\n prefix: 'fas',\n iconName: 'universal-access',\n icon: [512, 512, [], \"f29a\", \"M256 48c114.953 0 208 93.029 208 208 0 114.953-93.029 208-208 208-114.953 0-208-93.029-208-208 0-114.953 93.029-208 208-208m0-40C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 56C149.961 64 64 149.961 64 256s85.961 192 192 192 192-85.961 192-192S362.039 64 256 64zm0 44c19.882 0 36 16.118 36 36s-16.118 36-36 36-36-16.118-36-36 16.118-36 36-36zm117.741 98.023c-28.712 6.779-55.511 12.748-82.14 15.807.851 101.023 12.306 123.052 25.037 155.621 3.617 9.26-.957 19.698-10.217 23.315-9.261 3.617-19.699-.957-23.316-10.217-8.705-22.308-17.086-40.636-22.261-78.549h-9.686c-5.167 37.851-13.534 56.208-22.262 78.549-3.615 9.255-14.05 13.836-23.315 10.217-9.26-3.617-13.834-14.056-10.217-23.315 12.713-32.541 24.185-54.541 25.037-155.621-26.629-3.058-53.428-9.027-82.141-15.807-8.6-2.031-13.926-10.648-11.895-19.249s10.647-13.926 19.249-11.895c96.686 22.829 124.283 22.783 220.775 0 8.599-2.03 17.218 3.294 19.249 11.895 2.029 8.601-3.297 17.219-11.897 19.249z\"]\n};\nvar faUniversity = {\n prefix: 'fas',\n iconName: 'university',\n icon: [512, 512, [], \"f19c\", \"M496 128v16a8 8 0 0 1-8 8h-24v12c0 6.627-5.373 12-12 12H60c-6.627 0-12-5.373-12-12v-12H24a8 8 0 0 1-8-8v-16a8 8 0 0 1 4.941-7.392l232-88a7.996 7.996 0 0 1 6.118 0l232 88A8 8 0 0 1 496 128zm-24 304H40c-13.255 0-24 10.745-24 24v16a8 8 0 0 0 8 8h464a8 8 0 0 0 8-8v-16c0-13.255-10.745-24-24-24zM96 192v192H60c-6.627 0-12 5.373-12 12v20h416v-20c0-6.627-5.373-12-12-12h-36V192h-64v192h-64V192h-64v192h-64V192H96z\"]\n};\nvar faUnlink = {\n prefix: 'fas',\n iconName: 'unlink',\n icon: [512, 512, [], \"f127\", \"M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z\"]\n};\nvar faUnlock = {\n prefix: 'fas',\n iconName: 'unlock',\n icon: [448, 512, [], \"f09c\", \"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z\"]\n};\nvar faUnlockAlt = {\n prefix: 'fas',\n iconName: 'unlock-alt',\n icon: [448, 512, [], \"f13e\", \"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z\"]\n};\nvar faUpload = {\n prefix: 'fas',\n iconName: 'upload',\n icon: [512, 512, [], \"f093\", \"M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\"]\n};\nvar faUser = {\n prefix: 'fas',\n iconName: 'user',\n icon: [448, 512, [], \"f007\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"]\n};\nvar faUserAlt = {\n prefix: 'fas',\n iconName: 'user-alt',\n icon: [512, 512, [], \"f406\", \"M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0 112 64.5 112 144s64.5 144 144 144zm128 32h-55.1c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16H128C57.3 320 0 377.3 0 448v16c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-16c0-70.7-57.3-128-128-128z\"]\n};\nvar faUserAltSlash = {\n prefix: 'fas',\n iconName: 'user-alt-slash',\n icon: [640, 512, [], \"f4fa\", \"M633.8 458.1L389.6 269.3C433.8 244.7 464 198.1 464 144 464 64.5 399.5 0 320 0c-67.1 0-123 46.1-139 108.2L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM198.4 320C124.2 320 64 380.2 64 454.4v9.6c0 26.5 21.5 48 48 48h382.2L245.8 320h-47.4z\"]\n};\nvar faUserAstronaut = {\n prefix: 'fas',\n iconName: 'user-astronaut',\n icon: [448, 512, [], \"f4fb\", \"M64 224h13.5c24.7 56.5 80.9 96 146.5 96s121.8-39.5 146.5-96H384c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16h-13.5C345.8 39.5 289.6 0 224 0S102.2 39.5 77.5 96H64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16zm40-88c0-22.1 21.5-40 48-40h144c26.5 0 48 17.9 48 40v24c0 53-43 96-96 96h-48c-53 0-96-43-96-96v-24zm72 72l12-36 36-12-36-12-12-36-12 36-36 12 36 12 12 36zm151.6 113.4C297.7 340.7 262.2 352 224 352s-73.7-11.3-103.6-30.6C52.9 328.5 0 385 0 454.4v9.6c0 26.5 21.5 48 48 48h80v-64c0-17.7 14.3-32 32-32h128c17.7 0 32 14.3 32 32v64h80c26.5 0 48-21.5 48-48v-9.6c0-69.4-52.9-125.9-120.4-133zM272 448c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-96 0c-8.8 0-16 7.2-16 16v48h32v-48c0-8.8-7.2-16-16-16z\"]\n};\nvar faUserCheck = {\n prefix: 'fas',\n iconName: 'user-check',\n icon: [640, 512, [], \"f4fc\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zm323-128.4l-27.8-28.1c-4.6-4.7-12.1-4.7-16.8-.1l-104.8 104-45.5-45.8c-4.6-4.7-12.1-4.7-16.8-.1l-28.1 27.9c-4.7 4.6-4.7 12.1-.1 16.8l81.7 82.3c4.6 4.7 12.1 4.7 16.8.1l141.3-140.2c4.6-4.7 4.7-12.2.1-16.8z\"]\n};\nvar faUserCircle = {\n prefix: 'fas',\n iconName: 'user-circle',\n icon: [496, 512, [], \"f2bd\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 96c48.6 0 88 39.4 88 88s-39.4 88-88 88-88-39.4-88-88 39.4-88 88-88zm0 344c-58.7 0-111.3-26.6-146.5-68.2 18.8-35.4 55.6-59.8 98.5-59.8 2.4 0 4.8.4 7.1 1.1 13 4.2 26.6 6.9 40.9 6.9 14.3 0 28-2.7 40.9-6.9 2.3-.7 4.7-1.1 7.1-1.1 42.9 0 79.7 24.4 98.5 59.8C359.3 421.4 306.7 448 248 448z\"]\n};\nvar faUserClock = {\n prefix: 'fas',\n iconName: 'user-clock',\n icon: [640, 512, [], \"f4fd\", \"M496 224c-79.6 0-144 64.4-144 144s64.4 144 144 144 144-64.4 144-144-64.4-144-144-144zm64 150.3c0 5.3-4.4 9.7-9.7 9.7h-60.6c-5.3 0-9.7-4.4-9.7-9.7v-76.6c0-5.3 4.4-9.7 9.7-9.7h12.6c5.3 0 9.7 4.4 9.7 9.7V352h38.3c5.3 0 9.7 4.4 9.7 9.7v12.6zM320 368c0-27.8 6.7-54.1 18.2-77.5-8-1.5-16.2-2.5-24.6-2.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h347.1c-45.3-31.9-75.1-84.5-75.1-144zm-96-112c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128z\"]\n};\nvar faUserCog = {\n prefix: 'fas',\n iconName: 'user-cog',\n icon: [640, 512, [], \"f4fe\", \"M610.5 373.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 400.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm201.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6c-6 3.4-12.8 5.3-19.6 5.3-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-5.5-17.7 1.9-36.4 17.9-45.7l7.9-4.6c-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-16-9.2-23.4-28-17.9-45.7.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c10.1 0 19.5-3.2 27.2-8.5-1.2-3.8-2-7.7-2-11.8v-9.2z\"]\n};\nvar faUserEdit = {\n prefix: 'fas',\n iconName: 'user-edit',\n icon: [640, 512, [], \"f4ff\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h274.9c-2.4-6.8-3.4-14-2.6-21.3l6.8-60.9 1.2-11.1 7.9-7.9 77.3-77.3c-24.5-27.7-60-45.5-99.9-45.5zm45.3 145.3l-6.8 61c-1.1 10.2 7.5 18.8 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7-137.9 137.8zM633 268.9L595.1 231c-9.3-9.3-24.5-9.3-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8c9.3-9.4 9.3-24.5 0-33.9z\"]\n};\nvar faUserFriends = {\n prefix: 'fas',\n iconName: 'user-friends',\n icon: [640, 512, [], \"f500\", \"M192 256c61.9 0 112-50.1 112-112S253.9 32 192 32 80 82.1 80 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C51.6 288 0 339.6 0 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zM480 256c53 0 96-43 96-96s-43-96-96-96-96 43-96 96 43 96 96 96zm48 32h-3.8c-13.9 4.8-28.6 8-44.2 8s-30.3-3.2-44.2-8H432c-20.4 0-39.2 5.9-55.7 15.4 24.4 26.3 39.7 61.2 39.7 99.8v38.4c0 2.2-.5 4.3-.6 6.4H592c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112z\"]\n};\nvar faUserGraduate = {\n prefix: 'fas',\n iconName: 'user-graduate',\n icon: [448, 512, [], \"f501\", \"M319.4 320.6L224 416l-95.4-95.4C57.1 323.7 0 382.2 0 454.4v9.6c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-9.6c0-72.2-57.1-130.7-128.6-133.8zM13.6 79.8l6.4 1.5v58.4c-7 4.2-12 11.5-12 20.3 0 8.4 4.6 15.4 11.1 19.7L3.5 242c-1.7 6.9 2.1 14 7.6 14h41.8c5.5 0 9.3-7.1 7.6-14l-15.6-62.3C51.4 175.4 56 168.4 56 160c0-8.8-5-16.1-12-20.3V87.1l66 15.9c-8.6 17.2-14 36.4-14 57 0 70.7 57.3 128 128 128s128-57.3 128-128c0-20.6-5.3-39.8-14-57l96.3-23.2c18.2-4.4 18.2-27.1 0-31.5l-190.4-46c-13-3.1-26.7-3.1-39.7 0L13.6 48.2c-18.1 4.4-18.1 27.2 0 31.6z\"]\n};\nvar faUserInjured = {\n prefix: 'fas',\n iconName: 'user-injured',\n icon: [448, 512, [], \"f728\", \"M277.37 11.98C261.08 4.47 243.11 0 224 0c-53.69 0-99.5 33.13-118.51 80h81.19l90.69-68.02zM342.51 80c-7.9-19.47-20.67-36.2-36.49-49.52L239.99 80h102.52zM224 256c70.69 0 128-57.31 128-128 0-5.48-.95-10.7-1.61-16H97.61c-.67 5.3-1.61 10.52-1.61 16 0 70.69 57.31 128 128 128zM80 299.7V512h128.26l-98.45-221.52A132.835 132.835 0 0 0 80 299.7zM0 464c0 26.51 21.49 48 48 48V320.24C18.88 344.89 0 381.26 0 422.4V464zm256-48h-55.38l42.67 96H256c26.47 0 48-21.53 48-48s-21.53-48-48-48zm57.6-128h-16.71c-22.24 10.18-46.88 16-72.89 16s-50.65-5.82-72.89-16h-7.37l42.67 96H256c44.11 0 80 35.89 80 80 0 18.08-6.26 34.59-16.41 48H400c26.51 0 48-21.49 48-48v-41.6c0-74.23-60.17-134.4-134.4-134.4z\"]\n};\nvar faUserLock = {\n prefix: 'fas',\n iconName: 'user-lock',\n icon: [640, 512, [], \"f502\", \"M224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm96 64a63.08 63.08 0 0 1 8.1-30.5c-4.8-.5-9.5-1.5-14.5-1.5h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h280.9a63.54 63.54 0 0 1-8.9-32zm288-32h-32v-80a80 80 0 0 0-160 0v80h-32a32 32 0 0 0-32 32v160a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32V320a32 32 0 0 0-32-32zM496 432a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm32-144h-64v-80a32 32 0 0 1 64 0z\"]\n};\nvar faUserMd = {\n prefix: 'fas',\n iconName: 'user-md',\n icon: [448, 512, [], \"f0f0\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zM104 424c0 13.3 10.7 24 24 24s24-10.7 24-24-10.7-24-24-24-24 10.7-24 24zm216-135.4v49c36.5 7.4 64 39.8 64 78.4v41.7c0 7.6-5.4 14.2-12.9 15.7l-32.2 6.4c-4.3.9-8.5-1.9-9.4-6.3l-3.1-15.7c-.9-4.3 1.9-8.6 6.3-9.4l19.3-3.9V416c0-62.8-96-65.1-96 1.9v26.7l19.3 3.9c4.3.9 7.1 5.1 6.3 9.4l-3.1 15.7c-.9 4.3-5.1 7.1-9.4 6.3l-31.2-4.2c-7.9-1.1-13.8-7.8-13.8-15.9V416c0-38.6 27.5-70.9 64-78.4v-45.2c-2.2.7-4.4 1.1-6.6 1.9-18 6.3-37.3 9.8-57.4 9.8s-39.4-3.5-57.4-9.8c-7.4-2.6-14.9-4.2-22.6-5.2v81.6c23.1 6.9 40 28.1 40 53.4 0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.3 16.9-46.5 40-53.4v-80.4C48.5 301 0 355.8 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-72-56.8-130.3-128-133.8z\"]\n};\nvar faUserMinus = {\n prefix: 'fas',\n iconName: 'user-minus',\n icon: [640, 512, [], \"f503\", \"M624 208H432c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"]\n};\nvar faUserNinja = {\n prefix: 'fas',\n iconName: 'user-ninja',\n icon: [448, 512, [], \"f504\", \"M325.4 289.2L224 390.6 122.6 289.2C54 295.3 0 352.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-70.2-54-127.1-122.6-133.2zM32 192c27.3 0 51.8-11.5 69.2-29.7 15.1 53.9 64 93.7 122.8 93.7 70.7 0 128-57.3 128-128S294.7 0 224 0c-50.4 0-93.6 29.4-114.5 71.8C92.1 47.8 64 32 32 32c0 33.4 17.1 62.8 43.1 80-26 17.2-43.1 46.6-43.1 80zm144-96h96c17.7 0 32 14.3 32 32H144c0-17.7 14.3-32 32-32z\"]\n};\nvar faUserNurse = {\n prefix: 'fas',\n iconName: 'user-nurse',\n icon: [448, 512, [], \"f82f\", \"M319.41,320,224,415.39,128.59,320C57.1,323.1,0,381.6,0,453.79A58.21,58.21,0,0,0,58.21,512H389.79A58.21,58.21,0,0,0,448,453.79C448,381.6,390.9,323.1,319.41,320ZM224,304A128,128,0,0,0,352,176V65.82a32,32,0,0,0-20.76-30L246.47,4.07a64,64,0,0,0-44.94,0L116.76,35.86A32,32,0,0,0,96,65.82V176A128,128,0,0,0,224,304ZM184,71.67a5,5,0,0,1,5-5h21.67V45a5,5,0,0,1,5-5h16.66a5,5,0,0,1,5,5V66.67H259a5,5,0,0,1,5,5V88.33a5,5,0,0,1-5,5H237.33V115a5,5,0,0,1-5,5H215.67a5,5,0,0,1-5-5V93.33H189a5,5,0,0,1-5-5ZM144,160H304v16a80,80,0,0,1-160,0Z\"]\n};\nvar faUserPlus = {\n prefix: 'fas',\n iconName: 'user-plus',\n icon: [640, 512, [], \"f234\", \"M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"]\n};\nvar faUserSecret = {\n prefix: 'fas',\n iconName: 'user-secret',\n icon: [448, 512, [], \"f21b\", \"M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z\"]\n};\nvar faUserShield = {\n prefix: 'fas',\n iconName: 'user-shield',\n icon: [640, 512, [], \"f505\", \"M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z\"]\n};\nvar faUserSlash = {\n prefix: 'fas',\n iconName: 'user-slash',\n icon: [640, 512, [], \"f506\", \"M633.8 458.1L362.3 248.3C412.1 230.7 448 183.8 448 128 448 57.3 390.7 0 320 0c-67.1 0-121.5 51.8-126.9 117.4L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM96 422.4V464c0 26.5 21.5 48 48 48h350.2L207.4 290.3C144.2 301.3 96 356 96 422.4z\"]\n};\nvar faUserTag = {\n prefix: 'fas',\n iconName: 'user-tag',\n icon: [640, 512, [], \"f507\", \"M630.6 364.9l-90.3-90.2c-12-12-28.3-18.7-45.3-18.7h-79.3c-17.7 0-32 14.3-32 32v79.2c0 17 6.7 33.2 18.7 45.2l90.3 90.2c12.5 12.5 32.8 12.5 45.3 0l92.5-92.5c12.6-12.5 12.6-32.7.1-45.2zm-182.8-21c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24c0 13.2-10.7 24-24 24zm-223.8-88c70.7 0 128-57.3 128-128C352 57.3 294.7 0 224 0S96 57.3 96 128c0 70.6 57.3 127.9 128 127.9zm127.8 111.2V294c-12.2-3.6-24.9-6.2-38.2-6.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 287.9 0 348.1 0 422.3v41.6c0 26.5 21.5 48 48 48h352c15.5 0 29.1-7.5 37.9-18.9l-58-58c-18.1-18.1-28.1-42.2-28.1-67.9z\"]\n};\nvar faUserTie = {\n prefix: 'fas',\n iconName: 'user-tie',\n icon: [448, 512, [], \"f508\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm95.8 32.6L272 480l-32-136 32-56h-96l32 56-32 136-47.8-191.4C56.9 292 0 350.3 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-72.1-56.9-130.4-128.2-133.8z\"]\n};\nvar faUserTimes = {\n prefix: 'fas',\n iconName: 'user-times',\n icon: [640, 512, [], \"f235\", \"M589.6 240l45.6-45.6c6.3-6.3 6.3-16.5 0-22.8l-22.8-22.8c-6.3-6.3-16.5-6.3-22.8 0L544 194.4l-45.6-45.6c-6.3-6.3-16.5-6.3-22.8 0l-22.8 22.8c-6.3 6.3-6.3 16.5 0 22.8l45.6 45.6-45.6 45.6c-6.3 6.3-6.3 16.5 0 22.8l22.8 22.8c6.3 6.3 16.5 6.3 22.8 0l45.6-45.6 45.6 45.6c6.3 6.3 16.5 6.3 22.8 0l22.8-22.8c6.3-6.3 6.3-16.5 0-22.8L589.6 240zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"]\n};\nvar faUsers = {\n prefix: 'fas',\n iconName: 'users',\n icon: [640, 512, [], \"f0c0\", \"M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z\"]\n};\nvar faUsersCog = {\n prefix: 'fas',\n iconName: 'users-cog',\n icon: [640, 512, [], \"f509\", \"M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z\"]\n};\nvar faUsersSlash = {\n prefix: 'fas',\n iconName: 'users-slash',\n icon: [640, 512, [], \"e073\", \"M132.65,212.32,36.21,137.78A63.4,63.4,0,0,0,32,160a63.84,63.84,0,0,0,100.65,52.32Zm40.44,62.28A63.79,63.79,0,0,0,128,256H64A64.06,64.06,0,0,0,0,320v32a32,32,0,0,0,32,32H97.91A146.62,146.62,0,0,1,173.09,274.6ZM544,224a64,64,0,1,0-64-64A64.06,64.06,0,0,0,544,224ZM500.56,355.11a114.24,114.24,0,0,0-84.47-65.28L361,247.23c41.46-16.3,71-55.92,71-103.23A111.93,111.93,0,0,0,320,32c-57.14,0-103.69,42.83-110.6,98.08L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45ZM128,403.21V432a48,48,0,0,0,48,48H464a47.45,47.45,0,0,0,12.57-1.87L232,289.13C173.74,294.83,128,343.42,128,403.21ZM576,256H512a63.79,63.79,0,0,0-45.09,18.6A146.29,146.29,0,0,1,542,384h66a32,32,0,0,0,32-32V320A64.06,64.06,0,0,0,576,256Z\"]\n};\nvar faUtensilSpoon = {\n prefix: 'fas',\n iconName: 'utensil-spoon',\n icon: [512, 512, [], \"f2e5\", \"M480.1 31.9c-55-55.1-164.9-34.5-227.8 28.5-49.3 49.3-55.1 110-28.8 160.4L9 413.2c-11.6 10.5-12.1 28.5-1 39.5L59.3 504c11 11 29.1 10.5 39.5-1.1l192.4-214.4c50.4 26.3 111.1 20.5 160.4-28.8 63-62.9 83.6-172.8 28.5-227.8z\"]\n};\nvar faUtensils = {\n prefix: 'fas',\n iconName: 'utensils',\n icon: [416, 512, [], \"f2e7\", \"M207.9 15.2c.8 4.7 16.1 94.5 16.1 128.8 0 52.3-27.8 89.6-68.9 104.6L168 486.7c.7 13.7-10.2 25.3-24 25.3H80c-13.7 0-24.7-11.5-24-25.3l12.9-238.1C27.7 233.6 0 196.2 0 144 0 109.6 15.3 19.9 16.1 15.2 19.3-5.1 61.4-5.4 64 16.3v141.2c1.3 3.4 15.1 3.2 16 0 1.4-25.3 7.9-139.2 8-141.8 3.3-20.8 44.7-20.8 47.9 0 .2 2.7 6.6 116.5 8 141.8.9 3.2 14.8 3.4 16 0V16.3c2.6-21.6 44.8-21.4 48-1.1zm119.2 285.7l-15 185.1c-1.2 14 9.9 26 23.9 26h56c13.3 0 24-10.7 24-24V24c0-13.2-10.7-24-24-24-82.5 0-221.4 178.5-64.9 300.9z\"]\n};\nvar faVectorSquare = {\n prefix: 'fas',\n iconName: 'vector-square',\n icon: [512, 512, [], \"f5cb\", \"M512 128V32c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32H160c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32v192c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32h192c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32V160c17.67 0 32-14.33 32-32zm-96-64h32v32h-32V64zM64 64h32v32H64V64zm32 384H64v-32h32v32zm352 0h-32v-32h32v32zm-32-96h-32c-17.67 0-32 14.33-32 32v32H160v-32c0-17.67-14.33-32-32-32H96V160h32c17.67 0 32-14.33 32-32V96h192v32c0 17.67 14.33 32 32 32h32v192z\"]\n};\nvar faVenus = {\n prefix: 'fas',\n iconName: 'venus',\n icon: [288, 512, [], \"f221\", \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z\"]\n};\nvar faVenusDouble = {\n prefix: 'fas',\n iconName: 'venus-double',\n icon: [512, 512, [], \"f226\", \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80zm336 140.4V368h36c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-36v36c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-36h-36c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h36v-51.6c-21.2-4.8-40.6-14.3-57.2-27.3 14-16.7 25-36 32.1-57.1 14.5 14.8 34.7 24 57.1 24 44.1 0 80-35.9 80-80s-35.9-80-80-80c-22.3 0-42.6 9.2-57.1 24-7.1-21.1-18-40.4-32.1-57.1C303.4 43.6 334.3 32 368 32c79.5 0 144 64.5 144 144 0 68.5-47.9 125.9-112 140.4z\"]\n};\nvar faVenusMars = {\n prefix: 'fas',\n iconName: 'venus-mars',\n icon: [576, 512, [], \"f228\", \"M564 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C422.5 72.1 396.2 64 368 64c-33.7 0-64.6 11.6-89.2 30.9 14 16.7 25 36 32.1 57.1 14.5-14.8 34.7-24 57.1-24 44.1 0 80 35.9 80 80s-35.9 80-80 80c-22.3 0-42.6-9.2-57.1-24-7.1 21.1-18 40.4-32.1 57.1 24.5 19.4 55.5 30.9 89.2 30.9 79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 64C64.5 64 0 128.5 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.6 112-71.9 112-140.4 0-79.5-64.5-144-144-144zm0 224c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faVest = {\n prefix: 'fas',\n iconName: 'vest',\n icon: [448, 512, [], \"e085\", \"M437.252,239.877,384,160V32A32,32,0,0,0,352,0H320a24.021,24.021,0,0,0-13.312,4.031l-25,16.672a103.794,103.794,0,0,1-115.376,0l-25-16.672A24.021,24.021,0,0,0,128,0H96A32,32,0,0,0,64,32V160L10.748,239.877A64,64,0,0,0,0,275.377V480a32,32,0,0,0,32,32H192V288a31.987,31.987,0,0,1,1.643-10.119L207.135,237.4,150.188,66.564A151.518,151.518,0,0,0,224,86.234a151.55,151.55,0,0,0,73.812-19.672L224,288V512H416a32,32,0,0,0,32-32V275.377A64,64,0,0,0,437.252,239.877ZM131.312,371.312l-48,48a16,16,0,0,1-22.624-22.624l48-48a16,16,0,0,1,22.624,22.624Zm256,48a15.992,15.992,0,0,1-22.624,0l-48-48a16,16,0,0,1,22.624-22.624l48,48A15.993,15.993,0,0,1,387.312,419.312Z\"]\n};\nvar faVestPatches = {\n prefix: 'fas',\n iconName: 'vest-patches',\n icon: [448, 512, [], \"e086\", \"M437.252,239.877,384,160V32A32,32,0,0,0,352,0H320a23.982,23.982,0,0,0-13.312,4.031l-25,16.672a103.794,103.794,0,0,1-115.376,0l-25-16.672A23.982,23.982,0,0,0,128,0H96A32,32,0,0,0,64,32V160L10.748,239.877A64,64,0,0,0,0,275.377V480a32,32,0,0,0,32,32H192V288a31.987,31.987,0,0,1,1.643-10.119L207.135,237.4,150.188,66.561A151.579,151.579,0,0,0,224,86.234a151.565,151.565,0,0,0,73.811-19.668L224,288V512H416a32,32,0,0,0,32-32V275.377A64,64,0,0,0,437.252,239.877ZM63.5,272.484a12.01,12.01,0,0,1,17-16.968l15.5,15.5,15.5-15.5a12.01,12.01,0,0,1,17,16.968L112.984,288,128.5,303.516a12.01,12.01,0,0,1-17,16.968L96,304.984l-15.5,15.5a12.01,12.01,0,0,1-17-16.968L79.016,288ZM96,456a40,40,0,1,1,40-40A40,40,0,0,1,96,456ZM359.227,335.785,310.7,336a6.671,6.671,0,0,1-6.7-6.7l.215-48.574A24.987,24.987,0,0,1,331.43,256.1c12.789,1.162,22.129,12.619,22.056,25.419l-.037,5.057,5.051-.037c12.826-.035,24.236,9.275,25.4,22.076A24.948,24.948,0,0,1,359.227,335.785Z\"]\n};\nvar faVial = {\n prefix: 'fas',\n iconName: 'vial',\n icon: [480, 512, [], \"f492\", \"M477.7 186.1L309.5 18.3c-3.1-3.1-8.2-3.1-11.3 0l-34 33.9c-3.1 3.1-3.1 8.2 0 11.3l11.2 11.1L33 316.5c-38.8 38.7-45.1 102-9.4 143.5 20.6 24 49.5 36 78.4 35.9 26.4 0 52.8-10 72.9-30.1l246.3-245.7 11.2 11.1c3.1 3.1 8.2 3.1 11.3 0l34-33.9c3.1-3 3.1-8.1 0-11.2zM318 256H161l148-147.7 78.5 78.3L318 256z\"]\n};\nvar faVials = {\n prefix: 'fas',\n iconName: 'vials',\n icon: [640, 512, [], \"f493\", \"M72 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64zm480 384H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM360 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64z\"]\n};\nvar faVideo = {\n prefix: 'fas',\n iconName: 'video',\n icon: [576, 512, [], \"f03d\", \"M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z\"]\n};\nvar faVideoSlash = {\n prefix: 'fas',\n iconName: 'video-slash',\n icon: [640, 512, [], \"f4e2\", \"M633.8 458.1l-55-42.5c15.4-1.4 29.2-13.7 29.2-31.1v-257c0-25.5-29.1-40.4-50.4-25.8L448 177.3v137.2l-32-24.7v-178c0-26.4-21.4-47.8-47.8-47.8H123.9L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4L42.7 82 416 370.6l178.5 138c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.5-6.9 4.2-17-2.8-22.4zM32 400.2c0 26.4 21.4 47.8 47.8 47.8h288.4c11.2 0 21.4-4 29.6-10.5L32 154.7v245.5z\"]\n};\nvar faVihara = {\n prefix: 'fas',\n iconName: 'vihara',\n icon: [640, 512, [], \"f6a7\", \"M632.88 400.71L544 352v-64l55.16-17.69c11.79-5.9 11.79-22.72 0-28.62L480 192v-64l27.31-16.3c7.72-7.72 5.61-20.74-4.16-25.62L320 0 136.85 86.07c-9.77 4.88-11.88 17.9-4.16 25.62L160 128v64L40.84 241.69c-11.79 5.9-11.79 22.72 0 28.62L96 288v64L7.12 400.71c-5.42 3.62-7.7 9.63-7 15.29.62 5.01 3.57 9.75 8.72 12.33L64 448v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48l55.15-19.67c5.16-2.58 8.1-7.32 8.72-12.33.71-5.67-1.57-11.68-6.99-15.29zM224 128h192v64H224v-64zm-64 224v-64h320v64H160z\"]\n};\nvar faVirus = {\n prefix: 'fas',\n iconName: 'virus',\n icon: [512, 512, [], \"e074\", \"M483.55,227.55H462c-50.68,0-76.07-61.27-40.23-97.11L437,115.19A28.44,28.44,0,0,0,396.8,75L381.56,90.22c-35.84,35.83-97.11,10.45-97.11-40.23V28.44a28.45,28.45,0,0,0-56.9,0V50c0,50.68-61.27,76.06-97.11,40.23L115.2,75A28.44,28.44,0,0,0,75,115.19l15.25,15.25c35.84,35.84,10.45,97.11-40.23,97.11H28.45a28.45,28.45,0,1,0,0,56.89H50c50.68,0,76.07,61.28,40.23,97.12L75,396.8A28.45,28.45,0,0,0,115.2,437l15.24-15.25c35.84-35.84,97.11-10.45,97.11,40.23v21.54a28.45,28.45,0,0,0,56.9,0V462c0-50.68,61.27-76.07,97.11-40.23L396.8,437A28.45,28.45,0,0,0,437,396.8l-15.25-15.24c-35.84-35.84-10.45-97.12,40.23-97.12h21.54a28.45,28.45,0,1,0,0-56.89ZM224,272a48,48,0,1,1,48-48A48,48,0,0,1,224,272Zm80,56a24,24,0,1,1,24-24A24,24,0,0,1,304,328Z\"]\n};\nvar faVirusSlash = {\n prefix: 'fas',\n iconName: 'virus-slash',\n icon: [640, 512, [], \"e075\", \"M114,227.6H92.4C76.7,227.6,64,240.3,64,256s12.7,28.4,28.4,28.4H114c50.7,0,76.1,61.3,40.2,97.1L139,396.8 c-11.5,10.7-12.2,28.7-1.6,40.2s28.7,12.2,40.2,1.6c0.5-0.5,1.1-1,1.6-1.6l15.2-15.2c35.8-35.8,97.1-10.5,97.1,40.2v21.5 c0,15.7,12.8,28.4,28.5,28.4c15.7,0,28.4-12.7,28.4-28.4V462c0-26.6,17-45.9,38.2-53.4l-244.5-189 C133.7,224.7,123.9,227.5,114,227.6z M617,505.8l19.6-25.3c5.4-7,4.2-17-2.8-22.5L470.6,332c4.2-25.4,24.9-47.5,55.4-47.5h21.5 c15.7,0,28.4-12.7,28.4-28.4s-12.7-28.4-28.4-28.4H526c-50.7,0-76.1-61.3-40.2-97.1l15.2-15.3c10.7-11.5,10-29.5-1.6-40.2 c-10.9-10.1-27.7-10.1-38.6,0l-15.2,15.2c-35.8,35.8-97.1,10.5-97.1-40.2V28.5C348.4,12.7,335.7,0,320,0 c-15.7,0-28.4,12.7-28.4,28.4V50c0,50.7-61.3,76.1-97.1,40.2L179.2,75c-11.1-11.1-29.4-10.6-40.5,0.5L45.5,3.4 c-7-5.4-17-4.2-22.5,2.8L3.4,31.5c-5.4,7-4.2,17,2.8,22.5l588.4,454.7C601.5,514.1,611.6,512.8,617,505.8z M335.4,227.5l-62.9-48.6 c4.9-1.8,10.2-2.8,15.4-2.9c26.5,0,48,21.5,48,48C336,225.2,335.5,226.3,335.4,227.5z\"]\n};\nvar faViruses = {\n prefix: 'fas',\n iconName: 'viruses',\n icon: [640, 512, [], \"e076\", \"M624,352H611.88c-28.51,0-42.79-34.47-22.63-54.63l8.58-8.57a16,16,0,1,0-22.63-22.63l-8.57,8.58C546.47,294.91,512,280.63,512,252.12V240a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.57c20.16,20.16,5.88,54.63-22.63,54.63H368a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.57a16,16,0,1,0,22.63,22.63l8.57-8.58c20.16-20.16,54.63-5.88,54.63,22.63V496a16,16,0,0,0,32,0V483.88c0-28.51,34.47-42.79,54.63-22.63l8.57,8.58a16,16,0,1,0,22.63-22.63l-8.58-8.57C569.09,418.47,583.37,384,611.88,384H624a16,16,0,0,0,0-32ZM480,384a32,32,0,1,1,32-32A32,32,0,0,1,480,384ZM346.51,213.33h16.16a21.33,21.33,0,0,0,0-42.66H346.51c-38,0-57.05-46-30.17-72.84l11.43-11.44A21.33,21.33,0,0,0,297.6,56.23L286.17,67.66c-26.88,26.88-72.84,7.85-72.84-30.17V21.33a21.33,21.33,0,0,0-42.66,0V37.49c0,38-46,57.05-72.84,30.17L86.4,56.23A21.33,21.33,0,0,0,56.23,86.39L67.66,97.83c26.88,26.88,7.85,72.84-30.17,72.84H21.33a21.33,21.33,0,0,0,0,42.66H37.49c38,0,57.05,46,30.17,72.84L56.23,297.6A21.33,21.33,0,1,0,86.4,327.77l11.43-11.43c26.88-26.88,72.84-7.85,72.84,30.17v16.16a21.33,21.33,0,0,0,42.66,0V346.51c0-38,46-57.05,72.84-30.17l11.43,11.43a21.33,21.33,0,0,0,30.17-30.17l-11.43-11.43C289.46,259.29,308.49,213.33,346.51,213.33ZM160,192a32,32,0,1,1,32-32A32,32,0,0,1,160,192Zm80,32a16,16,0,1,1,16-16A16,16,0,0,1,240,224Z\"]\n};\nvar faVoicemail = {\n prefix: 'fas',\n iconName: 'voicemail',\n icon: [640, 512, [], \"f897\", \"M496 128a144 144 0 0 0-119.74 224H263.74A144 144 0 1 0 144 416h352a144 144 0 0 0 0-288zM64 272a80 80 0 1 1 80 80 80 80 0 0 1-80-80zm432 80a80 80 0 1 1 80-80 80 80 0 0 1-80 80z\"]\n};\nvar faVolleyballBall = {\n prefix: 'fas',\n iconName: 'volleyball-ball',\n icon: [512, 512, [], \"f45f\", \"M231.39 243.48a285.56 285.56 0 0 0-22.7-105.7c-90.8 42.4-157.5 122.4-180.3 216.8a249 249 0 0 0 56.9 81.1 333.87 333.87 0 0 1 146.1-192.2zm-36.9-134.4a284.23 284.23 0 0 0-57.4-70.7c-91 49.8-144.8 152.9-125 262.2 33.4-83.1 98.4-152 182.4-191.5zm187.6 165.1c8.6-99.8-27.3-197.5-97.5-264.4-14.7-1.7-51.6-5.5-98.9 8.5A333.87 333.87 0 0 1 279.19 241a285 285 0 0 0 102.9 33.18zm-124.7 9.5a286.33 286.33 0 0 0-80.2 72.6c82 57.3 184.5 75.1 277.5 47.8a247.15 247.15 0 0 0 42.2-89.9 336.1 336.1 0 0 1-80.9 10.4c-54.6-.1-108.9-14.1-158.6-40.9zm-98.3 99.7c-15.2 26-25.7 54.4-32.1 84.2a247.07 247.07 0 0 0 289-22.1c-112.9 16.1-203.3-24.8-256.9-62.1zm180.3-360.6c55.3 70.4 82.5 161.2 74.6 253.6a286.59 286.59 0 0 0 89.7-14.2c0-2 .3-4 .3-6 0-107.8-68.7-199.1-164.6-233.4z\"]\n};\nvar faVolumeDown = {\n prefix: 'fas',\n iconName: 'volume-down',\n icon: [384, 512, [], \"f027\", \"M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z\"]\n};\nvar faVolumeMute = {\n prefix: 'fas',\n iconName: 'volume-mute',\n icon: [512, 512, [], \"f6a9\", \"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z\"]\n};\nvar faVolumeOff = {\n prefix: 'fas',\n iconName: 'volume-off',\n icon: [256, 512, [], \"f026\", \"M215 71l-89 89H24a24 24 0 0 0-24 24v144a24 24 0 0 0 24 24h102.06L215 441c15 15 41 4.47 41-17V88c0-21.47-26-32-41-17z\"]\n};\nvar faVolumeUp = {\n prefix: 'fas',\n iconName: 'volume-up',\n icon: [576, 512, [], \"f028\", \"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z\"]\n};\nvar faVoteYea = {\n prefix: 'fas',\n iconName: 'vote-yea',\n icon: [640, 512, [], \"f772\", \"M608 320h-64v64h22.4c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8H96v-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h576c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32zm-96 64V64.3c0-17.9-14.5-32.3-32.3-32.3H160.4C142.5 32 128 46.5 128 64.3V384h384zM211.2 202l25.5-25.3c4.2-4.2 11-4.2 15.2.1l41.3 41.6 95.2-94.4c4.2-4.2 11-4.2 15.2.1l25.3 25.5c4.2 4.2 4.2 11-.1 15.2L300.5 292c-4.2 4.2-11 4.2-15.2-.1l-74.1-74.7c-4.3-4.2-4.2-11 0-15.2z\"]\n};\nvar faVrCardboard = {\n prefix: 'fas',\n iconName: 'vr-cardboard',\n icon: [640, 512, [], \"f729\", \"M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h160.22c25.19 0 48.03-14.77 58.36-37.74l27.74-61.64C286.21 331.08 302.35 320 320 320s33.79 11.08 41.68 28.62l27.74 61.64C399.75 433.23 422.6 448 447.78 448H608c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM160 304c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64zm320 0c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64z\"]\n};\nvar faWalking = {\n prefix: 'fas',\n iconName: 'walking',\n icon: [320, 512, [], \"f554\", \"M208 96c26.5 0 48-21.5 48-48S234.5 0 208 0s-48 21.5-48 48 21.5 48 48 48zm94.5 149.1l-23.3-11.8-9.7-29.4c-14.7-44.6-55.7-75.8-102.2-75.9-36-.1-55.9 10.1-93.3 25.2-21.6 8.7-39.3 25.2-49.7 46.2L17.6 213c-7.8 15.8-1.5 35 14.2 42.9 15.6 7.9 34.6 1.5 42.5-14.3L81 228c3.5-7 9.3-12.5 16.5-15.4l26.8-10.8-15.2 60.7c-5.2 20.8.4 42.9 14.9 58.8l59.9 65.4c7.2 7.9 12.3 17.4 14.9 27.7l18.3 73.3c4.3 17.1 21.7 27.6 38.8 23.3 17.1-4.3 27.6-21.7 23.3-38.8l-22.2-89c-2.6-10.3-7.7-19.9-14.9-27.7l-45.5-49.7 17.2-68.7 5.5 16.5c5.3 16.1 16.7 29.4 31.7 37l23.3 11.8c15.6 7.9 34.6 1.5 42.5-14.3 7.7-15.7 1.4-35.1-14.3-43zM73.6 385.8c-3.2 8.1-8 15.4-14.2 21.5l-50 50.1c-12.5 12.5-12.5 32.8 0 45.3s32.7 12.5 45.2 0l59.4-59.4c6.1-6.1 10.9-13.4 14.2-21.5l13.5-33.8c-55.3-60.3-38.7-41.8-47.4-53.7l-20.7 51.5z\"]\n};\nvar faWallet = {\n prefix: 'fas',\n iconName: 'wallet',\n icon: [512, 512, [], \"f555\", \"M461.2 128H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h384c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h397.2c28.02 0 50.8-21.53 50.8-48V176c0-26.47-22.78-48-50.8-48zM416 336c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faWarehouse = {\n prefix: 'fas',\n iconName: 'warehouse',\n icon: [640, 512, [], \"f494\", \"M504 352H136.4c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 96H136.1c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0-192H136.6c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm106.5-139L338.4 3.7a48.15 48.15 0 0 0-36.9 0L29.5 117C11.7 124.5 0 141.9 0 161.3V504c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V256c0-17.6 14.6-32 32.6-32h382.8c18 0 32.6 14.4 32.6 32v248c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V161.3c0-19.4-11.7-36.8-29.5-44.3z\"]\n};\nvar faWater = {\n prefix: 'fas',\n iconName: 'water',\n icon: [576, 512, [], \"f773\", \"M562.1 383.9c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144C540.6 93.4 520 85.4 504.2 73 490.1 61.9 470 61.7 456 73c-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3z\"]\n};\nvar faWaveSquare = {\n prefix: 'fas',\n iconName: 'wave-square',\n icon: [640, 512, [], \"f83e\", \"M476 480H324a36 36 0 0 1-36-36V96h-96v156a36 36 0 0 1-36 36H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h112V68a36 36 0 0 1 36-36h152a36 36 0 0 1 36 36v348h96V260a36 36 0 0 1 36-36h140a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H512v156a36 36 0 0 1-36 36z\"]\n};\nvar faWeight = {\n prefix: 'fas',\n iconName: 'weight',\n icon: [512, 512, [], \"f496\", \"M448 64h-25.98C438.44 92.28 448 125.01 448 160c0 105.87-86.13 192-192 192S64 265.87 64 160c0-34.99 9.56-67.72 25.98-96H64C28.71 64 0 92.71 0 128v320c0 35.29 28.71 64 64 64h384c35.29 0 64-28.71 64-64V128c0-35.29-28.71-64-64-64zM256 320c88.37 0 160-71.63 160-160S344.37 0 256 0 96 71.63 96 160s71.63 160 160 160zm-.3-151.94l33.58-78.36c3.5-8.17 12.94-11.92 21.03-8.41 8.12 3.48 11.88 12.89 8.41 21l-33.67 78.55C291.73 188 296 197.45 296 208c0 22.09-17.91 40-40 40s-40-17.91-40-40c0-21.98 17.76-39.77 39.7-39.94z\"]\n};\nvar faWeightHanging = {\n prefix: 'fas',\n iconName: 'weight-hanging',\n icon: [512, 512, [], \"f5cd\", \"M510.28 445.86l-73.03-292.13c-3.8-15.19-16.44-25.72-30.87-25.72h-60.25c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96s-96 42.98-96 96c0 11.28 2.3 21.95 5.88 32h-60.25c-14.43 0-27.08 10.54-30.87 25.72L1.72 445.86C-6.61 479.17 16.38 512 48.03 512h415.95c31.64 0 54.63-32.83 46.3-66.14zM256 128c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\"]\n};\nvar faWheelchair = {\n prefix: 'fas',\n iconName: 'wheelchair',\n icon: [512, 512, [], \"f193\", \"M496.101 385.669l14.227 28.663c3.929 7.915.697 17.516-7.218 21.445l-65.465 32.886c-16.049 7.967-35.556 1.194-43.189-15.055L331.679 320H192c-15.925 0-29.426-11.71-31.679-27.475C126.433 55.308 128.38 70.044 128 64c0-36.358 30.318-65.635 67.052-63.929 33.271 1.545 60.048 28.905 60.925 62.201.868 32.933-23.152 60.423-54.608 65.039l4.67 32.69H336c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H215.182l4.572 32H352a32 32 0 0 1 28.962 18.392L438.477 396.8l36.178-18.349c7.915-3.929 17.517-.697 21.446 7.218zM311.358 352h-24.506c-7.788 54.204-54.528 96-110.852 96-61.757 0-112-50.243-112-112 0-41.505 22.694-77.809 56.324-97.156-3.712-25.965-6.844-47.86-9.488-66.333C45.956 198.464 0 261.963 0 336c0 97.047 78.953 176 176 176 71.87 0 133.806-43.308 161.11-105.192L311.358 352z\"]\n};\nvar faWifi = {\n prefix: 'fas',\n iconName: 'wifi',\n icon: [640, 512, [], \"f1eb\", \"M634.91 154.88C457.74-8.99 182.19-8.93 5.09 154.88c-6.66 6.16-6.79 16.59-.35 22.98l34.24 33.97c6.14 6.1 16.02 6.23 22.4.38 145.92-133.68 371.3-133.71 517.25 0 6.38 5.85 16.26 5.71 22.4-.38l34.24-33.97c6.43-6.39 6.3-16.82-.36-22.98zM320 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm202.67-83.59c-115.26-101.93-290.21-101.82-405.34 0-6.9 6.1-7.12 16.69-.57 23.15l34.44 33.99c6 5.92 15.66 6.32 22.05.8 83.95-72.57 209.74-72.41 293.49 0 6.39 5.52 16.05 5.13 22.05-.8l34.44-33.99c6.56-6.46 6.33-17.06-.56-23.15z\"]\n};\nvar faWind = {\n prefix: 'fas',\n iconName: 'wind',\n icon: [512, 512, [], \"f72e\", \"M156.7 256H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h142.2c15.9 0 30.8 10.9 33.4 26.6 3.3 20-12.1 37.4-31.6 37.4-14.1 0-26.1-9.2-30.4-21.9-2.1-6.3-8.6-10.1-15.2-10.1H81.6c-9.8 0-17.7 8.8-15.9 18.4 8.6 44.1 47.6 77.6 94.2 77.6 57.1 0 102.7-50.1 95.2-108.6C249 291 205.4 256 156.7 256zM16 224h336c59.7 0 106.8-54.8 93.8-116.7-7.6-36.2-36.9-65.5-73.1-73.1-55.4-11.6-105.1 24.9-114.9 75.5-1.9 9.6 6.1 18.3 15.8 18.3h32.8c6.7 0 13.1-3.8 15.2-10.1C325.9 105.2 337.9 96 352 96c19.4 0 34.9 17.4 31.6 37.4-2.6 15.7-17.4 26.6-33.4 26.6H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16zm384 32H243.7c19.3 16.6 33.2 38.8 39.8 64H400c26.5 0 48 21.5 48 48s-21.5 48-48 48c-17.9 0-33.3-9.9-41.6-24.4-2.9-5-8.7-7.6-14.5-7.6h-33.8c-10.9 0-19 10.8-15.3 21.1 17.8 50.6 70.5 84.8 129.4 72.3 41.2-8.7 75.1-41.6 84.7-82.7C526 321.5 470.5 256 400 256z\"]\n};\nvar faWindowClose = {\n prefix: 'fas',\n iconName: 'window-close',\n icon: [512, 512, [], \"f410\", \"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-83.6 290.5c4.8 4.8 4.8 12.6 0 17.4l-40.5 40.5c-4.8 4.8-12.6 4.8-17.4 0L256 313.3l-66.5 67.1c-4.8 4.8-12.6 4.8-17.4 0l-40.5-40.5c-4.8-4.8-4.8-12.6 0-17.4l67.1-66.5-67.1-66.5c-4.8-4.8-4.8-12.6 0-17.4l40.5-40.5c4.8-4.8 12.6-4.8 17.4 0l66.5 67.1 66.5-67.1c4.8-4.8 12.6-4.8 17.4 0l40.5 40.5c4.8 4.8 4.8 12.6 0 17.4L313.3 256l67.1 66.5z\"]\n};\nvar faWindowMaximize = {\n prefix: 'fas',\n iconName: 'window-maximize',\n icon: [512, 512, [], \"f2d0\", \"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16 160H64v-84c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12v84z\"]\n};\nvar faWindowMinimize = {\n prefix: 'fas',\n iconName: 'window-minimize',\n icon: [512, 512, [], \"f2d1\", \"M464 352H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48z\"]\n};\nvar faWindowRestore = {\n prefix: 'fas',\n iconName: 'window-restore',\n icon: [512, 512, [], \"f2d2\", \"M512 48v288c0 26.5-21.5 48-48 48h-48V176c0-44.1-35.9-80-80-80H128V48c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zM384 176v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zm-68 28c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v52h252v-52z\"]\n};\nvar faWineBottle = {\n prefix: 'fas',\n iconName: 'wine-bottle',\n icon: [512, 512, [], \"f72f\", \"M507.31 72.57L439.43 4.69c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l-76.67 76.67c-46.58-19.7-102.4-10.73-140.37 27.23L18.75 312.23c-24.99 24.99-24.99 65.52 0 90.51l90.51 90.51c24.99 24.99 65.52 24.99 90.51 0l158.39-158.39c37.96-37.96 46.93-93.79 27.23-140.37l76.67-76.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.24-6.24 6.24-16.37-.01-22.62zM179.22 423.29l-90.51-90.51 122.04-122.04 90.51 90.51-122.04 122.04z\"]\n};\nvar faWineGlass = {\n prefix: 'fas',\n iconName: 'wine-glass',\n icon: [288, 512, [], \"f4e3\", \"M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40z\"]\n};\nvar faWineGlassAlt = {\n prefix: 'fas',\n iconName: 'wine-glass-alt',\n icon: [288, 512, [], \"f5ce\", \"M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM61.75 48h164.5l7.17 80H54.58l7.17-80z\"]\n};\nvar faWonSign = {\n prefix: 'fas',\n iconName: 'won-sign',\n icon: [576, 512, [], \"f159\", \"M564 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-48l18.6-80.6c1.7-7.5-4-14.7-11.7-14.7h-46.1c-5.7 0-10.6 4-11.7 9.5L450.7 128H340.8l-19.7-86c-1.3-5.5-6.1-9.3-11.7-9.3h-44c-5.6 0-10.4 3.8-11.7 9.3l-20 86H125l-17.5-85.7c-1.1-5.6-6.1-9.6-11.8-9.6H53.6c-7.7 0-13.4 7.1-11.7 14.6L60 128H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h62.3l7.2 32H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h83.9l40.9 182.6c1.2 5.5 6.1 9.4 11.7 9.4h56.8c5.6 0 10.4-3.9 11.7-9.3L259.3 288h55.1l42.4 182.7c1.3 5.4 6.1 9.3 11.7 9.3h56.8c5.6 0 10.4-3.9 11.7-9.3L479.1 288H564c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-70.1l7.4-32zM183.8 342c-6.2 25.8-6.8 47.2-7.3 47.2h-1.1s-1.7-22-6.8-47.2l-11-54h38.8zm27.5-118h-66.8l-6.5-32h80.8zm62.9 0l2-8.6c1.9-8 3.5-16 4.8-23.4h11.8c1.3 7.4 2.9 15.4 4.8 23.4l2 8.6zm130.9 118c-5.1 25.2-6.8 47.2-6.8 47.2h-1.1c-.6 0-1.1-21.4-7.3-47.2l-12.4-54h39.1zm25.2-118h-67.4l-7.3-32h81.6z\"]\n};\nvar faWrench = {\n prefix: 'fas',\n iconName: 'wrench',\n icon: [512, 512, [], \"f0ad\", \"M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faXRay = {\n prefix: 'fas',\n iconName: 'x-ray',\n icon: [640, 512, [], \"f497\", \"M240 384c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm160 32c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zM624 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zm0 448h-48V96H64v352H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM480 248c0 4.4-3.6 8-8 8H336v32h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h64c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48v-16h-64v16c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48h64v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-32H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h136v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-24c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v24h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h136c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faYenSign = {\n prefix: 'fas',\n iconName: 'yen-sign',\n icon: [384, 512, [], \"f157\", \"M351.2 32h-65.3c-4.6 0-8.8 2.6-10.8 6.7l-55.4 113.2c-14.5 34.7-27.1 71.9-27.1 71.9h-1.3s-12.6-37.2-27.1-71.9L108.8 38.7c-2-4.1-6.2-6.7-10.8-6.7H32.8c-9.1 0-14.8 9.7-10.6 17.6L102.3 200H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h88.2l19.8 37.2V320H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h108v92c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12v-92h108c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12H232v-26.8l19.8-37.2H340c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12h-58.3l80.1-150.4c4.3-7.9-1.5-17.6-10.6-17.6z\"]\n};\nvar faYinYang = {\n prefix: 'fas',\n iconName: 'yin-yang',\n icon: [496, 512, [], \"f6ad\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 376c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-128c-53.02 0-96 42.98-96 96s42.98 96 96 96c-106.04 0-192-85.96-192-192S141.96 64 248 64c53.02 0 96 42.98 96 96s-42.98 96-96 96zm0-128c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"]\n};\nvar _iconsCache = {\n faAd: faAd,\n faAddressBook: faAddressBook,\n faAddressCard: faAddressCard,\n faAdjust: faAdjust,\n faAirFreshener: faAirFreshener,\n faAlignCenter: faAlignCenter,\n faAlignJustify: faAlignJustify,\n faAlignLeft: faAlignLeft,\n faAlignRight: faAlignRight,\n faAllergies: faAllergies,\n faAmbulance: faAmbulance,\n faAmericanSignLanguageInterpreting: faAmericanSignLanguageInterpreting,\n faAnchor: faAnchor,\n faAngleDoubleDown: faAngleDoubleDown,\n faAngleDoubleLeft: faAngleDoubleLeft,\n faAngleDoubleRight: faAngleDoubleRight,\n faAngleDoubleUp: faAngleDoubleUp,\n faAngleDown: faAngleDown,\n faAngleLeft: faAngleLeft,\n faAngleRight: faAngleRight,\n faAngleUp: faAngleUp,\n faAngry: faAngry,\n faAnkh: faAnkh,\n faAppleAlt: faAppleAlt,\n faArchive: faArchive,\n faArchway: faArchway,\n faArrowAltCircleDown: faArrowAltCircleDown,\n faArrowAltCircleLeft: faArrowAltCircleLeft,\n faArrowAltCircleRight: faArrowAltCircleRight,\n faArrowAltCircleUp: faArrowAltCircleUp,\n faArrowCircleDown: faArrowCircleDown,\n faArrowCircleLeft: faArrowCircleLeft,\n faArrowCircleRight: faArrowCircleRight,\n faArrowCircleUp: faArrowCircleUp,\n faArrowDown: faArrowDown,\n faArrowLeft: faArrowLeft,\n faArrowRight: faArrowRight,\n faArrowUp: faArrowUp,\n faArrowsAlt: faArrowsAlt,\n faArrowsAltH: faArrowsAltH,\n faArrowsAltV: faArrowsAltV,\n faAssistiveListeningSystems: faAssistiveListeningSystems,\n faAsterisk: faAsterisk,\n faAt: faAt,\n faAtlas: faAtlas,\n faAtom: faAtom,\n faAudioDescription: faAudioDescription,\n faAward: faAward,\n faBaby: faBaby,\n faBabyCarriage: faBabyCarriage,\n faBackspace: faBackspace,\n faBackward: faBackward,\n faBacon: faBacon,\n faBacteria: faBacteria,\n faBacterium: faBacterium,\n faBahai: faBahai,\n faBalanceScale: faBalanceScale,\n faBalanceScaleLeft: faBalanceScaleLeft,\n faBalanceScaleRight: faBalanceScaleRight,\n faBan: faBan,\n faBandAid: faBandAid,\n faBarcode: faBarcode,\n faBars: faBars,\n faBaseballBall: faBaseballBall,\n faBasketballBall: faBasketballBall,\n faBath: faBath,\n faBatteryEmpty: faBatteryEmpty,\n faBatteryFull: faBatteryFull,\n faBatteryHalf: faBatteryHalf,\n faBatteryQuarter: faBatteryQuarter,\n faBatteryThreeQuarters: faBatteryThreeQuarters,\n faBed: faBed,\n faBeer: faBeer,\n faBell: faBell,\n faBellSlash: faBellSlash,\n faBezierCurve: faBezierCurve,\n faBible: faBible,\n faBicycle: faBicycle,\n faBiking: faBiking,\n faBinoculars: faBinoculars,\n faBiohazard: faBiohazard,\n faBirthdayCake: faBirthdayCake,\n faBlender: faBlender,\n faBlenderPhone: faBlenderPhone,\n faBlind: faBlind,\n faBlog: faBlog,\n faBold: faBold,\n faBolt: faBolt,\n faBomb: faBomb,\n faBone: faBone,\n faBong: faBong,\n faBook: faBook,\n faBookDead: faBookDead,\n faBookMedical: faBookMedical,\n faBookOpen: faBookOpen,\n faBookReader: faBookReader,\n faBookmark: faBookmark,\n faBorderAll: faBorderAll,\n faBorderNone: faBorderNone,\n faBorderStyle: faBorderStyle,\n faBowlingBall: faBowlingBall,\n faBox: faBox,\n faBoxOpen: faBoxOpen,\n faBoxTissue: faBoxTissue,\n faBoxes: faBoxes,\n faBraille: faBraille,\n faBrain: faBrain,\n faBreadSlice: faBreadSlice,\n faBriefcase: faBriefcase,\n faBriefcaseMedical: faBriefcaseMedical,\n faBroadcastTower: faBroadcastTower,\n faBroom: faBroom,\n faBrush: faBrush,\n faBug: faBug,\n faBuilding: faBuilding,\n faBullhorn: faBullhorn,\n faBullseye: faBullseye,\n faBurn: faBurn,\n faBus: faBus,\n faBusAlt: faBusAlt,\n faBusinessTime: faBusinessTime,\n faCalculator: faCalculator,\n faCalendar: faCalendar,\n faCalendarAlt: faCalendarAlt,\n faCalendarCheck: faCalendarCheck,\n faCalendarDay: faCalendarDay,\n faCalendarMinus: faCalendarMinus,\n faCalendarPlus: faCalendarPlus,\n faCalendarTimes: faCalendarTimes,\n faCalendarWeek: faCalendarWeek,\n faCamera: faCamera,\n faCameraRetro: faCameraRetro,\n faCampground: faCampground,\n faCandyCane: faCandyCane,\n faCannabis: faCannabis,\n faCapsules: faCapsules,\n faCar: faCar,\n faCarAlt: faCarAlt,\n faCarBattery: faCarBattery,\n faCarCrash: faCarCrash,\n faCarSide: faCarSide,\n faCaravan: faCaravan,\n faCaretDown: faCaretDown,\n faCaretLeft: faCaretLeft,\n faCaretRight: faCaretRight,\n faCaretSquareDown: faCaretSquareDown,\n faCaretSquareLeft: faCaretSquareLeft,\n faCaretSquareRight: faCaretSquareRight,\n faCaretSquareUp: faCaretSquareUp,\n faCaretUp: faCaretUp,\n faCarrot: faCarrot,\n faCartArrowDown: faCartArrowDown,\n faCartPlus: faCartPlus,\n faCashRegister: faCashRegister,\n faCat: faCat,\n faCertificate: faCertificate,\n faChair: faChair,\n faChalkboard: faChalkboard,\n faChalkboardTeacher: faChalkboardTeacher,\n faChargingStation: faChargingStation,\n faChartArea: faChartArea,\n faChartBar: faChartBar,\n faChartLine: faChartLine,\n faChartPie: faChartPie,\n faCheck: faCheck,\n faCheckCircle: faCheckCircle,\n faCheckDouble: faCheckDouble,\n faCheckSquare: faCheckSquare,\n faCheese: faCheese,\n faChess: faChess,\n faChessBishop: faChessBishop,\n faChessBoard: faChessBoard,\n faChessKing: faChessKing,\n faChessKnight: faChessKnight,\n faChessPawn: faChessPawn,\n faChessQueen: faChessQueen,\n faChessRook: faChessRook,\n faChevronCircleDown: faChevronCircleDown,\n faChevronCircleLeft: faChevronCircleLeft,\n faChevronCircleRight: faChevronCircleRight,\n faChevronCircleUp: faChevronCircleUp,\n faChevronDown: faChevronDown,\n faChevronLeft: faChevronLeft,\n faChevronRight: faChevronRight,\n faChevronUp: faChevronUp,\n faChild: faChild,\n faChurch: faChurch,\n faCircle: faCircle,\n faCircleNotch: faCircleNotch,\n faCity: faCity,\n faClinicMedical: faClinicMedical,\n faClipboard: faClipboard,\n faClipboardCheck: faClipboardCheck,\n faClipboardList: faClipboardList,\n faClock: faClock,\n faClone: faClone,\n faClosedCaptioning: faClosedCaptioning,\n faCloud: faCloud,\n faCloudDownloadAlt: faCloudDownloadAlt,\n faCloudMeatball: faCloudMeatball,\n faCloudMoon: faCloudMoon,\n faCloudMoonRain: faCloudMoonRain,\n faCloudRain: faCloudRain,\n faCloudShowersHeavy: faCloudShowersHeavy,\n faCloudSun: faCloudSun,\n faCloudSunRain: faCloudSunRain,\n faCloudUploadAlt: faCloudUploadAlt,\n faCocktail: faCocktail,\n faCode: faCode,\n faCodeBranch: faCodeBranch,\n faCoffee: faCoffee,\n faCog: faCog,\n faCogs: faCogs,\n faCoins: faCoins,\n faColumns: faColumns,\n faComment: faComment,\n faCommentAlt: faCommentAlt,\n faCommentDollar: faCommentDollar,\n faCommentDots: faCommentDots,\n faCommentMedical: faCommentMedical,\n faCommentSlash: faCommentSlash,\n faComments: faComments,\n faCommentsDollar: faCommentsDollar,\n faCompactDisc: faCompactDisc,\n faCompass: faCompass,\n faCompress: faCompress,\n faCompressAlt: faCompressAlt,\n faCompressArrowsAlt: faCompressArrowsAlt,\n faConciergeBell: faConciergeBell,\n faCookie: faCookie,\n faCookieBite: faCookieBite,\n faCopy: faCopy,\n faCopyright: faCopyright,\n faCouch: faCouch,\n faCreditCard: faCreditCard,\n faCrop: faCrop,\n faCropAlt: faCropAlt,\n faCross: faCross,\n faCrosshairs: faCrosshairs,\n faCrow: faCrow,\n faCrown: faCrown,\n faCrutch: faCrutch,\n faCube: faCube,\n faCubes: faCubes,\n faCut: faCut,\n faDatabase: faDatabase,\n faDeaf: faDeaf,\n faDemocrat: faDemocrat,\n faDesktop: faDesktop,\n faDharmachakra: faDharmachakra,\n faDiagnoses: faDiagnoses,\n faDice: faDice,\n faDiceD20: faDiceD20,\n faDiceD6: faDiceD6,\n faDiceFive: faDiceFive,\n faDiceFour: faDiceFour,\n faDiceOne: faDiceOne,\n faDiceSix: faDiceSix,\n faDiceThree: faDiceThree,\n faDiceTwo: faDiceTwo,\n faDigitalTachograph: faDigitalTachograph,\n faDirections: faDirections,\n faDisease: faDisease,\n faDivide: faDivide,\n faDizzy: faDizzy,\n faDna: faDna,\n faDog: faDog,\n faDollarSign: faDollarSign,\n faDolly: faDolly,\n faDollyFlatbed: faDollyFlatbed,\n faDonate: faDonate,\n faDoorClosed: faDoorClosed,\n faDoorOpen: faDoorOpen,\n faDotCircle: faDotCircle,\n faDove: faDove,\n faDownload: faDownload,\n faDraftingCompass: faDraftingCompass,\n faDragon: faDragon,\n faDrawPolygon: faDrawPolygon,\n faDrum: faDrum,\n faDrumSteelpan: faDrumSteelpan,\n faDrumstickBite: faDrumstickBite,\n faDumbbell: faDumbbell,\n faDumpster: faDumpster,\n faDumpsterFire: faDumpsterFire,\n faDungeon: faDungeon,\n faEdit: faEdit,\n faEgg: faEgg,\n faEject: faEject,\n faEllipsisH: faEllipsisH,\n faEllipsisV: faEllipsisV,\n faEnvelope: faEnvelope,\n faEnvelopeOpen: faEnvelopeOpen,\n faEnvelopeOpenText: faEnvelopeOpenText,\n faEnvelopeSquare: faEnvelopeSquare,\n faEquals: faEquals,\n faEraser: faEraser,\n faEthernet: faEthernet,\n faEuroSign: faEuroSign,\n faExchangeAlt: faExchangeAlt,\n faExclamation: faExclamation,\n faExclamationCircle: faExclamationCircle,\n faExclamationTriangle: faExclamationTriangle,\n faExpand: faExpand,\n faExpandAlt: faExpandAlt,\n faExpandArrowsAlt: faExpandArrowsAlt,\n faExternalLinkAlt: faExternalLinkAlt,\n faExternalLinkSquareAlt: faExternalLinkSquareAlt,\n faEye: faEye,\n faEyeDropper: faEyeDropper,\n faEyeSlash: faEyeSlash,\n faFan: faFan,\n faFastBackward: faFastBackward,\n faFastForward: faFastForward,\n faFaucet: faFaucet,\n faFax: faFax,\n faFeather: faFeather,\n faFeatherAlt: faFeatherAlt,\n faFemale: faFemale,\n faFighterJet: faFighterJet,\n faFile: faFile,\n faFileAlt: faFileAlt,\n faFileArchive: faFileArchive,\n faFileAudio: faFileAudio,\n faFileCode: faFileCode,\n faFileContract: faFileContract,\n faFileCsv: faFileCsv,\n faFileDownload: faFileDownload,\n faFileExcel: faFileExcel,\n faFileExport: faFileExport,\n faFileImage: faFileImage,\n faFileImport: faFileImport,\n faFileInvoice: faFileInvoice,\n faFileInvoiceDollar: faFileInvoiceDollar,\n faFileMedical: faFileMedical,\n faFileMedicalAlt: faFileMedicalAlt,\n faFilePdf: faFilePdf,\n faFilePowerpoint: faFilePowerpoint,\n faFilePrescription: faFilePrescription,\n faFileSignature: faFileSignature,\n faFileUpload: faFileUpload,\n faFileVideo: faFileVideo,\n faFileWord: faFileWord,\n faFill: faFill,\n faFillDrip: faFillDrip,\n faFilm: faFilm,\n faFilter: faFilter,\n faFingerprint: faFingerprint,\n faFire: faFire,\n faFireAlt: faFireAlt,\n faFireExtinguisher: faFireExtinguisher,\n faFirstAid: faFirstAid,\n faFish: faFish,\n faFistRaised: faFistRaised,\n faFlag: faFlag,\n faFlagCheckered: faFlagCheckered,\n faFlagUsa: faFlagUsa,\n faFlask: faFlask,\n faFlushed: faFlushed,\n faFolder: faFolder,\n faFolderMinus: faFolderMinus,\n faFolderOpen: faFolderOpen,\n faFolderPlus: faFolderPlus,\n faFont: faFont,\n faFontAwesomeLogoFull: faFontAwesomeLogoFull,\n faFootballBall: faFootballBall,\n faForward: faForward,\n faFrog: faFrog,\n faFrown: faFrown,\n faFrownOpen: faFrownOpen,\n faFunnelDollar: faFunnelDollar,\n faFutbol: faFutbol,\n faGamepad: faGamepad,\n faGasPump: faGasPump,\n faGavel: faGavel,\n faGem: faGem,\n faGenderless: faGenderless,\n faGhost: faGhost,\n faGift: faGift,\n faGifts: faGifts,\n faGlassCheers: faGlassCheers,\n faGlassMartini: faGlassMartini,\n faGlassMartiniAlt: faGlassMartiniAlt,\n faGlassWhiskey: faGlassWhiskey,\n faGlasses: faGlasses,\n faGlobe: faGlobe,\n faGlobeAfrica: faGlobeAfrica,\n faGlobeAmericas: faGlobeAmericas,\n faGlobeAsia: faGlobeAsia,\n faGlobeEurope: faGlobeEurope,\n faGolfBall: faGolfBall,\n faGopuram: faGopuram,\n faGraduationCap: faGraduationCap,\n faGreaterThan: faGreaterThan,\n faGreaterThanEqual: faGreaterThanEqual,\n faGrimace: faGrimace,\n faGrin: faGrin,\n faGrinAlt: faGrinAlt,\n faGrinBeam: faGrinBeam,\n faGrinBeamSweat: faGrinBeamSweat,\n faGrinHearts: faGrinHearts,\n faGrinSquint: faGrinSquint,\n faGrinSquintTears: faGrinSquintTears,\n faGrinStars: faGrinStars,\n faGrinTears: faGrinTears,\n faGrinTongue: faGrinTongue,\n faGrinTongueSquint: faGrinTongueSquint,\n faGrinTongueWink: faGrinTongueWink,\n faGrinWink: faGrinWink,\n faGripHorizontal: faGripHorizontal,\n faGripLines: faGripLines,\n faGripLinesVertical: faGripLinesVertical,\n faGripVertical: faGripVertical,\n faGuitar: faGuitar,\n faHSquare: faHSquare,\n faHamburger: faHamburger,\n faHammer: faHammer,\n faHamsa: faHamsa,\n faHandHolding: faHandHolding,\n faHandHoldingHeart: faHandHoldingHeart,\n faHandHoldingMedical: faHandHoldingMedical,\n faHandHoldingUsd: faHandHoldingUsd,\n faHandHoldingWater: faHandHoldingWater,\n faHandLizard: faHandLizard,\n faHandMiddleFinger: faHandMiddleFinger,\n faHandPaper: faHandPaper,\n faHandPeace: faHandPeace,\n faHandPointDown: faHandPointDown,\n faHandPointLeft: faHandPointLeft,\n faHandPointRight: faHandPointRight,\n faHandPointUp: faHandPointUp,\n faHandPointer: faHandPointer,\n faHandRock: faHandRock,\n faHandScissors: faHandScissors,\n faHandSparkles: faHandSparkles,\n faHandSpock: faHandSpock,\n faHands: faHands,\n faHandsHelping: faHandsHelping,\n faHandsWash: faHandsWash,\n faHandshake: faHandshake,\n faHandshakeAltSlash: faHandshakeAltSlash,\n faHandshakeSlash: faHandshakeSlash,\n faHanukiah: faHanukiah,\n faHardHat: faHardHat,\n faHashtag: faHashtag,\n faHatCowboy: faHatCowboy,\n faHatCowboySide: faHatCowboySide,\n faHatWizard: faHatWizard,\n faHdd: faHdd,\n faHeadSideCough: faHeadSideCough,\n faHeadSideCoughSlash: faHeadSideCoughSlash,\n faHeadSideMask: faHeadSideMask,\n faHeadSideVirus: faHeadSideVirus,\n faHeading: faHeading,\n faHeadphones: faHeadphones,\n faHeadphonesAlt: faHeadphonesAlt,\n faHeadset: faHeadset,\n faHeart: faHeart,\n faHeartBroken: faHeartBroken,\n faHeartbeat: faHeartbeat,\n faHelicopter: faHelicopter,\n faHighlighter: faHighlighter,\n faHiking: faHiking,\n faHippo: faHippo,\n faHistory: faHistory,\n faHockeyPuck: faHockeyPuck,\n faHollyBerry: faHollyBerry,\n faHome: faHome,\n faHorse: faHorse,\n faHorseHead: faHorseHead,\n faHospital: faHospital,\n faHospitalAlt: faHospitalAlt,\n faHospitalSymbol: faHospitalSymbol,\n faHospitalUser: faHospitalUser,\n faHotTub: faHotTub,\n faHotdog: faHotdog,\n faHotel: faHotel,\n faHourglass: faHourglass,\n faHourglassEnd: faHourglassEnd,\n faHourglassHalf: faHourglassHalf,\n faHourglassStart: faHourglassStart,\n faHouseDamage: faHouseDamage,\n faHouseUser: faHouseUser,\n faHryvnia: faHryvnia,\n faICursor: faICursor,\n faIceCream: faIceCream,\n faIcicles: faIcicles,\n faIcons: faIcons,\n faIdBadge: faIdBadge,\n faIdCard: faIdCard,\n faIdCardAlt: faIdCardAlt,\n faIgloo: faIgloo,\n faImage: faImage,\n faImages: faImages,\n faInbox: faInbox,\n faIndent: faIndent,\n faIndustry: faIndustry,\n faInfinity: faInfinity,\n faInfo: faInfo,\n faInfoCircle: faInfoCircle,\n faItalic: faItalic,\n faJedi: faJedi,\n faJoint: faJoint,\n faJournalWhills: faJournalWhills,\n faKaaba: faKaaba,\n faKey: faKey,\n faKeyboard: faKeyboard,\n faKhanda: faKhanda,\n faKiss: faKiss,\n faKissBeam: faKissBeam,\n faKissWinkHeart: faKissWinkHeart,\n faKiwiBird: faKiwiBird,\n faLandmark: faLandmark,\n faLanguage: faLanguage,\n faLaptop: faLaptop,\n faLaptopCode: faLaptopCode,\n faLaptopHouse: faLaptopHouse,\n faLaptopMedical: faLaptopMedical,\n faLaugh: faLaugh,\n faLaughBeam: faLaughBeam,\n faLaughSquint: faLaughSquint,\n faLaughWink: faLaughWink,\n faLayerGroup: faLayerGroup,\n faLeaf: faLeaf,\n faLemon: faLemon,\n faLessThan: faLessThan,\n faLessThanEqual: faLessThanEqual,\n faLevelDownAlt: faLevelDownAlt,\n faLevelUpAlt: faLevelUpAlt,\n faLifeRing: faLifeRing,\n faLightbulb: faLightbulb,\n faLink: faLink,\n faLiraSign: faLiraSign,\n faList: faList,\n faListAlt: faListAlt,\n faListOl: faListOl,\n faListUl: faListUl,\n faLocationArrow: faLocationArrow,\n faLock: faLock,\n faLockOpen: faLockOpen,\n faLongArrowAltDown: faLongArrowAltDown,\n faLongArrowAltLeft: faLongArrowAltLeft,\n faLongArrowAltRight: faLongArrowAltRight,\n faLongArrowAltUp: faLongArrowAltUp,\n faLowVision: faLowVision,\n faLuggageCart: faLuggageCart,\n faLungs: faLungs,\n faLungsVirus: faLungsVirus,\n faMagic: faMagic,\n faMagnet: faMagnet,\n faMailBulk: faMailBulk,\n faMale: faMale,\n faMap: faMap,\n faMapMarked: faMapMarked,\n faMapMarkedAlt: faMapMarkedAlt,\n faMapMarker: faMapMarker,\n faMapMarkerAlt: faMapMarkerAlt,\n faMapPin: faMapPin,\n faMapSigns: faMapSigns,\n faMarker: faMarker,\n faMars: faMars,\n faMarsDouble: faMarsDouble,\n faMarsStroke: faMarsStroke,\n faMarsStrokeH: faMarsStrokeH,\n faMarsStrokeV: faMarsStrokeV,\n faMask: faMask,\n faMedal: faMedal,\n faMedkit: faMedkit,\n faMeh: faMeh,\n faMehBlank: faMehBlank,\n faMehRollingEyes: faMehRollingEyes,\n faMemory: faMemory,\n faMenorah: faMenorah,\n faMercury: faMercury,\n faMeteor: faMeteor,\n faMicrochip: faMicrochip,\n faMicrophone: faMicrophone,\n faMicrophoneAlt: faMicrophoneAlt,\n faMicrophoneAltSlash: faMicrophoneAltSlash,\n faMicrophoneSlash: faMicrophoneSlash,\n faMicroscope: faMicroscope,\n faMinus: faMinus,\n faMinusCircle: faMinusCircle,\n faMinusSquare: faMinusSquare,\n faMitten: faMitten,\n faMobile: faMobile,\n faMobileAlt: faMobileAlt,\n faMoneyBill: faMoneyBill,\n faMoneyBillAlt: faMoneyBillAlt,\n faMoneyBillWave: faMoneyBillWave,\n faMoneyBillWaveAlt: faMoneyBillWaveAlt,\n faMoneyCheck: faMoneyCheck,\n faMoneyCheckAlt: faMoneyCheckAlt,\n faMonument: faMonument,\n faMoon: faMoon,\n faMortarPestle: faMortarPestle,\n faMosque: faMosque,\n faMotorcycle: faMotorcycle,\n faMountain: faMountain,\n faMouse: faMouse,\n faMousePointer: faMousePointer,\n faMugHot: faMugHot,\n faMusic: faMusic,\n faNetworkWired: faNetworkWired,\n faNeuter: faNeuter,\n faNewspaper: faNewspaper,\n faNotEqual: faNotEqual,\n faNotesMedical: faNotesMedical,\n faObjectGroup: faObjectGroup,\n faObjectUngroup: faObjectUngroup,\n faOilCan: faOilCan,\n faOm: faOm,\n faOtter: faOtter,\n faOutdent: faOutdent,\n faPager: faPager,\n faPaintBrush: faPaintBrush,\n faPaintRoller: faPaintRoller,\n faPalette: faPalette,\n faPallet: faPallet,\n faPaperPlane: faPaperPlane,\n faPaperclip: faPaperclip,\n faParachuteBox: faParachuteBox,\n faParagraph: faParagraph,\n faParking: faParking,\n faPassport: faPassport,\n faPastafarianism: faPastafarianism,\n faPaste: faPaste,\n faPause: faPause,\n faPauseCircle: faPauseCircle,\n faPaw: faPaw,\n faPeace: faPeace,\n faPen: faPen,\n faPenAlt: faPenAlt,\n faPenFancy: faPenFancy,\n faPenNib: faPenNib,\n faPenSquare: faPenSquare,\n faPencilAlt: faPencilAlt,\n faPencilRuler: faPencilRuler,\n faPeopleArrows: faPeopleArrows,\n faPeopleCarry: faPeopleCarry,\n faPepperHot: faPepperHot,\n faPercent: faPercent,\n faPercentage: faPercentage,\n faPersonBooth: faPersonBooth,\n faPhone: faPhone,\n faPhoneAlt: faPhoneAlt,\n faPhoneSlash: faPhoneSlash,\n faPhoneSquare: faPhoneSquare,\n faPhoneSquareAlt: faPhoneSquareAlt,\n faPhoneVolume: faPhoneVolume,\n faPhotoVideo: faPhotoVideo,\n faPiggyBank: faPiggyBank,\n faPills: faPills,\n faPizzaSlice: faPizzaSlice,\n faPlaceOfWorship: faPlaceOfWorship,\n faPlane: faPlane,\n faPlaneArrival: faPlaneArrival,\n faPlaneDeparture: faPlaneDeparture,\n faPlaneSlash: faPlaneSlash,\n faPlay: faPlay,\n faPlayCircle: faPlayCircle,\n faPlug: faPlug,\n faPlus: faPlus,\n faPlusCircle: faPlusCircle,\n faPlusSquare: faPlusSquare,\n faPodcast: faPodcast,\n faPoll: faPoll,\n faPollH: faPollH,\n faPoo: faPoo,\n faPooStorm: faPooStorm,\n faPoop: faPoop,\n faPortrait: faPortrait,\n faPoundSign: faPoundSign,\n faPowerOff: faPowerOff,\n faPray: faPray,\n faPrayingHands: faPrayingHands,\n faPrescription: faPrescription,\n faPrescriptionBottle: faPrescriptionBottle,\n faPrescriptionBottleAlt: faPrescriptionBottleAlt,\n faPrint: faPrint,\n faProcedures: faProcedures,\n faProjectDiagram: faProjectDiagram,\n faPumpMedical: faPumpMedical,\n faPumpSoap: faPumpSoap,\n faPuzzlePiece: faPuzzlePiece,\n faQrcode: faQrcode,\n faQuestion: faQuestion,\n faQuestionCircle: faQuestionCircle,\n faQuidditch: faQuidditch,\n faQuoteLeft: faQuoteLeft,\n faQuoteRight: faQuoteRight,\n faQuran: faQuran,\n faRadiation: faRadiation,\n faRadiationAlt: faRadiationAlt,\n faRainbow: faRainbow,\n faRandom: faRandom,\n faReceipt: faReceipt,\n faRecordVinyl: faRecordVinyl,\n faRecycle: faRecycle,\n faRedo: faRedo,\n faRedoAlt: faRedoAlt,\n faRegistered: faRegistered,\n faRemoveFormat: faRemoveFormat,\n faReply: faReply,\n faReplyAll: faReplyAll,\n faRepublican: faRepublican,\n faRestroom: faRestroom,\n faRetweet: faRetweet,\n faRibbon: faRibbon,\n faRing: faRing,\n faRoad: faRoad,\n faRobot: faRobot,\n faRocket: faRocket,\n faRoute: faRoute,\n faRss: faRss,\n faRssSquare: faRssSquare,\n faRubleSign: faRubleSign,\n faRuler: faRuler,\n faRulerCombined: faRulerCombined,\n faRulerHorizontal: faRulerHorizontal,\n faRulerVertical: faRulerVertical,\n faRunning: faRunning,\n faRupeeSign: faRupeeSign,\n faSadCry: faSadCry,\n faSadTear: faSadTear,\n faSatellite: faSatellite,\n faSatelliteDish: faSatelliteDish,\n faSave: faSave,\n faSchool: faSchool,\n faScrewdriver: faScrewdriver,\n faScroll: faScroll,\n faSdCard: faSdCard,\n faSearch: faSearch,\n faSearchDollar: faSearchDollar,\n faSearchLocation: faSearchLocation,\n faSearchMinus: faSearchMinus,\n faSearchPlus: faSearchPlus,\n faSeedling: faSeedling,\n faServer: faServer,\n faShapes: faShapes,\n faShare: faShare,\n faShareAlt: faShareAlt,\n faShareAltSquare: faShareAltSquare,\n faShareSquare: faShareSquare,\n faShekelSign: faShekelSign,\n faShieldAlt: faShieldAlt,\n faShieldVirus: faShieldVirus,\n faShip: faShip,\n faShippingFast: faShippingFast,\n faShoePrints: faShoePrints,\n faShoppingBag: faShoppingBag,\n faShoppingBasket: faShoppingBasket,\n faShoppingCart: faShoppingCart,\n faShower: faShower,\n faShuttleVan: faShuttleVan,\n faSign: faSign,\n faSignInAlt: faSignInAlt,\n faSignLanguage: faSignLanguage,\n faSignOutAlt: faSignOutAlt,\n faSignal: faSignal,\n faSignature: faSignature,\n faSimCard: faSimCard,\n faSink: faSink,\n faSitemap: faSitemap,\n faSkating: faSkating,\n faSkiing: faSkiing,\n faSkiingNordic: faSkiingNordic,\n faSkull: faSkull,\n faSkullCrossbones: faSkullCrossbones,\n faSlash: faSlash,\n faSleigh: faSleigh,\n faSlidersH: faSlidersH,\n faSmile: faSmile,\n faSmileBeam: faSmileBeam,\n faSmileWink: faSmileWink,\n faSmog: faSmog,\n faSmoking: faSmoking,\n faSmokingBan: faSmokingBan,\n faSms: faSms,\n faSnowboarding: faSnowboarding,\n faSnowflake: faSnowflake,\n faSnowman: faSnowman,\n faSnowplow: faSnowplow,\n faSoap: faSoap,\n faSocks: faSocks,\n faSolarPanel: faSolarPanel,\n faSort: faSort,\n faSortAlphaDown: faSortAlphaDown,\n faSortAlphaDownAlt: faSortAlphaDownAlt,\n faSortAlphaUp: faSortAlphaUp,\n faSortAlphaUpAlt: faSortAlphaUpAlt,\n faSortAmountDown: faSortAmountDown,\n faSortAmountDownAlt: faSortAmountDownAlt,\n faSortAmountUp: faSortAmountUp,\n faSortAmountUpAlt: faSortAmountUpAlt,\n faSortDown: faSortDown,\n faSortNumericDown: faSortNumericDown,\n faSortNumericDownAlt: faSortNumericDownAlt,\n faSortNumericUp: faSortNumericUp,\n faSortNumericUpAlt: faSortNumericUpAlt,\n faSortUp: faSortUp,\n faSpa: faSpa,\n faSpaceShuttle: faSpaceShuttle,\n faSpellCheck: faSpellCheck,\n faSpider: faSpider,\n faSpinner: faSpinner,\n faSplotch: faSplotch,\n faSprayCan: faSprayCan,\n faSquare: faSquare,\n faSquareFull: faSquareFull,\n faSquareRootAlt: faSquareRootAlt,\n faStamp: faStamp,\n faStar: faStar,\n faStarAndCrescent: faStarAndCrescent,\n faStarHalf: faStarHalf,\n faStarHalfAlt: faStarHalfAlt,\n faStarOfDavid: faStarOfDavid,\n faStarOfLife: faStarOfLife,\n faStepBackward: faStepBackward,\n faStepForward: faStepForward,\n faStethoscope: faStethoscope,\n faStickyNote: faStickyNote,\n faStop: faStop,\n faStopCircle: faStopCircle,\n faStopwatch: faStopwatch,\n faStopwatch20: faStopwatch20,\n faStore: faStore,\n faStoreAlt: faStoreAlt,\n faStoreAltSlash: faStoreAltSlash,\n faStoreSlash: faStoreSlash,\n faStream: faStream,\n faStreetView: faStreetView,\n faStrikethrough: faStrikethrough,\n faStroopwafel: faStroopwafel,\n faSubscript: faSubscript,\n faSubway: faSubway,\n faSuitcase: faSuitcase,\n faSuitcaseRolling: faSuitcaseRolling,\n faSun: faSun,\n faSuperscript: faSuperscript,\n faSurprise: faSurprise,\n faSwatchbook: faSwatchbook,\n faSwimmer: faSwimmer,\n faSwimmingPool: faSwimmingPool,\n faSynagogue: faSynagogue,\n faSync: faSync,\n faSyncAlt: faSyncAlt,\n faSyringe: faSyringe,\n faTable: faTable,\n faTableTennis: faTableTennis,\n faTablet: faTablet,\n faTabletAlt: faTabletAlt,\n faTablets: faTablets,\n faTachometerAlt: faTachometerAlt,\n faTag: faTag,\n faTags: faTags,\n faTape: faTape,\n faTasks: faTasks,\n faTaxi: faTaxi,\n faTeeth: faTeeth,\n faTeethOpen: faTeethOpen,\n faTemperatureHigh: faTemperatureHigh,\n faTemperatureLow: faTemperatureLow,\n faTenge: faTenge,\n faTerminal: faTerminal,\n faTextHeight: faTextHeight,\n faTextWidth: faTextWidth,\n faTh: faTh,\n faThLarge: faThLarge,\n faThList: faThList,\n faTheaterMasks: faTheaterMasks,\n faThermometer: faThermometer,\n faThermometerEmpty: faThermometerEmpty,\n faThermometerFull: faThermometerFull,\n faThermometerHalf: faThermometerHalf,\n faThermometerQuarter: faThermometerQuarter,\n faThermometerThreeQuarters: faThermometerThreeQuarters,\n faThumbsDown: faThumbsDown,\n faThumbsUp: faThumbsUp,\n faThumbtack: faThumbtack,\n faTicketAlt: faTicketAlt,\n faTimes: faTimes,\n faTimesCircle: faTimesCircle,\n faTint: faTint,\n faTintSlash: faTintSlash,\n faTired: faTired,\n faToggleOff: faToggleOff,\n faToggleOn: faToggleOn,\n faToilet: faToilet,\n faToiletPaper: faToiletPaper,\n faToiletPaperSlash: faToiletPaperSlash,\n faToolbox: faToolbox,\n faTools: faTools,\n faTooth: faTooth,\n faTorah: faTorah,\n faToriiGate: faToriiGate,\n faTractor: faTractor,\n faTrademark: faTrademark,\n faTrafficLight: faTrafficLight,\n faTrailer: faTrailer,\n faTrain: faTrain,\n faTram: faTram,\n faTransgender: faTransgender,\n faTransgenderAlt: faTransgenderAlt,\n faTrash: faTrash,\n faTrashAlt: faTrashAlt,\n faTrashRestore: faTrashRestore,\n faTrashRestoreAlt: faTrashRestoreAlt,\n faTree: faTree,\n faTrophy: faTrophy,\n faTruck: faTruck,\n faTruckLoading: faTruckLoading,\n faTruckMonster: faTruckMonster,\n faTruckMoving: faTruckMoving,\n faTruckPickup: faTruckPickup,\n faTshirt: faTshirt,\n faTty: faTty,\n faTv: faTv,\n faUmbrella: faUmbrella,\n faUmbrellaBeach: faUmbrellaBeach,\n faUnderline: faUnderline,\n faUndo: faUndo,\n faUndoAlt: faUndoAlt,\n faUniversalAccess: faUniversalAccess,\n faUniversity: faUniversity,\n faUnlink: faUnlink,\n faUnlock: faUnlock,\n faUnlockAlt: faUnlockAlt,\n faUpload: faUpload,\n faUser: faUser,\n faUserAlt: faUserAlt,\n faUserAltSlash: faUserAltSlash,\n faUserAstronaut: faUserAstronaut,\n faUserCheck: faUserCheck,\n faUserCircle: faUserCircle,\n faUserClock: faUserClock,\n faUserCog: faUserCog,\n faUserEdit: faUserEdit,\n faUserFriends: faUserFriends,\n faUserGraduate: faUserGraduate,\n faUserInjured: faUserInjured,\n faUserLock: faUserLock,\n faUserMd: faUserMd,\n faUserMinus: faUserMinus,\n faUserNinja: faUserNinja,\n faUserNurse: faUserNurse,\n faUserPlus: faUserPlus,\n faUserSecret: faUserSecret,\n faUserShield: faUserShield,\n faUserSlash: faUserSlash,\n faUserTag: faUserTag,\n faUserTie: faUserTie,\n faUserTimes: faUserTimes,\n faUsers: faUsers,\n faUsersCog: faUsersCog,\n faUsersSlash: faUsersSlash,\n faUtensilSpoon: faUtensilSpoon,\n faUtensils: faUtensils,\n faVectorSquare: faVectorSquare,\n faVenus: faVenus,\n faVenusDouble: faVenusDouble,\n faVenusMars: faVenusMars,\n faVest: faVest,\n faVestPatches: faVestPatches,\n faVial: faVial,\n faVials: faVials,\n faVideo: faVideo,\n faVideoSlash: faVideoSlash,\n faVihara: faVihara,\n faVirus: faVirus,\n faVirusSlash: faVirusSlash,\n faViruses: faViruses,\n faVoicemail: faVoicemail,\n faVolleyballBall: faVolleyballBall,\n faVolumeDown: faVolumeDown,\n faVolumeMute: faVolumeMute,\n faVolumeOff: faVolumeOff,\n faVolumeUp: faVolumeUp,\n faVoteYea: faVoteYea,\n faVrCardboard: faVrCardboard,\n faWalking: faWalking,\n faWallet: faWallet,\n faWarehouse: faWarehouse,\n faWater: faWater,\n faWaveSquare: faWaveSquare,\n faWeight: faWeight,\n faWeightHanging: faWeightHanging,\n faWheelchair: faWheelchair,\n faWifi: faWifi,\n faWind: faWind,\n faWindowClose: faWindowClose,\n faWindowMaximize: faWindowMaximize,\n faWindowMinimize: faWindowMinimize,\n faWindowRestore: faWindowRestore,\n faWineBottle: faWineBottle,\n faWineGlass: faWineGlass,\n faWineGlassAlt: faWineGlassAlt,\n faWonSign: faWonSign,\n faWrench: faWrench,\n faXRay: faXRay,\n faYenSign: faYenSign,\n faYinYang: faYinYang\n};\n\nexport { _iconsCache as fas, prefix, faAd, faAddressBook, faAddressCard, faAdjust, faAirFreshener, faAlignCenter, faAlignJustify, faAlignLeft, faAlignRight, faAllergies, faAmbulance, faAmericanSignLanguageInterpreting, faAnchor, faAngleDoubleDown, faAngleDoubleLeft, faAngleDoubleRight, faAngleDoubleUp, faAngleDown, faAngleLeft, faAngleRight, faAngleUp, faAngry, faAnkh, faAppleAlt, faArchive, faArchway, faArrowAltCircleDown, faArrowAltCircleLeft, faArrowAltCircleRight, faArrowAltCircleUp, faArrowCircleDown, faArrowCircleLeft, faArrowCircleRight, faArrowCircleUp, faArrowDown, faArrowLeft, faArrowRight, faArrowUp, faArrowsAlt, faArrowsAltH, faArrowsAltV, faAssistiveListeningSystems, faAsterisk, faAt, faAtlas, faAtom, faAudioDescription, faAward, faBaby, faBabyCarriage, faBackspace, faBackward, faBacon, faBacteria, faBacterium, faBahai, faBalanceScale, faBalanceScaleLeft, faBalanceScaleRight, faBan, faBandAid, faBarcode, faBars, faBaseballBall, faBasketballBall, faBath, faBatteryEmpty, faBatteryFull, faBatteryHalf, faBatteryQuarter, faBatteryThreeQuarters, faBed, faBeer, faBell, faBellSlash, faBezierCurve, faBible, faBicycle, faBiking, faBinoculars, faBiohazard, faBirthdayCake, faBlender, faBlenderPhone, faBlind, faBlog, faBold, faBolt, faBomb, faBone, faBong, faBook, faBookDead, faBookMedical, faBookOpen, faBookReader, faBookmark, faBorderAll, faBorderNone, faBorderStyle, faBowlingBall, faBox, faBoxOpen, faBoxTissue, faBoxes, faBraille, faBrain, faBreadSlice, faBriefcase, faBriefcaseMedical, faBroadcastTower, faBroom, faBrush, faBug, faBuilding, faBullhorn, faBullseye, faBurn, faBus, faBusAlt, faBusinessTime, faCalculator, faCalendar, faCalendarAlt, faCalendarCheck, faCalendarDay, faCalendarMinus, faCalendarPlus, faCalendarTimes, faCalendarWeek, faCamera, faCameraRetro, faCampground, faCandyCane, faCannabis, faCapsules, faCar, faCarAlt, faCarBattery, faCarCrash, faCarSide, faCaravan, faCaretDown, faCaretLeft, faCaretRight, faCaretSquareDown, faCaretSquareLeft, faCaretSquareRight, faCaretSquareUp, faCaretUp, faCarrot, faCartArrowDown, faCartPlus, faCashRegister, faCat, faCertificate, faChair, faChalkboard, faChalkboardTeacher, faChargingStation, faChartArea, faChartBar, faChartLine, faChartPie, faCheck, faCheckCircle, faCheckDouble, faCheckSquare, faCheese, faChess, faChessBishop, faChessBoard, faChessKing, faChessKnight, faChessPawn, faChessQueen, faChessRook, faChevronCircleDown, faChevronCircleLeft, faChevronCircleRight, faChevronCircleUp, faChevronDown, faChevronLeft, faChevronRight, faChevronUp, faChild, faChurch, faCircle, faCircleNotch, faCity, faClinicMedical, faClipboard, faClipboardCheck, faClipboardList, faClock, faClone, faClosedCaptioning, faCloud, faCloudDownloadAlt, faCloudMeatball, faCloudMoon, faCloudMoonRain, faCloudRain, faCloudShowersHeavy, faCloudSun, faCloudSunRain, faCloudUploadAlt, faCocktail, faCode, faCodeBranch, faCoffee, faCog, faCogs, faCoins, faColumns, faComment, faCommentAlt, faCommentDollar, faCommentDots, faCommentMedical, faCommentSlash, faComments, faCommentsDollar, faCompactDisc, faCompass, faCompress, faCompressAlt, faCompressArrowsAlt, faConciergeBell, faCookie, faCookieBite, faCopy, faCopyright, faCouch, faCreditCard, faCrop, faCropAlt, faCross, faCrosshairs, faCrow, faCrown, faCrutch, faCube, faCubes, faCut, faDatabase, faDeaf, faDemocrat, faDesktop, faDharmachakra, faDiagnoses, faDice, faDiceD20, faDiceD6, faDiceFive, faDiceFour, faDiceOne, faDiceSix, faDiceThree, faDiceTwo, faDigitalTachograph, faDirections, faDisease, faDivide, faDizzy, faDna, faDog, faDollarSign, faDolly, faDollyFlatbed, faDonate, faDoorClosed, faDoorOpen, faDotCircle, faDove, faDownload, faDraftingCompass, faDragon, faDrawPolygon, faDrum, faDrumSteelpan, faDrumstickBite, faDumbbell, faDumpster, faDumpsterFire, faDungeon, faEdit, faEgg, faEject, faEllipsisH, faEllipsisV, faEnvelope, faEnvelopeOpen, faEnvelopeOpenText, faEnvelopeSquare, faEquals, faEraser, faEthernet, faEuroSign, faExchangeAlt, faExclamation, faExclamationCircle, faExclamationTriangle, faExpand, faExpandAlt, faExpandArrowsAlt, faExternalLinkAlt, faExternalLinkSquareAlt, faEye, faEyeDropper, faEyeSlash, faFan, faFastBackward, faFastForward, faFaucet, faFax, faFeather, faFeatherAlt, faFemale, faFighterJet, faFile, faFileAlt, faFileArchive, faFileAudio, faFileCode, faFileContract, faFileCsv, faFileDownload, faFileExcel, faFileExport, faFileImage, faFileImport, faFileInvoice, faFileInvoiceDollar, faFileMedical, faFileMedicalAlt, faFilePdf, faFilePowerpoint, faFilePrescription, faFileSignature, faFileUpload, faFileVideo, faFileWord, faFill, faFillDrip, faFilm, faFilter, faFingerprint, faFire, faFireAlt, faFireExtinguisher, faFirstAid, faFish, faFistRaised, faFlag, faFlagCheckered, faFlagUsa, faFlask, faFlushed, faFolder, faFolderMinus, faFolderOpen, faFolderPlus, faFont, faFontAwesomeLogoFull, faFootballBall, faForward, faFrog, faFrown, faFrownOpen, faFunnelDollar, faFutbol, faGamepad, faGasPump, faGavel, faGem, faGenderless, faGhost, faGift, faGifts, faGlassCheers, faGlassMartini, faGlassMartiniAlt, faGlassWhiskey, faGlasses, faGlobe, faGlobeAfrica, faGlobeAmericas, faGlobeAsia, faGlobeEurope, faGolfBall, faGopuram, faGraduationCap, faGreaterThan, faGreaterThanEqual, faGrimace, faGrin, faGrinAlt, faGrinBeam, faGrinBeamSweat, faGrinHearts, faGrinSquint, faGrinSquintTears, faGrinStars, faGrinTears, faGrinTongue, faGrinTongueSquint, faGrinTongueWink, faGrinWink, faGripHorizontal, faGripLines, faGripLinesVertical, faGripVertical, faGuitar, faHSquare, faHamburger, faHammer, faHamsa, faHandHolding, faHandHoldingHeart, faHandHoldingMedical, faHandHoldingUsd, faHandHoldingWater, faHandLizard, faHandMiddleFinger, faHandPaper, faHandPeace, faHandPointDown, faHandPointLeft, faHandPointRight, faHandPointUp, faHandPointer, faHandRock, faHandScissors, faHandSparkles, faHandSpock, faHands, faHandsHelping, faHandsWash, faHandshake, faHandshakeAltSlash, faHandshakeSlash, faHanukiah, faHardHat, faHashtag, faHatCowboy, faHatCowboySide, faHatWizard, faHdd, faHeadSideCough, faHeadSideCoughSlash, faHeadSideMask, faHeadSideVirus, faHeading, faHeadphones, faHeadphonesAlt, faHeadset, faHeart, faHeartBroken, faHeartbeat, faHelicopter, faHighlighter, faHiking, faHippo, faHistory, faHockeyPuck, faHollyBerry, faHome, faHorse, faHorseHead, faHospital, faHospitalAlt, faHospitalSymbol, faHospitalUser, faHotTub, faHotdog, faHotel, faHourglass, faHourglassEnd, faHourglassHalf, faHourglassStart, faHouseDamage, faHouseUser, faHryvnia, faICursor, faIceCream, faIcicles, faIcons, faIdBadge, faIdCard, faIdCardAlt, faIgloo, faImage, faImages, faInbox, faIndent, faIndustry, faInfinity, faInfo, faInfoCircle, faItalic, faJedi, faJoint, faJournalWhills, faKaaba, faKey, faKeyboard, faKhanda, faKiss, faKissBeam, faKissWinkHeart, faKiwiBird, faLandmark, faLanguage, faLaptop, faLaptopCode, faLaptopHouse, faLaptopMedical, faLaugh, faLaughBeam, faLaughSquint, faLaughWink, faLayerGroup, faLeaf, faLemon, faLessThan, faLessThanEqual, faLevelDownAlt, faLevelUpAlt, faLifeRing, faLightbulb, faLink, faLiraSign, faList, faListAlt, faListOl, faListUl, faLocationArrow, faLock, faLockOpen, faLongArrowAltDown, faLongArrowAltLeft, faLongArrowAltRight, faLongArrowAltUp, faLowVision, faLuggageCart, faLungs, faLungsVirus, faMagic, faMagnet, faMailBulk, faMale, faMap, faMapMarked, faMapMarkedAlt, faMapMarker, faMapMarkerAlt, faMapPin, faMapSigns, faMarker, faMars, faMarsDouble, faMarsStroke, faMarsStrokeH, faMarsStrokeV, faMask, faMedal, faMedkit, faMeh, faMehBlank, faMehRollingEyes, faMemory, faMenorah, faMercury, faMeteor, faMicrochip, faMicrophone, faMicrophoneAlt, faMicrophoneAltSlash, faMicrophoneSlash, faMicroscope, faMinus, faMinusCircle, faMinusSquare, faMitten, faMobile, faMobileAlt, faMoneyBill, faMoneyBillAlt, faMoneyBillWave, faMoneyBillWaveAlt, faMoneyCheck, faMoneyCheckAlt, faMonument, faMoon, faMortarPestle, faMosque, faMotorcycle, faMountain, faMouse, faMousePointer, faMugHot, faMusic, faNetworkWired, faNeuter, faNewspaper, faNotEqual, faNotesMedical, faObjectGroup, faObjectUngroup, faOilCan, faOm, faOtter, faOutdent, faPager, faPaintBrush, faPaintRoller, faPalette, faPallet, faPaperPlane, faPaperclip, faParachuteBox, faParagraph, faParking, faPassport, faPastafarianism, faPaste, faPause, faPauseCircle, faPaw, faPeace, faPen, faPenAlt, faPenFancy, faPenNib, faPenSquare, faPencilAlt, faPencilRuler, faPeopleArrows, faPeopleCarry, faPepperHot, faPercent, faPercentage, faPersonBooth, faPhone, faPhoneAlt, faPhoneSlash, faPhoneSquare, faPhoneSquareAlt, faPhoneVolume, faPhotoVideo, faPiggyBank, faPills, faPizzaSlice, faPlaceOfWorship, faPlane, faPlaneArrival, faPlaneDeparture, faPlaneSlash, faPlay, faPlayCircle, faPlug, faPlus, faPlusCircle, faPlusSquare, faPodcast, faPoll, faPollH, faPoo, faPooStorm, faPoop, faPortrait, faPoundSign, faPowerOff, faPray, faPrayingHands, faPrescription, faPrescriptionBottle, faPrescriptionBottleAlt, faPrint, faProcedures, faProjectDiagram, faPumpMedical, faPumpSoap, faPuzzlePiece, faQrcode, faQuestion, faQuestionCircle, faQuidditch, faQuoteLeft, faQuoteRight, faQuran, faRadiation, faRadiationAlt, faRainbow, faRandom, faReceipt, faRecordVinyl, faRecycle, faRedo, faRedoAlt, faRegistered, faRemoveFormat, faReply, faReplyAll, faRepublican, faRestroom, faRetweet, faRibbon, faRing, faRoad, faRobot, faRocket, faRoute, faRss, faRssSquare, faRubleSign, faRuler, faRulerCombined, faRulerHorizontal, faRulerVertical, faRunning, faRupeeSign, faSadCry, faSadTear, faSatellite, faSatelliteDish, faSave, faSchool, faScrewdriver, faScroll, faSdCard, faSearch, faSearchDollar, faSearchLocation, faSearchMinus, faSearchPlus, faSeedling, faServer, faShapes, faShare, faShareAlt, faShareAltSquare, faShareSquare, faShekelSign, faShieldAlt, faShieldVirus, faShip, faShippingFast, faShoePrints, faShoppingBag, faShoppingBasket, faShoppingCart, faShower, faShuttleVan, faSign, faSignInAlt, faSignLanguage, faSignOutAlt, faSignal, faSignature, faSimCard, faSink, faSitemap, faSkating, faSkiing, faSkiingNordic, faSkull, faSkullCrossbones, faSlash, faSleigh, faSlidersH, faSmile, faSmileBeam, faSmileWink, faSmog, faSmoking, faSmokingBan, faSms, faSnowboarding, faSnowflake, faSnowman, faSnowplow, faSoap, faSocks, faSolarPanel, faSort, faSortAlphaDown, faSortAlphaDownAlt, faSortAlphaUp, faSortAlphaUpAlt, faSortAmountDown, faSortAmountDownAlt, faSortAmountUp, faSortAmountUpAlt, faSortDown, faSortNumericDown, faSortNumericDownAlt, faSortNumericUp, faSortNumericUpAlt, faSortUp, faSpa, faSpaceShuttle, faSpellCheck, faSpider, faSpinner, faSplotch, faSprayCan, faSquare, faSquareFull, faSquareRootAlt, faStamp, faStar, faStarAndCrescent, faStarHalf, faStarHalfAlt, faStarOfDavid, faStarOfLife, faStepBackward, faStepForward, faStethoscope, faStickyNote, faStop, faStopCircle, faStopwatch, faStopwatch20, faStore, faStoreAlt, faStoreAltSlash, faStoreSlash, faStream, faStreetView, faStrikethrough, faStroopwafel, faSubscript, faSubway, faSuitcase, faSuitcaseRolling, faSun, faSuperscript, faSurprise, faSwatchbook, faSwimmer, faSwimmingPool, faSynagogue, faSync, faSyncAlt, faSyringe, faTable, faTableTennis, faTablet, faTabletAlt, faTablets, faTachometerAlt, faTag, faTags, faTape, faTasks, faTaxi, faTeeth, faTeethOpen, faTemperatureHigh, faTemperatureLow, faTenge, faTerminal, faTextHeight, faTextWidth, faTh, faThLarge, faThList, faTheaterMasks, faThermometer, faThermometerEmpty, faThermometerFull, faThermometerHalf, faThermometerQuarter, faThermometerThreeQuarters, faThumbsDown, faThumbsUp, faThumbtack, faTicketAlt, faTimes, faTimesCircle, faTint, faTintSlash, faTired, faToggleOff, faToggleOn, faToilet, faToiletPaper, faToiletPaperSlash, faToolbox, faTools, faTooth, faTorah, faToriiGate, faTractor, faTrademark, faTrafficLight, faTrailer, faTrain, faTram, faTransgender, faTransgenderAlt, faTrash, faTrashAlt, faTrashRestore, faTrashRestoreAlt, faTree, faTrophy, faTruck, faTruckLoading, faTruckMonster, faTruckMoving, faTruckPickup, faTshirt, faTty, faTv, faUmbrella, faUmbrellaBeach, faUnderline, faUndo, faUndoAlt, faUniversalAccess, faUniversity, faUnlink, faUnlock, faUnlockAlt, faUpload, faUser, faUserAlt, faUserAltSlash, faUserAstronaut, faUserCheck, faUserCircle, faUserClock, faUserCog, faUserEdit, faUserFriends, faUserGraduate, faUserInjured, faUserLock, faUserMd, faUserMinus, faUserNinja, faUserNurse, faUserPlus, faUserSecret, faUserShield, faUserSlash, faUserTag, faUserTie, faUserTimes, faUsers, faUsersCog, faUsersSlash, faUtensilSpoon, faUtensils, faVectorSquare, faVenus, faVenusDouble, faVenusMars, faVest, faVestPatches, faVial, faVials, faVideo, faVideoSlash, faVihara, faVirus, faVirusSlash, faViruses, faVoicemail, faVolleyballBall, faVolumeDown, faVolumeMute, faVolumeOff, faVolumeUp, faVoteYea, faVrCardboard, faWalking, faWallet, faWarehouse, faWater, faWaveSquare, faWeight, faWeightHanging, faWheelchair, faWifi, faWind, faWindowClose, faWindowMaximize, faWindowMinimize, faWindowRestore, faWineBottle, faWineGlass, faWineGlassAlt, faWonSign, faWrench, faXRay, faYenSign, faYinYang };\n","\n\n\n{#each tree as item,i}\n\t{#if !item.child}\n\t\t
\n\t\t\t
clickHandler(e)}>\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t{#if secondaryIcon}\n\t\t\t\t\t{#if faIcon}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t{:else}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\"secondaryIcon\"/\n\t\t\t\t\t\t
\n\t\t\t\t\t{/if}\n\t\t\t\t{/if}\n\t\t\t\t
leafNodeClickHandler(e, item.key, onSelectCallback, activeElement)}>\n\t\t\t\t\t{item.desc}\n\t\t\t\t
\n\t\t\t
\n\t
\n\t{:else}\n\t\t
\n\t\t\t
clickHandler(e)}>\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t{#if secondaryIcon}\n\t\t\t\t\t{#if faIcon}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t{:else}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\"secondaryIcon\"/\n\t\t\t\t\t\t
\n\t\t\t\t\t{/if}\n\t\t\t\t{/if}\n\t\t\t\t
e.stopPropagation()}>\n\t\t\t\t\t{item.desc}\n\t\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t
\n\t{/if}\n{/each}","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn decodeURIComponent(components.join(''));\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher);\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher);\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","'use strict';\n\nmodule.exports = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n","'use strict';\nmodule.exports = function (obj, predicate) {\n\tvar ret = {};\n\tvar keys = Object.keys(obj);\n\tvar isArr = Array.isArray(predicate);\n\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tvar val = obj[key];\n\n\t\tif (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n\t\t\tret[key] = val;\n\t\t}\n\t}\n\n\treturn ret;\n};\n","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\nconst filterObject = require('filter-obj');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), ':list='].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), ':list=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSep = options.arrayFormat === 'bracket-separator' ?\n\t\t\t\t'[]=' :\n\t\t\t\t'=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSep, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(:list)$/.exec(key);\n\t\t\t\tkey = key.replace(/:list$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tcase 'bracket-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[\\])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null ?\n\t\t\t\t\t[] :\n\t\t\t\t\tvalue.split(options.arrayFormatSeparator).map(item => decode(item, options));\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], arrayValue);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(query, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn ret;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of query.split('&')) {\n\t\tif (param === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (url, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url_, hash] = splitOnFirst(url, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url_.split('?')[0] || '',\n\t\t\tquery: parse(extract(url), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (object, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true\n\t}, options);\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(object.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, object.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\thash = `#${options[encodeFragmentIdentifier] ? encode(object.fragmentIdentifier, options) : object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\nexports.pick = (input, filter, options) => {\n\toptions = Object.assign({\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false\n\t}, options);\n\n\tconst {url, query, fragmentIdentifier} = exports.parseUrl(input, options);\n\treturn exports.stringifyUrl({\n\t\turl,\n\t\tquery: filterObject(query, filter),\n\t\tfragmentIdentifier\n\t}, options);\n};\n\nexports.exclude = (input, filter, options) => {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn exports.pick(input, exclusionFilter, options);\n};\n","\n\n
\n

\n edifact-bo4e-converter ({Object.keys(FormatPackage)[selectedFormatPackage]})\n

\n

\n If you want to use another format version please use query parameter\n ?formatVersion\n

\n {#if !$isAuthenticated}\n \n {:else}\n
\n
\n \n
\n
\n onPaste(obj.detail)}\n width=\"100%\"\n height=\"500px\"\n lang={language}\n theme=\"chrome\"\n bind:value={text}\n />\n

\n onPaste(obj.detail)}\n width=\"100%\"\n height=\"500px\"\n lang={language}\n theme=\"chrome\"\n readonly\n value={resultText}\n />\n

\n
\n {/if}\n
\n\n\n","\n\n\n \n\n\n \n\n\n","\n\n","import App from \"./App.svelte\";\n\nconst app = new App({\n target: document.body,\n props: {\n name: \"world\",\n },\n});\n\nexport default app;\n"],"names":["noop","assign","tar","src","k","run","fn","blank_object","Object","create","run_all","fns","forEach","is_function","thing","safe_not_equal","a","b","src_url_equal_anchor","current_component","src_url_equal","element_src","url","document","createElement","href","is_empty","obj","keys","length","subscribe","store","callbacks","unsub","unsubscribe","component_subscribe","component","callback","$$","on_destroy","push","create_slot","definition","ctx","$$scope","slot_ctx","get_slot_context","slice","get_slot_changes","dirty","lets","undefined","merged","len","Math","max","i","update_slot_base","slot","slot_definition","slot_changes","get_slot_context_fn","slot_context","p","get_all_dirty_from_scope","exclude_internal_props","props","result","compute_rest_props","rest","Set","has","null_to_empty","value","action_destroyer","action_result","destroy","append","target","node","appendChild","insert","anchor","insertBefore","detach","parentNode","removeChild","destroy_each","iterations","detaching","d","element","name","svg_element","createElementNS","text","data","createTextNode","space","empty","listen","event","handler","options","addEventListener","removeEventListener","attr","attribute","removeAttribute","getAttribute","setAttribute","set_attributes","attributes","descriptors","getOwnPropertyDescriptors","__proto__","key","style","cssText","set","children","Array","from","childNodes","set_data","wholeText","set_style","important","setProperty","toggle_class","toggle","classList","custom_event","type","detail","bubbles","e","createEvent","initCustomEvent","set_current_component","get_current_component","Error","onMount","on_mount","onDestroy","createEventDispatcher","call","dirty_components","binding_callbacks","render_callbacks","flush_callbacks","resolved_promise","Promise","resolve","update_scheduled","schedule_update","then","flush","tick","add_render_callback","add_flush_callback","flushing","seen_callbacks","update","pop","add","clear","fragment","before_update","after_update","outroing","outros","group_outros","r","c","check_outros","transition_in","block","local","delete","transition_out","o","get_spread_update","levels","updates","to_null_out","accounted_for","n","bind","index","bound","create_component","mount_component","customElement","m","new_on_destroy","map","filter","destroy_component","make_dirty","fill","init","instance","create_fragment","not_equal","append_styles","parent_component","on_disconnect","context","Map","skip_bound","root","ready","ret","hydrate","nodes","l","intro","SvelteComponent","$destroy","this","$on","indexOf","splice","$set","$$props","$$set","module","exports","isarray","isArray","arr","prototype","toString","pathToRegexp_1","pathToRegexp","parse_1","parse","compile_1","compile","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","RegExp","join","str","res","tokens","path","exec","escaped","offset","prefix","capture","group","suffix","asterisk","repeat","optional","delimiter","pattern","escapeGroup","substr","matches","token","segment","TypeError","j","encodeURIComponent","test","escapeString","replace","attachKeys","re","flags","sensitive","regexpToRegexp","groups","source","match","arrayToRegexp","parts","stringToRegexp","strict","end","route","lastToken","endsWithSlash","loaded","hasDocument","hasWindow","window","hasHistory","history","hasProcess","process","clickEvent","ontouchstart","isLocation","location","Page","exits","current","_decodeURLComponents","_base","_strict","_running","_hashbang","clickHandler","_onpopstate","createPage","pageInstance","pageFn","page","apply","arguments","base","start","stop","show","back","redirect","dispatch","exit","configure","sameOrigin","defineProperty","get","val","Context","Route","middleware","unhandled","handled","_window","_getBase","hash","pathname","search","canonicalPath","escapeRegExp","s","state","_page","hashbang","pageBase","title","querystring","_decodeURLEncodedURIComponent","params","split","globalPage","opts","method","regexp","decodeURLComponents","_popstate","popstate","_click","click","loc","protocol","enable","prev","prevContext","pushState","setTimeout","to","inst","save","nextExit","nextEnter","_which","metaKey","ctrlKey","shiftKey","defaultPrevented","el","eventPath","composedPath","nodeName","toUpperCase","svg","constructor","hasAttribute","link","_samePath","baseVal","orig","preventDefault","readyState","which","button","_toURL","URL","anc","hostname","port","decodeURIComponent","replaceState","self","next","routePath","qsIndex","hasOwnProperty","page_js","default_1","default","factory","ripple","transition","zIndex","bg","rippleColor","disabled","targetBorder","parseInt","getComputedStyle","borderWidth","rect","getBoundingClientRect","left","top","width","offsetWidth","height","offsetHeight","dx","clientX","dy","clientY","maxX","maxY","radius","sqrt","border","rippleContainer","className","marginTop","marginLeft","borderRadius","pointerEvents","position","backgroundColor","overflow","storedTargetPosition","clearRipple","clearPosition","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","direction","rippler","newProps","events","args","classes","cls","class","button_class_value","a_href_value","rel","a_rel_value","a_disabled_value","a_class_value","_class","filled","outline","danger","neutral","round","rectangle","small","selected","noRipple","noPrefetch","console","error","nativeEvent","input_value_value","input_class_value","create_if_block_3","create_if_block_2","create_if_block_1","input","textarea_class_value","textarea","label_1","label_1_class_value","span","div","toNumber","string","parseFloat","inputClass","labelClass","errorClass","withItem","itemRight","id","noSpinner","label","multiline","autofocus","inputElement","focus","$$invalidate","$$restProps","$$value","create_if_block_5","t","t_value","if_block0","create_if_block_4","if_block1","create_if_block","div2","div0","div1","nameClass","helpClass","help","required","errors","global","define","deps","payload","modules","payloads","original","trace","_acequire","parentId","lookup","dep","acequire","packagedModule","normalizeModule","moduleName","chunks","charAt","previous","mod","uri","packaged","ns","exportAce","ace","real","String","compliantExecNpcg","compliantLastIndexIncrement","x","lastIndex","getNativeFlags","regex","ignoreCase","extended","sticky","array","item","r2","_xregexp","captureNames","Empty","Function","that","concat","defineGetter","defineSetter","lookupGetter","lookupSetter","supportsAccessors","prototypeOfArray","prototypeOfObject","_toString","owns","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","makeArray","lengthBefore","array_splice","deleteCount","pos","removeCount","removed","remove","min","tailOldPos","tailNewPos","tailCount","lengthAfterRemove","createEmpty","freezeObject","boxedString","splitString","fun","object","toObject","thisp","every","some","reduce","reduceRight","sought","toInteger","lastIndexOf","abs","getPrototypeOf","getOwnPropertyDescriptor","property","descriptor","enumerable","configurable","getter","setter","getOwnPropertyNames","propertyIsEnumerable","isPrototypeOf","toLocaleString","valueOf","properties","Type","defineProperties","doesDefinePropertyWork","exception","definePropertyWorksOnObject","definePropertyWorksOnDom","definePropertyFallback","seal","freeze","preventExtensions","isSealed","isFrozen","isExtensible","returnValue","hasDontEnumBug","dontEnums","dontEnumsLength","ii","dontEnum","Date","now","getTime","ws","trim","trimBeginRegexp","trimEndRegexp","floor","getDocumentHead","doc","head","getElementsByTagName","documentElement","tag","hasCssClass","addCssClass","removeCssClass","toggleCssClass","setCssClass","include","hasCssString","sheets","createStyleSheet","styleSheets","owningElement","importCssString","importCssStylsheet","getInnerWidth","computedStyle","clientWidth","getInnerHeight","clientHeight","scrollbarWidth","inner","minWidth","display","outer","body","noScrollbar","withScrollbar","pageYOffset","getPageScrollTop","getPageScrollLeft","pageXOffset","scrollTop","scrollLeft","currentStyle","setInnerHtml","innerHtml","cloneNode","innerHTML","replaceChild","setInnerText","innerText","textContent","getInnerText","getParentWindow","defaultView","parentWindow","inherits","ctor","superCtor","super_","writable","mixin","implement","proto","oop","Keys","MODIFIER_KEYS","KEY_MODS","ctrl","alt","option","shift","super","meta","command","cmd","FUNCTION_KEYS","PRINTABLE_KEYS","toLowerCase","enter","escape","esc","del","mods","pow","keyCodeToString","keyCode","keyString","fromCharCode","OS","LINUX","MAC","WINDOWS","getOS","isMac","isLinux","navigator","os","platform","ua","userAgent","isWin","isIE","appName","isOldIE","isGecko","isMozilla","Controllers","controllers","product","isOldGecko","isOpera","opera","isWebKit","isChrome","isAIR","isIPad","isChromeOS","isIOS","MSStream","useragent","pressedKeys","ts","addListener","elem","attachEvent","wrapper","_wrapper","removeListener","detachEvent","stopEvent","stopPropagation","cancelBubble","getButton","altKey","eventHandler","releaseCaptureHandler","onMouseUp","addTouchMoveListener","startx","starty","touchObj","touches","wheelX","wheelY","addMouseWheelListener","wheelDeltaX","wheelDeltaY","wheelDelta","deltaMode","DOM_DELTA_PIXEL","deltaX","deltaY","DOM_DELTA_LINE","DOM_DELTA_PAGE","axis","HORIZONTAL_AXIS","addMultiMouseDownListener","elements","timeouts","callbackName","startX","startY","timer","clicks","eventNames","onMousedown","isNewClick","clearTimeout","_clicks","onDblclick","getModifierHash","normalizeCommandKeys","hashId","getModifierState","altGr","keyLocation","timeStamp","resetPressedKeys","getModifierString","addCommandKeyListener","lastKeyDownKeyCode","lastDefaultPrevented","postMessage","nextTick","win","messageName","listener","nextFrame","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","last","stringReverse","reverse","stringRepeat","count","stringTrimLeft","stringTrimRight","copyObject","copy","copyArray","deepCopy","arrayToMap","createMap","arrayRemove","escapeHTML","getMatchOffsets","regExp","deferredCall","fcn","deferred","timeout","cancel","schedule","isPending","delayedCall","defaultTimeout","_self","delay","dom","lang","KEYS","MODS","BROKEN_SETDATA","USE_IE_MIME_TYPE","TextInput","host","isTouchPad","opacity","firstChild","PLACEHOLDER","copied","cut","pasted","inComposition","tempStyle","isSelectionEmpty","isFocused","activeElement","onBlur","onFocus","resetSelection","blur","syncSelection","syncValue","isEmpty","inputHandler","selectionStart","selectionEnd","setSelectionRange","resetValue","selection","setInputHandler","cb","getInputHandler","afterContextMenu","sendText","onPaste","execCommand","substring","onTextInput","onInput","handleClipboardData","forceIEMime","clipboardData","mime","setData","getData","doCopy","isCut","getCopyText","onCut","onCopy","select","onCommandKey","isAllSelected","selectAll","closeTimeout","onCompositionUpdate","$readOnly","lastValue","undo","canUndo","getRange","session","markUndoGroup","range","setRange","clearSelection","onCompositionEnd","syncComposition","onContextMenuClose","renderer","$keepTextAreaAtCursor","$moveTextAreaToCursor","onCompositionStart","$undoManager","on","getElement","setReadOnly","readOnly","onContextMenu","_emit","domEvent","moveToMouse","bringToFront","container","borderTopWidth","borderLeftWidth","maxTop","bottom","move","textInput","scroller","typingResetTimeout","typing","detectArrowKeys","up","home","right","down","TextInputIOS","DefaultHandlers","mouseHandler","$clickSelection","editor","setDefaultHandler","onMouseDown","onDoubleClick","onTripleClick","onQuadClick","onMouseWheel","onTouchMove","selectByLines","extendSelectionBy","selectByWords","calcRangeOrientation","cursor","row","cmp","column","ev","inSelection","getDocumentPosition","mousedownEvent","selectionEmpty","getSelectionRange","$blockScrolling","moveToPosition","time","$focusTimout","inMultiSelectMode","captureMouse","startSelect","setState","waitForClickSelection","screenToTextCoordinates","y","getShiftKey","selectToPosition","setCapture","setStyle","comparePoint","orientedRange","setSelectionAnchor","scrollCursorIntoView","unitName","cmpStart","cmpEnd","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","unsetStyle","releaseCapture","focusWait","ax","ay","bx","by","distance","getBracketRange","getWordRange","isMultiLine","contains","getLineRange","getAccelKey","$lastScroll","vx","vy","allowed","prevScroll","dt","canScroll","isScrollableBy","speed","scrollBy","Tooltip","isOpen","$element","$parentNode","$init","setText","setHtml","html","setPosition","setClassName","hide","getHeight","getWidth","GutterTooltip","windowWidth","innerWidth","windowHeight","innerHeight","GutterHandler","tooltipTimeout","mouseEvent","tooltipAnnotation","gutter","$gutterLayer","tooltip","hideTooltip","_signal","moveTooltip","getRegion","selectTo","srcElement","$tooltipFollowsMouse","isMousePressed","annotation","$annotations","getLength","screenRow","pixelToScreenCoordinates","$pos","documentToScreenRow","showTooltip","$gutter","MouseEvent","$inSelection","propagationStopped","selectionRange","DragdropHandler","blankImage","dragSelectionMarker","timerId","dragCursor","dragOperation","isInternal","autoScrollStartTime","cursorMovedTime","cursorPointOnCaretMoved","mouseTarget","counter","onDragInterval","prevCursor","vMovement","hMovement","moveCursorToPosition","calcDistance","lineHeight","layerConfig","characterWidth","editorRect","offsets","nearestXOffset","nearestYOffset","scrollCursor","vScroll","hScroll","autoScroll","addDragMarker","toOrientedRange","addMarker","getSelectionStyle","$cursorLayer","setBlinking","clearInterval","setInterval","onMouseMove","clearDragMarker","removeMarker","fromOrientedRange","getReadOnly","onDragStart","cancelDrag","draggable","dataTransfer","effectAllowed","setDragImage","clearData","getTextRange","onDragEnd","dropEffect","setCursorStyle","onDragEnter","canAccept","getDropEffect","onDragOver","onMouseMoveTimer","onDragLeave","onDrop","moveText","dropData","types","copyAllowed","copyModifierState","dragWait","getDragDelay","startDrag","dragWaitEnd","dragReadyEnd","cursorStyle","onMouseDrag","dragDrop","$dragEnabled","eventTarget","unselectable","xhr","XMLHttpRequest","open","onreadystatechange","responseText","send","loadScript","onload","_","isAbort","qualifyURL","EventEmitter","_dispatchEvent","eventName","_eventRegistry","_defaultHandlers","listeners","defaultHandler","once","newCallback","handlers","_disabled_","old","removeDefaultHandler","capturing","off","removeAllListeners","optionsProvider","setOptions","optList","setOption","getOptions","optionNames","$options","getOption","opt","warn","forwardTo","handlesSet","message","reportError","msg","AppConfig","$defaultOptions","defineOptions","initialValue","resetOptions","setDefaultValue","setDefaultValues","optionHash","net","workerPath","modePath","themePath","basePath","$moduleUrls","scriptOptions","scriptUrl","currentScript","_currentScript","scripts","ownerDocument","script","m1","all","moduleUrl","sep","setModuleUrl","subst","$loading","loadModule","onLoad","moduleType","afterLoad","DefaultGutterHandler","config","MouseHandler","focusEditor","hasFocus","getMouseEventTarget","onMouseEvent","scrollBarV","scrollBarH","Boolean","gutterEl","$dragDelay","character","insideStart","mousemove","$scrollSpeed","mouseMoveHandler","releaseMouse","$mouseMoved","onCaptureEnd","onCaptureInterval","$onCaptureMouseMove","cancelContextMenu","scrollSpeed","dragDelay","dragEnabled","focusTimout","tooltipFollowsMouse","FoldHandler","fold","getFoldAt","removeFold","expandFold","foldWidgets","onFoldWidgetClick","getParentFoldRangeData","firstRange","getLine","addFold","keyUtil","KeyBinding","$editor","$data","$handlers","commands","kb","removeKeyboardHandler","$defaultHandler","addKeyboardHandler","setKeyboardHandler","h","handleKeyboard","attach","getKeyboardHandler","getStatusText","$callKeyboardHandlers","toExecute","success","passEvent","dir","hiLevel","lastArabic","hasUBAT_B","hasUBAT_S","impTab_LTR","impTab_RTL","ET","BN","UnicodeTBL00","UnicodeTBL20","_invertLevel","lev","_array","lo","hi","tmp","_getCharClass","chars","ix","wType","nType","cType","rtlCandidate","_getCharacterType","ch","uc","charCodeAt","L","R","EN","ON_R","AN","R_H","B","DOT","doBidiReorder","textCharTypes","isRtl","logicalFromVisual","bidiLevels","charTypes","impTab","prevState","newClass","newLevel","newState","action","condPos","_computeLevels","hasBidiCharacters","getVisualFromLogicalIdx","logIdx","rowMap","bidiUtil","bidiRE","BidiHandler","bidiMap","currentRow","charWidths","EOL","showInvisibles","isRtlDir","line","wrapIndent","isLastRow","EOF","seenBidi","isBidiRow","docRow","splitIndex","updateRowLine","updateBidiMap","onChange","delta","lines","getDocumentRow","rowCache","$screenRowCache","$getRowCacheIndex","$docRowCache","getSplitIndex","currentIndex","prevIndex","$useWrapMode","splits","$wrapData","indent","size","isFullWidth","getScreenTabSize","endOfLine","markAsDirty","updateCharacterWidths","fontMetrics","$characterSize","bidiCharWidth","$measureCharWidth","getShowInvisibles","setShowInvisibles","setEolChar","eolChar","setTextDir","getPosLeft","col","visualIdx","getSelections","startCol","endCol","level","selections","selColMin","selColMax","isSelected","isSelectedPrev","visIdx","offsetToCol","posX","logicalIdx","charWidth","Range","startRow","startColumn","endRow","endColumn","isEqual","compare","compareRange","containsRange","intersects","isEnd","isStart","setStart","setEnd","inside","insideEnd","compareStart","compareEnd","compareInside","clipRows","firstRow","lastRow","fromPoints","extend","clone","collapseRows","toScreenRange","screenPosStart","documentToScreenPosition","screenPosEnd","moveBy","comparePoints","p1","p2","Selection","getDocument","lead","selectionLead","createAnchor","selectionAnchor","$isEmpty","$keepDesiredColumnOnChange","$desiredColumn","getCursor","getPosition","getSelectionAnchor","getSelectionLead","shiftSelection","columns","moveCursorTo","isBackwards","$moveSelection","mover","moveTo","selectUp","moveCursorUp","selectDown","moveCursorDown","selectRight","moveCursorRight","selectLeft","moveCursorLeft","selectLineStart","moveCursorLineStart","selectLineEnd","moveCursorLineEnd","selectFileEnd","moveCursorFileEnd","selectFileStart","moveCursorFileStart","selectWordRight","moveCursorWordRight","selectWordLeft","moveCursorWordLeft","selectWord","selectAWord","getAWordRange","excludeLastChar","rowEnd","rowStart","foldLine","getFoldLine","selectLine","moveCursorBy","wouldMoveIntoSoftTab","tabSize","isTabStop","getTabSize","getNavigateWithinSoftTabs","firstColumnPosition","screenToDocumentPosition","leadingSpace","getDisplayLine","$useEmacsStyleLineStart","lineEnd","getDocumentLastRowColumnPosition","textEnd","moveCursorLongWordRight","rightOfCursor","nonTokenRe","tokenRe","moveCursorLongWordLeft","getFoldStringAt","leftOfCursor","$shortWordEndIndex","whitespaceRe","moveCursorShortWordRight","moveCursorShortWordLeft","$selectLongWords","rows","offsetX","screenPos","$bidiHandler","docPos","lineWidgets","keepDesiredColumn","moveCursorToScreen","desiredColumn","getRangeOfMovements","func","toJSON","rangeCount","ranges","r1","fromJSON","rangeList","toSingleRange","addRange","MAX_TOKEN_COUNT","Tokenizer","rules","states","regExps","matchMappings","ruleRegExps","matchTotal","mapping","defaultToken","flag","splitterRurles","rule","caseInsensitive","adjustedregex","matchcount","groupCount","tokenArray","onMatch","$arrayTokens","$applyToken","digit","removeCapturingGroups","splitRegex","createSplitterRegexp","$setMaxTokenCount","values","stack","inChClass","lastCapture","parenOpen","parenClose","square","getLineTokens","startState","currentState","matchAttempts","skipped","consumeLineEnd","merge","unshift","TextHighlightRules","$rules","addRules","nextState","getRules","embedRules","HighlightRules","escapeRules","$embeds","getEmbeds","popState","normalizeRules","processState","processed","toInsert","stateName","includeName","noEscape","keywordMap","createKeywordMapper","splitChar","keywords","list","$keywordList","getKeywords","$keywords","Behaviour","$behaviours","addBehaviours","behaviours","inherit","mode","getBehaviours","TokenIterator","initialRow","initialColumn","$session","$row","$rowTokens","getTokens","getTokenAt","$tokenIndex","stepBackward","stepForward","rowCount","getCurrentToken","getCurrentTokenRow","getCurrentTokenColumn","rowTokens","tokenIndex","getCurrentTokenPosition","getCurrentTokenRange","SAFE_INSERT_IN_TOKENS","SAFE_INSERT_BEFORE_TOKENS","contextCache","defaultQuotes","initContext","multiSelect","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","getWrapped","opening","closing","rowDiff","CstyleBehaviour","getCursorPosition","getWrapBehavioursEnabled","isSaneInsertion","braces","recordAutoInsert","recordMaybeInsert","$findOpeningBracket","isAutoInsertedClosing","popAutoInsertedClosing","isMaybeInsertedClosing","clearMaybeInsertedClosing","openBracePos","findMatchingBracket","next_indent","$getIndent","getTabString","quotes","$mode","$quotes","lineCommentStart","quote","leftChar","rightChar","rightToken","pair","stringBefore","stringAfter","wordRe","isWordBefore","isWordAfter","iterator","$matchTokenType","iterator2","bracket","packages","pack","codePoint","addUnicodePackage","Ll","Lu","Lt","Lm","Lo","M","Mn","Mc","Me","N","Nd","Nl","No","P","Pd","Ps","Pe","Pi","Pf","Pc","Po","S","Sm","Sc","Sk","So","Z","Zs","Zl","Zp","C","Cc","Cf","Co","Cs","Cn","unicode","Mode","$defaultBehaviour","getTokenizer","$tokenizer","$highlightRules","$highlightRuleConfig","blockComment","toggleCommentLines","ignoreBlankLines","shouldRemove","minIndent","Infinity","insertAtTabStop","regexpStart","getUseSoftTabs","uncomment","shouldInsertSpace","removeInLine","commentWithSpace","comment","insertInLine","testRemove","before","after","spaces","lineCommentEnd","regexpEnd","iter","minEmptyLength","toggleBlockComment","colDiff","initialRange","startRange","endRange","getNextLineIndent","tab","checkOutdent","autoOutdent","createWorker","createModeDelegates","$modes","delegations","scope","functionName","$delegator","transformAction","param","$behaviour","completionKeywords","ruleItr","aLength","$createKeywordList","getCompletions","word","score","$id","applyDelta","docLines","doNotValidate","Anchor","$onChange","$pointsInOrder","point1","point2","equalPointsInOrder","bColIsAfter","$clipPositionToDocument","$insertRight","point","moveIfEqual","deltaIsInsert","deltaRowShift","deltaColShift","deltaStart","deltaEnd","$getTransformedPoint","noClip","Document","textOrLines","$lines","insertMergedLines","setValue","getValue","getAllLines","getNewLineCharacter","$split","$detectNewLine","$autoNewLine","$newLineMode","setNewLineMode","newLineMode","getNewLineMode","isNewLine","getLines","getLinesForRange","insertLines","insertFullLines","removeLines","removeFullLines","insertNewLine","clippedPos","clonePos","$clipPosition","deleteFirstNewLine","deleteLastNewLine","deletedLines","removeNewLine","applyDeltas","deltas","revertDeltas","revertDelta","isInsert","$splitAndapplyLargeDelta","MAX","chunk","indexToPosition","newlineLength","positionToIndex","BackgroundTokenizer","tokenizer","running","currentLine","$worker","workerStart","endLine","startLine","processedLines","$tokenizeRow","fireUpdateEvent","setTokenizer","setDocument","first","scheduleStart","$updateOnChange","getState","SearchHighlight","clazz","setRegexp","MAX_RANGES","cache","markerLayer","drawSingleLineMarker","FoldLine","foldData","folds","setFoldLine","shiftRow","sameRow","sort","containsRow","walk","lastEnd","isNewRow","placeholder","getNextFoldTo","kind","addRemoveChars","log","foldBefore","newFoldLine","foldLineNext","idxToPosition","idx","lastFoldEndColumn","RangeList","pointIndex","excludeEdges","startIndex","endIndex","addList","substractPoint","containsPoint","rangeAtPoint","clipped","removeAll","lineDif","Fold","subFolds","consumePoint","restorePoint","subFold","collapseChildren","addSubFold","afterStart","restoreRange","Folding","side","getFoldsInRange","foldLines","$foldData","foundFolds","getFoldsInRangeList","getAllFolds","lastFold","startFoldLine","getNextFoldLine","getFoldedRowCount","$addFoldLine","added","$clipRangeToDocument","startFold","endFold","removeFolds","$updateWrapData","$updateRowLengthCache","$modified","addFolds","$updating","cloneFolds","foldAll","expandFolds","unfold","expandInner","isRowFolded","startFoldRow","getRowFoldEnd","getRowFoldStart","getFoldDisplayLine","textLine","lastColumn","$cloneFoldData","fd","toggleFold","tryToUnfold","bracketPos","getCommentFoldRange","depth","getFoldWidget","getFoldWidgetRange","$foldStyles","manual","markbegin","markbeginend","$foldStyle","setFoldStyle","$foldMode","$setFolding","foldMode","$updateFoldWidgets","$tokenizerUpdateFoldWidgets","updateFoldWidgets","tokenizerUpdateFoldWidgets","ignoreCurrent","fw","siblings","$toggleFoldWidget","toggleFoldWidget","toggleParent","BracketMatch","chr","charBeforeCursor","$findClosingBracket","$brackets","typeRe","openBracket","valueIndex","closingBracket","valueLength","TextMode","EditSession","$breakpoints","$decorations","$frontMarkers","$backMarkers","$markerId","$undoSelect","$uid","onChangeFold","setMode","bgTokenizer","resetCaches","$resetRowCache","cacheArray","low","mid","$rowLengthCache","removedFolds","$updateInternalDataOnChange","$fromUndo","ignore","$deltasDoc","$deltasFold","$informUndoManager","$deltas","setUndoManager","getUndoManager","reset","getSelection","undoManager","$syncInformUndoManager","execute","mergeUndoDeltas","$defaultUndoManager","redo","setUseSoftTabs","$useSoftTabs","$indentWithTabs","setTabSize","$tabSize","setNavigateWithinSoftTabs","navigateWithinSoftTabs","$navigateWithinSoftTabs","$overwrite","setOverwrite","overwrite","getOverwrite","toggleOverwrite","addGutterDecoration","removeGutterDecoration","getBreakpoints","setBreakpoints","clearBreakpoints","setBreakpoint","clearBreakpoint","inFront","marker","addDynamicMarker","markerId","markers","getMarkers","highlight","$searchHighlight","highlightLines","setAnnotations","annotations","getAnnotations","clearAnnotations","inToken","wordRange","setUseWorker","useWorker","getUseWorker","$useWorker","onReloadTokenizer","$modeId","$onChangeMode","$isPlaceholder","$stopWorker","$startWorker","attachToSession","wrapMethod","$wrapMethod","foldingRules","terminate","getMode","$scrollTop","setScrollTop","isNaN","getScrollTop","$scrollLeft","setScrollLeft","getScrollLeft","getScreenWidth","$computeWidth","getLineWidgetMaxWidth","screenWidth","lineWidgetsWidth","w","lineWidgetWidth","force","$wrapLimit","longestScreenLine","foldIndex","foldStart","$getStringScreenWidth","undoChanges","dontSelect","lastUndoRange","$getUndoSelection","foldDelta","redoChanges","setUndoSelect","isUndo","fromRange","toPosition","toRange","collDiff","oldStart","newStart","indentRows","indentString","outdentRows","rowRange","deleteRange","$moveLines","diff","$clipRowToDocument","Number","MAX_VALUE","moveLinesUp","moveLinesDown","duplicateLines","$clipColumnToRow","$wrapLimitRange","setUseWrapMode","useWrapMode","getUseWrapMode","setWrapLimitRange","adjustWrapLimit","desiredLimit","$printMargin","limits","wrapLimit","$constrainWrapLimit","getWrapLimit","setWrapLimit","limit","getWrapLimitRange","foldLineBefore","wrapData","walkTokens","$getDisplayTokens","PLACEHOLDER_START","PLACEHOLDER_BODY","$computeWrapSplits","displayLength","lastSplit","lastDocSplit","isCode","$wrapAsCode","indentedSoftWrap","$indentedSoftWrap","maxIndent","addSplit","displayed","indentation","getWrapIndent","minSplit","maxScreenColumn","screenColumn","getRowLength","getRowLineCount","getRowWrapIndent","getScreenLastRowColumn","documentToScreenColumn","getDocumentLastRowColumn","docColumn","getRowSplitData","screenToDocumentRow","screenToDocumentColumn","rowLength","doCache","maxRow","foldStartRow","wrapRow","screenRowOffset","getScreenLength","screenRows","$getWidgetScreenLength","$setFontMetrics","fm","$enableVarChar","getCharacterWidth","wrap","$wrap","firstLineNumber","useSoftTabs","Search","find","$matchIterator","sr","sc","er","ec","skipCurrent","findAll","needle","$assembleRegExp","$isMultiLine","prevRange","replacement","preserveCase","$disableFakeMultiline","wholeWord","wordBoundary","addWordBoundary","modifier","caseSensitive","$assembleMultilineRegExp","backwards","forEachInLine","HashHandler","commandKeyBinding","addCommands","$singleCommand","MultiHashHandler","bindKey","isDefault","addCommand","removeCommand","_buildKeyHash","keepCommand","ckb","keyId","cmdGroup","keyPart","chain","binding","parseKeys","_addCommandToBinding","removeCommands","bindKeys","keyList","findKeyCommand","$keyChain","CommandManager","byName","isAvailable","toggleRecording","$inReplay","recording","macro","$addCommandToMacro","oldMacro","replay","trimMacro","mac","showSettingsMenu","showErrorMarker","scrollIntoView","centerSelection","prompt","gotoLine","multiSelectAction","getAllRanges","findNext","findPrevious","aceCommandGroup","navigateFileStart","navigateUp","times","navigateFileEnd","navigateDown","navigateWordLeft","navigateLineStart","navigateLeft","navigateWordRight","navigateLineEnd","navigateRight","selectPageDown","scrollPageDown","gotoPageDown","selectPageUp","scrollPageUp","gotoPageUp","jumpToMatching","$handlePaste","duplicateSelection","sortLines","modifyNumber","copyLinesUp","copyLinesDown","removeToLineStart","removeToLineEnd","removeWordLeft","removeWordRight","blockOutdent","blockIndent","splitLine","transposeLetters","transposeSelections","firstLineEndCol","selectedCount","insertLine","curLine","newRanges","exitMultiSelectMode","defaultCommands","Editor","getContainerElement","getTextAreaContainer","$mouseHandler","keyBinding","$search","$historyTracker","$initOperationListeners","_$emitInputEvent","setSession","startOperation","endOperation","$opResetTimer","curOp","docChanged","selectionChanged","prevOp","commadEvent","previousCommand","scrollSelectionIntoView","animateScrolling","$mergeableCommands","$mergeUndoDeltas","mergeableCommands","shouldMerge","mergeNextCommand","sequenceStartTime","keyboardHandler","$keybindingId","oldSession","$onDocumentChange","$onTokenizerUpdate","$onChangeTabSize","$onChangeWrapLimit","$onChangeWrapMode","$onChangeFold","$onChangeFrontMarker","$onChangeBackMarker","$onChangeBreakpoint","$onChangeAnnotation","$onCursorChange","$onScrollTopChange","$onScrollLeftChange","$onSelectionChange","onDocumentChange","onChangeMode","onTokenizerUpdate","onChangeTabSize","onChangeWrapLimit","onChangeWrapMode","onChangeFrontMarker","onChangeBackMarker","onChangeBreakpoint","onChangeAnnotation","onCursorChange","onScrollTopChange","onScrollLeftChange","onSelectionChange","updateFull","oldEditor","getSession","cursorPos","resize","onResize","setTheme","theme","getTheme","getFontSize","setFontSize","$highlightBrackets","$bracketHighlight","$highlightPending","getMatching","$highlightTags","$highlightTagPending","$tagHighlight","prevToken","sbm","$isFocused","showCursor","visualizeFocus","hideCursor","visualizeBlur","$cursorChange","updateCursor","updateLines","$updateHighlightActiveLine","scrollToY","scrollToX","$highlightActiveLine","$selectionStyle","$maxLines","$minLines","$highlightLineMarker","$selectionMarker","$highlightSelectedWord","$getSelectionHighLightRegexp","startOuter","endOuter","lineCols","updateFrontMarkers","updateBackMarkers","updateBreakpoints","updateText","getSelectedText","inVirtualSelectionMode","getBehavioursEnabled","transform","$mergeNextCommand","lineState","shouldOutdent","lineIndent","setScrollSpeed","getScrollSpeed","setDragDelay","setSelectionStyle","setHighlightActiveLine","shouldHighlight","getHighlightActiveLine","setHighlightGutterLine","getHighlightGutterLine","setHighlightSelectedWord","getHighlightSelectedWord","setAnimatedScroll","shouldAnimate","getAnimatedScroll","setDisplayIndentGuides","getDisplayIndentGuides","setShowPrintMargin","showPrintMargin","getShowPrintMargin","setPrintMarginColumn","getPrintMarginColumn","setBehavioursEnabled","enabled","setWrapBehavioursEnabled","setShowFoldWidgets","getShowFoldWidgets","setFadeFoldWidgets","fade","getFadeFoldWidgets","new_range","swap","originalRange","$getSelectedRows","getNumberAt","_numberRx","amount","charRange","isFinite","nr","fp","decimals","nnr","toFixed","replaceRange","sel","endPoint","moved","totalDiff","rangeIndex","subRows","showComposition","setCompositionText","hideComposition","getFirstVisibleRow","getLastVisibleRow","isRowVisible","isRowFullyVisible","getFirstFullyVisibleRow","getLastFullyVisibleRow","$getVisibleRowCount","getScrollBottomRow","getScrollTopRow","$moveByPage","scrollToRow","scrollToLine","center","animate","alignCursor","getCursorPositionScreen","expand","matchType","bracketType","found","brackets","lineNumber","navigateTo","replaced","$tryReplace","replaceAll","getLastSearchOptions","newRange","preventScroll","revealRange","setAutoScrollEditorIntoView","shouldScroll","$scrollAnchor","scrollAnchor","onChangeSelection","onBeforeRender","onAfterRender","searchBox","$pixelPos","$resetCursorStyle","$cursorStyle","cursorLayer","setSmoothBlinking","isBlinking","selectionStyle","highlightActiveLine","highlightSelectedWord","behavioursEnabled","wrapBehavioursEnabled","autoScrollEditorIntoView","keybindingId","hScrollBarAlwaysVisible","vScrollBarAlwaysVisible","highlightGutterLine","animatedScroll","printMarginColumn","printMargin","fadeFoldWidgets","showFoldWidgets","showLineNumbers","showGutter","displayIndentGuides","fontSize","fontFamily","maxLines","minLines","scrollPastEnd","fixedWidthGutter","foldStyle","UndoManager","$serializeDelta","$deserializeDelta","cloneDeltaSetsObj","deltaSets_old","fnGetModifiedDelta","deltaSets_new","deltaSet_old","deltaSet_new","delta_old","deltaSets","$doc","hasUndo","dirtyCounter","$undoStack","$redoStack","NaN","undoSelectionRange","redoSelectionRange","$deserializeDeltas","hasRedo","markClean","isClean","$serializeDeltas","Gutter","parentEl","$showFoldWidgets","gutterWidth","$updateAnnotations","$cells","rowInfo","annoText","gutterOffset","breakpoints","decorations","$firstLineNumber","lastLineNumber","gutterRenderer","$renderer","cell","textNode","foldWidget","getText","minHeight","$fixedWidth","padding","$padding","$computePadding","ceil","$showLineNumbers","setShowLineNumbers","getShowLineNumbers","paddingLeft","paddingRight","Marker","getBorderClass","tl","tr","br","bl","setPadding","setMarkers","$getTop","drawFullLineMarker","drawScreenLineMarker","drawTextMarker","drawMultiLineMarker","drawBidiSingleLineMarker","firstRowScreen","stringBuilder","extraStyle","curr","clazzModified","lineRange","range1","radiusClass","extraLength","Text","$updateEolChar","EOF_CHAR","EOL_CHAR_LF","EOL_CHAR_CRLF","EOL_CHAR","TAB_CHAR","SPACE_CHAR","getLineHeight","$fontMetrics","measure","$pollSizeChanges","checkForSizeChanges","$pollSizeChangesTimer","$computeTabString","$tabStrings","tabStr","$indentGuideRe","spaceClass","tabClass","spaceContent","tabContent","scrollLines","lineElements","lineElementsIdx","lineElement","$renderLine","$useLineGroups","oldConfig","lastChild","$renderLinesFragment","createDocumentFragment","$textToken","rparen","lparen","$renderToken","output","tabIdx","idx4","classToUse","renderIndentGuide","cols","$renderWrappedLine","onlyContents","splitChars","$renderSimpleLine","$getFoldLineTokens","renderTokens","addTokens","$measureNode","isIE8","Cursor","isVisible","blinkInterval","smoothBlinking","cursors","addCursor","$updateCursors","$updateVisibility","$updateOpacity","visibility","blinking","restartTimer","setBlinkInterval","removeCursor","intervalId","timeoutId","blink","getPixelPosition","onScreen","$selectionMarkers","cursorIndex","pixelPos","drawCursor","$setOverwrite","MAX_SCROLL_H","ScrollBar","parent","classSuffix","setVisible","skipEvent","onScroll","coeff","VScrollBar","scrollHeight","$scrollbarWidth","$minWidth","setHeight","setInnerHeight","setScrollHeight","HScrollBar","setWidth","setInnerWidth","setScrollWidth","ScrollBarV","ScrollBarH","RenderLoop","onRender","pending","changes","change","CHAR_COUNT","FontMetrics","$setMeasureNodeStyles","$main","$testFractionalRect","isRoot","whiteSpace","font","$measureSizes","fontWeight","boldSize","charSizes","allowBoldFonts","setPolling","GutterLayer","MarkerLayer","TextLayer","CursorLayer","VirtualRenderer","content","onGutterResize","$markerBack","textLayer","$textLayer","canvas","$markerFront","$horizScroll","$vScroll","scrollBar","$scrollAnimation","scrollMargin","updateCharacterSize","$size","scrollerHeight","scrollerWidth","$dirty","maxHeight","v","$loop","$renderChanges","CHANGE_FULL","CHANGE_CURSOR","CHANGE_MARKER","CHANGE_GUTTER","CHANGE_SCROLL","CHANGE_LINES","CHANGE_TEXT","CHANGE_SIZE","CHANGE_MARKER_BACK","CHANGE_MARKER_FRONT","CHANGE_H_SCROLL","$allowBoldFonts","$updatePrintMargin","onChangeNewLineMode","$changedLines","updateFontSize","$changes","$updateSizeAsync","resizing","scrollWidth","$updateCachedSize","$extraHeight","oldSize","$showGutter","$computeLayerConfig","availableWidth","$showPrintMargin","$printMarginColumn","$animatedScroll","getShowGutter","setShowGutter","$updateGutterLineHighlight","$gutterLineHighlight","$printMarginEl","containerEl","posTop","posLeft","$composition","setScrollMargin","sm","getHScrollBarAlwaysVisible","$hScrollBarAlwaysVisible","setHScrollBarAlwaysVisible","alwaysVisible","getVScrollBarAlwaysVisible","$vScrollBarAlwaysVisible","setVScrollBarAlwaysVisible","$updateScrollBarV","$scrollPastEnd","$updateScrollBarH","$frozen","unfreeze","st","$highlightGutterLine","$updateLines","$autosize","desiredHeight","$maxPixelHeight","$gutterWidth","hideScrollbars","longestLine","$getLongestLine","horizScroll","hScrollChanged","vScrollBefore","vScrollChanged","firstRowHeight","lineCount","charCount","$viewMargin","topMargin","bottomMargin","alignment","STEPS","$calcSteps","fromValue","toValue","steps","x_min","initialScroll","oldSteps","$timer","scrollTo","canvasPos","textToScreenCoordinates","pageX","pageY","keepTextAreaAtCursor","$themeId","cssClass","$theme","isDark","setMouseCursor","maxPixelHeight","workerUrl","blob","Blob","blobBuilder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","getBlob","$workerBlob","blobURL","webkitURL","createObjectURL","Worker","WorkerClient","topLevelNamespaces","classname","importScripts","$sendDeltaQueue","changeListener","onMessage","nameToUrl","toUrl","normalizePath","$normalizePath","tlns","callbackId","onmessage","err","deltaQueue","emit","ex","attachToDocument","q","UIWorkerClient","messageBuffer","main","emitSync","sender","processNext","setEmitSync","Main","PlaceHolder","others","mainClass","othersClass","$onUpdate","onUpdate","$others","undoStack","$undostack","$undoStackDepth","setup","selectionBefore","other","showOtherMarkers","othersActive","hideOtherMarkers","updateAnchors","lengthDiff","inMainRange","distanceFromStart","newPos","otherPos","updateMarkers","updateMarker","undosRequired","isSamePoint","accel","selectionMode","isMultiSelect","mouseX","mouseY","screenAnchor","screenCursor","$enableJumpToDef","$blockSelectEnabled","addSelectionMarker","oldRange","removeSelectionMarker","tmpSel","rectSel","onSelectionInterval","newCursor","removeSelectionMarkers","rectangularRangeBlock","updateSelectionMarkers","selectMoreLines","selectMore","splitIntoLines","alignCursors","multiSelectCommands","getSelectionMarkers","$blockChangeEvents","$onAddRange","$onRemoveRange","mergeOverlappingRanges","lastRange","$initRangeList","toggleBlockSelection","includeEmptyLines","xBackwards","startOffsetX","endOffsetX","yBackwards","docEnd","MultiSelect","$multiselectOnSessionChange","$onMultiSelect","$onSingleSelect","onSessionChange","$checkMultiselectChange","altCursor","altDown","addAltCursorListeners","selectionMarkerCount","markerList","$onMultiSelectExec","inVirtualMode","forEachSelection","keepOrder","$byLines","reg","cmdResult","anim","buf","nl","additive","skip","screenLead","toRemove","words","stopAtFirst","sameRowRanges","maxCol","minSpace","spaceOffsets","spaceOffset","fr","lr","guessRange","$reAlignText","forceLeft","startW","textW","endW","isLeftAligned","isRightAligned","alignLeft","enableMultiselect","enableBlockSelect","FoldMode","foldingStartMarker","foldingStopMarker","indentationBlock","startLevel","openingBracketBlock","closingBracketBlock","LineWidgets","widgetManager","updateOnChange","renderWidgets","measureWidgets","_changedWidgets","$onChangeEditor","updateOnFold","hidden","_inDocument","removeLineWidget","$updateRows","noWidgets","$oldWidget","addLineWidget","coverGutter","pixelHeight","$fold","onWidgetChanged","w1","getWidgetsAtRow","changedWidgets","fixedWidth","coverLine","fullWidth","oldWidget","gutterAnno","comparator","binarySearch","matched","findAnnotations","arrow","onmousedown","Renderer","edit","_id","getElementById","env","tagName","oldNode","createEditSession","version","brace","px","SnippetManager","snippetMap","snippetNameMap","TabstopToken","inFormatString","tabstopId","expectIf","elseBranch","changeCase","snippetVar","choices","fmtString","guard","fmt","code","formatString","tokenizeTmSnippet","$getDefaultValue","variables","__","getVariableValue","varName","tmStrFormat","fmtTokens","formatted","fmtParts","resolveVariables","gChangeCase","snippet","gotoNext","i1","insertSnippetForSelection","snippetText","tabString","tabstops","expanding","copyValue","arg","tabstopManager","TabstopManager","selectionId","addTabstops","insertSnippet","tabNext","$getScope","inlinePhp","getActiveScopes","scopes","includeScopes","expandWithTab","expandSnippetForSelection","snippets","findMatchingSnippet","dryRun","replaceBefore","replaceAfter","M__","matchBefore","T__","matchAfter","snippetList","startRe","endRe","triggerRe","endTriggerRe","register","wrapRegexp","guardedRegexp","addSnippet","unregister","tabTrigger","trigger","endTrigger","endGuard","removeSnippet","nameMap","parseSnippetFile","JSON","guardRe","getSnippetByName","$onChangeSelection","$onChangeSession","onChangeSession","$onAfterExec","onAfterExec","$openTabstops","selectedTabstop","removeTabstopMarkers","isRemove","$inChange","removeRange","updateLinkedFields","hasLinkedRanges","firstNonLinked","linked","snippetManager","containsLead","containsAnchor","selectTabstop","addTabstopMarkers","moveRelative","dest","movePoint","tabstop","Tab","ed","Esc","Return","expandSnippet","emmet","emmetPath","AceEmmetEditor","setupContext","resources","require","setVariable","$syntax","getSyntax","createSelection","getCurrentLineRange","lineLength","getCaretPos","setCaretPos","getCurrentLine","replaceContent","noIndent","getContent","$updateTabstops","syntax","getProfileName","profile","getVariable","emmetConfig","getFilePath","zeroBase","lastZero","tabStops","settings","getVocabulary","tabstopOptions","isZero","processText","utils","common","replaceSubstring","keymap","expand_abbreviation","match_pair_outward","match_pair_inward","matching_pair","next_edit_point","prev_edit_point","toggle_comment","split_join_tag","remove_tag","evaluate_math_expression","increment_number_by_1","decrement_number_by_1","increment_number_by_01","decrement_number_by_01","increment_number_by_10","decrement_number_by_10","select_next_item","select_previous_item","reflect_css_value","encode_decode_data_url","expand_abbreviation_with_tab","wrap_with_abbreviation","editorProxy","runEmmetCommand","actions","load","updateCommands","isSupportedMode","isSupported","enableEmmet","setCore","ValidPxDigitsRegEx","EDITOR_ID","random","readonly","contentBackup","ace.edit","copyText","newTheme","newOption","watchOptions","aa","done","ba","ca","Symbol","da","ea","u","fa","ha","ia","ja","setPrototypeOf","ka","la","V","ma","na","oa","O","pa","f","g","v$1","is","reject","F","z","catch","race","qa","ra","sa","va","wa","A","xa","D","E","ya","za","metadata","Aa","Ba","G","captureStackTrace","Ca","Da","Ea","Fa","Ga","Ha","H","Ia","Ja","Ka","Uint8Array","La","getRequestMessage","getMethodDescriptor","getMetadata","getCallOptions","getResponseMessage","getStatus","getName","getMethodType","getResponseMessageCtor","getRequestMessageCtor","getResponseDeserializeFn","getRequestSerializeFn","Ma","Na","J","I","Oa","Pa","Qa","Ra","Sa","Ta","Ua","Va","Wa","Xa","Ya","Za","$a","ab","bb","db","eb","fb","gb","hb","documentMode","ib","jb","K","lb","mb","relatedTarget","screenY","screenX","pointerId","pointerType","changedTouches","fromElement","toElement","nb","ob","pb","qb","proxy","rb","sb","ub","tb","vb","wb","yb","zb","Ab","Bb","Cb","Db","Eb","Fb","Gb","Hb","Ib","handleEvent","U","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Sb","Zb","fc","Rb","Ub","Vb","Wb","Xb","Yb","entries","$b","ac","bc","cc","dc","gc","hc","ActiveXObject","ic","jc","kc","StopIteration","Q","lc","T","mc","nc","addAll","oc","n$1","pc","qc","headers","rc","tc","vc","FormData","w$1","setRequestHeader","responseType","withCredentials","wc","xc","ontimeout","V$1","abort","yc","zc","Ac","W","statusText","Bc","response","mozResponseArrayBuffer","getResponseHeader","Dc","getAllResponseHeaders","status","Ec","Fc","Gc","Hc","subarray","Ic","Jc","X","Y","includes","Kc","Lc","details","Nc","format","$","Qc","Oc","intercept","X$1","Z$1","Tb","unaryCall","serverStreaming","thenableCall","rpcCall","GrpcWebClientBase","MethodType","UNARY","SERVER_STREAMING","BIDI_STREAMING","globalThis","$jscomp","findInternal","ASSUME_ES5","ASSUME_NO_NATIVE_MAP","ASSUME_NO_NATIVE_SET","SIMPLE_FROUND_POLYFILL","getGlobal","polyfill","checkStringArgs","RangeError","COMPILED","goog","isDef","isString","isBoolean","isNumber","exportPath_","execScript","FEATURESET_YEAR","DEBUG","LOCALE","TRUSTED_SITE","STRICT_MODE_COMPATIBLE","DISALLOW_TEST_ONLY_CODE","ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING","provide","isInModuleLoader_","constructNamespace_","getScriptNonce","getScriptNonce_","cspNonce_","NONCE_PATTERN_","querySelector","nonce","VALID_MODULE_RE_","isInGoogModuleLoader_","moduleLoaderState_","getInternal_","ModuleType","ES6","GOOG","isInEs6ModuleLoader_","getCurrentModulePath","declareLegacyNamespace","declareModuleId","loadedModules_","moduleId","setTestOnly","forwardDeclare","getObjectByName","isDefAndNotNull","globalize","addDependency","ENABLE_DEBUG_LOADER","logToConsole_","requireType","nullFunction","abstractMethod","addSingletonGetter","instance_","getInstance","instantiatedSingletons_","LOAD_MODULE_USING_EVAL","SEAL_MODULE_EXPORTS","DEPENDENCIES_ENABLED","TRANSPILE","ASSUME_ES_MODULES_TRANSPILED","TRANSPILE_TO_LANGUAGE","TRANSPILER","hasBadLetScoping","useSafari10Workaround","eval","workaroundSafari10EvalBug","isFunction","loadModuleFromSource_","normalizePath_","loadFileSync_","CLOSURE_LOAD_FILE_SYNC","transpile_","transpile","$gwtExport","stringify","typeOf","isNull","isArrayLike","isDateLike","isObject","getFullYear","getUid","UID_PROPERTY_","uidCounter_","hasUid","removeUid","getHashCode","removeHashCode","cloneObject","bindNative_","bindJs_","partial","globalEval","evalWorksForGlobals_","_evalTest_","defer","getCssName","cssNameMapping_","cssNameMappingStyle_","CLOSURE_CSS_NAME_MAP_FN","setCssNameMapping","getMsg","getMsgWithFallback","exportSymbol","exportProperty","superClass_","callee","caller","defineClass","statics","createSealingConstructor_","applyProperties_","SEAL_CLASS_INSTANCES","isUnsealable_","UNSEALABLE_CONSTRUCTOR_PROPERTY_","OBJECT_PROTOTYPE_FIELDS_","tagUnsealableClass","TRUSTED_TYPES_POLICY_NAME","identity_","createTrustedTypesPolicy","TrustedTypes","createPolicy","createHTML","createScript","createScriptURL","createURL","TRUSTED_TYPES_POLICY_","getCount","getAnyKey","getAnyValue","containsValue","getValues","getKeys","getValueByKeys","containsKey","findKey","findValue","setIfUndefined","setWithReturnValueIfNotSet","equals","unsafeClone","transpose","PROTOTYPE_FIELDS_","createSet","createImmutableView","isImmutableView","getAllPropertyNames","getSuperClass","debug","reportErrorToServer","NodeType","ELEMENT","ATTRIBUTE","TEXT","CDATA_SECTION","ENTITY_REFERENCE","ENTITY","PROCESSING_INSTRUCTION","COMMENT","DOCUMENT","DOCUMENT_TYPE","DOCUMENT_FRAGMENT","NOTATION","asserts","ENABLE_ASSERTS","AssertionError","subs_","messagePattern","DEFAULT_ERROR_HANDLER","errorHandler_","doAssertFailure_","setErrorHandler","assert","assertExists","fail","assertNumber","assertString","assertFunction","assertObject","assertArray","assertBoolean","assertElement","nodeType","assertInstanceof","getType_","assertFinite","assertObjectPrototypeIsIntact","displayName","jspb","BinaryConstants","ConstBinaryMessage","BinaryMessage","FieldType","INVALID","DOUBLE","FLOAT","INT64","UINT64","INT32","FIXED64","FIXED32","BOOL","STRING","GROUP","MESSAGE","BYTES","UINT32","ENUM","SFIXED32","SFIXED64","SINT32","SINT64","FHASH64","VHASH64","WireType","VARINT","DELIMITED","START_GROUP","END_GROUP","FieldTypeToWireType","INVALID_FIELD_NUMBER","FLOAT32_EPS","FLOAT32_MIN","FLOAT32_MAX","FLOAT64_EPS","FLOAT64_MIN","FLOAT64_MAX","TWO_TO_20","TWO_TO_23","TWO_TO_31","TWO_TO_32","TWO_TO_52","TWO_TO_63","TWO_TO_64","ZERO_HASH","NATIVE_ARRAY_PROTOTYPES","ASSUME_NATIVE_FUNCTIONS","peek","forEachRight","findIndex","findRight","findIndexRight","insertAt","insertArrayAt","removeAt","removeLast","removeIf","removeAllIf","toArray","removeDuplicates","binarySearch_","defaultCompare","binarySelect","stableSort","sortByKey","sortObjectsByKey","isSorted","defaultCompareEquality","compare3","inverseDefaultCompare","binaryInsert","binaryRemove","bucket","flatten","rotate","moveItem","zip","shuffle","copyByIndex","concatMap","crypt","stringToByteArray","byteArrayToString","byteArrayToHex","hexToByteArray","stringToUtf8ByteArray","utf8ByteArrayToString","xorByteArray","assertIsLocation","getWindow_","Location","Element","debugStringForType_","assertIsElementType_","assertIsHTMLAnchorElement","assertIsHTMLButtonElement","assertIsHTMLLinkElement","assertIsHTMLImageElement","assertIsHTMLAudioElement","assertIsHTMLVideoElement","assertIsHTMLInputElement","assertIsHTMLTextAreaElement","assertIsHTMLCanvasElement","assertIsHTMLEmbedElement","assertIsHTMLFormElement","assertIsHTMLFrameElement","assertIsHTMLIFrameElement","assertIsHTMLObjectElement","assertIsHTMLScriptElement","functions","constant","FALSE","TRUE","NULL","identity","lock","nth","partialRight","withReturnValue","sequence","equalTo","compose","and","or","not","CACHE_RETURN_VALUE","cacheReturnValue","debounce","throttle","rateLimit","HtmlElement","TagName","tagName_","ABBR","ACRONYM","ADDRESS","APPLET","AREA","ARTICLE","ASIDE","AUDIO","BASE","BASEFONT","BDI","BDO","BIG","BLOCKQUOTE","BODY","BR","BUTTON","CANVAS","CAPTION","CENTER","CITE","CODE","COL","COLGROUP","COMMAND","DATA","DATALIST","DD","DEL","DETAILS","DFN","DIALOG","DIR","DIV","DL","DT","EM","EMBED","FIELDSET","FIGCAPTION","FIGURE","FONT","FOOTER","FORM","FRAME","FRAMESET","H1","H2","H3","H4","H5","H6","HEAD","HEADER","HGROUP","HR","HTML","IFRAME","IMG","INPUT","INS","ISINDEX","KBD","KEYGEN","LABEL","LEGEND","LI","LINK","MAIN","MAP","MARK","MATH","MENU","MENUITEM","META","METER","NAV","NOFRAMES","NOSCRIPT","OBJECT","OL","OPTGROUP","OPTION","OUTPUT","PARAM","PICTURE","PRE","PROGRESS","RP","RT","RTC","RUBY","SAMP","SCRIPT","SECTION","SELECT","SMALL","SOURCE","SPAN","STRIKE","STRONG","STYLE","SUB","SUMMARY","SUP","SVG","TABLE","TBODY","TD","TEMPLATE","TEXTAREA","TFOOT","TH","THEAD","TIME","TITLE","TR","TRACK","TT","UL","VAR","VIDEO","WBR","tags","VOID_TAGS_","area","embed","hr","img","keygen","track","wbr","isVoidTag","trustedtypes","PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY","TypedString","Const","stringConstValueWithSecurityContract__googStringSecurityPrivate_","GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_","STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_","TYPE_MARKER_","implementsGoogStringTypedString","getTypedStringValue","unwrap","EMPTY","SafeScript","privateDoNotAccessOrElseSafeScriptWrappedValue_","SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_","TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_","fromConstant","createSafeScriptSecurityPrivateDoNotAccessOrElse","fromConstantAndArgs","stringify_","fromJson","unwrapTrustedScript","initSecurityPrivateDoNotAccessOrElse_","fs","createObjectUrl","getUrlObject_","revokeObjectUrl","revokeObjectURL","findUrlObject_","browserSupportsObjectUrls","i18n","bidi","FORCE_RTL","IS_RTL","Format","LRE","RLE","PDF","LRM","RLM","Dir","LTR","RTL","NEUTRAL","RIGHT","LEFT","I18N_RIGHT","I18N_LEFT","toDir","ltrChars_","rtlChars_","htmlSkipReg_","stripHtmlIfNeeded_","rtlCharReg_","ltrCharReg_","hasAnyRtl","hasRtlChar","hasAnyLtr","ltrRe_","rtlRe_","isRtlChar","isLtrChar","isNeutralChar","ltrDirCheckRe_","rtlDirCheckRe_","startsWithRtl","isRtlText","startsWithLtr","isLtrText","isRequiredLtrRe_","isNeutralText","ltrExitDirCheckRe_","rtlExitDirCheckRe_","endsWithLtr","isLtrExitText","endsWithRtl","isRtlExitText","rtlLocalesRe_","isRtlLanguage","bracketGuardTextRe_","guardBracketInText","enforceRtlInHtml","enforceRtlInText","enforceLtrInHtml","enforceLtrInText","dimensionsRe_","leftRe_","rightRe_","tempRe_","mirrorCSS","doubleQuoteSubstituteRe_","singleQuoteSubstituteRe_","normalizeHebrewQuote","wordSeparatorRe_","hasNumeralsRe_","rtlDetectionThreshold_","estimateDirection","detectRtlDirectionality","setElementDirAndAlign","textAlign","setElementDirByTextDirectionality","DirectionalString","TrustedResourceUrl","privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_","trustedURL_","TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_","implementsGoogI18nBidiDirectionalString","getDirection","cloneWithParams","URL_PARAM_PARSER_","createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse","stringifyParams_","unwrapTrustedScriptURL","unwrapTrustedURL","BASE_URL_","FORMAT_MARKER_","formatWithParams","fromConstants","internal","startsWith","endsWith","caseInsensitiveStartsWith","caseInsensitiveCompare","caseInsensitiveEndsWith","caseInsensitiveEquals","isEmptyOrWhitespace","newLineToBr","htmlEscape","AMP_RE_","LT_RE_","GT_RE_","QUOT_RE_","SINGLE_QUOTE_RE_","NULL_RE_","ALL_RE_","whitespaceEscape","caseInsensitiveContains","compareVersions","compareElements_","SafeUrl","privateDoNotAccessOrElseSafeUrlWrappedValue_","SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_","INNOCUOUS_STRING","createSafeUrlSecurityPrivateDoNotAccessOrElse","SAFE_MIME_TYPE_PATTERN_","isSafeMimeType","fromBlob","DATA_URL_PATTERN_","fromDataUrl","fromTelUrl","SIP_URL_PATTERN_","fromSipUrl","fromFacebookMessengerUrl","fromWhatsAppUrl","fromSmsUrl","isSmsUrlBodyValid_","fromSshUrl","sanitizeChromeExtensionUrl","sanitizeExtensionUrl_","sanitizeFirefoxExtensionUrl","sanitizeEdgeExtensionUrl","fromTrustedResourceUrl","SAFE_URL_PATTERN_","SAFE_URL_PATTERN","sanitize","sanitizeAssertUnchanged","ABOUT_BLANK","SafeStyle","privateDoNotAccessOrElseSafeStyleWrappedValue_","SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_","createSafeStyleSecurityPrivateDoNotAccessOrElse","sanitizePropertyValue_","sanitizePropertyValueString_","FUNCTIONS_RE_","URL_RE_","VALUE_RE_","COMMENT_RE_","hasBalancedQuotes_","hasBalancedSquareBrackets_","sanitizeUrl_","VALUE_ALLOWED_CHARS_","SafeStyleSheet","privateDoNotAccessOrElseSafeStyleSheetWrappedValue_","SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_","createRule","hasBalancedBrackets_","createSafeStyleSheetSecurityPrivateDoNotAccessOrElse","labs","util","getNativeUserAgentString_","getNavigator_","userAgent_","setUserAgent","getUserAgent","matchUserAgent","matchUserAgentIgnoreCase","extractVersionTuples","browser","matchOpera_","matchIE_","matchEdgeHtml_","matchEdgeChromium_","matchOperaChromium_","matchFirefox_","matchSafari_","matchChrome_","matchCoast_","isSilk","matchIosWebview_","matchAndroidBrowser_","isFirefox","isEdge","isEdgeChromium","isOperaChromium","isSafari","isCoast","isIosWebview","isAndroidBrowser","getVersion","getIEVersion_","isVersionOrHigher","SafeHtml","privateDoNotAccessOrElseSafeHtmlWrappedValue_","SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_","dir_","unwrapTrustedHTML","createSafeHtmlSecurityPrivateDoNotAccessOrElse","htmlEscapePreservingNewlines","htmlEscapePreservingNewlinesAndSpaces","VALID_NAMES_IN_TAG_","URL_ATTRIBUTES_","cite","formaction","manifest","poster","NOT_ALLOWED_TAG_NAMES_","verifyTagName","createSafeHtmlTagSecurityPrivateDoNotAccessOrElse","createIframe","srcdoc","combineAttributes","sandbox","createSandboxIframe","canUseSandboxIframe","HTMLIFrameElement","createScriptSrc","createStyle","createMetaRefresh","getAttrNameAndValue_","getStyleValue_","createWithDir","concatWithDir","stringifyAttributes","DOCTYPE_HTML","uncheckedconversions","safeHtmlFromStringKnownToSatisfyTypeContract","safeScriptFromStringKnownToSatisfyTypeContract","safeStyleFromStringKnownToSatisfyTypeContract","safeStyleSheetFromStringKnownToSatisfyTypeContract","safeUrlFromStringKnownToSatisfyTypeContract","trustedResourceUrlFromStringKnownToSatisfyTypeContract","safe","InsertAdjacentHtmlPosition","AFTERBEGIN","AFTEREND","BEFOREBEGIN","BEFOREEND","insertAdjacentHtml","insertAdjacentHTML","SET_INNER_HTML_DISALLOWED_TAGS_","isInnerHtmlCleanupRecursive_","parentElement","unsafeSetInnerHtmlDoNotUseOrElse","setOuterHtml","outerHTML","setFormElementAction","setButtonFormAction","formAction","setInputFormAction","documentWrite","write","setAnchorHref","setImageSrc","setAudioSrc","setVideoSrc","setEmbedSrc","setFrameSrc","setIframeSrc","setIframeSrcdoc","setLinkHrefAndRel","setObjectData","setScriptSrc","setScriptContent","setLocationHref","assignLocation","replaceLocation","openInWindow","parseFromStringHtml","parseFromString","createImageFromBlob","Image","DETECT_DOUBLE_ESCAPING","FORCE_NON_DOM_HTML_UNESCAPING","Unicode","NBSP","subs","collapseWhitespace","isEmptyString","isEmptyOrWhitespaceSafe","makeSafe","isEmptySafe","isBreakingWhitespace","isAlpha","isNumeric","isAlphaNumeric","isSpace","isUnicodeChar","stripNewlines","canonicalizeNewlines","normalizeWhitespace","normalizeSpaces","collapseBreakingSpaces","trimLeft","trimRight","numberAwareCompare_","intAwareCompare","floatAwareCompare","numerateCompare","urlEncode","urlDecode","E_RE_","unescapeEntities","unescapeEntitiesUsingDom_","unescapePureXmlEntities_","unescapeEntitiesWithDocument","HTML_ENTITY_PATTERN_","nodeValue","preserveSpaces","stripQuotes","truncate","truncateMiddle","specialEscapeChars_","jsEscapeCache_","escapeChar","countOf","regExpEscape","padNumber","buildString","getRandomString","hashCode","uniqueStringCounter_","createUniqueString","isLowerCamelCase","isUpperCamelCase","toCamelCase","toSelectorCase","toTitleCase","capitalize","splitLimit","lastComponent","editDistance","engine","isPresto","isTrident","getEngineTuple_","getVersionForKey_","isAndroid","isIpod","isIphone","isIpad","isIos","isMacintosh","isWindows","isChromecast","isKaiOS","isGo2Phone","reflect","objectProperty","sinkValue","canAccessProperty","ASSUME_IE","ASSUME_EDGE","ASSUME_GECKO","ASSUME_WEBKIT","ASSUME_MOBILE_WEBKIT","ASSUME_OPERA","ASSUME_ANY_VERSION","BROWSER_KNOWN_","getUserAgentString","getNavigatorTyped","getNavigator","OPERA","IE","EDGE","EDGE_OR_IE","GECKO","WEBKIT","isMobile_","MOBILE","SAFARI","determinePlatform_","PLATFORM","ASSUME_MAC","ASSUME_WINDOWS","ASSUME_LINUX","ASSUME_X11","ASSUME_ANDROID","ASSUME_IPHONE","ASSUME_IPAD","ASSUME_IPOD","ASSUME_KAIOS","ASSUME_GO2PHONE","PLATFORM_KNOWN_","isLegacyLinux_","isX11_","appVersion","X11","ANDROID","IPHONE","IPAD","IPOD","IOS","KAIOS","GO2PHONE","determineVersion_","getVersionRegexResult_","getDocumentMode_","VERSION","isVersionOrHigherCache_","isVersion","isDocumentModeOrHigher","DOCUMENT_MODE","isDocumentMode","ASSUME_FIREFOX","ASSUME_CHROME","ASSUME_SAFARI","PRODUCT_KNOWN_","FIREFOX","isIphoneOrIpod_","CHROME","isSafariDesktop_","base64","DEFAULT_ALPHABET_COMMON_","ENCODED_VALS","ENCODED_VALS_WEBSAFE","Alphabet","DEFAULT","NO_PADDING","WEBSAFE","WEBSAFE_DOT_PADDING","WEBSAFE_NO_PADDING","paddingChars_","isPadding_","byteToCharMaps_","charToByteMap_","ASSUME_NATIVE_SUPPORT_","HAS_NATIVE_ENCODE_","btoa","HAS_NATIVE_DECODE_","atob","encodeByteArray","init_","encodeString","decodeString","decodeStringInternal_","decodeStringToByteArray","decodeStringToUint8Array","split64Low","split64High","splitUint64","splitInt64","splitZigzag64","splitFloat32","LN2","splitFloat64","splitHash64","joinUint64","joinInt64","toZigzag64","joinZigzag64","fromZigzag64","joinFloat32","joinFloat64","joinHash64","DIGITS","ZERO_CHAR_CODE_","A_CHAR_CODE_","joinUnsignedDecimalString","joinSignedDecimalString","hash64ToDecimalString","hash64ArrayToDecimalStrings","decimalStringToHash64","splitDecimalString","toHexDigit_","fromHexCharCode_","hash64ToHexString","hexStringToHash64","hash64ToNumber","numberToHash64","countVarints","countVarintFields","countFixedFields_","countFixed32Fields","countFixed64Fields","countDelimitedFields","debugBytesToTextFormat","byteSourceToUint8Array","debugScalarToTextFormat","ArrayBuffer","Buffer","BinaryDecoder","bytes_","cursor_","end_","start_","error_","setBlock","instanceCache_","alloc","free","getBuffer","getEnd","setCursor","advance","atEnd","pastEnd","getError","readSplitVarint64","readSplitZigzagVarint64","readSplitFixed64","skipVarint","unskipVarint","readUnsignedVarint32","readSignedVarint32","readUnsignedVarint32String","readSignedVarint32String","readZigzagVarint32","readUnsignedVarint64","readUnsignedVarint64String","readSignedVarint64","readSignedVarint64String","readZigzagVarint64","readZigzagVarintHash64","readZigzagVarint64String","readUint8","readUint16","readUint32","readUint64","readUint64String","readInt8","readInt16","readInt32","readInt64","readInt64String","readFloat","readDouble","readBool","readEnum","readString","readStringWithLength","readBytes","readVarintHash64","readFixedHash64","BinaryReader","decoder_","fieldCursor_","nextField_","nextWireType_","readCallbacks_","getFieldCursor","getFieldNumber","getWireType","isDelimited","isEndGroup","nextField","unskipHeader","skipMatchingFields","skipField","skipVarintField","skipDelimitedField","skipFixed32Field","skipFixed64Field","skipGroup","registerReadCallback","runReadCallback","readAny","readFixed64","readFixed32","readSfixed32","readSfixed64","readSint32","readSint64","readMessage","readGroup","getFieldDecoder","readInt32String","readUint32String","readSint64String","readFixed64String","readSfixed32String","readSfixed64String","readSintHash64","readPackedField_","readPackedInt32","readPackedInt32String","readPackedInt64","readPackedInt64String","readPackedUint32","readPackedUint32String","readPackedUint64","readPackedUint64String","readPackedSint32","readPackedSint64","readPackedSint64String","readPackedFixed32","readPackedFixed64","readPackedFixed64String","readPackedSfixed32","readPackedSfixed64","readPackedSfixed64String","readPackedFloat","readPackedDouble","readPackedBool","readPackedEnum","readPackedVarintHash64","readPackedFixedHash64","BinaryEncoder","buffer_","writeSplitVarint64","writeSplitFixed64","writeUint32","writeUnsignedVarint32","writeSignedVarint32","writeUnsignedVarint64","writeSignedVarint64","writeZigzagVarint32","writeZigzagVarint64","writeZigzagVarint64String","writeZigzagVarintHash64","writeUint8","writeUint16","writeUint64","writeInt8","writeInt16","writeInt32","writeInt64","writeInt64String","writeFloat","writeDouble","writeBool","writeEnum","writeBytes","writeVarintHash64","writeFixedHash64","writeString","arith","UInt64","rightShift","leftShift","msb","lsb","zero","sub","mul32x32","mul","fromString","Int64","BinaryWriter","blocks_","totalLength_","encoder_","bookmarks_","appendUint8Array_","beginDelimited_","writeFieldHeader_","endDelimited_","writeSerializedMessage","maybeWriteSerializedMessage","getResultBuffer","getResultBase64String","beginSubMessage","endSubMessage","writeAny","writeFixed64","writeFixed32","writeSfixed32","writeSfixed64","writeSint32","writeSint64","writeUnsignedVarint32_","writeSignedVarint32_","writeUnsignedVarint64_","writeSignedVarint64_","writeZigzagVarint32_","writeZigzagVarint64_","writeZigzagVarint64String_","writeZigzagVarintHash64_","writeInt32String","writeUint32String","writeUint64String","writeSintHash64","writeSint64String","writeFixed64String","writeSfixed64String","writeMessage","writeMessageSet","writeGroup","writeSplitZigzagVarint64","writeRepeatedInt32","writeRepeatedInt32String","writeRepeatedInt64","writeRepeatedSplitFixed64","writeRepeatedSplitVarint64","writeRepeatedSplitZigzagVarint64","writeRepeatedInt64String","writeRepeatedUint32","writeRepeatedUint32String","writeRepeatedUint64","writeRepeatedUint64String","writeRepeatedSint32","writeRepeatedSint64","writeRepeatedSint64String","writeRepeatedSintHash64","writeRepeatedFixed32","writeRepeatedFixed64","writeRepeatedFixed64String","writeRepeatedSfixed32","writeRepeatedSfixed64","writeRepeatedSfixed64String","writeRepeatedFloat","writeRepeatedDouble","writeRepeatedBool","writeRepeatedEnum","writeRepeatedString","writeRepeatedBytes","writeRepeatedMessage","writeRepeatedGroup","writeRepeatedFixedHash64","writeRepeatedVarintHash64","writePackedInt32","writePackedInt32String","writePackedInt64","writePackedSplitFixed64","writePackedSplitVarint64","writePackedSplitZigzagVarint64","writePackedInt64String","writePackedUint32","writePackedUint32String","writePackedUint64","writePackedUint64String","writePackedSint32","writePackedSint64","writePackedSint64String","writePackedSintHash64","writePackedFixed32","writePackedFixed64","writePackedFixed64String","writePackedSfixed32","writePackedSfixed64","writePackedSfixed64String","writePackedFloat","writePackedDouble","writePackedBool","writePackedEnum","writePackedFixedHash64","writePackedVarintHash64","arr_","valueCtor_","map_","arrClean","loadFromArray_","Entry_","valueWrapper","stringKeys_","wrapEntry_","fromObject","ArrayIteratorIterable_","idx_","getEntryList","serializeBinary","deserializeBinary","ExtensionFieldInfo","fieldIndex","fieldName","toObjectFn","isRepeated","ExtensionFieldBinaryInfo","fieldInfo","binaryReaderFn","binaryWriterFn","binaryMessageSerializeFn","binaryMessageDeserializeFn","isPacked","isMessageType","Message","GENERATE_TO_OBJECT","GENERATE_FROM_OBJECT","GENERATE_TO_STRING","ASSUME_LOCAL_ARRAYS","SERIALIZE_EMPTY_TRAILING_FIELDS","SUPPORTS_UINT8ARRAY_","getJsPbMessageId","messageId_","getIndex_","arrayIndexOffset_","hiddenES6Property_","getFieldNumber_","initialize","wrappers_","initPivotAndExtensionObject_","convertedPrimitiveFields_","repeatedFields","pivot_","EMPTY_LIST_SENTINEL_","maybeInitEmptyExtensionObject_","extensionObject_","computeOneofCase","isArray_","isExtensionObject_","toObjectList","toObjectExtension","serializeBinaryExtensions","readBinaryExtension","getField","getRepeatedField","getOptionalFloatingPointField","getBooleanField","getRepeatedFloatingPointField","getRepeatedBooleanField","bytesAsB64","bytesAsU8","bytesListAsB64","assertConsistentTypes_","bytesListAsU8","getFieldWithDefault","getBooleanFieldWithDefault","getFloatingPointFieldWithDefault","getFieldProto3","getMapField","setField","setProto3IntField","setFieldIgnoringDefault_","setProto3FloatField","setProto3BooleanField","setProto3StringField","setProto3BytesField","setProto3EnumField","setProto3StringIntField","addToRepeatedField","setOneofField","getWrapperField","getRepeatedWrapperField","wrapRepeatedField_","setWrapperField","setOneofWrapperField","setRepeatedWrapperField","addToRepeatedWrapperField","toMap","syncMapFields_","getExtension","setExtension","difference","compareFields","compareExtensions","cloneMessage","clone_","copyInto","registerMessageType","messageId","messageSetExtensions","messageSetExtensionsBinary","Export","_Map","Transformer","ValidationMappingRequestMessage","opt_data","opt_includeInstance","includeInstance","bo4ejson","formatpackage","$jspbMessageInstance","bytes","reader","deserializeBinaryFromReader","setBo4ejson","setFormatpackage","writer","serializeBinaryToWriter","getBo4ejson","getFormatpackage","ValidationMappingMessage","mappingsMap","getMappingsMap","opt_noLazyCreate","clearMappingsMap","EDIMessage","edi","usemap","setEdi","setUsemap","getEdi","getUsemap","BO4EMessage","bo4e","setBo4e","getBo4e","TestdataListRequest","TestdataListResponse","repeatedFields_","filesList","addFiles","getFilesList","setFilesList","opt_index","clearFilesList","TestdataRequest","filename","setFilename","getFilename","TestdataResponse","setContent","FormatPackage","FV1710","FV1904","FV1912","FV2004","FV2104","FV2110","FV2204","FV2210","FV2304","FV2310","FV2404","FV2410","FV2504","TransformerClient","credentials","methodDescriptorFromEDIToBO4E","grpcWeb.MethodDescriptor","grpcWeb.MethodType","Protos_transformer_pb.EDIMessage","Protos_transformer_pb.BO4EMessage","request","methodDescriptorFromBO4EToEdi","methodDescriptorFromBO4ETransactionToEdi","methodDescriptorFromBO4ETransactionToEdiSeed","methodDescriptorValidationMapping","Protos_transformer_pb.ValidationMappingRequestMessage","Protos_transformer_pb.ValidationMappingMessage","methodDescriptorListTestData","Protos_transformer_pb.TestdataListRequest","Protos_transformer_pb.TestdataListResponse","methodDescriptorGetTestData","Protos_transformer_pb.TestdataRequest","Protos_transformer_pb.TestdataResponse","client_","grpcWeb.GrpcWebClientBase","hostname_","credentials_","options_","fromEDIToBO4E","fromBO4EToEdi","fromBO4ETransactionToEdi","fromBO4ETransactionToEdiSeed","validationMapping","listTestData","getTestData","JsonHighlightRules","MatchingBraceOutdent","BaseFoldMode","commentRegex","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","forceMultiline","getCommentRegionBlock","getSectionRange","startIndent","subRange","CStyleFoldMode","$outdent","worker","require$$0","getOwnPropertySymbols","throw","sent","trys","ops","return","__esModule","inspectSource","WeakMap","copyright","tt","et","nt","it","facade","rt","ot","ct","enforce","getterFor","unsafe","noTargetGet","at","ut","lt","gt","ft","It","pt","ht","yt","bt","mt","vt","Bt","Ct","Ft","Ut","St","Zt","Vt","Gt","Xt","xt","wt","Rt","At","normalize","NATIVE","POLYFILL","Qt","Jt","Wt","stat","forced","sham","Ht","kt","Et","Tt","withoutSetter","Yt","Nt","Kt","Ot","zt","jt","_t","Dt","Pt","Mt","qt","$t","te","ee","ne","ie","oe","ce","se","ae","ue","le","de","versions","ge","v8","fe","Ie","pe","he","ye","foo","be","me","ve","Be","Ce","Fe","Ue","Se","Ze","Ve","Ge","Xe","we","xe","Ae","domain","close","contentWindow","Re","Qe","Je","We","He","ke","Le","Ee","Te","Ye","Ne","Ke","Oe","ze","je","_e","De","qe","$e","tn","en","nn","rn","cn","sn","an","un","ln","QObject","dn","findChild","gn","description","In","pn","hn","vn","yn","bn","mn","for","keyFor","useSetter","useSimple","Bn","Fn","Un","Sn","Zn","Vn","Gn","Xn","Reflect","wn","xn","An","Rn","Qn","codeAt","Jn","Wn","Hn","kn","Ln","En","Tn","IteratorPrototype","BUGGY_SAFARI_ITERATORS","Yn","Nn","Kn","On","zn","jn","_n","Dn","Pn","qn","$n","ti","ei","ni","ri","oi","ci","si","ai","ui","li","di","gi","fi","Ii","DataView","pi","Int8Array","yi","bi","Uint8ClampedArray","mi","vi","Bi","Ci","Fi","Ui","Si","Zi","Vi","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","Gi","Xi","wi","xi","Ai","Ri","Qi","Ji","Wi","Hi","ki","Li","Ei","Ti","Yi","Ni","ACCESSORS","Ki","Oi","objectID","weakData","REQUIRED","fastKey","getWeakData","onFreeze","zi","stopped","ji","AS_ENTRIES","IS_ITERATOR","INTERRUPTED","_i","Di","Mi","qi","$i","getConstructor","setStrong","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","ir","rr","Arguments","cr","ar","ur","dr","gr","reason","Ir","pr","yr","_state","_handled","_value","_deferreds","Fr","_immediateFn","onFulfilled","onRejected","vr","promise","mr","Br","_unhandledRejectionFn","Cr","finally","allSettled","setImmediate","Ur","fatal","TextEncoder","TextDecoder","encode","stream","buffer","byteOffset","byteLength","decode","ReferenceError","construct","Proxy","aborted","onabort","Event","initEvent","createEventObject","cancelable","signal","dispatchEvent","toStringTag","__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL","Request","AbortController","AbortSignal","Sr","locked","addToLocked","isLocked","unlock","Zr","__awaiter","__generator","acquiredIatSet","acquireLock","releaseLock","releaseLock__private__","waitForSomethingToChange","refreshLockWhileAcquired","waiters","localStorage","getItem","setItem","iat","timeoutKey","timeAcquired","timeRefreshed","lockCorrector","removeFromWaiting","addToWaiting","notifyWaiters","removeItem","Vr","timeoutInSeconds","Gr","Xr","wr","error_description","fromPayload","xr","appState","Ar","Rr","popup","Qr","origin","Jr","Wr","crypto","msCrypto","Hr","subtle","webkitSubtle","kr","getRandomValues","Lr","Er","Tr","digest","oncomplete","onerror","Yr","Nr","Kr","ok","responseURL","json","Or","zr","auth","audience","fetchUrl","fetchOptions","MessageChannel","port1","port2","jr","_r","Dr","baseUrl","auth0Client","Pr","Mr","qr","$r","client_id","toKey","fromKey","expires_in","expiresAt","decodedToken","claims","exp","eo","no","readJson","refresh_token","stripData","writeJson","io","enclosedCache","ro","storage","transaction","daysUntilExpire","oo","co","so","id_token","__raw","encoded","header","signature","user","iss","alg","aud","azp","max_age","auth_time","leeway","setUTCSeconds","nbf","organizationId","org_id","ao","__assign","expires","setMilliseconds","getMilliseconds","toUTCString","secure","sameSite","cookie","getAll","uo","go","fo","Io","po","sessionStorage","ho","yo","bo","mo","vo","Bo","Fo","Uo","memory","localstorage","Zo","Vo","cacheLocation","cookieStorage","legacySameSiteCookie","sessionCheckExpiryDays","useCookiesForTransactions","transactionManager","domainUrl","tokenIssuer","issuer","defaultScope","advancedOptions","useRefreshTokens","customOptions","authorizeTimeoutInSeconds","redirect_uri","_url","_getParams","response_type","response_mode","code_challenge","code_challenge_method","_authorizeUrl","_verifyIdToken","_parseNumber","buildAuthorizeUrl","organization","code_verifier","loginWithPopup","grant_type","getUser","getIdTokenClaims","loginWithRedirect","redirectMethod","handleRedirectCallback","checkSession","getTokenSilently","ignoreCache","_getTokenSilently","access_token","_getTokenUsingRefreshToken","_getTokenFromIFrame","getTokenWithPopup","isAuthenticated","buildLogoutUrl","federated","logout","localOnly","Xo","subscriber_queue","subscribers","new_value","run_queue","subscriber","invalidate","popupOpen","async","createClient","fetch","createAuth0Client","client","parseNumber","joinCss","separator","texts","prop","getStyles","pull","float","verticalAlign","getTransform","scale","translateX","translateY","flip","translateTimes","translateUnit","rotateUnit","flipX","flipY","svg_viewBox_value","g1","g0","path0","path0_fill_opacity_value","path1","path1_fill_opacity_value","path_d_value","if_block","icon","color","spin","pulse","primaryColor","secondaryColor","primaryOpacity","secondaryOpacity","swapOpacity","fixClickedElementCSS","child","fixArrowPositioning","currentTarget","nodeParent","treeChild","nodeDesc","CTO","faChevronRight","iconName","t2_value","desc","tree","div4","div3","t2","tree_1_changes","img_src_value","each_blocks","secondaryIcon","onSelectCallback","faIcon","leafNodeClickHandler","$activeElement","isObject_1","freeGlobal","_freeGlobal","freeSelf","_root","now_1","reWhitespace","trimmedEndIndex","_trimmedEndIndex","reTrimStart","baseTrim","_baseTrim","_Symbol","objectProto","nativeObjectToString","symToStringTag","getRawTag","isOwn","unmasked","_getRawTag","objectToString","_objectToString","nullTag","undefinedTag","baseGetTag","_baseGetTag","isObjectLike","isObjectLike_1","symbolTag","isSymbol","isSymbol_1","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","toNumber_1","FUNC_ERROR_TEXT","nativeMax","nativeMin","wait","lastArgs","lastThis","maxWait","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","thisArg","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","debounce_1","strictUriEncode","singleMatcher","multiMatcher","decodeComponents","components","customDecodeURIComponent","replaceMap","decodeUriComponent","encodedURI","splitOnFirst","separatorIndex","filterObj","predicate","isArr","encodeFragmentIdentifier","validateArrayFormatSeparator","decodeComponent","keysSorter","removeHash","hashStart","extract","queryStart","parseValue","parseNumbers","parseBooleans","query","arrayFormat","arrayFormatSeparator","formatter","accumulator","isEncodedArray","newValue","arrayValue","parserForArrayFormat","shouldFilter","skipNull","skipEmptyString","keyValueSep","encoderForArrayFormat","objectCopy","parseUrl","url_","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","queryFromUrl","parsedQueryFromUrl","queryString","getHash","pick","filterObject","exclude","exclusionFilter","t1_value","h1","h3","t1","useMap","getCookie","mapNode","recursiveList","_arguments","generator","AuthInterceptor","invoker","Authorization","$token","queryParams","testFiles","selectedFormatPackage","onConvert","formatVersion","cookieToken","unaryInterceptors","transformerClient","server_url","testData","seperatorChar","resultText","language","convertMode","requestMsg","usePackage","requestBo4eMsg","ediResponse","exc","testDataRequest","username","password","router","Home","Login","app","App"],"mappings":"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"}