main
黄海 1 year ago
commit 7c82cd1abd

2
.idea/.gitignore vendored

@ -0,0 +1,2 @@
# Default ignored files
/workspace.xml

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="dsssoserver" />
</profile>
</annotationProcessing>
</component>
<component name="JavacSettings">
<option name="ADDITIONAL_OPTIONS_OVERRIDE">
<module name="dsssoserver" options="-parameters" />
</option>
</component>
</project>

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="PublishConfigData" serverName="192.168.2.199">
<serverData>
<paths name="192.168.2.199">
<serverdata>
<mappings>
<mapping deploy="/usr/local/tomcat8/webapps/dsssoserver" local="$PROJECT_DIR$/WebRoot" web="/" />
</mappings>
</serverdata>
</paths>
</serverData>
</component>
</project>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" defaultCharsetForPropertiesFiles="UTF-8">
<file url="PROJECT" charset="UTF-8" />
</component>
</project>

@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="DuplicatedCode" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
</profile>
</component>

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="ali-maven" />
<option name="name" value="ali-maven" />
<option name="url" value="http://maven.aliyun.com/nexus/content/groups/public" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Central Repository" />
<option name="url" value="https://repo.maven.apache.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="com.e-iceblue" />
<option name="name" value="e-iceblue" />
<option name="url" value="http://repo.e-iceblue.com/nexus/content/groups/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
</component>
</project>

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="21" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="SshConfigs">
<configs>
<sshConfig authType="PASSWORD" connectionConfig="{&quot;serverAliveInterval&quot;:300}" host="192.168.2.199" id="a549b502-a506-482e-9a38-0eb5cd233ca3" port="26611" nameFormat="DESCRIPTIVE" username="root" />
</configs>
</component>
</project>

@ -0,0 +1,124 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
</component>
</project>

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="WebServers">
<option name="servers">
<webServer id="c14440bd-4d92-4af8-b856-98d20efbf74a" name="192.168.2.199">
<fileTransfer accessType="SFTP" host="192.168.2.199" port="26611" sshConfigId="a549b502-a506-482e-9a38-0eb5cd233ca3" sshConfig="root@192.168.2.199:26611 password">
<advancedOptions>
<advancedOptions dataProtectionLevel="Private" passiveMode="true" shareSSLContext="true" />
</advancedOptions>
</fileTransfer>
</webServer>
</option>
</component>
</project>

@ -0,0 +1,289 @@
[
{
"name": "symbol_ref",
"description": "\n\t\tFunction Purpose: This function retrieves the reference information for a given symbol.\n\t\tInput: The symbol should not be in string format or in 'a.b' format. To find the reference of 'a.b', simply refer to 'b'.\n\t\tOutput: The function returns a dictionary with the following keys:\n\t\t'exitCode': If 'exitCode' is 0, the function execution was successful. If 'exitCode' is not 0, the function execution failed.\n\t\t'stdout': If the function executes successfully, 'stdout' is a list of JSON strings. Each JSON string contains:\n\t\t'path': The file path.\n\t\t'ref_line': The ref line of the symbol.\n\t\t'content': The source code related to the reference.\n\t\t'parentDefine': The parent symbol name of the reference, which is always a function name or class name.\n\t\t'parentDefineStartLine': The start line of the parent symbol name of the reference.\n\t\t'stderr': Error output if any.\n\t\tError Handling: If the function execution fails, 'exitCode' will not be 0 and 'stderr' will contain the error information.",
"parameters": {
"type": "object",
"properties": {
"symbol": {
"type": "string",
"description": "The symbol variable specifies the symbol for which reference information is to be retrieved."
},
"line": {
"type": "number",
"description": "The line variable specifies the line number of the symbol for which reference information is to be retrieved."
},
"file": {
"type": "string",
"description": "File contain that symbol."
}
},
"required": [
"symbol",
"line",
"file"
]
}
},
{
"name": "symbol_def",
"description": "\n Function Purpose: This function retrieves the definition information for a given symbol.\n Input: The symbol should not be in string format or in 'a.b' format. To find the definition of 'a.b', simply refer to 'b'.\n Output: The function returns a dictionary with the following keys:\n 'exitCode': If 'exitCode' is 0, the function execution was successful. If 'exitCode' is not 0, the function execution failed.\n 'stdout': If the function executes successfully, 'stdout' is a list of JSON strings. Each JSON string contains:\n 'path': The file path.\n 'start_line': The start line of the content.\n 'end_line': The end line of the content.\n 'content': The source code related to the definition.\n 'stderr': Error output if any.\n Error Handling: If the function execution fails, 'exitCode' will not be 0 and 'stderr' will contain the error information.",
"parameters": {
"type": "object",
"properties": {
"symbol": {
"type": "string",
"description": "The symbol variable specifies the symbol for which definition information is to be retrieved."
},
"line": {
"type": "number",
"description": "The line variable specifies the line number of the symbol for which definition information is to be retrieved."
},
"file": {
"type": "string",
"description": "File contain that symbol."
}
},
"required": [
"symbol",
"line",
"file"
]
}
},
{
"name": "ask_input",
"description": "Ask user a question to when you need the user to input something",
"parameters": {
"type": "object",
"properties": {
"question": {
"type": "string",
"description": "The question you asked."
}
},
"required": []
}
},
{
"name": "symbol_in_file",
"description": "Retrieve definitions in file",
"parameters": {
"type": "object",
"properties": {
"file": {
"type": "string",
"description": "Specify which file to load."
}
},
"required": [
"file"
]
}
},
{
"name": "current_document",
"description": "Get current active document",
"parameters": {
"type": "object",
"properties": {},
"required": []
}
},
{
"name": "select_text",
"description": "Selected text in active document, only include text user selected.",
"parameters": {
"type": "object",
"properties": {},
"required": []
}
},
{
"name": "select_block",
"description": "Select block in active document. For example, select a function name, then return the whole function.",
"parameters": {
"type": "object",
"properties": {},
"required": []
}
},
{
"name": "run_vscode_command",
"description": "Run VSCode command",
"parameters": {
"type": "object",
"properties": {
"command": {
"type": "string",
"description": "VSCode command to run."
},
"args": {
"type": "string",
"description": "Arguments for the command, separated by comma."
}
},
"required": [
"command"
]
}
},
{
"name": "ask_codebase",
"description": "Ask question about codebase.",
"parameters": {
"type": "object",
"properties": {
"question": {
"type": "string",
"description": "selected question"
}
},
"required": []
}
},
{
"name": "finish_task",
"description": "Flag task as finished",
"parameters": {
"type": "object",
"properties": {},
"required": []
}
},
{
"name": "get_project_tree",
"description": "Get project file list.",
"parameters": {
"type": "object",
"properties": {},
"required": []
}
},
{
"name": "load_file",
"description": "Load text file content.",
"parameters": {
"type": "object",
"properties": {
"fileName": {
"type": "string",
"description": "Specify the file, which content will be loaded"
},
"startLine": {
"type": "string",
"description": "Specify the start line of content. It is not required if load the whole file."
},
"endLine": {
"type": "string",
"description": "Specify the end line of content. It is not required if load the whole file."
}
},
"required": []
}
},
{
"name": "new_file",
"description": "create new file or replace file with new content",
"parameters": {
"type": "object",
"properties": {
"fileName": {
"type": "string",
"description": "target file name to create"
},
"content": {
"type": "string",
"description": "content to write to file"
}
},
"required": []
}
},
{
"name": "run_shell",
"description": "run shell script",
"parameters": {
"type": "object",
"properties": {
"script": {
"type": "string",
"description": "shell command to run, for example: [\"ls\", \"/tmp\"]"
}
},
"required": []
}
},
{
"name": "run_shell_file",
"description": "run shell script file",
"parameters": {
"type": "object",
"properties": {
"script_file": {
"type": "string",
"description": "shell script file to run"
}
},
"required": []
}
},
{
"name": "search_text",
"description": "Search text in all files within project. Search text with match whole word. Text search is an alternative to finding symbol references, mainly for scenarios where symbol references cannot be used, such as searching for references to a specific string.",
"parameters": {
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "text to search"
},
"include_files": {
"type": "string",
"description": "search text within setting include files, support multi pattern. The parameter format is based on the corresponding configuration in vscode search."
},
"exclude_files": {
"type": "string",
"description": "search text not within setting exclude files, support multi pattern. The parameter format is based on the corresponding configuration in vscode search."
}
},
"required": []
}
},
{
"name": "summary",
"description": "Get summary of specified file or direcotry in workspace",
"parameters": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "The relative path of the specified file or folder, for example, /hello.py, represents the hello.py file in the root directory. This arg is required."
}
},
"required": []
}
},
{
"name": "update_file",
"description": "replace selections of file with specified content",
"parameters": {
"type": "object",
"properties": {
"fileName": {
"type": "string",
"description": "target file name to update"
},
"old_content": {
"type": "string",
"description": "old content to replaced"
},
"content": {
"type": "string",
"description": "content to write to file"
}
},
"required": []
}
}
]

@ -0,0 +1,13 @@
{
"name": "ask_codebase",
"description": "Ask question about codebase.",
"type": ["question"],
"args": [{
"name": "question",
"description": "selected question",
"type": "string",
"from": "content.content.question"
}],
"action": "ask_codebase",
"handler": ["${PythonVirtualEnv}", "${CurDir}/handler.py", "${question}"]
}

@ -0,0 +1,76 @@
import os
import re
import sys
import json
import tempfile
import uuid
from chat.ask_codebase.store.qdrant import QdrantWrapper as Q, get_client
from chat.ask_codebase.indexing.embedding import EmbeddingWrapper as E
from langchain.embeddings import HuggingFaceEmbeddings
from chat.ask_codebase.indexing.loader.file import (
FileLoader,
FileSource,
gen_local_reference_maker,
)
from chat.util.misc import is_source_code
from chat.ask_codebase.chains.simple_qa import SimpleQA
from chat.ask_codebase.chains.stuff_dc_qa import StuffDocumentCodeQa
def get_app_data_dir(app_name):
home = os.path.expanduser("~")
if os.name == "nt": # For Windows
appPath = os.path.join(home, "AppData", "Roaming", app_name)
else: # For Unix and Linux
appPath = os.path.join(home, ".local", "share", app_name)
if not os.path.exists(appPath):
os.makedirs(appPath)
return appPath
supportedFileTypes = []
STORAGE_FILE = os.path.join(get_app_data_dir("devchat"), "qdrant_storage2")
SOURCE_NAME = ""
def query(question: str):
try:
client = get_client(mode=STORAGE_FILE)
q = Q.reuse(
source_name=SOURCE_NAME,
embedding_cls=HuggingFaceEmbeddings,
client=client,
)
chain = StuffDocumentCodeQa(q)
_, docs = chain.run(question)
for d in docs:
print(d.metadata.get('filepath'))
print(d.page_content)
sys.exit(0)
except Exception as e:
print(e)
sys.exit(1)
if __name__ == "__main__":
try:
if os.path.exists(".chat/askcode.json"):
with open(".chat/askcode.json", "r") as f:
askcode_data = json.load(f)
SOURCE_NAME = askcode_data.get("SOURCE_NAME", str(uuid.uuid4()))
else:
SOURCE_NAME = str(uuid.uuid4())
with open(".chat/askcode.json", "w+") as f:
json.dump({"SOURCE_NAME": SOURCE_NAME}, f)
query(sys.argv[1])
sys.exit(0)
except Exception as e:
print(e)
sys.exit(1)

@ -0,0 +1,14 @@
{
"name": "finish_task",
"description": "Flag task as finished",
"type": [
"task"
],
"args": [
],
"action": "finish_task",
"handler": [
"echo",
"Task finished"
]
}

@ -0,0 +1,9 @@
{
"name": "get_project_tree",
"description": "Get project file list.",
"type": ["project"],
"action": "get_project_tree",
"args": [
],
"handler": ["python", "${CurDir}/handler.py"]
}

@ -0,0 +1,25 @@
"""
get project files by "git ls-files" command
如果项目文件数超出100那么结束执行退出码为1并且输出英文文件数太多需要通过ls命令逐层查看各个目录中的文件目录结构信息
"""
import subprocess
import sys
def get_project_tree():
"""
Get project files by "git ls-files" command
"""
try:
output = subprocess.check_output(["git", "ls-files"]).decode("utf-8").split("\n")
if len(output) > 100:
sys.stderr.write("Error: Too many files, you need to view the files and directory structure in each directory through the 'ls' command.\n")
sys.exit(1)
return output
except Exception as e:
sys.stderr.write(f"Error: {str(e)}\n")
sys.exit(1)
if __name__ == "__main__":
print(get_project_tree())
sys.exit(0)

@ -0,0 +1,27 @@
{
"name": "load_file",
"description": "Load text file content.",
"type": ["file"],
"action": "load_file",
"args": [
{
"name": "fileName",
"description": "Specify the file, which content will be loaded",
"type": "string",
"from": "content.content.fileName"
},
{
"name": "startLine",
"description": "Specify the start line of content. It is not required if load the whole file.",
"type": "string",
"from": "content.content.startLine"
},
{
"name": "endLine",
"description": "Specify the end line of content. It is not required if load the whole file.",
"type": "string",
"from": "content.content.endLine"
}
],
"handler": ["python", "${CurDir}/handler.py", "${fileName}", "${startLine}", "${endLine}"]
}

@ -0,0 +1,33 @@
"""
Load content in file.
"""
import sys
def load_file_content(file_name, start_line=0, end_line=1000):
"""
Load content in file from start_line to end_line.
If start_line and end_line are not provided, load the whole file.
"""
try:
with open(file_name, 'r') as file:
lines = file.readlines()
if start_line < 0 or end_line <= start_line:
sys.stderr.write("Error: start line must be greater than or equal to 0 and end line must be greater than start line.\n")
sys.exit(1)
content = "".join(lines[int(start_line):int(end_line)])
if len(content.split('\n')) > 500:
sys.stderr.write("Error: The content is too large, please set a reasonable reading range.\n")
sys.exit(1)
return content
except Exception as e:
sys.stderr.write(f"Error: {str(e)}\n")
sys.exit(1)
if __name__ == "__main__":
file_name = sys.argv[1]
start_line = int(sys.argv[2]) if sys.argv[2] != '${startLine}' else 0
end_line = int(sys.argv[3]) if sys.argv[3] != '${endLine}' else 1000
print(load_file_content(file_name, start_line, end_line))
sys.exit(0)

@ -0,0 +1,24 @@
{
"name": "new_file",
"description": "create new file or replace file with new content",
"type": [
"*"
],
"args": [
{
"name": "fileName",
"description": "target file name to create",
"type": "string",
"from": "content.fileName"
},
{
"name": "content",
"description": "content to write to file",
"type": "string",
"as": "file",
"from": "content.content"
}
],
"action": "new_file",
"handler": ["python", "${CurDir}/handler.py", "${content}", "${fileName}"]
}

@ -0,0 +1,32 @@
"""
Create new file.
arg:
content: current file name with content
fileName: new file name.
Rename content to fileName.
"""
import os
import sys
import shutil
def create_new_file(content_file, new_file):
"""
Create new file or replace file with new content.
"""
try:
if os.path.exists(new_file):
os.remove(new_file)
# Create the parent directories for the new file if they don't exist.
os.makedirs(os.path.dirname(new_file), exist_ok=True)
shutil.move(content_file, new_file)
except Exception as e:
sys.stderr.write(f"Error: {str(e)}\n")
sys.exit(1)
if __name__ == "__main__":
content_file = sys.argv[1]
new_file = sys.argv[2]
create_new_file(content_file, new_file)
sys.exit(0)

@ -0,0 +1,19 @@
{
"name": "run_shell",
"description": "run shell script",
"type": [
"shell-singleline"
],
"args": [
{
"name": "script",
"description": "shell command to run, for example: [\"ls\", \"/tmp\"]",
"type": "string",
"from": "content.content"
}
],
"action": "run_shell",
"handler": [
"${script}"
]
}

@ -0,0 +1,21 @@
{
"name": "run_shell_file",
"description": "run shell script file",
"type": [
"shell"
],
"args": [
{
"name": "script_file",
"description": "shell script file to run",
"type": "string",
"as": "file",
"from": "content.content"
}
],
"action": "run_shell",
"handler": [
"bash",
"${script_file}"
]
}

@ -0,0 +1,23 @@
{
"name": "search_text",
"description": "Search text in all files within project. Search text with match whole word. Text search is an alternative to finding symbol references, mainly for scenarios where symbol references cannot be used, such as searching for references to a specific string.",
"type": ["none"],
"args": [{
"name": "text",
"description": "text to search",
"type": "string",
"from": "content.content.text"
}, {
"name": "include_files",
"description": "search text within setting include files, support multi pattern. The parameter format is based on the corresponding configuration in vscode search.",
"type": "string",
"from": "content.content.include_files"
}, {
"name": "exclude_files",
"description": "search text not within setting exclude files, support multi pattern. The parameter format is based on the corresponding configuration in vscode search.",
"type": "string",
"from": "content.content.exclude_files"
}],
"action": "search_text",
"handler": ["python", "${CurDir}/handler.py", "${text}", "${include_files}", "${exclude_files}"]
}

@ -0,0 +1,66 @@
"""
Search text in all files within project. Search text with match whole word mode.
"""
import sys
import os
import fnmatch
import re
def search_text(text, include_files=None, exclude_files=None):
"""
Search text in all files within project. Search text with match whole word mode.
"""
# Get the current working directory
cwd = os.getcwd()
# Prepare the include and exclude patterns
include_patterns = include_files.split(',') if include_files else ['*']
exclude_patterns = exclude_files.split(',') if exclude_files else []
# Initialize a flag to check if the text is found
found = 0
# Walk through the directory
search_result = []
for dirpath, dirnames, filenames in os.walk(cwd):
for filename in filenames:
filename = os.path.join(dirpath, filename)
relFileName = os.path.relpath(filename, cwd)
# Check if the file matches any of the include patterns
if any(fnmatch.fnmatch(relFileName, pattern) for pattern in include_patterns):
# Check if the file matches any of the exclude patterns
if not any(fnmatch.fnmatch(relFileName, pattern) for pattern in exclude_patterns):
# Open the file and search for the text
try:
with open(filename, 'r') as file:
for line_no, line in enumerate(file, 1):
if re.search(r'\b' + re.escape(text) + r'\b', line):
search_result.append(f'Found "{text}" in file {relFileName} on line {line_no-1}: {line.strip()}')
found += len(line.strip())
if (len(search_result) > 100 or found > 5000):
sys.stderr.write("The search text is too long, try to shorten it.\n")
sys.exit(1)
except Exception:
pass
# Check if the text was found
if found == 0:
sys.stderr.write("Optimize the search text content, make sure the search text exists in the file.\n")
sys.exit(1)
# Print the result
print('\n'.join(search_result))
def main():
# Get the arguments from the command line
text = sys.argv[1]
include_files = sys.argv[2] if sys.argv[2] != '${include_files}' else None
exclude_files = sys.argv[3] if sys.argv[3] != '${exclude_files}' else None
# Call the search_text function
search_text(text, include_files, exclude_files)
sys.exit(0)
if __name__ == "__main__":
main()

@ -0,0 +1,15 @@
{
"name": "summary",
"description": "Get summary of specified file or direcotry in workspace",
"type": ["project"],
"action": "summary",
"args": [
{
"name": "path",
"description": "The relative path of the specified file or folder, for example, /hello.py, represents the hello.py file in the root directory. This arg is required.",
"type": "string",
"from": "content.content.path"
}
],
"handler": ["${PythonVirtualEnv}", "${CurDir}/handler.py", "${path}"]
}

@ -0,0 +1,37 @@
"""
"""
import os
import sys
from chat.ask_codebase.indexing.loader.file import FileMetadata, FileSource, simple_file_filter
from chat.ask_codebase.indexing.module_summary import SummaryWrapper
def desc(repo_dir: str, repo_cache_path: str, target_path: str):
"""
"""
target_path = target_path.replace(repo_dir, '')
sw = SummaryWrapper(repo_cache_path, FileSource(
path=repo_dir,
rel_root=repo_dir,
file_filter=simple_file_filter,
))
return sw.get_desc(target_path)
def summary():
"""
Get file or directory 's summary
"""
try:
repo_dir = os.getcwd()
repo_cache_path = os.path.join(repo_dir, '.chat', '.summary.json')
target_path = sys.argv[1]
return desc(repo_dir, repo_cache_path, target_path)
except Exception as e:
sys.stderr.write(f"Error: {str(e)}\n")
sys.exit(1)
if __name__ == "__main__":
print(summary())
sys.exit(0)

@ -0,0 +1,23 @@
{
"name": "update_file",
"description": "replace selections of file with specified content",
"type": ["update"],
"args": [{
"name": "fileName",
"description": "target file name to update",
"type": "string",
"from": "content.fileName"
}, {
"name": "old_content",
"description": "old content to replaced",
"type": "string",
"from": "content.content.old"
}, {
"name": "content",
"description": "content to write to file",
"type": "string",
"from": "content.content.new"
}],
"action": "update_file",
"handler": ["python", "${CurDir}/handler.py", "${fileName}", "${old_content}", "${content}"]
}

@ -0,0 +1,40 @@
import sys
def replace_text_in_file(fileName: str, old_content: str, newContent: str) -> None:
"""
Replace text in a file within the specified range with new content.
:param fileName: The name of the file to modify.
:param startPos: The starting position of the range to replace.
:param endPos: The ending position of the range to replace.
:param newContent: The new content to replace the specified range with.
"""
with open(fileName, 'r') as file:
content = file.read()
# how many times old_content occurs in content
count = content.count(old_content)
# if count is not 1, then we can't replace the text
if count != 1:
# output error message to stderr and exit
print(f"Error: {old_content} occurs {count} times in {fileName}.", file=sys.stderr)
exit(-1)
# replace old_content with new_content
modified_content = content.replace(old_content, new_content)
with open(fileName, 'w') as file:
file.write(modified_content)
if __name__ == "__main__":
try:
file_name = sys.argv[1]
old_content = sys.argv[2]
new_content = sys.argv[3]
replace_text_in_file(file_name, old_content, new_content)
except Exception as e:
print(e, file=sys.stderr)
exit(-1)
exit(0)

@ -0,0 +1,6 @@
{
"name": "git log for release note",
"description": "formatted commit history since the specified commit",
"edit": true,
"command": ["git log $(git describe --tags --abbrev=0)..HEAD --pretty=format:\"%h - %B\""]
}

@ -0,0 +1,3 @@
Manifest-Version: 1.0
Class-Path:

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<filter>
<filter-name>jfinal</filter-name>
<filter-class>com.jfinal.core.JFinalFilter</filter-class>
<init-param>
<param-name>configClass</param-name>
<param-value>com.dsideal.Start</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>jfinal</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--添加防止druid两个项目互相打架-->
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>dsssoserver</param-value>
</context-param>
</web-app>

File diff suppressed because it is too large Load Diff

@ -0,0 +1,451 @@
/*//////////////////////////////////////////////////////////////////
[ RESTYLE TAG ]*/
* {
margin: 0px;
padding: 0px;
box-sizing: border-box;
}
body, html {
height: 100%;
font-family: 'Microsoft Yahei', sans-serif;
}
/*---------------------------------------------*/
a {
font-family: 'Microsoft Yahei';
font-size: 14px;
line-height: 1.7;
color: #666666;
margin: 0px;
transition: all 0.4s;
-webkit-transition: all 0.4s;
-o-transition: all 0.4s;
-moz-transition: all 0.4s;
}
a:focus {
outline: none !important;
}
a:hover {
text-decoration: none;
color: #a64bf4;
}
/*---------------------------------------------*/
h1,h2,h3,h4,h5,h6 {
margin: 0px;
}
p {
font-family: 'Microsoft Yahei';
font-size: 14px;
line-height: 1.7;
color: #666666;
margin: 0px;
}
ul, li {
margin: 0px;
list-style-type: none;
}
/*---------------------------------------------*/
input {
outline: none;
border: none;
}
textarea {
outline: none;
border: none;
}
textarea:focus, input:focus {
border-color: transparent !important;
}
input:focus::-webkit-input-placeholder { color:transparent; }
input:focus:-moz-placeholder { color:transparent; }
input:focus::-moz-placeholder { color:transparent; }
input:focus:-ms-input-placeholder { color:transparent; }
textarea:focus::-webkit-input-placeholder { color:transparent; }
textarea:focus:-moz-placeholder { color:transparent; }
textarea:focus::-moz-placeholder { color:transparent; }
textarea:focus:-ms-input-placeholder { color:transparent; }
input::-webkit-input-placeholder { color: #adadad;}
input:-moz-placeholder { color: #adadad;}
input::-moz-placeholder { color: #adadad;}
input:-ms-input-placeholder { color: #adadad;}
textarea::-webkit-input-placeholder { color: #adadad;}
textarea:-moz-placeholder { color: #adadad;}
textarea::-moz-placeholder { color: #adadad;}
textarea:-ms-input-placeholder { color: #adadad;}
/*---------------------------------------------*/
button {
outline: none !important;
border: none;
background: transparent;
}
button:hover {
cursor: pointer;
}
iframe {
border: none !important;
}
/*//////////////////////////////////////////////////////////////////
[ Utility ]*/
.txt1 {
font-family: 'Microsoft Yahei';
font-size: 14px;
line-height: 1.5;
color: #666666;
}
.txt2 {
font-family: 'Microsoft Yahei';
font-size: 14px;
line-height: 1.5;
color: #333333;
text-transform: uppercase;
}
.bg1 {background-color: #3b5998}
.bg2 {background-color: #1da1f2}
.bg3 {background-color: #ea4335}
/*//////////////////////////////////////////////////////////////////
[ login ]*/
.limiter {
width: 100%;
margin: 0 auto;
}
.container-login100 {
width: 100%;
min-height: 100vh;
display: -webkit-box;
display: -webkit-flex;
display: -moz-box;
display: -ms-flexbox;
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
padding: 15px;
background-repeat: no-repeat;
background-position: center;
background-size: cover;
}
.wrap-login100 {
width: 500px;
background: #fff;
border-radius: 10px;
overflow: hidden;
}
/*------------------------------------------------------------------
[ Form ]*/
.login100-form {
width: 100%;
}
.login100-form-title {
display: block;
font-family: 'Microsoft Yahei';
font-size: 39px;
color: #333333;
line-height: 1.2;
text-align: center;
}
/*------------------------------------------------------------------
[ Input ]*/
.wrap-input100 {
width: 100%;
position: relative;
border-bottom: 2px solid #d9d9d9;
}
.label-input100 {
font-family: 'Microsoft Yahei';
font-size: 14px;
color: #333333;
line-height: 1.5;
padding-left: 7px;
}
.input100 {
font-family: 'Microsoft Yahei';
font-size: 16px;
color: #333333;
line-height: 1.2;
display: block;
width: 100%;
height: 55px;
background: transparent;
padding: 0 7px 0 43px;
}
/*---------------------------------------------*/
.focus-input100 {
position: absolute;
display: block;
width: 100%;
height: 100%;
top: 0;
left: 0;
pointer-events: none;
}
.focus-input100::after {
content: attr(data-symbol);
font-family: Material-Design-Iconic-Font;
color: #adadad;
font-size: 22px;
display: -webkit-box;
display: -webkit-flex;
display: -moz-box;
display: -ms-flexbox;
display: flex;
align-items: center;
justify-content: center;
position: absolute;
height: calc(100% - 20px);
bottom: 0;
left: 0;
padding-left: 13px;
padding-top: 3px;
}
.focus-input100::before {
content: "";
display: block;
position: absolute;
bottom: -2px;
left: 0;
width: 0;
height: 2px;
background: #7f7f7f;
-webkit-transition: all 0.4s;
-o-transition: all 0.4s;
-moz-transition: all 0.4s;
transition: all 0.4s;
}
.input100:focus + .focus-input100::before {
width: 100%;
}
.has-val.input100 + .focus-input100::before {
width: 100%;
}
.input100:focus + .focus-input100::after {
color: #a64bf4;
}
.has-val.input100 + .focus-input100::after {
color: #a64bf4;
}
/*------------------------------------------------------------------
[ Button ]*/
.container-login100-form-btn {
display: -webkit-box;
display: -webkit-flex;
display: -moz-box;
display: -ms-flexbox;
display: flex;
flex-wrap: wrap;
justify-content: center;
}
.wrap-login100-form-btn {
width: 100%;
display: block;
position: relative;
z-index: 1;
border-radius: 25px;
overflow: hidden;
margin: 0 auto;
box-shadow: 0 5px 30px 0px rgba(3, 216, 222, 0.2);
-moz-box-shadow: 0 5px 30px 0px rgba(3, 216, 222, 0.2);
-webkit-box-shadow: 0 5px 30px 0px rgba(3, 216, 222, 0.2);
-o-box-shadow: 0 5px 30px 0px rgba(3, 216, 222, 0.2);
-ms-box-shadow: 0 5px 30px 0px rgba(3, 216, 222, 0.2);
}
.login100-form-bgbtn {
position: absolute;
z-index: -1;
width: 300%;
height: 100%;
background: #a64bf4;
background: -webkit-linear-gradient(right, #00dbde, #fc00ff, #00dbde, #fc00ff);
background: -o-linear-gradient(right, #00dbde, #fc00ff, #00dbde, #fc00ff);
background: -moz-linear-gradient(right, #00dbde, #fc00ff, #00dbde, #fc00ff);
background: linear-gradient(right, #00dbde, #fc00ff, #00dbde, #fc00ff);
top: 0;
left: -100%;
-webkit-transition: all 0.4s;
-o-transition: all 0.4s;
-moz-transition: all 0.4s;
transition: all 0.4s;
}
.login100-form-btn {
font-family: 'Microsoft Yahei';
font-size: 16px;
color: #fff;
line-height: 1.2;
text-transform: uppercase;
display: -webkit-box;
display: -webkit-flex;
display: -moz-box;
display: -ms-flexbox;
display: flex;
justify-content: center;
align-items: center;
padding: 0 20px;
width: 100%;
height: 50px;
}
.wrap-login100-form-btn:hover .login100-form-bgbtn {
left: 0;
}
/*------------------------------------------------------------------
[ Alert validate ]*/
.validate-input {
position: relative;
}
.alert-validate::before {
content: attr(data-validate);
position: absolute;
max-width: 70%;
background-color: #fff;
border: 1px solid #c80000;
border-radius: 2px;
padding: 4px 25px 4px 10px;
bottom: calc((100% - 20px) / 2);
-webkit-transform: translateY(50%);
-moz-transform: translateY(50%);
-ms-transform: translateY(50%);
-o-transform: translateY(50%);
transform: translateY(50%);
right: 2px;
pointer-events: none;
font-family: 'Microsoft Yahei';
color: #c80000;
font-size: 13px;
line-height: 1.4;
text-align: left;
visibility: hidden;
opacity: 0;
-webkit-transition: opacity 0.4s;
-o-transition: opacity 0.4s;
-moz-transition: opacity 0.4s;
transition: opacity 0.4s;
}
.alert-validate::after {
content: "\f06a";
font-family: FontAwesome;
display: block;
position: absolute;
color: #c80000;
font-size: 16px;
bottom: calc((100% - 20px) / 2);
-webkit-transform: translateY(50%);
-moz-transform: translateY(50%);
-ms-transform: translateY(50%);
-o-transform: translateY(50%);
transform: translateY(50%);
right: 8px;
}
.alert-validate:hover:before {
visibility: visible;
opacity: 1;
}
@media (max-width: 992px) {
.alert-validate::before {
visibility: visible;
opacity: 1;
}
}
/*//////////////////////////////////////////////////////////////////
[ Social item ]*/
.login100-social-item {
font-size: 25px;
color: #fff;
display: -webkit-box;
display: -webkit-flex;
display: -moz-box;
display: -ms-flexbox;
display: flex;
justify-content: center;
align-items: center;
width: 50px;
height: 50px;
border-radius: 50%;
margin: 5px;
}
.login100-social-item:hover {
color: #fff;
background-color: #333333;
}
/*//////////////////////////////////////////////////////////////////
[ Responsive ]*/
@media (max-width: 576px) {
.wrap-login100 {
padding-left: 15px;
padding-right: 15px;
}
}

@ -0,0 +1,273 @@
@charset "utf-8";
html { color: #333;}
body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,form,fieldset,legend,button,input,textarea,th,td { margin: 0; padding: 0}
body,button,input,select,textarea { font: 12px/1.5 tahoma,arial,'微软雅黑'; color: #666 }
h1,h2,h3,h4,h5,h6 { font-size: 100%; font-weight: 400 }
address,cite,dfn,em,var,caption,strong,th,i,code,kbd,pre,samp { font-style: normal; font-weight: 400}
ul,ol { list-style: none}
sub,sup { position: relative; font-size: 75%; line-height: 0; vertical-align: baseline }
sup { top: -0.5em}
sub { bottom: -0.25em }
input,button,textarea,fieldset,img { border: 0 none }
button,input,select,textarea { font-size: 100%; vertical-align: middle; font-family: inherit}
textarea { overflow: auto; vertical-align: top}
table { border-collapse: collapse; border-spacing: 0 }
th { text-align: inherit}
caption,th { text-align: center}
a { text-decoration: none; color: #666}
a:hover { text-decoration: none; color: #d00 }
.clearfix:before,.clearfix:after { display: table; content: ''}
.clearfix:after { clear: both}
.clearfix { *zoom:1}
q:before,q:after { content: ""}
.clear { clear: both}
iframe { display: block }
abbr,acronym { border: 0 none; font-variant: normal}
del { text-decoration: line-through}
.fl { float: left}
.fr { float: right}
.fc { clear: both}
.fz { zoom:1}
img { border: none 0 }
input { _border: none; outline: none}
a {color: #666;}
a:hover {color: #dd0000;}
/*header*/
#header{ background:#fff; height:84px; padding:0;}
/*login*/
.login-top{ width:100%; height:25px; background: #93defe;}
.login-wrap{ width:100%; height:480px; background: #93defe;}
.login-wrap .wrap{ width:960px; height:480px; padding:0 115px; margin:0 auto;}
/*login右侧登录框*/
.login-wrap .form-box{ width:380px; min-height:360px; _height:410px; margin-top:35px; background:#fff;}
.form-box .form-tab{ width:380px; height:52px; border-bottom:1px solid #ddd; font-family:"Microsoft YaHei";}
.form-tab .tab-li{ float:left; width:50%; height:50px; border-bottom:2px solid #fff;}
.form-tab .tab-li a{ position:relative; display:block; text-align:center; height:50px; line-height:52px; font-size:18px; color:#999; text-decoration:none;}
.form-tab .tab-li.cur{ border-bottom-color:#d00;}
.form-tab .tab-li.cur a{ color:#d00;}
.form-tab .tab-li .icon{ position:absolute; top:10px; width:18px; height:14px; margin-left:6px; background:url(../images/new.png) 0 0 no-repeat;}
.form-box .form-con{ width:434px; height:345px; padding:38px 28px 0;}
.form-box .weixin-login{ width:380px; padding-top:50px;}
.login-add .form-con{ height:342px; padding-top:41px;}
.form-box .login-normal,.form-box .login-partner{ display:none;position:relative; width:354px; padding:0 40px;}
.form-box .form-error{ display:none; position:absolute; top:-32px;max-height: 32px; padding:4px 6px 4px 12px; border:1px solid #ffddbc; background:#fffceb;}
.form-box .form-error i{ position:absolute; top:4px; left:12px; width:16px; height:16px;background: url(../images/member.png) -124px 0 no-repeat;}
.form-box .form-error .text{display:block;max-width: 258px; padding-left:22px; line-height:16px; font-family:"Microsoft YaHei"; color:#666;/* white-space:nowrap;background:url(../images/member.png) -124px 0 no-repeat; */ }
.form-box dl{ position:relative; width:350px; height:20px; line-height:20px; padding:16px 0; border:1px solid #ddd; font-family:"Microsoft YaHei"; font-size:14px;}
.login-add dl{padding:14px 0;}
.form-box .error{ z-index:5; border-color:#f66;}
.form-box .top1{ top:-1px;}
.form-box .top2{ top:-2px;}
.form-box .top3{ top:-3px;}
.form-box dt{ float:left; width:60px; height:20px; line-height:20px; padding-left:20px;}
.form-box dt em{ padding:0 7px;}
.form-box dd{ position:relative; float:left; width:270px; height:20px; line-height:20px;}
.form-box .placeholder{ position:absolute; height:20px; line-height:20px; left:10px; z-index:1; color:#ccc;}
.form-box .input-text,.form-box .input-yzm,.form-box .input-jym{ position:absolute; height:20px; line-height:20px; padding:0 10px; left:0; z-index:2; background:transparent; outline:0 none; color:#333;}
.form-box .input-text{width:250px;}
.form-box .input-yzm{width:83px;}
.form-box .input-jym{width:100px;}
.form-box .span-yzm{ position:absolute; top:-16px; right:0; width:162px; height:36px; line-height:36px; padding:8px 0; border-left:1px solid #ddd;}
.login-add .span-yzm{ top:-14px; padding:6px 0;}
.form-box .error .span-yzm{ border-left-color:#d00;}
.form-box .span-yzm img{ height:36px; width:88px; margin:0 13px; vertical-align:top;}
.form-box .span-jym{ position:absolute; top:-8px; right:6px; width:80px; height:34px; line-height:34px; text-align:center; color:#f33; font-size:12px; border:1px solid #d66; border-radius:5px; text-decoration:none;}
.form-box .disabled{ border-color:#ccc; color:#999;}
.form-box .tips{ display:none; position:absolute;left:100%; top:50%; width:auto; height:22px; line-height:22px; padding:10px 12px; margin-top:-22px; border:1px solid #ffddbc; background:#fffceb; white-space:nowrap;}
.form-box .tips em{ position:absolute; top:-1px; left:-10px; width:11px; height:10px; background:url(../images/member.png) 0 0 no-repeat;}
.form-box .tips i{ display:inline-block; width:24px; height:24px; background:url(../images/member.png) -11px 0 no-repeat; vertical-align:top;}
.form-box .error .tips{display:block;}
.form-box .tips span{ display:inline-block; margin-left:8px;}
.form-box .form-remember{ padding:18px 0 24px;}
.login-add .form-remember{ padding:12px 0 18px;}
.form-box .login-partner .form-remember{ padding:12px 0 18px;}
.form-remember .rem-box{ display:inline-block; height:13px; line-height:13px; padding-left:20px; background:url(../images/rem-check.png) 0 0 no-repeat; cursor:default; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; -o-user-select: none; user-select: none;}
.form-remember .memCheck{ background-position:0 -13px;}
.form-remember .rem-check{ display:none; height:13px; width:13px;}
.form-remember .rem-box-r{ margin-left:0px;}
.form-box .btn-box{ height:46px;}
.login-add .btn-box{ height:40px;}
.form-box .login-partner .btn-box{ height:40px;}
.btn-settlement{ float:left; display:inline-block; height:40px; line-height:40px; width:100%; text-align:center; font-size:16px; color:#fff; -webkit-border-radius:5px; -o-border-radius:5px; -ms-border-radius:5px; border-radius:5px;background-color:#d00; outline:0 none; font-family:"Microsoft YaHei"; cursor:pointer;}
.btn-settlement:hover{ background-color:#e00;}
.form-box .btn-box .btn-settlement{ width:270px;}
.form-box .forget-pass{ color:#007fd7;}
.form-box .forget-pass:hover{ color:#d00;}
.form-box .btn-box .forget-pass{ float:right; width:72px; margin-left:10px; line-height:40px; font-family:"Microsoft YaHei";}
.form-box .login-short{ margin-top:18px; border-top:1px dotted #ddd;}
.login-short h3{ font-size:12px; line-height:1; padding:17px 0 13px; color:#666;}
.login-short li{ float:left; height:33px; width:33px; margin-right:18px; background:url(../images/member.png) -13px -24px no-repeat;}
.login-short li a{ display:block; height:33px;}
.login-short .qq{ background-position:-13px -24px;}
.login-short .sina{ background-position:-49px -24px;}
.login-short .weixin{ position:relative; background-position:-85px -24px;}
.login-short .renren{ background-position:-121px -24px;}
.login-short .baidu{ background-position:-79px -57px;}
.login-short .qr-code{ display:none; position:absolute; left:50%; top:100%; width:104px; height:104px; padding:8px; margin:8px 0 0 -60px; border:1px solid #ccc; background:#fff;}
.login-short .qr-code em,.login-short .qr-code i{ position:absolute; left:50%; top:-14px; width:0; height:0; margin-left:-6px; border-width:7px 6px; border-style:dashed dashed solid dashed; border-color:transparent transparent #ccc transparent;}
.login-short .qr-code i{top:-13px; border-color:transparent transparent #fff transparent;}
.login-short .qr-code img{ width:104px; height:104px;}
.login-short .hover .qr-code{ display:block;}
.form-box .form-foot{ width:482px; height:52px; padding:4px;}
.form-box .form-foot_p{ height:52px; line-height:52px;text-align:center; background:url(../images/form-footbg.png); font-family:"Microsoft YaHei";}
.form-foot_p .spanb{ font-size:16px;}
.form-foot_p label{ margin-left:5px; color:#d00;}
.form-foot_p .spans{ font-size:12px;}
.form-dl-jym{ display:none;}
/*register*/
.register-wrap{ width:100%; height:480px; background:#fff url(../images/registerBg.jpg) center center no-repeat; color:#333; font-family:"Microsoft YaHei";}
.register-wrap .wrap{ width:1176px; height:466px; padding:7px; margin:0 auto; background:#e5e5e5; background:rgba(0,0,0,.1);}
.register-wrap .registerBox{ width:1176px; height:466px; background:#fff;}
.registerBox .register-h1{ width:350px; height:38px; line-height:38px; padding:35px 0 25px; font-size:18px; text-align:center;}
.registerBox .register-left{ position:relative; width:584px; height:466px; margin-left:234px; border-right:1px solid #ddd;}
.register-left .form-error{ top:68px; left:0;}
.register-left dl{width:348px;}
.register-left dt{ width:77px;}
.register-left dd{ width:251px;}
.register-left .input-text{ width:251px; padding:0;}
.register-left .btn-box .btn-settlement{ width:350px;}
.register-left .input-yzm{width:86px; padding:0;}
.register-left .correct{ display:none; position:absolute; right:10px; top:50%; height:24px; width:24px; margin-top:-12px; background:url(../images/member.png) -35px 0 no-repeat;}
/*.register-left .link-box{height:38px; line-height:38px; text-align:right; font-size:14px; color:#666;}*/
.register-left .link-btn{ margin-left:12px;}
.register-left .link-btn:link,.register-left .link-btn:visited{ color:#007fd7;}
.register-left .link-btn:hover,.register-left .link-btn:active{ color:#d00;}
.registerBox .register-right{ width:357px;}
.register-right .link-box{ width:220px; margin:0 auto; padding:35px 0 13px; line-height:36px; font-size:14px; color:#666; text-align:center; border-bottom:1px dotted #ddd;}
.register-right .right-p{ line-height:1; text-align:center; color:#666; margin-top:26px; font-size:14px;}
.register-right .right-p .forget-pass{ margin-left:12px;}
.register-right .login-short{ width:220px; margin:0 auto; margin-top:33px;}
.register-right .login-short h3{ padding:19px 0 17px; font-size:14px; text-align:center;}
.register-right .login-short ul{ text-align:center;}
.register-right .login-short li{ float:none; display:inline-block; margin-right:8px;}
.register-left .placeholder{ left:0;}
.register-right .h3{height:60px; margin-top:13px; font-size:16px; color:#333; text-align:center;}
.register-right .wx-text{line-height:30px;}
.register-right .wx-text em{display:block; padding:15px 0; line-height:30px;}
.register-right .wx-text b{font-weight:bold;}
.register-right .qrcode-box{ position:relative;}
.register-right .wx-img-box{ position:relative; z-index:2; display:block; width:158px; height:158px; margin:0 auto; border:1px solid #eee;}
.register-right .wx-img-box .wx-qrCode{ display:block; width:158px; height:158px;}
.register-right .wx-img-box .wx-qrCode-logo{ position:absolute;z-index:3; top:50%; left:50%; width:40px; height:40px; margin-left:-20px; margin-top:-20px;}
.register-right .wx-img-box .statusImg{ display:none; position:absolute;z-index:4; top:0; left:0; width:158px; height:158px;}
/*register-phone*/
.register-phone{ width:100%; height:542px; background:#fff; color:#333; font-family:"Microsoft YaHei";}
.register-phone .wrap{ width:1070px; height:423px; padding:7px; margin:0 auto; background:#e5e5e5; background:rgba(0,0,0,.1);}
.register-phone .regPhoneBox{ width:954px; height:381px; padding:21px 58px; background:#fff;}
.register-step{ width:1070px; height:90px; margin:17px auto 0;}
.register-step .register-jd{position:relative; padding:26px 70px 10px; width:930px; height:4px;}
.register-step .jd-over,.register-step .jd-none{ width:50%; height:4px; float:left;}
.register-step .jd-over{ background:#fcc;}
.register-step .jd-none{ background:#eee;}
.register-step .step1,.register-step .step2,.register-step .step3{ position:absolute; top:17px; width:70px; height:47px; text-align:center;}
.register-step .step1{ left:35px;}
.register-step .step2{ left:50%; margin-left:-35px;}
.register-step .step3{ right:35px;}
.register-step .over i,.register-step .none i{ display:inline-block; width:23px; height:23px; background:url(../images/member.png) -59px 0 no-repeat; vertical-align:top;}
.register-step .none i{ background-position:-82px 0;}
.register-step .over h3,.register-step .none h3{ color:#666; font-size:14px;}
.register-step .none h3{ color:#ccc;}
.regPhoneBox .register-h1{height:38px; line-height:38px; border-bottom:1px solid #d6d6d6; font-size:20px;}
.regPhoneBox .register-h1 em{ font-size:14px; color:#999; margin-left:12px;}
.regPhoneBox .register-center{ position:relative; width:350px; margin:40px auto 0;}
.register-center .h1-error{ display:none; height:16px; padding:6px 6px 6px 12px;margin-bottom:15px; border:1px solid #ffddbc; background:#fffceb;}
.register-center .h1-error .text{display:block; padding-left:22px; line-height:16px; font-family:"Microsoft YaHei"; color:#666; white-space:nowrap; background:url(../images/member.png) -124px 0 no-repeat;}
.regPhoneBox .btn-box .btn-settlement{ width:350px; margin-top:22px;}
.regPhoneBox dl{ width:348px;}
.regPhoneBox .center-h2{ text-align:center; height:20px; line-height:20px; padding:4px; margin-bottom:15px; border:1px solid #c4e3ff; background:#edf8ff;}
.regPhoneBox .center-h2 i{ display:inline-block; height:19px; width:19px; margin-right:8px; background:url(../images/member.png) -105px 0 no-repeat; vertical-align:top;}
.regPhoneBox dd{ width:268px;}
.regPhoneBox dt.note{ width:85px;}
.regPhoneBox dd.note{ width:243px;}
.regPhoneBox dl.unabled{ background:#eee;}
.regPhoneBox dl.unabled .span-jym{ border-color:#ccc; color:#999;}
/*foot*/
.foot_info{margin:30px 0;text-align:center;line-height:24px; color:#999;}
.weixin-login{ font-family:"Microsoft YaHei";}
.weixin-login .wx-box{ position:relative;}
.weixin-login .wx-img-box{ position:relative; z-index:2; float:left; width:158px; height:158px; margin-left:110px; border:1px solid #eee;}
.weixin-login .wx-img-box .wx-qrCode{ display:block; width:158px; height:158px;}
.weixin-login .wx-img-box .wx-qrCode-logo{ position:absolute;z-index:3; top:50%; left:50%; width:40px; height:40px; margin-left:-20px; margin-top:-20px;}
.weixin-login .wx-img-box .statusImg{ display:none; position:absolute;z-index:4; top:0; left:0; width:158px; height:158px;}
.weixin-login .wx-box .wx-image{ position:absolute; z-index:0; right:8px; top:0; width:175px; height:158px; filter:alpha(opacity=0); opacity:0;}
.weixin-login .wx-text{ margin-top:22px; font-size:16px; line-height:28px; color:#333; text-align:center;}
.weixin-login .wx-text b{ font-weight:bold;}
.weixin-login .wx-help{ margin-top:14px; text-align:center;}
.weixin-login .wx-help .help-a{ font-size:12px; text-decoration:none;}
.weixin-login .wx-help .help-a:link,.weixin-login .wx-help .help-a:visited{ color:#666;}
.weixin-login .wx-help .help-a:hover,.weixin-login .wx-help .help-a:active{color:#f00;}
#weixin_login_container{ position:absolute; left:0; right:0; bottom:0; top:0}
/* footer */
#jia_footer { margin-top: 50px; padding-bottom: 20px; background-color:#fff}
#jia_footer a { color: #999}
#jia_footer p { text-align: center}
#jia_footer a:hover { color: #d00}
.jia_foot_info { text-align: center}
.jia_foot_info .jia_foot_link { padding: 10px 0; text-align: center}
#jia_footer .jia_foot_link { padding: 10px 0; text-align: center}
#jia_footer .jia_foot_link .jia_split { color: #ddd }
.jia_foot_info .jia_foot_link a { color: #333; padding: 0 15px}
.jia_foot_info p { line-height: 24px; color: #aaa}
.jia_foot_open i { display: inline-block; width: 9px;height: 6px; background: url(../images/jia_foot_icn.png) 0 -218px no-repeat; margin-left: 3px; position: relative; top: -1px}
.jia_foot_open i.footnow { background-position: 0 -210px }
.jia_foot_open:hover i { background-position: -11px -218px}
.jia_foot_open:hover i.footnow { background-position: -11px -210px}
.footnone { display: none; margin-top: -10px}
#jia_footer .jia_foot_help dl.jia_other_map p { text-align: left;}
#jia_footer .jia_foot_help dl { font-family: "微软雅黑";}
/*20150925 modify*/
.loginV2 .form-con{ width:380px; height:auto; padding:0;}
.shortLogin .form-con{ position:relative; width:300px; height:auto; padding:52px 40px 0;}
.loginV2 .login-normal,.loginV2 .login-partner{ width:300px; padding:40px 40px 0;}
.loginV2 .form-error{ top:7px;}
.shortLogin .form-error{ top:5px;}
.loginV2 dl{width:298px; padding:12px 0;}
.shortLogin dl{width:298px; padding:16px 0;}
.loginV2 dd,.shortLogin dd{ width:218px;}
.loginV2 .input-text,.shortLogin .input-text{width:180px;}
.loginV2 .input-yzm,.shortLogin .input-yzm{width:50px;}
.loginV2 .span-yzm{ top:-13px; width:150px; padding:5px 0;}
.shortLogin .span-yzm{ width:150px;}
.loginV2 .span-yzm img,.shortLogin .span-yzm img{ margin:0 5px 0 7px;}
.loginV2 .form-remember{ padding:11px 0 17px;}
.shortLogin .form-remember{ padding:9px 0 13px;}
.loginV2 .btn-box,.shortLogin .btn-box{ height:40px;}
.loginV2 .btn-box .btn-settlement,.shortLogin .btn-box .btn-settlement{ width:100%;}
.loginV2 .forget-pass,.shortLogin .forget-pass{ color:#007fd7; font-size:12px;}
.loginV2 .link-box .forget-pass,.loginV2 .link-box .register{ float:right; width:72px; line-height:34px; font-family:"Microsoft YaHei";}
.loginV2 .link-box .register{ float:left; color:#007fd7;}
.loginV2 .link-box .register:hover{ color:#d00;}
.shortLogin .forgetPass,.shortLogin .backLogin{ float:left; line-height:38px; font-family:"Microsoft YaHei"; color:#007fd7;}
.shortLogin .forgetPass:hover,.shortLogin .backLogin:hover{ color:#d00;}
.shortLogin .backLogin{ float:right;}
.loginV2 .login-short{ padding-top:18px; padding-bottom:12px; margin:0;}
.loginV2 .short-left{ float:left; width:150px;}
.loginV2 .short-right{ float:left; width:124px; padding-left:25px; border-left:1px dotted #ddd;}
.loginV2 .login-short h3{ padding:0 0 12px 0;}
.loginV2 .login-short .phone-short{ height:33px;}
.loginV2 .login-short .phone-short .txt{ float:left; line-height:33px; font-size:14px; color:#666;}
.loginV2 .login-short .phone-short .txt:hover{ color:#d00;}
.loginV2 .login-short .phone-short .phone{ float:left; height:33px; width:33px; margin-right:7px; background:url(../images/member.png) -115px -57px no-repeat;}
.loginV2 .login-short li{ margin-right:16px;}
.shortLogin{ display:none;}
.shortLogin .title{ height:40px; line-height:40px; padding-top:18px; font-size:18px; color:#d00; text-align:center;}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,642 @@
@charset "utf-8";
@import "../js/layui/css/layui.css";
* {
margin: 0px;
padding: 0px;
}
a {
text-decoration: none;
}
html {
width: 100%;
height: 100%;
overflow-x: hidden;
overflow-y: auto;
}
body {
width: 100%;
min-height: 100%;
}
.fr {
float: right;
}
.font16 {
font-size: 16px;
}
.hide {
display: none;
}
.rightMenu {
position: absolute;
width: 120px;
line-height: 24px;
z-index: 999;
background: #FFF;
border: 1px solid #F2F2F2;
border-bottom: none;
border-radius: 3px;
display: none;
}
.rightMenu li {
display: block;
padding: 4px 10px;
color: #CCC;
border-bottom: 1px solid #F2F2F2;
}
.rightMenu li:hover {
background: #EEE;
color: #666;
}
.textinput {
width: 75%!important;
}
/**treeselect*/
.layui-form-select .layui-tree {
display: none;
position: absolute;
left: 0;
top: 42px;
padding: 5px 0;
z-index: 999;
min-width: 100%;
border: 1px solid #d2d2d2;
max-height: 300px;
overflow-y: auto;
background-color: #fff;
border-radius: 2px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12);
box-sizing: border-box;
}
.layui-form-selected .layui-tree {
display: block;
}
.weadmin-trailer {
position: absolute;
left: 0;
top: 0;
height: 100%;
width: 100%;
padding: 15px;
display: flex;
justify-content: center;
flex-direction: column;
text-align: center;
box-sizing: border-box;
font-size: 20px;
font-weight: 300;
color: #ccc;
}
.login-bg {
background: url(../images/bg.png) no-repeat center;
background-size: cover;
overflow: hidden;
}
.login {
margin: 120px auto 0 auto;
min-height: 420px;
max-width: 420px;
padding: 40px;
background-color: #ffffff;
margin-left: auto;
margin-right: auto;
border-radius: 4px;
box-sizing: border-box;
}
.login a.logo {
display: block;
height: 58px;
width: 167px;
margin: 0 auto 30px auto;
background-size: 167px 42px;
}
.login .message {
margin: 10px 0 0 -58px;
padding: 18px 10px 18px 60px;
background: #189F92;
position: relative;
color: #fff;
font-size: 18px;
}
.login #darkbannerwrap {
background: url(../images/aiwrap.png);
width: 18px;
height: 10px;
margin: 0 0 20px -58px;
position: relative;
}
.login input[type=text],
.login input[type=file],
.login input[type=password],
.login input[type=email],
.login select {
border: 1px solid #DCDEE0;
vertical-align: middle;
border-radius: 3px;
height: 50px;
padding: 0px 16px;
font-size: 15px;
color: #555555;
outline: none;
width: 100%;
box-sizing: border-box;
}
.login input[type=text]:focus,
.login input[type=file]:focus,
.login input[type=password]:focus,
.login input[type=email]:focus,
.login select:focus {
border: 1px solid #27A9E3;
}
.login input[type=submit],
.login input[type=button] {
display: inline-block;
padding: 12px 24px;
margin: 0px;
font-size: 18px;
line-height: 24px;
text-align: center;
white-space: nowrap;
vertical-align: middle;
cursor: pointer;
color: #ffffff;
background-color: #189F92;
border-radius: 3px;
border: none;
-webkit-appearance: none;
outline: none;
width: 100%;
}
.login hr {
background: #fff 0 0 no-repeat;
}
.login hr.hr15 {
height: 15px;
border: none;
margin: 0px;
padding: 0px;
width: 100%;
}
.login hr.hr20 {
height: 20px;
border: none;
margin: 0px;
padding: 0px;
width: 100%;
}
.weadmin-body {
padding: 15px 20px;
}
.weadmin-nav {
padding: 0 20px;
position: relative;
z-index: 99;
border-bottom: 1px solid #e5e5e5;
line-height: 39px;
height: 39px;
overflow: hidden;
}
.weadmin-block {
display: block;
margin-bottom: 10px;
padding: 5px;
line-height: 22px;
/* border-left: 5px solid #009688; */
border-radius: 0 2px 2px 0;
background-color: #f2f2f2;
}
.we-search {
margin-bottom: 20px;
font-size: 16px;
}
.we-search input.layui-input {
width: 190px;
}
.we-red {
color: red;
}
.page {
margin-top: 20px;
text-align: center;
}
.page a {
display: inline-block;
background: #fff 0 0 no-repeat;
color: #888;
padding: 10px;
min-width: 15px;
border: 1px solid #E2E2E2;
}
.page span {
display: inline-block;
padding: 10px;
min-width: 15px;
border: 1px solid #E2E2E2;
}
.page span.current {
display: inline-block;
background: #009688 0 0 no-repeat;
color: #fff;
padding: 10px;
min-width: 15px;
border: 1px solid #009688;
}
.page .pagination li {
display: inline-block;
margin-right: 5px;
text-align: center;
}
.page .pagination li.active span {
background: #009688 0 0 no-repeat;
color: #fff;
border: 1px solid #009688;
}
/*登录样式*/
/*头部*/
.container {
width: 100%;
height: 60px;
background-color: #00B3BA;
border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}
.container .logo a {
float: left;
color: #fff;
font-size:19px;
padding-left: 20px;
line-height: 60px;
width: 200px;
font-weight: 500;
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
}
.container .right {
background-color: rgba(0, 0, 0, 0);
float: right;
}
.container .left_open {
height: 60px;
float: left;
}
.container .left_open i {
display: block;
background: rgba(255, 255, 255, 0.1) 0 0 no-repeat;
color: #fff;
width: 32px;
height: 32px;
line-height: 32px;
border-radius: 3px;
text-align: center;
margin-top: 14px;
cursor: pointer;
}
.container .left_open i:hover {
background: rgba(255, 255, 255, 0.3) 0 0 no-repeat;
}
.container .left {
background-color: rgba(0, 0, 0, 0);
float: left;
}
.container .layui-nav-item {
line-height: 60px;
}
.container .layui-nav-child {
top: 60px;
}
.container .layui-nav-child i {
margin-right: 10px;
}
.layui-nav .layui-nav-item a {
color: #fff;
}
.layui-nav .layui-nav-child a {
color: #333;
}
.left-nav {
position: absolute;
top: 61px;
bottom: 42px;
left: 0;
z-index: 2;
padding-top: 10px;
background-color:#1B2737;
width: 220px;
max-width: 220px;
overflow: auto;
overflow-x: hidden;
border-right: 1px solid #e5e5e5;
}
.left-nav #nav .current {
background-color: rgba(0, 0, 0, 0.3);
}
.left-nav #nav li {
border-bottom: 1px solid #34495E;
}
.left-nav #nav li:hover > a {
/*color: blue;*/
}
.left-nav #nav li a {
font-size: 15px;
padding: 13px 15px 13px 20px;
display: block;
cursor: pointer;
color:#B3BEC4;
}
.left-nav #nav li a cite {
font-size: 15px;
}
.left-nav #nav li .opened {
display: block;
}
.left-nav #nav li .opened:hover {
/*background: #fff 0 0 no-repeat;*/
}
.left-nav #nav li .sub-menu {
display: none;
}
.left-nav #nav li .sub-menu li:hover {
/*color: blue;*/
/*background: #fff 0 0 no-repeat;*/
}
.left-nav #nav li .sub-menu li a {
padding: 12px 15px 12px 30px;
font-size: 15px;
cursor: pointer;
}
.left-nav #nav li .sub-menu li a i {
font-size: 12px;
}
.left-nav #nav li .sub-menu li a:hover {
color: #00B3BA;
}
.left-nav #nav li .sub-menu li .sub-menu li a {
padding-left: 45px;
}
.left-nav #nav li .nav_right {
float: right;
font-size: 16px;
transform: rotate(180deg);
}
.left-nav #nav li a i {
padding-right: 10px;
line-height: 14px;
}
.x-slide_left {
width: 17px;
height: 61px;
background: url(../images/icon.png) 0 0 no-repeat;
position: absolute;
top: 200px;
left: 221px;
cursor: pointer;
z-index: 3;
}
.page-content {
position: absolute;
top: 61px;
right: 0;
bottom: 42px;
left: 221px;
overflow: hidden;
z-index: 1;
}
.page-content-bg {
position: absolute;
top: 61px;
right: 0;
bottom: 42px;
left: 221px;
background: rgba(0, 0, 0, 0.5) 0 0 no-repeat;
overflow: hidden;
z-index: 100;
display: none;
}
.page-content .tab {
height: 100%;
width: 100%;
background: #EFEEF0 0 0 no-repeat;
margin: 0px;
}
.page-content .layui-tab-title {
/*padding-top: 5px;*/
height: 35px;
background: #EFEEF0 0 0 no-repeat;
position: relative;
z-index: 100;
}
.page-content .layui-tab-title li {
line-height: 35px;
}
.page-content .layui-tab-title li .layui-tab-close {
border-radius: 50%;
}
.page-content .layui-tab-title .layui-this:after {
height: 36px;
}
.page-content .layui-tab-title .layui-this {
background: #fff 0 0 no-repeat;
}
.page-content .layui-tab-bar {
height: 34px;
line-height: 35px;
}
.page-content .layui-tab-content {
position: absolute;
top: 36px;
bottom: 0px;
width: 100%;
background: #fff 0 0 no-repeat;
padding: 0px;
overflow: hidden;
}
.page-content .layui-tab-content .layui-tab-item {
width: 100%;
height: 100%;
}
.page-content .layui-tab-content .layui-tab-item iframe {
width: 100%;
height: 100%;
}
.welcome-footer {
padding: 30px 0;
line-height: 30px;
text-align: center;
background-color: #eee;
color: #666;
font-weight: 300;
}
body .layui-layout-admin .footer-demo {
height: auto;
padding: 15px 0;
line-height: 26px;
}
.welcome-footer a {
padding: 0 5px;
}
table th,
table td {
word-break: break-all;
}
.footer {
position: fixed;
bottom: 0px;
width: 100%;
background-color:#1B2737;
border-top: 1px solid #1B2737;
line-height: 41px;
color: #fff;
text-align: center;
/*padding-left: 10px;*/
}
.footer .copyright {
margin-left: 10px;
}
@media screen and (max-width: 768px) {
.fast-add {
display: none;
}
.layui-nav .to-index {
display: none;
}
.container .logo a {
width: 140px;
}
.container .left_open {
/*float: right;*/
}
.left-nav {
left: -221px;
}
.page-content {
left: 0px;
}
.page-content .layui-tab-content .layui-tab-item {
-webkit-overflow-scrolling: touch;
overflow-y: scroll;
}
.we-search input.layui-input {
width: 100%;
margin: 10px;
}
}
.we-changelog .layui-timeline-title h3 {
display: inline-block;
}
.we-changelog .layui-timeline-title .layui-badge-rim {
top: -2px;
left: 10px;
}
.weadmin-shortcut {
height: 185px!important;
background-color: #fff;
}
.weadmin-shortcut .layui-carousel,
.weadmin-shortcut > [carousel-item] > * {
background-color: #fff;
}
.weadmin-shortcut .layui-col-space10 {
margin: 0;
}
.weadmin-shortcut li {
text-align: center;
}
.weadmin-shortcut li a {
display: block;
}
.weadmin-shortcut li .layui-icon {
display: inline-block;
width: 100%;
height: 120px;
line-height: 120px;
text-align: center;
border-radius: 2px;
font-size: 30px;
background-color: #F8F8F8;
color: #333;
transition: all .3s;
-webkit-transition: all .3s;
}
.weadmin-shortcut li:hover .layui-icon {
background-color: #f2f2f2;
}
.weadmin-shortcut li cite {
position: relative;
top: 2px;
display: block;
color: #333333;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
font-size: 16px;
}
.weadmin-shortcut li p {
font-size: 12px;
line-height: 16px;
color: #666666;
margin-top: 5px;
}
.weadmin-shortcut li p span {
text-align: left;
display: inline-block;
}
.weadmin-shortcut .layui-carousel-ind {
position: absolute;
top: -41px;
text-align: right;
}
.weadmin-shortcut .layui-carousel-ind ul {
background: 0 0;
}
.weadmin-shortcut .layui-carousel-ind ul li {
background-color: #e2e2e2;
}
.weadmin-shortcut .layui-carousel-ind ul li:hover {
background-color: #c2c2c2;
}
.weadmin-shortcut .layui-carousel-ind ul li.layui-this {
background-color: #999;
}
.weadmin-text p {
margin-bottom: 10px;
text-indent: 2em;
}
.layui-card-header.layui-elem-quote {
line-height: 22px;
height: 22px;
padding: 15px;
}
.weadmin-notice {
height: 60px!important;
}
.weadmin-notice a {
display: block;
text-align: center;
line-height: 60px;
}
.weadmin-notice .layui-carousel-ind {
position: absolute;
top: -56px;
text-align: right;
}
.weadmin-notice .layui-carousel-ind ul {
background: 0 0;
}
.weadmin-notice .layui-carousel-ind ul li {
background-color: #e2e2e2;
}
.weadmin-notice .layui-carousel-ind ul li:hover {
background-color: #c2c2c2;
}
.weadmin-notice .layui-carousel-ind ul li.layui-this {
background-color: #999;
}
.center {
text-align: center!important;
}
.btn-disabled {
pointer-events: none;
background-color: #FBFBFB;
border:1px solid #e6e6e6;
color:#C9C9C9;
cursor: not-allowed;
opacity: 1;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

@ -0,0 +1,7 @@
I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project,
Fort Awesome (https://fortawesome.com). It makes it easy to put the perfect icons on your website. Choose from our awesome,
comprehensive icon sets or copy and paste your own.
Please. Check it out.
-Dave Gandy

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 434 KiB

@ -0,0 +1,34 @@
// Animated Icons
// --------------------------
.@{fa-css-prefix}-spin {
-webkit-animation: fa-spin 2s infinite linear;
animation: fa-spin 2s infinite linear;
}
.@{fa-css-prefix}-pulse {
-webkit-animation: fa-spin 1s infinite steps(8);
animation: fa-spin 1s infinite steps(8);
}
@-webkit-keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}

@ -0,0 +1,25 @@
// Bordered & Pulled
// -------------------------
.@{fa-css-prefix}-border {
padding: .2em .25em .15em;
border: solid .08em @fa-border-color;
border-radius: .1em;
}
.@{fa-css-prefix}-pull-left { float: left; }
.@{fa-css-prefix}-pull-right { float: right; }
.@{fa-css-prefix} {
&.@{fa-css-prefix}-pull-left { margin-right: .3em; }
&.@{fa-css-prefix}-pull-right { margin-left: .3em; }
}
/* Deprecated as of 4.4.0 */
.pull-right { float: right; }
.pull-left { float: left; }
.@{fa-css-prefix} {
&.pull-left { margin-right: .3em; }
&.pull-right { margin-left: .3em; }
}

@ -0,0 +1,12 @@
// Base Class Definition
// -------------------------
.@{fa-css-prefix} {
display: inline-block;
font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration
font-size: inherit; // can't have font-size inherit on line above, so need to override
text-rendering: auto; // optimizelegibility throws things off #1094
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}

@ -0,0 +1,6 @@
// Fixed Width Icons
// -------------------------
.@{fa-css-prefix}-fw {
width: (18em / 14);
text-align: center;
}

@ -0,0 +1,18 @@
/*!
* Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
*/
@import "variables.less";
@import "mixins.less";
@import "path.less";
@import "core.less";
@import "larger.less";
@import "fixed-width.less";
@import "list.less";
@import "bordered-pulled.less";
@import "animated.less";
@import "rotated-flipped.less";
@import "stacked.less";
@import "icons.less";
@import "screen-reader.less";

@ -0,0 +1,789 @@
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
readers do not read off random characters that represent icons */
.@{fa-css-prefix}-glass:before { content: @fa-var-glass; }
.@{fa-css-prefix}-music:before { content: @fa-var-music; }
.@{fa-css-prefix}-search:before { content: @fa-var-search; }
.@{fa-css-prefix}-envelope-o:before { content: @fa-var-envelope-o; }
.@{fa-css-prefix}-heart:before { content: @fa-var-heart; }
.@{fa-css-prefix}-star:before { content: @fa-var-star; }
.@{fa-css-prefix}-star-o:before { content: @fa-var-star-o; }
.@{fa-css-prefix}-user:before { content: @fa-var-user; }
.@{fa-css-prefix}-film:before { content: @fa-var-film; }
.@{fa-css-prefix}-th-large:before { content: @fa-var-th-large; }
.@{fa-css-prefix}-th:before { content: @fa-var-th; }
.@{fa-css-prefix}-th-list:before { content: @fa-var-th-list; }
.@{fa-css-prefix}-check:before { content: @fa-var-check; }
.@{fa-css-prefix}-remove:before,
.@{fa-css-prefix}-close:before,
.@{fa-css-prefix}-times:before { content: @fa-var-times; }
.@{fa-css-prefix}-search-plus:before { content: @fa-var-search-plus; }
.@{fa-css-prefix}-search-minus:before { content: @fa-var-search-minus; }
.@{fa-css-prefix}-power-off:before { content: @fa-var-power-off; }
.@{fa-css-prefix}-signal:before { content: @fa-var-signal; }
.@{fa-css-prefix}-gear:before,
.@{fa-css-prefix}-cog:before { content: @fa-var-cog; }
.@{fa-css-prefix}-trash-o:before { content: @fa-var-trash-o; }
.@{fa-css-prefix}-home:before { content: @fa-var-home; }
.@{fa-css-prefix}-file-o:before { content: @fa-var-file-o; }
.@{fa-css-prefix}-clock-o:before { content: @fa-var-clock-o; }
.@{fa-css-prefix}-road:before { content: @fa-var-road; }
.@{fa-css-prefix}-download:before { content: @fa-var-download; }
.@{fa-css-prefix}-arrow-circle-o-down:before { content: @fa-var-arrow-circle-o-down; }
.@{fa-css-prefix}-arrow-circle-o-up:before { content: @fa-var-arrow-circle-o-up; }
.@{fa-css-prefix}-inbox:before { content: @fa-var-inbox; }
.@{fa-css-prefix}-play-circle-o:before { content: @fa-var-play-circle-o; }
.@{fa-css-prefix}-rotate-right:before,
.@{fa-css-prefix}-repeat:before { content: @fa-var-repeat; }
.@{fa-css-prefix}-refresh:before { content: @fa-var-refresh; }
.@{fa-css-prefix}-list-alt:before { content: @fa-var-list-alt; }
.@{fa-css-prefix}-lock:before { content: @fa-var-lock; }
.@{fa-css-prefix}-flag:before { content: @fa-var-flag; }
.@{fa-css-prefix}-headphones:before { content: @fa-var-headphones; }
.@{fa-css-prefix}-volume-off:before { content: @fa-var-volume-off; }
.@{fa-css-prefix}-volume-down:before { content: @fa-var-volume-down; }
.@{fa-css-prefix}-volume-up:before { content: @fa-var-volume-up; }
.@{fa-css-prefix}-qrcode:before { content: @fa-var-qrcode; }
.@{fa-css-prefix}-barcode:before { content: @fa-var-barcode; }
.@{fa-css-prefix}-tag:before { content: @fa-var-tag; }
.@{fa-css-prefix}-tags:before { content: @fa-var-tags; }
.@{fa-css-prefix}-book:before { content: @fa-var-book; }
.@{fa-css-prefix}-bookmark:before { content: @fa-var-bookmark; }
.@{fa-css-prefix}-print:before { content: @fa-var-print; }
.@{fa-css-prefix}-camera:before { content: @fa-var-camera; }
.@{fa-css-prefix}-font:before { content: @fa-var-font; }
.@{fa-css-prefix}-bold:before { content: @fa-var-bold; }
.@{fa-css-prefix}-italic:before { content: @fa-var-italic; }
.@{fa-css-prefix}-text-height:before { content: @fa-var-text-height; }
.@{fa-css-prefix}-text-width:before { content: @fa-var-text-width; }
.@{fa-css-prefix}-align-left:before { content: @fa-var-align-left; }
.@{fa-css-prefix}-align-center:before { content: @fa-var-align-center; }
.@{fa-css-prefix}-align-right:before { content: @fa-var-align-right; }
.@{fa-css-prefix}-align-justify:before { content: @fa-var-align-justify; }
.@{fa-css-prefix}-list:before { content: @fa-var-list; }
.@{fa-css-prefix}-dedent:before,
.@{fa-css-prefix}-outdent:before { content: @fa-var-outdent; }
.@{fa-css-prefix}-indent:before { content: @fa-var-indent; }
.@{fa-css-prefix}-video-camera:before { content: @fa-var-video-camera; }
.@{fa-css-prefix}-photo:before,
.@{fa-css-prefix}-image:before,
.@{fa-css-prefix}-picture-o:before { content: @fa-var-picture-o; }
.@{fa-css-prefix}-pencil:before { content: @fa-var-pencil; }
.@{fa-css-prefix}-map-marker:before { content: @fa-var-map-marker; }
.@{fa-css-prefix}-adjust:before { content: @fa-var-adjust; }
.@{fa-css-prefix}-tint:before { content: @fa-var-tint; }
.@{fa-css-prefix}-edit:before,
.@{fa-css-prefix}-pencil-square-o:before { content: @fa-var-pencil-square-o; }
.@{fa-css-prefix}-share-square-o:before { content: @fa-var-share-square-o; }
.@{fa-css-prefix}-check-square-o:before { content: @fa-var-check-square-o; }
.@{fa-css-prefix}-arrows:before { content: @fa-var-arrows; }
.@{fa-css-prefix}-step-backward:before { content: @fa-var-step-backward; }
.@{fa-css-prefix}-fast-backward:before { content: @fa-var-fast-backward; }
.@{fa-css-prefix}-backward:before { content: @fa-var-backward; }
.@{fa-css-prefix}-play:before { content: @fa-var-play; }
.@{fa-css-prefix}-pause:before { content: @fa-var-pause; }
.@{fa-css-prefix}-stop:before { content: @fa-var-stop; }
.@{fa-css-prefix}-forward:before { content: @fa-var-forward; }
.@{fa-css-prefix}-fast-forward:before { content: @fa-var-fast-forward; }
.@{fa-css-prefix}-step-forward:before { content: @fa-var-step-forward; }
.@{fa-css-prefix}-eject:before { content: @fa-var-eject; }
.@{fa-css-prefix}-chevron-left:before { content: @fa-var-chevron-left; }
.@{fa-css-prefix}-chevron-right:before { content: @fa-var-chevron-right; }
.@{fa-css-prefix}-plus-circle:before { content: @fa-var-plus-circle; }
.@{fa-css-prefix}-minus-circle:before { content: @fa-var-minus-circle; }
.@{fa-css-prefix}-times-circle:before { content: @fa-var-times-circle; }
.@{fa-css-prefix}-check-circle:before { content: @fa-var-check-circle; }
.@{fa-css-prefix}-question-circle:before { content: @fa-var-question-circle; }
.@{fa-css-prefix}-info-circle:before { content: @fa-var-info-circle; }
.@{fa-css-prefix}-crosshairs:before { content: @fa-var-crosshairs; }
.@{fa-css-prefix}-times-circle-o:before { content: @fa-var-times-circle-o; }
.@{fa-css-prefix}-check-circle-o:before { content: @fa-var-check-circle-o; }
.@{fa-css-prefix}-ban:before { content: @fa-var-ban; }
.@{fa-css-prefix}-arrow-left:before { content: @fa-var-arrow-left; }
.@{fa-css-prefix}-arrow-right:before { content: @fa-var-arrow-right; }
.@{fa-css-prefix}-arrow-up:before { content: @fa-var-arrow-up; }
.@{fa-css-prefix}-arrow-down:before { content: @fa-var-arrow-down; }
.@{fa-css-prefix}-mail-forward:before,
.@{fa-css-prefix}-share:before { content: @fa-var-share; }
.@{fa-css-prefix}-expand:before { content: @fa-var-expand; }
.@{fa-css-prefix}-compress:before { content: @fa-var-compress; }
.@{fa-css-prefix}-plus:before { content: @fa-var-plus; }
.@{fa-css-prefix}-minus:before { content: @fa-var-minus; }
.@{fa-css-prefix}-asterisk:before { content: @fa-var-asterisk; }
.@{fa-css-prefix}-exclamation-circle:before { content: @fa-var-exclamation-circle; }
.@{fa-css-prefix}-gift:before { content: @fa-var-gift; }
.@{fa-css-prefix}-leaf:before { content: @fa-var-leaf; }
.@{fa-css-prefix}-fire:before { content: @fa-var-fire; }
.@{fa-css-prefix}-eye:before { content: @fa-var-eye; }
.@{fa-css-prefix}-eye-slash:before { content: @fa-var-eye-slash; }
.@{fa-css-prefix}-warning:before,
.@{fa-css-prefix}-exclamation-triangle:before { content: @fa-var-exclamation-triangle; }
.@{fa-css-prefix}-plane:before { content: @fa-var-plane; }
.@{fa-css-prefix}-calendar:before { content: @fa-var-calendar; }
.@{fa-css-prefix}-random:before { content: @fa-var-random; }
.@{fa-css-prefix}-comment:before { content: @fa-var-comment; }
.@{fa-css-prefix}-magnet:before { content: @fa-var-magnet; }
.@{fa-css-prefix}-chevron-up:before { content: @fa-var-chevron-up; }
.@{fa-css-prefix}-chevron-down:before { content: @fa-var-chevron-down; }
.@{fa-css-prefix}-retweet:before { content: @fa-var-retweet; }
.@{fa-css-prefix}-shopping-cart:before { content: @fa-var-shopping-cart; }
.@{fa-css-prefix}-folder:before { content: @fa-var-folder; }
.@{fa-css-prefix}-folder-open:before { content: @fa-var-folder-open; }
.@{fa-css-prefix}-arrows-v:before { content: @fa-var-arrows-v; }
.@{fa-css-prefix}-arrows-h:before { content: @fa-var-arrows-h; }
.@{fa-css-prefix}-bar-chart-o:before,
.@{fa-css-prefix}-bar-chart:before { content: @fa-var-bar-chart; }
.@{fa-css-prefix}-twitter-square:before { content: @fa-var-twitter-square; }
.@{fa-css-prefix}-facebook-square:before { content: @fa-var-facebook-square; }
.@{fa-css-prefix}-camera-retro:before { content: @fa-var-camera-retro; }
.@{fa-css-prefix}-key:before { content: @fa-var-key; }
.@{fa-css-prefix}-gears:before,
.@{fa-css-prefix}-cogs:before { content: @fa-var-cogs; }
.@{fa-css-prefix}-comments:before { content: @fa-var-comments; }
.@{fa-css-prefix}-thumbs-o-up:before { content: @fa-var-thumbs-o-up; }
.@{fa-css-prefix}-thumbs-o-down:before { content: @fa-var-thumbs-o-down; }
.@{fa-css-prefix}-star-half:before { content: @fa-var-star-half; }
.@{fa-css-prefix}-heart-o:before { content: @fa-var-heart-o; }
.@{fa-css-prefix}-sign-out:before { content: @fa-var-sign-out; }
.@{fa-css-prefix}-linkedin-square:before { content: @fa-var-linkedin-square; }
.@{fa-css-prefix}-thumb-tack:before { content: @fa-var-thumb-tack; }
.@{fa-css-prefix}-external-link:before { content: @fa-var-external-link; }
.@{fa-css-prefix}-sign-in:before { content: @fa-var-sign-in; }
.@{fa-css-prefix}-trophy:before { content: @fa-var-trophy; }
.@{fa-css-prefix}-github-square:before { content: @fa-var-github-square; }
.@{fa-css-prefix}-upload:before { content: @fa-var-upload; }
.@{fa-css-prefix}-lemon-o:before { content: @fa-var-lemon-o; }
.@{fa-css-prefix}-phone:before { content: @fa-var-phone; }
.@{fa-css-prefix}-square-o:before { content: @fa-var-square-o; }
.@{fa-css-prefix}-bookmark-o:before { content: @fa-var-bookmark-o; }
.@{fa-css-prefix}-phone-square:before { content: @fa-var-phone-square; }
.@{fa-css-prefix}-twitter:before { content: @fa-var-twitter; }
.@{fa-css-prefix}-facebook-f:before,
.@{fa-css-prefix}-facebook:before { content: @fa-var-facebook; }
.@{fa-css-prefix}-github:before { content: @fa-var-github; }
.@{fa-css-prefix}-unlock:before { content: @fa-var-unlock; }
.@{fa-css-prefix}-credit-card:before { content: @fa-var-credit-card; }
.@{fa-css-prefix}-feed:before,
.@{fa-css-prefix}-rss:before { content: @fa-var-rss; }
.@{fa-css-prefix}-hdd-o:before { content: @fa-var-hdd-o; }
.@{fa-css-prefix}-bullhorn:before { content: @fa-var-bullhorn; }
.@{fa-css-prefix}-bell:before { content: @fa-var-bell; }
.@{fa-css-prefix}-certificate:before { content: @fa-var-certificate; }
.@{fa-css-prefix}-hand-o-right:before { content: @fa-var-hand-o-right; }
.@{fa-css-prefix}-hand-o-left:before { content: @fa-var-hand-o-left; }
.@{fa-css-prefix}-hand-o-up:before { content: @fa-var-hand-o-up; }
.@{fa-css-prefix}-hand-o-down:before { content: @fa-var-hand-o-down; }
.@{fa-css-prefix}-arrow-circle-left:before { content: @fa-var-arrow-circle-left; }
.@{fa-css-prefix}-arrow-circle-right:before { content: @fa-var-arrow-circle-right; }
.@{fa-css-prefix}-arrow-circle-up:before { content: @fa-var-arrow-circle-up; }
.@{fa-css-prefix}-arrow-circle-down:before { content: @fa-var-arrow-circle-down; }
.@{fa-css-prefix}-globe:before { content: @fa-var-globe; }
.@{fa-css-prefix}-wrench:before { content: @fa-var-wrench; }
.@{fa-css-prefix}-tasks:before { content: @fa-var-tasks; }
.@{fa-css-prefix}-filter:before { content: @fa-var-filter; }
.@{fa-css-prefix}-briefcase:before { content: @fa-var-briefcase; }
.@{fa-css-prefix}-arrows-alt:before { content: @fa-var-arrows-alt; }
.@{fa-css-prefix}-group:before,
.@{fa-css-prefix}-users:before { content: @fa-var-users; }
.@{fa-css-prefix}-chain:before,
.@{fa-css-prefix}-link:before { content: @fa-var-link; }
.@{fa-css-prefix}-cloud:before { content: @fa-var-cloud; }
.@{fa-css-prefix}-flask:before { content: @fa-var-flask; }
.@{fa-css-prefix}-cut:before,
.@{fa-css-prefix}-scissors:before { content: @fa-var-scissors; }
.@{fa-css-prefix}-copy:before,
.@{fa-css-prefix}-files-o:before { content: @fa-var-files-o; }
.@{fa-css-prefix}-paperclip:before { content: @fa-var-paperclip; }
.@{fa-css-prefix}-save:before,
.@{fa-css-prefix}-floppy-o:before { content: @fa-var-floppy-o; }
.@{fa-css-prefix}-square:before { content: @fa-var-square; }
.@{fa-css-prefix}-navicon:before,
.@{fa-css-prefix}-reorder:before,
.@{fa-css-prefix}-bars:before { content: @fa-var-bars; }
.@{fa-css-prefix}-list-ul:before { content: @fa-var-list-ul; }
.@{fa-css-prefix}-list-ol:before { content: @fa-var-list-ol; }
.@{fa-css-prefix}-strikethrough:before { content: @fa-var-strikethrough; }
.@{fa-css-prefix}-underline:before { content: @fa-var-underline; }
.@{fa-css-prefix}-table:before { content: @fa-var-table; }
.@{fa-css-prefix}-magic:before { content: @fa-var-magic; }
.@{fa-css-prefix}-truck:before { content: @fa-var-truck; }
.@{fa-css-prefix}-pinterest:before { content: @fa-var-pinterest; }
.@{fa-css-prefix}-pinterest-square:before { content: @fa-var-pinterest-square; }
.@{fa-css-prefix}-google-plus-square:before { content: @fa-var-google-plus-square; }
.@{fa-css-prefix}-google-plus:before { content: @fa-var-google-plus; }
.@{fa-css-prefix}-money:before { content: @fa-var-money; }
.@{fa-css-prefix}-caret-down:before { content: @fa-var-caret-down; }
.@{fa-css-prefix}-caret-up:before { content: @fa-var-caret-up; }
.@{fa-css-prefix}-caret-left:before { content: @fa-var-caret-left; }
.@{fa-css-prefix}-caret-right:before { content: @fa-var-caret-right; }
.@{fa-css-prefix}-columns:before { content: @fa-var-columns; }
.@{fa-css-prefix}-unsorted:before,
.@{fa-css-prefix}-sort:before { content: @fa-var-sort; }
.@{fa-css-prefix}-sort-down:before,
.@{fa-css-prefix}-sort-desc:before { content: @fa-var-sort-desc; }
.@{fa-css-prefix}-sort-up:before,
.@{fa-css-prefix}-sort-asc:before { content: @fa-var-sort-asc; }
.@{fa-css-prefix}-envelope:before { content: @fa-var-envelope; }
.@{fa-css-prefix}-linkedin:before { content: @fa-var-linkedin; }
.@{fa-css-prefix}-rotate-left:before,
.@{fa-css-prefix}-undo:before { content: @fa-var-undo; }
.@{fa-css-prefix}-legal:before,
.@{fa-css-prefix}-gavel:before { content: @fa-var-gavel; }
.@{fa-css-prefix}-dashboard:before,
.@{fa-css-prefix}-tachometer:before { content: @fa-var-tachometer; }
.@{fa-css-prefix}-comment-o:before { content: @fa-var-comment-o; }
.@{fa-css-prefix}-comments-o:before { content: @fa-var-comments-o; }
.@{fa-css-prefix}-flash:before,
.@{fa-css-prefix}-bolt:before { content: @fa-var-bolt; }
.@{fa-css-prefix}-sitemap:before { content: @fa-var-sitemap; }
.@{fa-css-prefix}-umbrella:before { content: @fa-var-umbrella; }
.@{fa-css-prefix}-paste:before,
.@{fa-css-prefix}-clipboard:before { content: @fa-var-clipboard; }
.@{fa-css-prefix}-lightbulb-o:before { content: @fa-var-lightbulb-o; }
.@{fa-css-prefix}-exchange:before { content: @fa-var-exchange; }
.@{fa-css-prefix}-cloud-download:before { content: @fa-var-cloud-download; }
.@{fa-css-prefix}-cloud-upload:before { content: @fa-var-cloud-upload; }
.@{fa-css-prefix}-user-md:before { content: @fa-var-user-md; }
.@{fa-css-prefix}-stethoscope:before { content: @fa-var-stethoscope; }
.@{fa-css-prefix}-suitcase:before { content: @fa-var-suitcase; }
.@{fa-css-prefix}-bell-o:before { content: @fa-var-bell-o; }
.@{fa-css-prefix}-coffee:before { content: @fa-var-coffee; }
.@{fa-css-prefix}-cutlery:before { content: @fa-var-cutlery; }
.@{fa-css-prefix}-file-text-o:before { content: @fa-var-file-text-o; }
.@{fa-css-prefix}-building-o:before { content: @fa-var-building-o; }
.@{fa-css-prefix}-hospital-o:before { content: @fa-var-hospital-o; }
.@{fa-css-prefix}-ambulance:before { content: @fa-var-ambulance; }
.@{fa-css-prefix}-medkit:before { content: @fa-var-medkit; }
.@{fa-css-prefix}-fighter-jet:before { content: @fa-var-fighter-jet; }
.@{fa-css-prefix}-beer:before { content: @fa-var-beer; }
.@{fa-css-prefix}-h-square:before { content: @fa-var-h-square; }
.@{fa-css-prefix}-plus-square:before { content: @fa-var-plus-square; }
.@{fa-css-prefix}-angle-double-left:before { content: @fa-var-angle-double-left; }
.@{fa-css-prefix}-angle-double-right:before { content: @fa-var-angle-double-right; }
.@{fa-css-prefix}-angle-double-up:before { content: @fa-var-angle-double-up; }
.@{fa-css-prefix}-angle-double-down:before { content: @fa-var-angle-double-down; }
.@{fa-css-prefix}-angle-left:before { content: @fa-var-angle-left; }
.@{fa-css-prefix}-angle-right:before { content: @fa-var-angle-right; }
.@{fa-css-prefix}-angle-up:before { content: @fa-var-angle-up; }
.@{fa-css-prefix}-angle-down:before { content: @fa-var-angle-down; }
.@{fa-css-prefix}-desktop:before { content: @fa-var-desktop; }
.@{fa-css-prefix}-laptop:before { content: @fa-var-laptop; }
.@{fa-css-prefix}-tablet:before { content: @fa-var-tablet; }
.@{fa-css-prefix}-mobile-phone:before,
.@{fa-css-prefix}-mobile:before { content: @fa-var-mobile; }
.@{fa-css-prefix}-circle-o:before { content: @fa-var-circle-o; }
.@{fa-css-prefix}-quote-left:before { content: @fa-var-quote-left; }
.@{fa-css-prefix}-quote-right:before { content: @fa-var-quote-right; }
.@{fa-css-prefix}-spinner:before { content: @fa-var-spinner; }
.@{fa-css-prefix}-circle:before { content: @fa-var-circle; }
.@{fa-css-prefix}-mail-reply:before,
.@{fa-css-prefix}-reply:before { content: @fa-var-reply; }
.@{fa-css-prefix}-github-alt:before { content: @fa-var-github-alt; }
.@{fa-css-prefix}-folder-o:before { content: @fa-var-folder-o; }
.@{fa-css-prefix}-folder-open-o:before { content: @fa-var-folder-open-o; }
.@{fa-css-prefix}-smile-o:before { content: @fa-var-smile-o; }
.@{fa-css-prefix}-frown-o:before { content: @fa-var-frown-o; }
.@{fa-css-prefix}-meh-o:before { content: @fa-var-meh-o; }
.@{fa-css-prefix}-gamepad:before { content: @fa-var-gamepad; }
.@{fa-css-prefix}-keyboard-o:before { content: @fa-var-keyboard-o; }
.@{fa-css-prefix}-flag-o:before { content: @fa-var-flag-o; }
.@{fa-css-prefix}-flag-checkered:before { content: @fa-var-flag-checkered; }
.@{fa-css-prefix}-terminal:before { content: @fa-var-terminal; }
.@{fa-css-prefix}-code:before { content: @fa-var-code; }
.@{fa-css-prefix}-mail-reply-all:before,
.@{fa-css-prefix}-reply-all:before { content: @fa-var-reply-all; }
.@{fa-css-prefix}-star-half-empty:before,
.@{fa-css-prefix}-star-half-full:before,
.@{fa-css-prefix}-star-half-o:before { content: @fa-var-star-half-o; }
.@{fa-css-prefix}-location-arrow:before { content: @fa-var-location-arrow; }
.@{fa-css-prefix}-crop:before { content: @fa-var-crop; }
.@{fa-css-prefix}-code-fork:before { content: @fa-var-code-fork; }
.@{fa-css-prefix}-unlink:before,
.@{fa-css-prefix}-chain-broken:before { content: @fa-var-chain-broken; }
.@{fa-css-prefix}-question:before { content: @fa-var-question; }
.@{fa-css-prefix}-info:before { content: @fa-var-info; }
.@{fa-css-prefix}-exclamation:before { content: @fa-var-exclamation; }
.@{fa-css-prefix}-superscript:before { content: @fa-var-superscript; }
.@{fa-css-prefix}-subscript:before { content: @fa-var-subscript; }
.@{fa-css-prefix}-eraser:before { content: @fa-var-eraser; }
.@{fa-css-prefix}-puzzle-piece:before { content: @fa-var-puzzle-piece; }
.@{fa-css-prefix}-microphone:before { content: @fa-var-microphone; }
.@{fa-css-prefix}-microphone-slash:before { content: @fa-var-microphone-slash; }
.@{fa-css-prefix}-shield:before { content: @fa-var-shield; }
.@{fa-css-prefix}-calendar-o:before { content: @fa-var-calendar-o; }
.@{fa-css-prefix}-fire-extinguisher:before { content: @fa-var-fire-extinguisher; }
.@{fa-css-prefix}-rocket:before { content: @fa-var-rocket; }
.@{fa-css-prefix}-maxcdn:before { content: @fa-var-maxcdn; }
.@{fa-css-prefix}-chevron-circle-left:before { content: @fa-var-chevron-circle-left; }
.@{fa-css-prefix}-chevron-circle-right:before { content: @fa-var-chevron-circle-right; }
.@{fa-css-prefix}-chevron-circle-up:before { content: @fa-var-chevron-circle-up; }
.@{fa-css-prefix}-chevron-circle-down:before { content: @fa-var-chevron-circle-down; }
.@{fa-css-prefix}-html5:before { content: @fa-var-html5; }
.@{fa-css-prefix}-css3:before { content: @fa-var-css3; }
.@{fa-css-prefix}-anchor:before { content: @fa-var-anchor; }
.@{fa-css-prefix}-unlock-alt:before { content: @fa-var-unlock-alt; }
.@{fa-css-prefix}-bullseye:before { content: @fa-var-bullseye; }
.@{fa-css-prefix}-ellipsis-h:before { content: @fa-var-ellipsis-h; }
.@{fa-css-prefix}-ellipsis-v:before { content: @fa-var-ellipsis-v; }
.@{fa-css-prefix}-rss-square:before { content: @fa-var-rss-square; }
.@{fa-css-prefix}-play-circle:before { content: @fa-var-play-circle; }
.@{fa-css-prefix}-ticket:before { content: @fa-var-ticket; }
.@{fa-css-prefix}-minus-square:before { content: @fa-var-minus-square; }
.@{fa-css-prefix}-minus-square-o:before { content: @fa-var-minus-square-o; }
.@{fa-css-prefix}-level-up:before { content: @fa-var-level-up; }
.@{fa-css-prefix}-level-down:before { content: @fa-var-level-down; }
.@{fa-css-prefix}-check-square:before { content: @fa-var-check-square; }
.@{fa-css-prefix}-pencil-square:before { content: @fa-var-pencil-square; }
.@{fa-css-prefix}-external-link-square:before { content: @fa-var-external-link-square; }
.@{fa-css-prefix}-share-square:before { content: @fa-var-share-square; }
.@{fa-css-prefix}-compass:before { content: @fa-var-compass; }
.@{fa-css-prefix}-toggle-down:before,
.@{fa-css-prefix}-caret-square-o-down:before { content: @fa-var-caret-square-o-down; }
.@{fa-css-prefix}-toggle-up:before,
.@{fa-css-prefix}-caret-square-o-up:before { content: @fa-var-caret-square-o-up; }
.@{fa-css-prefix}-toggle-right:before,
.@{fa-css-prefix}-caret-square-o-right:before { content: @fa-var-caret-square-o-right; }
.@{fa-css-prefix}-euro:before,
.@{fa-css-prefix}-eur:before { content: @fa-var-eur; }
.@{fa-css-prefix}-gbp:before { content: @fa-var-gbp; }
.@{fa-css-prefix}-dollar:before,
.@{fa-css-prefix}-usd:before { content: @fa-var-usd; }
.@{fa-css-prefix}-rupee:before,
.@{fa-css-prefix}-inr:before { content: @fa-var-inr; }
.@{fa-css-prefix}-cny:before,
.@{fa-css-prefix}-rmb:before,
.@{fa-css-prefix}-yen:before,
.@{fa-css-prefix}-jpy:before { content: @fa-var-jpy; }
.@{fa-css-prefix}-ruble:before,
.@{fa-css-prefix}-rouble:before,
.@{fa-css-prefix}-rub:before { content: @fa-var-rub; }
.@{fa-css-prefix}-won:before,
.@{fa-css-prefix}-krw:before { content: @fa-var-krw; }
.@{fa-css-prefix}-bitcoin:before,
.@{fa-css-prefix}-btc:before { content: @fa-var-btc; }
.@{fa-css-prefix}-file:before { content: @fa-var-file; }
.@{fa-css-prefix}-file-text:before { content: @fa-var-file-text; }
.@{fa-css-prefix}-sort-alpha-asc:before { content: @fa-var-sort-alpha-asc; }
.@{fa-css-prefix}-sort-alpha-desc:before { content: @fa-var-sort-alpha-desc; }
.@{fa-css-prefix}-sort-amount-asc:before { content: @fa-var-sort-amount-asc; }
.@{fa-css-prefix}-sort-amount-desc:before { content: @fa-var-sort-amount-desc; }
.@{fa-css-prefix}-sort-numeric-asc:before { content: @fa-var-sort-numeric-asc; }
.@{fa-css-prefix}-sort-numeric-desc:before { content: @fa-var-sort-numeric-desc; }
.@{fa-css-prefix}-thumbs-up:before { content: @fa-var-thumbs-up; }
.@{fa-css-prefix}-thumbs-down:before { content: @fa-var-thumbs-down; }
.@{fa-css-prefix}-youtube-square:before { content: @fa-var-youtube-square; }
.@{fa-css-prefix}-youtube:before { content: @fa-var-youtube; }
.@{fa-css-prefix}-xing:before { content: @fa-var-xing; }
.@{fa-css-prefix}-xing-square:before { content: @fa-var-xing-square; }
.@{fa-css-prefix}-youtube-play:before { content: @fa-var-youtube-play; }
.@{fa-css-prefix}-dropbox:before { content: @fa-var-dropbox; }
.@{fa-css-prefix}-stack-overflow:before { content: @fa-var-stack-overflow; }
.@{fa-css-prefix}-instagram:before { content: @fa-var-instagram; }
.@{fa-css-prefix}-flickr:before { content: @fa-var-flickr; }
.@{fa-css-prefix}-adn:before { content: @fa-var-adn; }
.@{fa-css-prefix}-bitbucket:before { content: @fa-var-bitbucket; }
.@{fa-css-prefix}-bitbucket-square:before { content: @fa-var-bitbucket-square; }
.@{fa-css-prefix}-tumblr:before { content: @fa-var-tumblr; }
.@{fa-css-prefix}-tumblr-square:before { content: @fa-var-tumblr-square; }
.@{fa-css-prefix}-long-arrow-down:before { content: @fa-var-long-arrow-down; }
.@{fa-css-prefix}-long-arrow-up:before { content: @fa-var-long-arrow-up; }
.@{fa-css-prefix}-long-arrow-left:before { content: @fa-var-long-arrow-left; }
.@{fa-css-prefix}-long-arrow-right:before { content: @fa-var-long-arrow-right; }
.@{fa-css-prefix}-apple:before { content: @fa-var-apple; }
.@{fa-css-prefix}-windows:before { content: @fa-var-windows; }
.@{fa-css-prefix}-android:before { content: @fa-var-android; }
.@{fa-css-prefix}-linux:before { content: @fa-var-linux; }
.@{fa-css-prefix}-dribbble:before { content: @fa-var-dribbble; }
.@{fa-css-prefix}-skype:before { content: @fa-var-skype; }
.@{fa-css-prefix}-foursquare:before { content: @fa-var-foursquare; }
.@{fa-css-prefix}-trello:before { content: @fa-var-trello; }
.@{fa-css-prefix}-female:before { content: @fa-var-female; }
.@{fa-css-prefix}-male:before { content: @fa-var-male; }
.@{fa-css-prefix}-gittip:before,
.@{fa-css-prefix}-gratipay:before { content: @fa-var-gratipay; }
.@{fa-css-prefix}-sun-o:before { content: @fa-var-sun-o; }
.@{fa-css-prefix}-moon-o:before { content: @fa-var-moon-o; }
.@{fa-css-prefix}-archive:before { content: @fa-var-archive; }
.@{fa-css-prefix}-bug:before { content: @fa-var-bug; }
.@{fa-css-prefix}-vk:before { content: @fa-var-vk; }
.@{fa-css-prefix}-weibo:before { content: @fa-var-weibo; }
.@{fa-css-prefix}-renren:before { content: @fa-var-renren; }
.@{fa-css-prefix}-pagelines:before { content: @fa-var-pagelines; }
.@{fa-css-prefix}-stack-exchange:before { content: @fa-var-stack-exchange; }
.@{fa-css-prefix}-arrow-circle-o-right:before { content: @fa-var-arrow-circle-o-right; }
.@{fa-css-prefix}-arrow-circle-o-left:before { content: @fa-var-arrow-circle-o-left; }
.@{fa-css-prefix}-toggle-left:before,
.@{fa-css-prefix}-caret-square-o-left:before { content: @fa-var-caret-square-o-left; }
.@{fa-css-prefix}-dot-circle-o:before { content: @fa-var-dot-circle-o; }
.@{fa-css-prefix}-wheelchair:before { content: @fa-var-wheelchair; }
.@{fa-css-prefix}-vimeo-square:before { content: @fa-var-vimeo-square; }
.@{fa-css-prefix}-turkish-lira:before,
.@{fa-css-prefix}-try:before { content: @fa-var-try; }
.@{fa-css-prefix}-plus-square-o:before { content: @fa-var-plus-square-o; }
.@{fa-css-prefix}-space-shuttle:before { content: @fa-var-space-shuttle; }
.@{fa-css-prefix}-slack:before { content: @fa-var-slack; }
.@{fa-css-prefix}-envelope-square:before { content: @fa-var-envelope-square; }
.@{fa-css-prefix}-wordpress:before { content: @fa-var-wordpress; }
.@{fa-css-prefix}-openid:before { content: @fa-var-openid; }
.@{fa-css-prefix}-institution:before,
.@{fa-css-prefix}-bank:before,
.@{fa-css-prefix}-university:before { content: @fa-var-university; }
.@{fa-css-prefix}-mortar-board:before,
.@{fa-css-prefix}-graduation-cap:before { content: @fa-var-graduation-cap; }
.@{fa-css-prefix}-yahoo:before { content: @fa-var-yahoo; }
.@{fa-css-prefix}-google:before { content: @fa-var-google; }
.@{fa-css-prefix}-reddit:before { content: @fa-var-reddit; }
.@{fa-css-prefix}-reddit-square:before { content: @fa-var-reddit-square; }
.@{fa-css-prefix}-stumbleupon-circle:before { content: @fa-var-stumbleupon-circle; }
.@{fa-css-prefix}-stumbleupon:before { content: @fa-var-stumbleupon; }
.@{fa-css-prefix}-delicious:before { content: @fa-var-delicious; }
.@{fa-css-prefix}-digg:before { content: @fa-var-digg; }
.@{fa-css-prefix}-pied-piper-pp:before { content: @fa-var-pied-piper-pp; }
.@{fa-css-prefix}-pied-piper-alt:before { content: @fa-var-pied-piper-alt; }
.@{fa-css-prefix}-drupal:before { content: @fa-var-drupal; }
.@{fa-css-prefix}-joomla:before { content: @fa-var-joomla; }
.@{fa-css-prefix}-language:before { content: @fa-var-language; }
.@{fa-css-prefix}-fax:before { content: @fa-var-fax; }
.@{fa-css-prefix}-building:before { content: @fa-var-building; }
.@{fa-css-prefix}-child:before { content: @fa-var-child; }
.@{fa-css-prefix}-paw:before { content: @fa-var-paw; }
.@{fa-css-prefix}-spoon:before { content: @fa-var-spoon; }
.@{fa-css-prefix}-cube:before { content: @fa-var-cube; }
.@{fa-css-prefix}-cubes:before { content: @fa-var-cubes; }
.@{fa-css-prefix}-behance:before { content: @fa-var-behance; }
.@{fa-css-prefix}-behance-square:before { content: @fa-var-behance-square; }
.@{fa-css-prefix}-steam:before { content: @fa-var-steam; }
.@{fa-css-prefix}-steam-square:before { content: @fa-var-steam-square; }
.@{fa-css-prefix}-recycle:before { content: @fa-var-recycle; }
.@{fa-css-prefix}-automobile:before,
.@{fa-css-prefix}-car:before { content: @fa-var-car; }
.@{fa-css-prefix}-cab:before,
.@{fa-css-prefix}-taxi:before { content: @fa-var-taxi; }
.@{fa-css-prefix}-tree:before { content: @fa-var-tree; }
.@{fa-css-prefix}-spotify:before { content: @fa-var-spotify; }
.@{fa-css-prefix}-deviantart:before { content: @fa-var-deviantart; }
.@{fa-css-prefix}-soundcloud:before { content: @fa-var-soundcloud; }
.@{fa-css-prefix}-database:before { content: @fa-var-database; }
.@{fa-css-prefix}-file-pdf-o:before { content: @fa-var-file-pdf-o; }
.@{fa-css-prefix}-file-word-o:before { content: @fa-var-file-word-o; }
.@{fa-css-prefix}-file-excel-o:before { content: @fa-var-file-excel-o; }
.@{fa-css-prefix}-file-powerpoint-o:before { content: @fa-var-file-powerpoint-o; }
.@{fa-css-prefix}-file-photo-o:before,
.@{fa-css-prefix}-file-picture-o:before,
.@{fa-css-prefix}-file-image-o:before { content: @fa-var-file-image-o; }
.@{fa-css-prefix}-file-zip-o:before,
.@{fa-css-prefix}-file-archive-o:before { content: @fa-var-file-archive-o; }
.@{fa-css-prefix}-file-sound-o:before,
.@{fa-css-prefix}-file-audio-o:before { content: @fa-var-file-audio-o; }
.@{fa-css-prefix}-file-movie-o:before,
.@{fa-css-prefix}-file-video-o:before { content: @fa-var-file-video-o; }
.@{fa-css-prefix}-file-code-o:before { content: @fa-var-file-code-o; }
.@{fa-css-prefix}-vine:before { content: @fa-var-vine; }
.@{fa-css-prefix}-codepen:before { content: @fa-var-codepen; }
.@{fa-css-prefix}-jsfiddle:before { content: @fa-var-jsfiddle; }
.@{fa-css-prefix}-life-bouy:before,
.@{fa-css-prefix}-life-buoy:before,
.@{fa-css-prefix}-life-saver:before,
.@{fa-css-prefix}-support:before,
.@{fa-css-prefix}-life-ring:before { content: @fa-var-life-ring; }
.@{fa-css-prefix}-circle-o-notch:before { content: @fa-var-circle-o-notch; }
.@{fa-css-prefix}-ra:before,
.@{fa-css-prefix}-resistance:before,
.@{fa-css-prefix}-rebel:before { content: @fa-var-rebel; }
.@{fa-css-prefix}-ge:before,
.@{fa-css-prefix}-empire:before { content: @fa-var-empire; }
.@{fa-css-prefix}-git-square:before { content: @fa-var-git-square; }
.@{fa-css-prefix}-git:before { content: @fa-var-git; }
.@{fa-css-prefix}-y-combinator-square:before,
.@{fa-css-prefix}-yc-square:before,
.@{fa-css-prefix}-hacker-news:before { content: @fa-var-hacker-news; }
.@{fa-css-prefix}-tencent-weibo:before { content: @fa-var-tencent-weibo; }
.@{fa-css-prefix}-qq:before { content: @fa-var-qq; }
.@{fa-css-prefix}-wechat:before,
.@{fa-css-prefix}-weixin:before { content: @fa-var-weixin; }
.@{fa-css-prefix}-send:before,
.@{fa-css-prefix}-paper-plane:before { content: @fa-var-paper-plane; }
.@{fa-css-prefix}-send-o:before,
.@{fa-css-prefix}-paper-plane-o:before { content: @fa-var-paper-plane-o; }
.@{fa-css-prefix}-history:before { content: @fa-var-history; }
.@{fa-css-prefix}-circle-thin:before { content: @fa-var-circle-thin; }
.@{fa-css-prefix}-header:before { content: @fa-var-header; }
.@{fa-css-prefix}-paragraph:before { content: @fa-var-paragraph; }
.@{fa-css-prefix}-sliders:before { content: @fa-var-sliders; }
.@{fa-css-prefix}-share-alt:before { content: @fa-var-share-alt; }
.@{fa-css-prefix}-share-alt-square:before { content: @fa-var-share-alt-square; }
.@{fa-css-prefix}-bomb:before { content: @fa-var-bomb; }
.@{fa-css-prefix}-soccer-ball-o:before,
.@{fa-css-prefix}-futbol-o:before { content: @fa-var-futbol-o; }
.@{fa-css-prefix}-tty:before { content: @fa-var-tty; }
.@{fa-css-prefix}-binoculars:before { content: @fa-var-binoculars; }
.@{fa-css-prefix}-plug:before { content: @fa-var-plug; }
.@{fa-css-prefix}-slideshare:before { content: @fa-var-slideshare; }
.@{fa-css-prefix}-twitch:before { content: @fa-var-twitch; }
.@{fa-css-prefix}-yelp:before { content: @fa-var-yelp; }
.@{fa-css-prefix}-newspaper-o:before { content: @fa-var-newspaper-o; }
.@{fa-css-prefix}-wifi:before { content: @fa-var-wifi; }
.@{fa-css-prefix}-calculator:before { content: @fa-var-calculator; }
.@{fa-css-prefix}-paypal:before { content: @fa-var-paypal; }
.@{fa-css-prefix}-google-wallet:before { content: @fa-var-google-wallet; }
.@{fa-css-prefix}-cc-visa:before { content: @fa-var-cc-visa; }
.@{fa-css-prefix}-cc-mastercard:before { content: @fa-var-cc-mastercard; }
.@{fa-css-prefix}-cc-discover:before { content: @fa-var-cc-discover; }
.@{fa-css-prefix}-cc-amex:before { content: @fa-var-cc-amex; }
.@{fa-css-prefix}-cc-paypal:before { content: @fa-var-cc-paypal; }
.@{fa-css-prefix}-cc-stripe:before { content: @fa-var-cc-stripe; }
.@{fa-css-prefix}-bell-slash:before { content: @fa-var-bell-slash; }
.@{fa-css-prefix}-bell-slash-o:before { content: @fa-var-bell-slash-o; }
.@{fa-css-prefix}-trash:before { content: @fa-var-trash; }
.@{fa-css-prefix}-copyright:before { content: @fa-var-copyright; }
.@{fa-css-prefix}-at:before { content: @fa-var-at; }
.@{fa-css-prefix}-eyedropper:before { content: @fa-var-eyedropper; }
.@{fa-css-prefix}-paint-brush:before { content: @fa-var-paint-brush; }
.@{fa-css-prefix}-birthday-cake:before { content: @fa-var-birthday-cake; }
.@{fa-css-prefix}-area-chart:before { content: @fa-var-area-chart; }
.@{fa-css-prefix}-pie-chart:before { content: @fa-var-pie-chart; }
.@{fa-css-prefix}-line-chart:before { content: @fa-var-line-chart; }
.@{fa-css-prefix}-lastfm:before { content: @fa-var-lastfm; }
.@{fa-css-prefix}-lastfm-square:before { content: @fa-var-lastfm-square; }
.@{fa-css-prefix}-toggle-off:before { content: @fa-var-toggle-off; }
.@{fa-css-prefix}-toggle-on:before { content: @fa-var-toggle-on; }
.@{fa-css-prefix}-bicycle:before { content: @fa-var-bicycle; }
.@{fa-css-prefix}-bus:before { content: @fa-var-bus; }
.@{fa-css-prefix}-ioxhost:before { content: @fa-var-ioxhost; }
.@{fa-css-prefix}-angellist:before { content: @fa-var-angellist; }
.@{fa-css-prefix}-cc:before { content: @fa-var-cc; }
.@{fa-css-prefix}-shekel:before,
.@{fa-css-prefix}-sheqel:before,
.@{fa-css-prefix}-ils:before { content: @fa-var-ils; }
.@{fa-css-prefix}-meanpath:before { content: @fa-var-meanpath; }
.@{fa-css-prefix}-buysellads:before { content: @fa-var-buysellads; }
.@{fa-css-prefix}-connectdevelop:before { content: @fa-var-connectdevelop; }
.@{fa-css-prefix}-dashcube:before { content: @fa-var-dashcube; }
.@{fa-css-prefix}-forumbee:before { content: @fa-var-forumbee; }
.@{fa-css-prefix}-leanpub:before { content: @fa-var-leanpub; }
.@{fa-css-prefix}-sellsy:before { content: @fa-var-sellsy; }
.@{fa-css-prefix}-shirtsinbulk:before { content: @fa-var-shirtsinbulk; }
.@{fa-css-prefix}-simplybuilt:before { content: @fa-var-simplybuilt; }
.@{fa-css-prefix}-skyatlas:before { content: @fa-var-skyatlas; }
.@{fa-css-prefix}-cart-plus:before { content: @fa-var-cart-plus; }
.@{fa-css-prefix}-cart-arrow-down:before { content: @fa-var-cart-arrow-down; }
.@{fa-css-prefix}-diamond:before { content: @fa-var-diamond; }
.@{fa-css-prefix}-ship:before { content: @fa-var-ship; }
.@{fa-css-prefix}-user-secret:before { content: @fa-var-user-secret; }
.@{fa-css-prefix}-motorcycle:before { content: @fa-var-motorcycle; }
.@{fa-css-prefix}-street-view:before { content: @fa-var-street-view; }
.@{fa-css-prefix}-heartbeat:before { content: @fa-var-heartbeat; }
.@{fa-css-prefix}-venus:before { content: @fa-var-venus; }
.@{fa-css-prefix}-mars:before { content: @fa-var-mars; }
.@{fa-css-prefix}-mercury:before { content: @fa-var-mercury; }
.@{fa-css-prefix}-intersex:before,
.@{fa-css-prefix}-transgender:before { content: @fa-var-transgender; }
.@{fa-css-prefix}-transgender-alt:before { content: @fa-var-transgender-alt; }
.@{fa-css-prefix}-venus-double:before { content: @fa-var-venus-double; }
.@{fa-css-prefix}-mars-double:before { content: @fa-var-mars-double; }
.@{fa-css-prefix}-venus-mars:before { content: @fa-var-venus-mars; }
.@{fa-css-prefix}-mars-stroke:before { content: @fa-var-mars-stroke; }
.@{fa-css-prefix}-mars-stroke-v:before { content: @fa-var-mars-stroke-v; }
.@{fa-css-prefix}-mars-stroke-h:before { content: @fa-var-mars-stroke-h; }
.@{fa-css-prefix}-neuter:before { content: @fa-var-neuter; }
.@{fa-css-prefix}-genderless:before { content: @fa-var-genderless; }
.@{fa-css-prefix}-facebook-official:before { content: @fa-var-facebook-official; }
.@{fa-css-prefix}-pinterest-p:before { content: @fa-var-pinterest-p; }
.@{fa-css-prefix}-whatsapp:before { content: @fa-var-whatsapp; }
.@{fa-css-prefix}-server:before { content: @fa-var-server; }
.@{fa-css-prefix}-user-plus:before { content: @fa-var-user-plus; }
.@{fa-css-prefix}-user-times:before { content: @fa-var-user-times; }
.@{fa-css-prefix}-hotel:before,
.@{fa-css-prefix}-bed:before { content: @fa-var-bed; }
.@{fa-css-prefix}-viacoin:before { content: @fa-var-viacoin; }
.@{fa-css-prefix}-train:before { content: @fa-var-train; }
.@{fa-css-prefix}-subway:before { content: @fa-var-subway; }
.@{fa-css-prefix}-medium:before { content: @fa-var-medium; }
.@{fa-css-prefix}-yc:before,
.@{fa-css-prefix}-y-combinator:before { content: @fa-var-y-combinator; }
.@{fa-css-prefix}-optin-monster:before { content: @fa-var-optin-monster; }
.@{fa-css-prefix}-opencart:before { content: @fa-var-opencart; }
.@{fa-css-prefix}-expeditedssl:before { content: @fa-var-expeditedssl; }
.@{fa-css-prefix}-battery-4:before,
.@{fa-css-prefix}-battery:before,
.@{fa-css-prefix}-battery-full:before { content: @fa-var-battery-full; }
.@{fa-css-prefix}-battery-3:before,
.@{fa-css-prefix}-battery-three-quarters:before { content: @fa-var-battery-three-quarters; }
.@{fa-css-prefix}-battery-2:before,
.@{fa-css-prefix}-battery-half:before { content: @fa-var-battery-half; }
.@{fa-css-prefix}-battery-1:before,
.@{fa-css-prefix}-battery-quarter:before { content: @fa-var-battery-quarter; }
.@{fa-css-prefix}-battery-0:before,
.@{fa-css-prefix}-battery-empty:before { content: @fa-var-battery-empty; }
.@{fa-css-prefix}-mouse-pointer:before { content: @fa-var-mouse-pointer; }
.@{fa-css-prefix}-i-cursor:before { content: @fa-var-i-cursor; }
.@{fa-css-prefix}-object-group:before { content: @fa-var-object-group; }
.@{fa-css-prefix}-object-ungroup:before { content: @fa-var-object-ungroup; }
.@{fa-css-prefix}-sticky-note:before { content: @fa-var-sticky-note; }
.@{fa-css-prefix}-sticky-note-o:before { content: @fa-var-sticky-note-o; }
.@{fa-css-prefix}-cc-jcb:before { content: @fa-var-cc-jcb; }
.@{fa-css-prefix}-cc-diners-club:before { content: @fa-var-cc-diners-club; }
.@{fa-css-prefix}-clone:before { content: @fa-var-clone; }
.@{fa-css-prefix}-balance-scale:before { content: @fa-var-balance-scale; }
.@{fa-css-prefix}-hourglass-o:before { content: @fa-var-hourglass-o; }
.@{fa-css-prefix}-hourglass-1:before,
.@{fa-css-prefix}-hourglass-start:before { content: @fa-var-hourglass-start; }
.@{fa-css-prefix}-hourglass-2:before,
.@{fa-css-prefix}-hourglass-half:before { content: @fa-var-hourglass-half; }
.@{fa-css-prefix}-hourglass-3:before,
.@{fa-css-prefix}-hourglass-end:before { content: @fa-var-hourglass-end; }
.@{fa-css-prefix}-hourglass:before { content: @fa-var-hourglass; }
.@{fa-css-prefix}-hand-grab-o:before,
.@{fa-css-prefix}-hand-rock-o:before { content: @fa-var-hand-rock-o; }
.@{fa-css-prefix}-hand-stop-o:before,
.@{fa-css-prefix}-hand-paper-o:before { content: @fa-var-hand-paper-o; }
.@{fa-css-prefix}-hand-scissors-o:before { content: @fa-var-hand-scissors-o; }
.@{fa-css-prefix}-hand-lizard-o:before { content: @fa-var-hand-lizard-o; }
.@{fa-css-prefix}-hand-spock-o:before { content: @fa-var-hand-spock-o; }
.@{fa-css-prefix}-hand-pointer-o:before { content: @fa-var-hand-pointer-o; }
.@{fa-css-prefix}-hand-peace-o:before { content: @fa-var-hand-peace-o; }
.@{fa-css-prefix}-trademark:before { content: @fa-var-trademark; }
.@{fa-css-prefix}-registered:before { content: @fa-var-registered; }
.@{fa-css-prefix}-creative-commons:before { content: @fa-var-creative-commons; }
.@{fa-css-prefix}-gg:before { content: @fa-var-gg; }
.@{fa-css-prefix}-gg-circle:before { content: @fa-var-gg-circle; }
.@{fa-css-prefix}-tripadvisor:before { content: @fa-var-tripadvisor; }
.@{fa-css-prefix}-odnoklassniki:before { content: @fa-var-odnoklassniki; }
.@{fa-css-prefix}-odnoklassniki-square:before { content: @fa-var-odnoklassniki-square; }
.@{fa-css-prefix}-get-pocket:before { content: @fa-var-get-pocket; }
.@{fa-css-prefix}-wikipedia-w:before { content: @fa-var-wikipedia-w; }
.@{fa-css-prefix}-safari:before { content: @fa-var-safari; }
.@{fa-css-prefix}-chrome:before { content: @fa-var-chrome; }
.@{fa-css-prefix}-firefox:before { content: @fa-var-firefox; }
.@{fa-css-prefix}-opera:before { content: @fa-var-opera; }
.@{fa-css-prefix}-internet-explorer:before { content: @fa-var-internet-explorer; }
.@{fa-css-prefix}-tv:before,
.@{fa-css-prefix}-television:before { content: @fa-var-television; }
.@{fa-css-prefix}-contao:before { content: @fa-var-contao; }
.@{fa-css-prefix}-500px:before { content: @fa-var-500px; }
.@{fa-css-prefix}-amazon:before { content: @fa-var-amazon; }
.@{fa-css-prefix}-calendar-plus-o:before { content: @fa-var-calendar-plus-o; }
.@{fa-css-prefix}-calendar-minus-o:before { content: @fa-var-calendar-minus-o; }
.@{fa-css-prefix}-calendar-times-o:before { content: @fa-var-calendar-times-o; }
.@{fa-css-prefix}-calendar-check-o:before { content: @fa-var-calendar-check-o; }
.@{fa-css-prefix}-industry:before { content: @fa-var-industry; }
.@{fa-css-prefix}-map-pin:before { content: @fa-var-map-pin; }
.@{fa-css-prefix}-map-signs:before { content: @fa-var-map-signs; }
.@{fa-css-prefix}-map-o:before { content: @fa-var-map-o; }
.@{fa-css-prefix}-map:before { content: @fa-var-map; }
.@{fa-css-prefix}-commenting:before { content: @fa-var-commenting; }
.@{fa-css-prefix}-commenting-o:before { content: @fa-var-commenting-o; }
.@{fa-css-prefix}-houzz:before { content: @fa-var-houzz; }
.@{fa-css-prefix}-vimeo:before { content: @fa-var-vimeo; }
.@{fa-css-prefix}-black-tie:before { content: @fa-var-black-tie; }
.@{fa-css-prefix}-fonticons:before { content: @fa-var-fonticons; }
.@{fa-css-prefix}-reddit-alien:before { content: @fa-var-reddit-alien; }
.@{fa-css-prefix}-edge:before { content: @fa-var-edge; }
.@{fa-css-prefix}-credit-card-alt:before { content: @fa-var-credit-card-alt; }
.@{fa-css-prefix}-codiepie:before { content: @fa-var-codiepie; }
.@{fa-css-prefix}-modx:before { content: @fa-var-modx; }
.@{fa-css-prefix}-fort-awesome:before { content: @fa-var-fort-awesome; }
.@{fa-css-prefix}-usb:before { content: @fa-var-usb; }
.@{fa-css-prefix}-product-hunt:before { content: @fa-var-product-hunt; }
.@{fa-css-prefix}-mixcloud:before { content: @fa-var-mixcloud; }
.@{fa-css-prefix}-scribd:before { content: @fa-var-scribd; }
.@{fa-css-prefix}-pause-circle:before { content: @fa-var-pause-circle; }
.@{fa-css-prefix}-pause-circle-o:before { content: @fa-var-pause-circle-o; }
.@{fa-css-prefix}-stop-circle:before { content: @fa-var-stop-circle; }
.@{fa-css-prefix}-stop-circle-o:before { content: @fa-var-stop-circle-o; }
.@{fa-css-prefix}-shopping-bag:before { content: @fa-var-shopping-bag; }
.@{fa-css-prefix}-shopping-basket:before { content: @fa-var-shopping-basket; }
.@{fa-css-prefix}-hashtag:before { content: @fa-var-hashtag; }
.@{fa-css-prefix}-bluetooth:before { content: @fa-var-bluetooth; }
.@{fa-css-prefix}-bluetooth-b:before { content: @fa-var-bluetooth-b; }
.@{fa-css-prefix}-percent:before { content: @fa-var-percent; }
.@{fa-css-prefix}-gitlab:before { content: @fa-var-gitlab; }
.@{fa-css-prefix}-wpbeginner:before { content: @fa-var-wpbeginner; }
.@{fa-css-prefix}-wpforms:before { content: @fa-var-wpforms; }
.@{fa-css-prefix}-envira:before { content: @fa-var-envira; }
.@{fa-css-prefix}-universal-access:before { content: @fa-var-universal-access; }
.@{fa-css-prefix}-wheelchair-alt:before { content: @fa-var-wheelchair-alt; }
.@{fa-css-prefix}-question-circle-o:before { content: @fa-var-question-circle-o; }
.@{fa-css-prefix}-blind:before { content: @fa-var-blind; }
.@{fa-css-prefix}-audio-description:before { content: @fa-var-audio-description; }
.@{fa-css-prefix}-volume-control-phone:before { content: @fa-var-volume-control-phone; }
.@{fa-css-prefix}-braille:before { content: @fa-var-braille; }
.@{fa-css-prefix}-assistive-listening-systems:before { content: @fa-var-assistive-listening-systems; }
.@{fa-css-prefix}-asl-interpreting:before,
.@{fa-css-prefix}-american-sign-language-interpreting:before { content: @fa-var-american-sign-language-interpreting; }
.@{fa-css-prefix}-deafness:before,
.@{fa-css-prefix}-hard-of-hearing:before,
.@{fa-css-prefix}-deaf:before { content: @fa-var-deaf; }
.@{fa-css-prefix}-glide:before { content: @fa-var-glide; }
.@{fa-css-prefix}-glide-g:before { content: @fa-var-glide-g; }
.@{fa-css-prefix}-signing:before,
.@{fa-css-prefix}-sign-language:before { content: @fa-var-sign-language; }
.@{fa-css-prefix}-low-vision:before { content: @fa-var-low-vision; }
.@{fa-css-prefix}-viadeo:before { content: @fa-var-viadeo; }
.@{fa-css-prefix}-viadeo-square:before { content: @fa-var-viadeo-square; }
.@{fa-css-prefix}-snapchat:before { content: @fa-var-snapchat; }
.@{fa-css-prefix}-snapchat-ghost:before { content: @fa-var-snapchat-ghost; }
.@{fa-css-prefix}-snapchat-square:before { content: @fa-var-snapchat-square; }
.@{fa-css-prefix}-pied-piper:before { content: @fa-var-pied-piper; }
.@{fa-css-prefix}-first-order:before { content: @fa-var-first-order; }
.@{fa-css-prefix}-yoast:before { content: @fa-var-yoast; }
.@{fa-css-prefix}-themeisle:before { content: @fa-var-themeisle; }
.@{fa-css-prefix}-google-plus-circle:before,
.@{fa-css-prefix}-google-plus-official:before { content: @fa-var-google-plus-official; }
.@{fa-css-prefix}-fa:before,
.@{fa-css-prefix}-font-awesome:before { content: @fa-var-font-awesome; }
.@{fa-css-prefix}-handshake-o:before { content: @fa-var-handshake-o; }
.@{fa-css-prefix}-envelope-open:before { content: @fa-var-envelope-open; }
.@{fa-css-prefix}-envelope-open-o:before { content: @fa-var-envelope-open-o; }
.@{fa-css-prefix}-linode:before { content: @fa-var-linode; }
.@{fa-css-prefix}-address-book:before { content: @fa-var-address-book; }
.@{fa-css-prefix}-address-book-o:before { content: @fa-var-address-book-o; }
.@{fa-css-prefix}-vcard:before,
.@{fa-css-prefix}-address-card:before { content: @fa-var-address-card; }
.@{fa-css-prefix}-vcard-o:before,
.@{fa-css-prefix}-address-card-o:before { content: @fa-var-address-card-o; }
.@{fa-css-prefix}-user-circle:before { content: @fa-var-user-circle; }
.@{fa-css-prefix}-user-circle-o:before { content: @fa-var-user-circle-o; }
.@{fa-css-prefix}-user-o:before { content: @fa-var-user-o; }
.@{fa-css-prefix}-id-badge:before { content: @fa-var-id-badge; }
.@{fa-css-prefix}-drivers-license:before,
.@{fa-css-prefix}-id-card:before { content: @fa-var-id-card; }
.@{fa-css-prefix}-drivers-license-o:before,
.@{fa-css-prefix}-id-card-o:before { content: @fa-var-id-card-o; }
.@{fa-css-prefix}-quora:before { content: @fa-var-quora; }
.@{fa-css-prefix}-free-code-camp:before { content: @fa-var-free-code-camp; }
.@{fa-css-prefix}-telegram:before { content: @fa-var-telegram; }
.@{fa-css-prefix}-thermometer-4:before,
.@{fa-css-prefix}-thermometer:before,
.@{fa-css-prefix}-thermometer-full:before { content: @fa-var-thermometer-full; }
.@{fa-css-prefix}-thermometer-3:before,
.@{fa-css-prefix}-thermometer-three-quarters:before { content: @fa-var-thermometer-three-quarters; }
.@{fa-css-prefix}-thermometer-2:before,
.@{fa-css-prefix}-thermometer-half:before { content: @fa-var-thermometer-half; }
.@{fa-css-prefix}-thermometer-1:before,
.@{fa-css-prefix}-thermometer-quarter:before { content: @fa-var-thermometer-quarter; }
.@{fa-css-prefix}-thermometer-0:before,
.@{fa-css-prefix}-thermometer-empty:before { content: @fa-var-thermometer-empty; }
.@{fa-css-prefix}-shower:before { content: @fa-var-shower; }
.@{fa-css-prefix}-bathtub:before,
.@{fa-css-prefix}-s15:before,
.@{fa-css-prefix}-bath:before { content: @fa-var-bath; }
.@{fa-css-prefix}-podcast:before { content: @fa-var-podcast; }
.@{fa-css-prefix}-window-maximize:before { content: @fa-var-window-maximize; }
.@{fa-css-prefix}-window-minimize:before { content: @fa-var-window-minimize; }
.@{fa-css-prefix}-window-restore:before { content: @fa-var-window-restore; }
.@{fa-css-prefix}-times-rectangle:before,
.@{fa-css-prefix}-window-close:before { content: @fa-var-window-close; }
.@{fa-css-prefix}-times-rectangle-o:before,
.@{fa-css-prefix}-window-close-o:before { content: @fa-var-window-close-o; }
.@{fa-css-prefix}-bandcamp:before { content: @fa-var-bandcamp; }
.@{fa-css-prefix}-grav:before { content: @fa-var-grav; }
.@{fa-css-prefix}-etsy:before { content: @fa-var-etsy; }
.@{fa-css-prefix}-imdb:before { content: @fa-var-imdb; }
.@{fa-css-prefix}-ravelry:before { content: @fa-var-ravelry; }
.@{fa-css-prefix}-eercast:before { content: @fa-var-eercast; }
.@{fa-css-prefix}-microchip:before { content: @fa-var-microchip; }
.@{fa-css-prefix}-snowflake-o:before { content: @fa-var-snowflake-o; }
.@{fa-css-prefix}-superpowers:before { content: @fa-var-superpowers; }
.@{fa-css-prefix}-wpexplorer:before { content: @fa-var-wpexplorer; }
.@{fa-css-prefix}-meetup:before { content: @fa-var-meetup; }

@ -0,0 +1,13 @@
// Icon Sizes
// -------------------------
/* makes the font 33% larger relative to the icon container */
.@{fa-css-prefix}-lg {
font-size: (4em / 3);
line-height: (3em / 4);
vertical-align: -15%;
}
.@{fa-css-prefix}-2x { font-size: 2em; }
.@{fa-css-prefix}-3x { font-size: 3em; }
.@{fa-css-prefix}-4x { font-size: 4em; }
.@{fa-css-prefix}-5x { font-size: 5em; }

@ -0,0 +1,19 @@
// List Icons
// -------------------------
.@{fa-css-prefix}-ul {
padding-left: 0;
margin-left: @fa-li-width;
list-style-type: none;
> li { position: relative; }
}
.@{fa-css-prefix}-li {
position: absolute;
left: -@fa-li-width;
width: @fa-li-width;
top: (2em / 14);
text-align: center;
&.@{fa-css-prefix}-lg {
left: (-@fa-li-width + (4em / 14));
}
}

@ -0,0 +1,60 @@
// Mixins
// --------------------------
.fa-icon() {
display: inline-block;
font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration
font-size: inherit; // can't have font-size inherit on line above, so need to override
text-rendering: auto; // optimizelegibility throws things off #1094
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.fa-icon-rotate(@degrees, @rotation) {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})";
-webkit-transform: rotate(@degrees);
-ms-transform: rotate(@degrees);
transform: rotate(@degrees);
}
.fa-icon-flip(@horiz, @vert, @rotation) {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)";
-webkit-transform: scale(@horiz, @vert);
-ms-transform: scale(@horiz, @vert);
transform: scale(@horiz, @vert);
}
// Only display content to screen readers. A la Bootstrap 4.
//
// See: http://a11yproject.com/posts/how-to-hide-content/
.sr-only() {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0,0,0,0);
border: 0;
}
// Use in conjunction with .sr-only to only display content when it's focused.
//
// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
//
// Credit: HTML5 Boilerplate
.sr-only-focusable() {
&:active,
&:focus {
position: static;
width: auto;
height: auto;
margin: 0;
overflow: visible;
clip: auto;
}
}

@ -0,0 +1,15 @@
/* FONT PATH
* -------------------------- */
@font-face {
font-family: 'FontAwesome';
src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}');
src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'),
url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'),
url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'),
url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'),
url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg');
// src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
font-weight: normal;
font-style: normal;
}

@ -0,0 +1,20 @@
// Rotated & Flipped Icons
// -------------------------
.@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); }
.@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); }
.@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); }
.@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); }
.@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); }
// Hook for IE8-9
// -------------------------
:root .@{fa-css-prefix}-rotate-90,
:root .@{fa-css-prefix}-rotate-180,
:root .@{fa-css-prefix}-rotate-270,
:root .@{fa-css-prefix}-flip-horizontal,
:root .@{fa-css-prefix}-flip-vertical {
filter: none;
}

@ -0,0 +1,5 @@
// Screen Readers
// -------------------------
.sr-only { .sr-only(); }
.sr-only-focusable { .sr-only-focusable(); }

@ -0,0 +1,20 @@
// Stacked Icons
// -------------------------
.@{fa-css-prefix}-stack {
position: relative;
display: inline-block;
width: 2em;
height: 2em;
line-height: 2em;
vertical-align: middle;
}
.@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x {
position: absolute;
left: 0;
width: 100%;
text-align: center;
}
.@{fa-css-prefix}-stack-1x { line-height: inherit; }
.@{fa-css-prefix}-stack-2x { font-size: 2em; }
.@{fa-css-prefix}-inverse { color: @fa-inverse; }

@ -0,0 +1,800 @@
// Variables
// --------------------------
@fa-font-path: "../fonts";
@fa-font-size-base: 14px;
@fa-line-height-base: 1;
//@fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts"; // for referencing Bootstrap CDN font files directly
@fa-css-prefix: fa;
@fa-version: "4.7.0";
@fa-border-color: #eee;
@fa-inverse: #fff;
@fa-li-width: (30em / 14);
@fa-var-500px: "\f26e";
@fa-var-address-book: "\f2b9";
@fa-var-address-book-o: "\f2ba";
@fa-var-address-card: "\f2bb";
@fa-var-address-card-o: "\f2bc";
@fa-var-adjust: "\f042";
@fa-var-adn: "\f170";
@fa-var-align-center: "\f037";
@fa-var-align-justify: "\f039";
@fa-var-align-left: "\f036";
@fa-var-align-right: "\f038";
@fa-var-amazon: "\f270";
@fa-var-ambulance: "\f0f9";
@fa-var-american-sign-language-interpreting: "\f2a3";
@fa-var-anchor: "\f13d";
@fa-var-android: "\f17b";
@fa-var-angellist: "\f209";
@fa-var-angle-double-down: "\f103";
@fa-var-angle-double-left: "\f100";
@fa-var-angle-double-right: "\f101";
@fa-var-angle-double-up: "\f102";
@fa-var-angle-down: "\f107";
@fa-var-angle-left: "\f104";
@fa-var-angle-right: "\f105";
@fa-var-angle-up: "\f106";
@fa-var-apple: "\f179";
@fa-var-archive: "\f187";
@fa-var-area-chart: "\f1fe";
@fa-var-arrow-circle-down: "\f0ab";
@fa-var-arrow-circle-left: "\f0a8";
@fa-var-arrow-circle-o-down: "\f01a";
@fa-var-arrow-circle-o-left: "\f190";
@fa-var-arrow-circle-o-right: "\f18e";
@fa-var-arrow-circle-o-up: "\f01b";
@fa-var-arrow-circle-right: "\f0a9";
@fa-var-arrow-circle-up: "\f0aa";
@fa-var-arrow-down: "\f063";
@fa-var-arrow-left: "\f060";
@fa-var-arrow-right: "\f061";
@fa-var-arrow-up: "\f062";
@fa-var-arrows: "\f047";
@fa-var-arrows-alt: "\f0b2";
@fa-var-arrows-h: "\f07e";
@fa-var-arrows-v: "\f07d";
@fa-var-asl-interpreting: "\f2a3";
@fa-var-assistive-listening-systems: "\f2a2";
@fa-var-asterisk: "\f069";
@fa-var-at: "\f1fa";
@fa-var-audio-description: "\f29e";
@fa-var-automobile: "\f1b9";
@fa-var-backward: "\f04a";
@fa-var-balance-scale: "\f24e";
@fa-var-ban: "\f05e";
@fa-var-bandcamp: "\f2d5";
@fa-var-bank: "\f19c";
@fa-var-bar-chart: "\f080";
@fa-var-bar-chart-o: "\f080";
@fa-var-barcode: "\f02a";
@fa-var-bars: "\f0c9";
@fa-var-bath: "\f2cd";
@fa-var-bathtub: "\f2cd";
@fa-var-battery: "\f240";
@fa-var-battery-0: "\f244";
@fa-var-battery-1: "\f243";
@fa-var-battery-2: "\f242";
@fa-var-battery-3: "\f241";
@fa-var-battery-4: "\f240";
@fa-var-battery-empty: "\f244";
@fa-var-battery-full: "\f240";
@fa-var-battery-half: "\f242";
@fa-var-battery-quarter: "\f243";
@fa-var-battery-three-quarters: "\f241";
@fa-var-bed: "\f236";
@fa-var-beer: "\f0fc";
@fa-var-behance: "\f1b4";
@fa-var-behance-square: "\f1b5";
@fa-var-bell: "\f0f3";
@fa-var-bell-o: "\f0a2";
@fa-var-bell-slash: "\f1f6";
@fa-var-bell-slash-o: "\f1f7";
@fa-var-bicycle: "\f206";
@fa-var-binoculars: "\f1e5";
@fa-var-birthday-cake: "\f1fd";
@fa-var-bitbucket: "\f171";
@fa-var-bitbucket-square: "\f172";
@fa-var-bitcoin: "\f15a";
@fa-var-black-tie: "\f27e";
@fa-var-blind: "\f29d";
@fa-var-bluetooth: "\f293";
@fa-var-bluetooth-b: "\f294";
@fa-var-bold: "\f032";
@fa-var-bolt: "\f0e7";
@fa-var-bomb: "\f1e2";
@fa-var-book: "\f02d";
@fa-var-bookmark: "\f02e";
@fa-var-bookmark-o: "\f097";
@fa-var-braille: "\f2a1";
@fa-var-briefcase: "\f0b1";
@fa-var-btc: "\f15a";
@fa-var-bug: "\f188";
@fa-var-building: "\f1ad";
@fa-var-building-o: "\f0f7";
@fa-var-bullhorn: "\f0a1";
@fa-var-bullseye: "\f140";
@fa-var-bus: "\f207";
@fa-var-buysellads: "\f20d";
@fa-var-cab: "\f1ba";
@fa-var-calculator: "\f1ec";
@fa-var-calendar: "\f073";
@fa-var-calendar-check-o: "\f274";
@fa-var-calendar-minus-o: "\f272";
@fa-var-calendar-o: "\f133";
@fa-var-calendar-plus-o: "\f271";
@fa-var-calendar-times-o: "\f273";
@fa-var-camera: "\f030";
@fa-var-camera-retro: "\f083";
@fa-var-car: "\f1b9";
@fa-var-caret-down: "\f0d7";
@fa-var-caret-left: "\f0d9";
@fa-var-caret-right: "\f0da";
@fa-var-caret-square-o-down: "\f150";
@fa-var-caret-square-o-left: "\f191";
@fa-var-caret-square-o-right: "\f152";
@fa-var-caret-square-o-up: "\f151";
@fa-var-caret-up: "\f0d8";
@fa-var-cart-arrow-down: "\f218";
@fa-var-cart-plus: "\f217";
@fa-var-cc: "\f20a";
@fa-var-cc-amex: "\f1f3";
@fa-var-cc-diners-club: "\f24c";
@fa-var-cc-discover: "\f1f2";
@fa-var-cc-jcb: "\f24b";
@fa-var-cc-mastercard: "\f1f1";
@fa-var-cc-paypal: "\f1f4";
@fa-var-cc-stripe: "\f1f5";
@fa-var-cc-visa: "\f1f0";
@fa-var-certificate: "\f0a3";
@fa-var-chain: "\f0c1";
@fa-var-chain-broken: "\f127";
@fa-var-check: "\f00c";
@fa-var-check-circle: "\f058";
@fa-var-check-circle-o: "\f05d";
@fa-var-check-square: "\f14a";
@fa-var-check-square-o: "\f046";
@fa-var-chevron-circle-down: "\f13a";
@fa-var-chevron-circle-left: "\f137";
@fa-var-chevron-circle-right: "\f138";
@fa-var-chevron-circle-up: "\f139";
@fa-var-chevron-down: "\f078";
@fa-var-chevron-left: "\f053";
@fa-var-chevron-right: "\f054";
@fa-var-chevron-up: "\f077";
@fa-var-child: "\f1ae";
@fa-var-chrome: "\f268";
@fa-var-circle: "\f111";
@fa-var-circle-o: "\f10c";
@fa-var-circle-o-notch: "\f1ce";
@fa-var-circle-thin: "\f1db";
@fa-var-clipboard: "\f0ea";
@fa-var-clock-o: "\f017";
@fa-var-clone: "\f24d";
@fa-var-close: "\f00d";
@fa-var-cloud: "\f0c2";
@fa-var-cloud-download: "\f0ed";
@fa-var-cloud-upload: "\f0ee";
@fa-var-cny: "\f157";
@fa-var-code: "\f121";
@fa-var-code-fork: "\f126";
@fa-var-codepen: "\f1cb";
@fa-var-codiepie: "\f284";
@fa-var-coffee: "\f0f4";
@fa-var-cog: "\f013";
@fa-var-cogs: "\f085";
@fa-var-columns: "\f0db";
@fa-var-comment: "\f075";
@fa-var-comment-o: "\f0e5";
@fa-var-commenting: "\f27a";
@fa-var-commenting-o: "\f27b";
@fa-var-comments: "\f086";
@fa-var-comments-o: "\f0e6";
@fa-var-compass: "\f14e";
@fa-var-compress: "\f066";
@fa-var-connectdevelop: "\f20e";
@fa-var-contao: "\f26d";
@fa-var-copy: "\f0c5";
@fa-var-copyright: "\f1f9";
@fa-var-creative-commons: "\f25e";
@fa-var-credit-card: "\f09d";
@fa-var-credit-card-alt: "\f283";
@fa-var-crop: "\f125";
@fa-var-crosshairs: "\f05b";
@fa-var-css3: "\f13c";
@fa-var-cube: "\f1b2";
@fa-var-cubes: "\f1b3";
@fa-var-cut: "\f0c4";
@fa-var-cutlery: "\f0f5";
@fa-var-dashboard: "\f0e4";
@fa-var-dashcube: "\f210";
@fa-var-database: "\f1c0";
@fa-var-deaf: "\f2a4";
@fa-var-deafness: "\f2a4";
@fa-var-dedent: "\f03b";
@fa-var-delicious: "\f1a5";
@fa-var-desktop: "\f108";
@fa-var-deviantart: "\f1bd";
@fa-var-diamond: "\f219";
@fa-var-digg: "\f1a6";
@fa-var-dollar: "\f155";
@fa-var-dot-circle-o: "\f192";
@fa-var-download: "\f019";
@fa-var-dribbble: "\f17d";
@fa-var-drivers-license: "\f2c2";
@fa-var-drivers-license-o: "\f2c3";
@fa-var-dropbox: "\f16b";
@fa-var-drupal: "\f1a9";
@fa-var-edge: "\f282";
@fa-var-edit: "\f044";
@fa-var-eercast: "\f2da";
@fa-var-eject: "\f052";
@fa-var-ellipsis-h: "\f141";
@fa-var-ellipsis-v: "\f142";
@fa-var-empire: "\f1d1";
@fa-var-envelope: "\f0e0";
@fa-var-envelope-o: "\f003";
@fa-var-envelope-open: "\f2b6";
@fa-var-envelope-open-o: "\f2b7";
@fa-var-envelope-square: "\f199";
@fa-var-envira: "\f299";
@fa-var-eraser: "\f12d";
@fa-var-etsy: "\f2d7";
@fa-var-eur: "\f153";
@fa-var-euro: "\f153";
@fa-var-exchange: "\f0ec";
@fa-var-exclamation: "\f12a";
@fa-var-exclamation-circle: "\f06a";
@fa-var-exclamation-triangle: "\f071";
@fa-var-expand: "\f065";
@fa-var-expeditedssl: "\f23e";
@fa-var-external-link: "\f08e";
@fa-var-external-link-square: "\f14c";
@fa-var-eye: "\f06e";
@fa-var-eye-slash: "\f070";
@fa-var-eyedropper: "\f1fb";
@fa-var-fa: "\f2b4";
@fa-var-facebook: "\f09a";
@fa-var-facebook-f: "\f09a";
@fa-var-facebook-official: "\f230";
@fa-var-facebook-square: "\f082";
@fa-var-fast-backward: "\f049";
@fa-var-fast-forward: "\f050";
@fa-var-fax: "\f1ac";
@fa-var-feed: "\f09e";
@fa-var-female: "\f182";
@fa-var-fighter-jet: "\f0fb";
@fa-var-file: "\f15b";
@fa-var-file-archive-o: "\f1c6";
@fa-var-file-audio-o: "\f1c7";
@fa-var-file-code-o: "\f1c9";
@fa-var-file-excel-o: "\f1c3";
@fa-var-file-image-o: "\f1c5";
@fa-var-file-movie-o: "\f1c8";
@fa-var-file-o: "\f016";
@fa-var-file-pdf-o: "\f1c1";
@fa-var-file-photo-o: "\f1c5";
@fa-var-file-picture-o: "\f1c5";
@fa-var-file-powerpoint-o: "\f1c4";
@fa-var-file-sound-o: "\f1c7";
@fa-var-file-text: "\f15c";
@fa-var-file-text-o: "\f0f6";
@fa-var-file-video-o: "\f1c8";
@fa-var-file-word-o: "\f1c2";
@fa-var-file-zip-o: "\f1c6";
@fa-var-files-o: "\f0c5";
@fa-var-film: "\f008";
@fa-var-filter: "\f0b0";
@fa-var-fire: "\f06d";
@fa-var-fire-extinguisher: "\f134";
@fa-var-firefox: "\f269";
@fa-var-first-order: "\f2b0";
@fa-var-flag: "\f024";
@fa-var-flag-checkered: "\f11e";
@fa-var-flag-o: "\f11d";
@fa-var-flash: "\f0e7";
@fa-var-flask: "\f0c3";
@fa-var-flickr: "\f16e";
@fa-var-floppy-o: "\f0c7";
@fa-var-folder: "\f07b";
@fa-var-folder-o: "\f114";
@fa-var-folder-open: "\f07c";
@fa-var-folder-open-o: "\f115";
@fa-var-font: "\f031";
@fa-var-font-awesome: "\f2b4";
@fa-var-fonticons: "\f280";
@fa-var-fort-awesome: "\f286";
@fa-var-forumbee: "\f211";
@fa-var-forward: "\f04e";
@fa-var-foursquare: "\f180";
@fa-var-free-code-camp: "\f2c5";
@fa-var-frown-o: "\f119";
@fa-var-futbol-o: "\f1e3";
@fa-var-gamepad: "\f11b";
@fa-var-gavel: "\f0e3";
@fa-var-gbp: "\f154";
@fa-var-ge: "\f1d1";
@fa-var-gear: "\f013";
@fa-var-gears: "\f085";
@fa-var-genderless: "\f22d";
@fa-var-get-pocket: "\f265";
@fa-var-gg: "\f260";
@fa-var-gg-circle: "\f261";
@fa-var-gift: "\f06b";
@fa-var-git: "\f1d3";
@fa-var-git-square: "\f1d2";
@fa-var-github: "\f09b";
@fa-var-github-alt: "\f113";
@fa-var-github-square: "\f092";
@fa-var-gitlab: "\f296";
@fa-var-gittip: "\f184";
@fa-var-glass: "\f000";
@fa-var-glide: "\f2a5";
@fa-var-glide-g: "\f2a6";
@fa-var-globe: "\f0ac";
@fa-var-google: "\f1a0";
@fa-var-google-plus: "\f0d5";
@fa-var-google-plus-circle: "\f2b3";
@fa-var-google-plus-official: "\f2b3";
@fa-var-google-plus-square: "\f0d4";
@fa-var-google-wallet: "\f1ee";
@fa-var-graduation-cap: "\f19d";
@fa-var-gratipay: "\f184";
@fa-var-grav: "\f2d6";
@fa-var-group: "\f0c0";
@fa-var-h-square: "\f0fd";
@fa-var-hacker-news: "\f1d4";
@fa-var-hand-grab-o: "\f255";
@fa-var-hand-lizard-o: "\f258";
@fa-var-hand-o-down: "\f0a7";
@fa-var-hand-o-left: "\f0a5";
@fa-var-hand-o-right: "\f0a4";
@fa-var-hand-o-up: "\f0a6";
@fa-var-hand-paper-o: "\f256";
@fa-var-hand-peace-o: "\f25b";
@fa-var-hand-pointer-o: "\f25a";
@fa-var-hand-rock-o: "\f255";
@fa-var-hand-scissors-o: "\f257";
@fa-var-hand-spock-o: "\f259";
@fa-var-hand-stop-o: "\f256";
@fa-var-handshake-o: "\f2b5";
@fa-var-hard-of-hearing: "\f2a4";
@fa-var-hashtag: "\f292";
@fa-var-hdd-o: "\f0a0";
@fa-var-header: "\f1dc";
@fa-var-headphones: "\f025";
@fa-var-heart: "\f004";
@fa-var-heart-o: "\f08a";
@fa-var-heartbeat: "\f21e";
@fa-var-history: "\f1da";
@fa-var-home: "\f015";
@fa-var-hospital-o: "\f0f8";
@fa-var-hotel: "\f236";
@fa-var-hourglass: "\f254";
@fa-var-hourglass-1: "\f251";
@fa-var-hourglass-2: "\f252";
@fa-var-hourglass-3: "\f253";
@fa-var-hourglass-end: "\f253";
@fa-var-hourglass-half: "\f252";
@fa-var-hourglass-o: "\f250";
@fa-var-hourglass-start: "\f251";
@fa-var-houzz: "\f27c";
@fa-var-html5: "\f13b";
@fa-var-i-cursor: "\f246";
@fa-var-id-badge: "\f2c1";
@fa-var-id-card: "\f2c2";
@fa-var-id-card-o: "\f2c3";
@fa-var-ils: "\f20b";
@fa-var-image: "\f03e";
@fa-var-imdb: "\f2d8";
@fa-var-inbox: "\f01c";
@fa-var-indent: "\f03c";
@fa-var-industry: "\f275";
@fa-var-info: "\f129";
@fa-var-info-circle: "\f05a";
@fa-var-inr: "\f156";
@fa-var-instagram: "\f16d";
@fa-var-institution: "\f19c";
@fa-var-internet-explorer: "\f26b";
@fa-var-intersex: "\f224";
@fa-var-ioxhost: "\f208";
@fa-var-italic: "\f033";
@fa-var-joomla: "\f1aa";
@fa-var-jpy: "\f157";
@fa-var-jsfiddle: "\f1cc";
@fa-var-key: "\f084";
@fa-var-keyboard-o: "\f11c";
@fa-var-krw: "\f159";
@fa-var-language: "\f1ab";
@fa-var-laptop: "\f109";
@fa-var-lastfm: "\f202";
@fa-var-lastfm-square: "\f203";
@fa-var-leaf: "\f06c";
@fa-var-leanpub: "\f212";
@fa-var-legal: "\f0e3";
@fa-var-lemon-o: "\f094";
@fa-var-level-down: "\f149";
@fa-var-level-up: "\f148";
@fa-var-life-bouy: "\f1cd";
@fa-var-life-buoy: "\f1cd";
@fa-var-life-ring: "\f1cd";
@fa-var-life-saver: "\f1cd";
@fa-var-lightbulb-o: "\f0eb";
@fa-var-line-chart: "\f201";
@fa-var-link: "\f0c1";
@fa-var-linkedin: "\f0e1";
@fa-var-linkedin-square: "\f08c";
@fa-var-linode: "\f2b8";
@fa-var-linux: "\f17c";
@fa-var-list: "\f03a";
@fa-var-list-alt: "\f022";
@fa-var-list-ol: "\f0cb";
@fa-var-list-ul: "\f0ca";
@fa-var-location-arrow: "\f124";
@fa-var-lock: "\f023";
@fa-var-long-arrow-down: "\f175";
@fa-var-long-arrow-left: "\f177";
@fa-var-long-arrow-right: "\f178";
@fa-var-long-arrow-up: "\f176";
@fa-var-low-vision: "\f2a8";
@fa-var-magic: "\f0d0";
@fa-var-magnet: "\f076";
@fa-var-mail-forward: "\f064";
@fa-var-mail-reply: "\f112";
@fa-var-mail-reply-all: "\f122";
@fa-var-male: "\f183";
@fa-var-map: "\f279";
@fa-var-map-marker: "\f041";
@fa-var-map-o: "\f278";
@fa-var-map-pin: "\f276";
@fa-var-map-signs: "\f277";
@fa-var-mars: "\f222";
@fa-var-mars-double: "\f227";
@fa-var-mars-stroke: "\f229";
@fa-var-mars-stroke-h: "\f22b";
@fa-var-mars-stroke-v: "\f22a";
@fa-var-maxcdn: "\f136";
@fa-var-meanpath: "\f20c";
@fa-var-medium: "\f23a";
@fa-var-medkit: "\f0fa";
@fa-var-meetup: "\f2e0";
@fa-var-meh-o: "\f11a";
@fa-var-mercury: "\f223";
@fa-var-microchip: "\f2db";
@fa-var-microphone: "\f130";
@fa-var-microphone-slash: "\f131";
@fa-var-minus: "\f068";
@fa-var-minus-circle: "\f056";
@fa-var-minus-square: "\f146";
@fa-var-minus-square-o: "\f147";
@fa-var-mixcloud: "\f289";
@fa-var-mobile: "\f10b";
@fa-var-mobile-phone: "\f10b";
@fa-var-modx: "\f285";
@fa-var-money: "\f0d6";
@fa-var-moon-o: "\f186";
@fa-var-mortar-board: "\f19d";
@fa-var-motorcycle: "\f21c";
@fa-var-mouse-pointer: "\f245";
@fa-var-music: "\f001";
@fa-var-navicon: "\f0c9";
@fa-var-neuter: "\f22c";
@fa-var-newspaper-o: "\f1ea";
@fa-var-object-group: "\f247";
@fa-var-object-ungroup: "\f248";
@fa-var-odnoklassniki: "\f263";
@fa-var-odnoklassniki-square: "\f264";
@fa-var-opencart: "\f23d";
@fa-var-openid: "\f19b";
@fa-var-opera: "\f26a";
@fa-var-optin-monster: "\f23c";
@fa-var-outdent: "\f03b";
@fa-var-pagelines: "\f18c";
@fa-var-paint-brush: "\f1fc";
@fa-var-paper-plane: "\f1d8";
@fa-var-paper-plane-o: "\f1d9";
@fa-var-paperclip: "\f0c6";
@fa-var-paragraph: "\f1dd";
@fa-var-paste: "\f0ea";
@fa-var-pause: "\f04c";
@fa-var-pause-circle: "\f28b";
@fa-var-pause-circle-o: "\f28c";
@fa-var-paw: "\f1b0";
@fa-var-paypal: "\f1ed";
@fa-var-pencil: "\f040";
@fa-var-pencil-square: "\f14b";
@fa-var-pencil-square-o: "\f044";
@fa-var-percent: "\f295";
@fa-var-phone: "\f095";
@fa-var-phone-square: "\f098";
@fa-var-photo: "\f03e";
@fa-var-picture-o: "\f03e";
@fa-var-pie-chart: "\f200";
@fa-var-pied-piper: "\f2ae";
@fa-var-pied-piper-alt: "\f1a8";
@fa-var-pied-piper-pp: "\f1a7";
@fa-var-pinterest: "\f0d2";
@fa-var-pinterest-p: "\f231";
@fa-var-pinterest-square: "\f0d3";
@fa-var-plane: "\f072";
@fa-var-play: "\f04b";
@fa-var-play-circle: "\f144";
@fa-var-play-circle-o: "\f01d";
@fa-var-plug: "\f1e6";
@fa-var-plus: "\f067";
@fa-var-plus-circle: "\f055";
@fa-var-plus-square: "\f0fe";
@fa-var-plus-square-o: "\f196";
@fa-var-podcast: "\f2ce";
@fa-var-power-off: "\f011";
@fa-var-print: "\f02f";
@fa-var-product-hunt: "\f288";
@fa-var-puzzle-piece: "\f12e";
@fa-var-qq: "\f1d6";
@fa-var-qrcode: "\f029";
@fa-var-question: "\f128";
@fa-var-question-circle: "\f059";
@fa-var-question-circle-o: "\f29c";
@fa-var-quora: "\f2c4";
@fa-var-quote-left: "\f10d";
@fa-var-quote-right: "\f10e";
@fa-var-ra: "\f1d0";
@fa-var-random: "\f074";
@fa-var-ravelry: "\f2d9";
@fa-var-rebel: "\f1d0";
@fa-var-recycle: "\f1b8";
@fa-var-reddit: "\f1a1";
@fa-var-reddit-alien: "\f281";
@fa-var-reddit-square: "\f1a2";
@fa-var-refresh: "\f021";
@fa-var-registered: "\f25d";
@fa-var-remove: "\f00d";
@fa-var-renren: "\f18b";
@fa-var-reorder: "\f0c9";
@fa-var-repeat: "\f01e";
@fa-var-reply: "\f112";
@fa-var-reply-all: "\f122";
@fa-var-resistance: "\f1d0";
@fa-var-retweet: "\f079";
@fa-var-rmb: "\f157";
@fa-var-road: "\f018";
@fa-var-rocket: "\f135";
@fa-var-rotate-left: "\f0e2";
@fa-var-rotate-right: "\f01e";
@fa-var-rouble: "\f158";
@fa-var-rss: "\f09e";
@fa-var-rss-square: "\f143";
@fa-var-rub: "\f158";
@fa-var-ruble: "\f158";
@fa-var-rupee: "\f156";
@fa-var-s15: "\f2cd";
@fa-var-safari: "\f267";
@fa-var-save: "\f0c7";
@fa-var-scissors: "\f0c4";
@fa-var-scribd: "\f28a";
@fa-var-search: "\f002";
@fa-var-search-minus: "\f010";
@fa-var-search-plus: "\f00e";
@fa-var-sellsy: "\f213";
@fa-var-send: "\f1d8";
@fa-var-send-o: "\f1d9";
@fa-var-server: "\f233";
@fa-var-share: "\f064";
@fa-var-share-alt: "\f1e0";
@fa-var-share-alt-square: "\f1e1";
@fa-var-share-square: "\f14d";
@fa-var-share-square-o: "\f045";
@fa-var-shekel: "\f20b";
@fa-var-sheqel: "\f20b";
@fa-var-shield: "\f132";
@fa-var-ship: "\f21a";
@fa-var-shirtsinbulk: "\f214";
@fa-var-shopping-bag: "\f290";
@fa-var-shopping-basket: "\f291";
@fa-var-shopping-cart: "\f07a";
@fa-var-shower: "\f2cc";
@fa-var-sign-in: "\f090";
@fa-var-sign-language: "\f2a7";
@fa-var-sign-out: "\f08b";
@fa-var-signal: "\f012";
@fa-var-signing: "\f2a7";
@fa-var-simplybuilt: "\f215";
@fa-var-sitemap: "\f0e8";
@fa-var-skyatlas: "\f216";
@fa-var-skype: "\f17e";
@fa-var-slack: "\f198";
@fa-var-sliders: "\f1de";
@fa-var-slideshare: "\f1e7";
@fa-var-smile-o: "\f118";
@fa-var-snapchat: "\f2ab";
@fa-var-snapchat-ghost: "\f2ac";
@fa-var-snapchat-square: "\f2ad";
@fa-var-snowflake-o: "\f2dc";
@fa-var-soccer-ball-o: "\f1e3";
@fa-var-sort: "\f0dc";
@fa-var-sort-alpha-asc: "\f15d";
@fa-var-sort-alpha-desc: "\f15e";
@fa-var-sort-amount-asc: "\f160";
@fa-var-sort-amount-desc: "\f161";
@fa-var-sort-asc: "\f0de";
@fa-var-sort-desc: "\f0dd";
@fa-var-sort-down: "\f0dd";
@fa-var-sort-numeric-asc: "\f162";
@fa-var-sort-numeric-desc: "\f163";
@fa-var-sort-up: "\f0de";
@fa-var-soundcloud: "\f1be";
@fa-var-space-shuttle: "\f197";
@fa-var-spinner: "\f110";
@fa-var-spoon: "\f1b1";
@fa-var-spotify: "\f1bc";
@fa-var-square: "\f0c8";
@fa-var-square-o: "\f096";
@fa-var-stack-exchange: "\f18d";
@fa-var-stack-overflow: "\f16c";
@fa-var-star: "\f005";
@fa-var-star-half: "\f089";
@fa-var-star-half-empty: "\f123";
@fa-var-star-half-full: "\f123";
@fa-var-star-half-o: "\f123";
@fa-var-star-o: "\f006";
@fa-var-steam: "\f1b6";
@fa-var-steam-square: "\f1b7";
@fa-var-step-backward: "\f048";
@fa-var-step-forward: "\f051";
@fa-var-stethoscope: "\f0f1";
@fa-var-sticky-note: "\f249";
@fa-var-sticky-note-o: "\f24a";
@fa-var-stop: "\f04d";
@fa-var-stop-circle: "\f28d";
@fa-var-stop-circle-o: "\f28e";
@fa-var-street-view: "\f21d";
@fa-var-strikethrough: "\f0cc";
@fa-var-stumbleupon: "\f1a4";
@fa-var-stumbleupon-circle: "\f1a3";
@fa-var-subscript: "\f12c";
@fa-var-subway: "\f239";
@fa-var-suitcase: "\f0f2";
@fa-var-sun-o: "\f185";
@fa-var-superpowers: "\f2dd";
@fa-var-superscript: "\f12b";
@fa-var-support: "\f1cd";
@fa-var-table: "\f0ce";
@fa-var-tablet: "\f10a";
@fa-var-tachometer: "\f0e4";
@fa-var-tag: "\f02b";
@fa-var-tags: "\f02c";
@fa-var-tasks: "\f0ae";
@fa-var-taxi: "\f1ba";
@fa-var-telegram: "\f2c6";
@fa-var-television: "\f26c";
@fa-var-tencent-weibo: "\f1d5";
@fa-var-terminal: "\f120";
@fa-var-text-height: "\f034";
@fa-var-text-width: "\f035";
@fa-var-th: "\f00a";
@fa-var-th-large: "\f009";
@fa-var-th-list: "\f00b";
@fa-var-themeisle: "\f2b2";
@fa-var-thermometer: "\f2c7";
@fa-var-thermometer-0: "\f2cb";
@fa-var-thermometer-1: "\f2ca";
@fa-var-thermometer-2: "\f2c9";
@fa-var-thermometer-3: "\f2c8";
@fa-var-thermometer-4: "\f2c7";
@fa-var-thermometer-empty: "\f2cb";
@fa-var-thermometer-full: "\f2c7";
@fa-var-thermometer-half: "\f2c9";
@fa-var-thermometer-quarter: "\f2ca";
@fa-var-thermometer-three-quarters: "\f2c8";
@fa-var-thumb-tack: "\f08d";
@fa-var-thumbs-down: "\f165";
@fa-var-thumbs-o-down: "\f088";
@fa-var-thumbs-o-up: "\f087";
@fa-var-thumbs-up: "\f164";
@fa-var-ticket: "\f145";
@fa-var-times: "\f00d";
@fa-var-times-circle: "\f057";
@fa-var-times-circle-o: "\f05c";
@fa-var-times-rectangle: "\f2d3";
@fa-var-times-rectangle-o: "\f2d4";
@fa-var-tint: "\f043";
@fa-var-toggle-down: "\f150";
@fa-var-toggle-left: "\f191";
@fa-var-toggle-off: "\f204";
@fa-var-toggle-on: "\f205";
@fa-var-toggle-right: "\f152";
@fa-var-toggle-up: "\f151";
@fa-var-trademark: "\f25c";
@fa-var-train: "\f238";
@fa-var-transgender: "\f224";
@fa-var-transgender-alt: "\f225";
@fa-var-trash: "\f1f8";
@fa-var-trash-o: "\f014";
@fa-var-tree: "\f1bb";
@fa-var-trello: "\f181";
@fa-var-tripadvisor: "\f262";
@fa-var-trophy: "\f091";
@fa-var-truck: "\f0d1";
@fa-var-try: "\f195";
@fa-var-tty: "\f1e4";
@fa-var-tumblr: "\f173";
@fa-var-tumblr-square: "\f174";
@fa-var-turkish-lira: "\f195";
@fa-var-tv: "\f26c";
@fa-var-twitch: "\f1e8";
@fa-var-twitter: "\f099";
@fa-var-twitter-square: "\f081";
@fa-var-umbrella: "\f0e9";
@fa-var-underline: "\f0cd";
@fa-var-undo: "\f0e2";
@fa-var-universal-access: "\f29a";
@fa-var-university: "\f19c";
@fa-var-unlink: "\f127";
@fa-var-unlock: "\f09c";
@fa-var-unlock-alt: "\f13e";
@fa-var-unsorted: "\f0dc";
@fa-var-upload: "\f093";
@fa-var-usb: "\f287";
@fa-var-usd: "\f155";
@fa-var-user: "\f007";
@fa-var-user-circle: "\f2bd";
@fa-var-user-circle-o: "\f2be";
@fa-var-user-md: "\f0f0";
@fa-var-user-o: "\f2c0";
@fa-var-user-plus: "\f234";
@fa-var-user-secret: "\f21b";
@fa-var-user-times: "\f235";
@fa-var-users: "\f0c0";
@fa-var-vcard: "\f2bb";
@fa-var-vcard-o: "\f2bc";
@fa-var-venus: "\f221";
@fa-var-venus-double: "\f226";
@fa-var-venus-mars: "\f228";
@fa-var-viacoin: "\f237";
@fa-var-viadeo: "\f2a9";
@fa-var-viadeo-square: "\f2aa";
@fa-var-video-camera: "\f03d";
@fa-var-vimeo: "\f27d";
@fa-var-vimeo-square: "\f194";
@fa-var-vine: "\f1ca";
@fa-var-vk: "\f189";
@fa-var-volume-control-phone: "\f2a0";
@fa-var-volume-down: "\f027";
@fa-var-volume-off: "\f026";
@fa-var-volume-up: "\f028";
@fa-var-warning: "\f071";
@fa-var-wechat: "\f1d7";
@fa-var-weibo: "\f18a";
@fa-var-weixin: "\f1d7";
@fa-var-whatsapp: "\f232";
@fa-var-wheelchair: "\f193";
@fa-var-wheelchair-alt: "\f29b";
@fa-var-wifi: "\f1eb";
@fa-var-wikipedia-w: "\f266";
@fa-var-window-close: "\f2d3";
@fa-var-window-close-o: "\f2d4";
@fa-var-window-maximize: "\f2d0";
@fa-var-window-minimize: "\f2d1";
@fa-var-window-restore: "\f2d2";
@fa-var-windows: "\f17a";
@fa-var-won: "\f159";
@fa-var-wordpress: "\f19a";
@fa-var-wpbeginner: "\f297";
@fa-var-wpexplorer: "\f2de";
@fa-var-wpforms: "\f298";
@fa-var-wrench: "\f0ad";
@fa-var-xing: "\f168";
@fa-var-xing-square: "\f169";
@fa-var-y-combinator: "\f23b";
@fa-var-y-combinator-square: "\f1d4";
@fa-var-yahoo: "\f19e";
@fa-var-yc: "\f23b";
@fa-var-yc-square: "\f1d4";
@fa-var-yelp: "\f1e9";
@fa-var-yen: "\f157";
@fa-var-yoast: "\f2b1";
@fa-var-youtube: "\f167";
@fa-var-youtube-play: "\f16a";
@fa-var-youtube-square: "\f166";

@ -0,0 +1,34 @@
// Spinning Icons
// --------------------------
.#{$fa-css-prefix}-spin {
-webkit-animation: fa-spin 2s infinite linear;
animation: fa-spin 2s infinite linear;
}
.#{$fa-css-prefix}-pulse {
-webkit-animation: fa-spin 1s infinite steps(8);
animation: fa-spin 1s infinite steps(8);
}
@-webkit-keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}

@ -0,0 +1,25 @@
// Bordered & Pulled
// -------------------------
.#{$fa-css-prefix}-border {
padding: .2em .25em .15em;
border: solid .08em $fa-border-color;
border-radius: .1em;
}
.#{$fa-css-prefix}-pull-left { float: left; }
.#{$fa-css-prefix}-pull-right { float: right; }
.#{$fa-css-prefix} {
&.#{$fa-css-prefix}-pull-left { margin-right: .3em; }
&.#{$fa-css-prefix}-pull-right { margin-left: .3em; }
}
/* Deprecated as of 4.4.0 */
.pull-right { float: right; }
.pull-left { float: left; }
.#{$fa-css-prefix} {
&.pull-left { margin-right: .3em; }
&.pull-right { margin-left: .3em; }
}

@ -0,0 +1,12 @@
// Base Class Definition
// -------------------------
.#{$fa-css-prefix} {
display: inline-block;
font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration
font-size: inherit; // can't have font-size inherit on line above, so need to override
text-rendering: auto; // optimizelegibility throws things off #1094
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}

@ -0,0 +1,6 @@
// Fixed Width Icons
// -------------------------
.#{$fa-css-prefix}-fw {
width: (18em / 14);
text-align: center;
}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save