Initial public release of Warp.

Repo-Sync-Origin: warpdotdev/warp-internal@12af1d983b
This commit is contained in:
David Stern
2026-04-28 08:43:33 -05:00
commit 0dbd3d567a
4982 changed files with 1431549 additions and 0 deletions
@@ -0,0 +1,21 @@
The MIT License
Copyright (c) 2017 Ryan Caloras and contributors (see https://github.com/rcaloras/bash-preexec)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
+443
View File
@@ -0,0 +1,443 @@
# We need to prepend a space to all the top-level commands here to prevent
# Warp bootstrap script contents from showing up in the history.
# Keep track of whether bash-preexec was included in /etc/bash.bashrc.
if [[ $bash_preexec_imported == "defined" || $__bp_imported == "defined" ]]; then
BASH_PREEXEC_IN_ETC_BASHRC=1
fi
# Ensure that nothing already loaded by the shell (e.g.: bash-preexec sourced
# in /etc/bash.bashrc) unset the HISTCONTROL variable.
HISTCONTROL=ignorespace
# Unset HISTIGNORE, which we set via the initial bash command in shell.rs, as
# we only need it long enough to ensure HISTCONTROL is set to ignorespace.
unset HISTIGNORE
# This function defines all the bash-preexec functions and sets up a bunch of the environment variables.
# Another function, install_bashpreexec will actually install the plugin.
# Its contents are pretty much pasted from bash-preexec.
# The three differences are :
# 1. We remove the guard for duplicate inclusion since we have different logic in warp where we execute this function.
# 2. As mentioned, we separate the actual installation step to install_bashpreexec. I just took those last three lines
# out of bash-preexec and separated them to that different function.
# 3. We don't modify the HISTCONTROL var in bp_install to avoid clobbering the variable for users.
function define_bashpreexec_functions() {
# bash-preexec.sh -- Bash support for ZSH-like 'preexec' and 'precmd' functions.
# https://github.com/rcaloras/bash-preexec
#
#
# 'preexec' functions are executed before each interactive command is
# executed, with the interactive command as its argument. The 'precmd'
# function is executed before each prompt is displayed.
#
# Author: Ryan Caloras (ryan@bashhub.com)
# Forked from Original Author: Glyph Lefkowitz
#
# V0.4.1
#
# General Usage:
#
# 1. Source this file at the end of your bash profile so as not to interfere
# with anything else that's using PROMPT_COMMAND.
#
# 2. Add any precmd or preexec functions by appending them to their arrays:
# e.g.
# precmd_functions+=(my_precmd_function)
# precmd_functions+=(some_other_precmd_function)
#
# preexec_functions+=(my_preexec_function)
#
# 3. Consider changing anything using the DEBUG trap or PROMPT_COMMAND
# to use preexec and precmd instead. Preexisting usages will be
# preserved, but doing so manually may be less surprising.
#
# Note: This module requires two Bash features which you must not otherwise be
# using: the "DEBUG" trap, and the "PROMPT_COMMAND" variable. If you override
# either of these after bash-preexec has been installed it will most likely break.
#### In Warp's inclusion of bash-preexec, we don't include these two guards
#### at the beginning of the script. Instead, we use bash_preexec_imported and __bp_imported to
#### determine whether we want to execute bash-preexec or not.
# Make sure this is bash that's running and return otherwise.
#if [[ -z "${BASH_VERSION:-}" ]]; then
# return 1;
#fi
#
## Avoid duplicate inclusion
#if [[ -n "${bash_preexec_imported:-}" ]]; then
# return 0
#fi
#### End of difference 1/4 between Warp and bash-preexec's original source.
bash_preexec_imported="defined"
# WARNING: This variable is no longer used and should not be relied upon.
# Use ${bash_preexec_imported} instead.
# shellcheck disable=SC2034
__bp_imported="${bash_preexec_imported}"
# Should be available to each precmd and preexec
# functions, should they want it. $? and $_ are available as $? and $_, but
# $PIPESTATUS is available only in a copy, $BP_PIPESTATUS.
# TODO: Figure out how to restore PIPESTATUS before each precmd or preexec
# function.
__bp_last_ret_value="$?"
BP_PIPESTATUS=("${PIPESTATUS[@]}")
__bp_last_argument_prev_command="$_"
__bp_inside_precmd=0
__bp_inside_preexec=0
# Initial PROMPT_COMMAND string that is removed from PROMPT_COMMAND post __bp_install
__bp_install_string=$'__bp_trap_string="$(trap -p DEBUG)"\ntrap - DEBUG\n__bp_install'
# Fails if any of the given variables are readonly
# Reference https://stackoverflow.com/a/4441178
__bp_require_not_readonly() {
local var
for var; do
if ! ( unset "$var" 2> /dev/null ); then
echo "bash-preexec requires write access to ${var}" >&2
return 1
fi
done
}
# Remove ignorespace and or replace ignoreboth from HISTCONTROL
# so we can accurately invoke preexec with a command from our
# history even if it starts with a space.
__bp_adjust_histcontrol() {
local histcontrol
histcontrol="${HISTCONTROL:-}"
histcontrol="${histcontrol//ignorespace}"
# Replace ignoreboth with ignoredups
if [[ "$histcontrol" == *"ignoreboth"* ]]; then
histcontrol="ignoredups:${histcontrol//ignoreboth}"
fi;
export HISTCONTROL="$histcontrol"
}
# This variable describes whether we are currently in "interactive mode";
# i.e. whether this shell has just executed a prompt and is waiting for user
# input. It documents whether the current command invoked by the trace hook is
# run interactively by the user; it's set immediately after the prompt hook,
# and unset as soon as the trace hook is run.
__bp_preexec_interactive_mode=""
# These arrays are used to add functions to be run before, or after, prompts.
declare -a precmd_functions
declare -a preexec_functions
# Trims leading and trailing whitespace from $2 and writes it to the variable
# name passed as $1
__bp_trim_whitespace() {
local var=${1:?} text=${2:-}
text="${text#"${text%%[![:space:]]*}"}" # remove leading whitespace characters
text="${text%"${text##*[![:space:]]}"}" # remove trailing whitespace characters
printf -v "$var" '%s' "$text"
}
# Trims whitespace and removes any leading or trailing semicolons from $2 and
# writes the resulting string to the variable name passed as $1. Used for
# manipulating substrings in PROMPT_COMMAND
__bp_sanitize_string() {
local var=${1:?} text=${2:-} sanitized
__bp_trim_whitespace sanitized "$text"
sanitized=${sanitized%;}
sanitized=${sanitized#;}
__bp_trim_whitespace sanitized "$sanitized"
printf -v "$var" '%s' "$sanitized"
}
# This function is installed as part of the PROMPT_COMMAND;
# It sets a variable to indicate that the prompt was just displayed,
# to allow the DEBUG trap to know that the next command is likely interactive.
__bp_interactive_mode() {
__bp_preexec_interactive_mode="on";
}
# This function is installed as part of the PROMPT_COMMAND.
# It will invoke any functions defined in the precmd_functions array.
__bp_precmd_invoke_cmd() {
# Save the returned value from our last command, and from each process in
# its pipeline. Note: this MUST be the first thing done in this function.
# BP_PIPESTATUS may be unused, ignore
# shellcheck disable=SC2034
__bp_last_ret_value="$?" BP_PIPESTATUS=("${PIPESTATUS[@]}")
# Don't invoke precmds if we are inside an execution of an "original
# prompt command" by another precmd execution loop. This avoids infinite
# recursion.
if (( __bp_inside_precmd > 0 )); then
return
fi
local __bp_inside_precmd=1
# Invoke every function defined in our function array.
local precmd_function
for precmd_function in "${precmd_functions[@]}"; do
# Only execute this function if it actually exists.
# Test existence of functions with: declare -[Ff]
if type -t "$precmd_function" 1>/dev/null; then
__bp_set_ret_value "$__bp_last_ret_value" "$__bp_last_argument_prev_command"
# Quote our function invocation to prevent issues with IFS
"$precmd_function"
fi
done
__bp_set_ret_value "$__bp_last_ret_value"
}
# Sets a return value in $?. We may want to get access to the $? variable in our
# precmd functions. This is available for instance in zsh. We can simulate it in bash
# by setting the value here.
__bp_set_ret_value() {
return ${1:+"$1"}
}
__bp_in_prompt_command() {
local prompt_command_array IFS=$'\n;'
read -rd '' -a prompt_command_array <<< "${PROMPT_COMMAND[*]:-}"
local trimmed_arg
__bp_trim_whitespace trimmed_arg "${1:-}"
local command trimmed_command
for command in "${prompt_command_array[@]:-}"; do
__bp_trim_whitespace trimmed_command "$command"
if [[ "$trimmed_command" == "$trimmed_arg" ]]; then
return 0
fi
done
return 1
}
# This function is installed as the DEBUG trap. It is invoked before each
# interactive prompt display. Its purpose is to inspect the current
# environment to attempt to detect if the current command is being invoked
# interactively, and invoke 'preexec' if so.
__bp_preexec_invoke_exec() {
# Save the contents of $_ so that it can be restored later on.
# https://stackoverflow.com/questions/40944532/bash-preserve-in-a-debug-trap#40944702
__bp_last_argument_prev_command="${1:-}"
# Don't invoke preexecs if we are inside of another preexec.
if (( __bp_inside_preexec > 0 )); then
return
fi
local __bp_inside_preexec=1
# Checks if the file descriptor is not standard out (i.e. '1')
# __bp_delay_install checks if we're in test. Needed for bats to run.
# Prevents preexec from being invoked for functions in PS1
if [[ ! -t 1 && -z "${__bp_delay_install:-}" ]]; then
return
fi
if [[ -n "${COMP_LINE:-}" ]]; then
# We're in the middle of a completer. This obviously can't be
# an interactively issued command.
return
fi
#### For Warp, the clause below prevents the typeahead readline binding from triggering
#### preexec, which would otherwise break the typeahead/background process implementation.
if [[ -n "${READLINE_LINE+x}" ]]; then
# We're in the middle of a readline binding to a shell command. Since
# this means the line editor is active, there can't be an interactive
# command running.
return
fi
#### End of difference 2/4 between Warp and bash-preexec's original source.
if [[ -z "${__bp_preexec_interactive_mode:-}" ]]; then
# We're doing something related to displaying the prompt. Let the
# prompt set the title instead of me.
return
else
# If we're in a subshell, then the prompt won't be re-displayed to put
# us back into interactive mode, so let's not set the variable back.
# In other words, if you have a subshell like
# (sleep 1; sleep 2)
# You want to see the 'sleep 2' as a set_command_title as well.
if [[ 0 -eq "${BASH_SUBSHELL:-}" ]]; then
__bp_preexec_interactive_mode=""
fi
fi
if __bp_in_prompt_command "${BASH_COMMAND:-}"; then
# If we're executing something inside our prompt_command then we don't
# want to call preexec. Bash prior to 3.1 can't detect this at all :/
__bp_preexec_interactive_mode=""
return
fi
local this_command
this_command=$(
export LC_ALL=C
HISTTIMEFORMAT='' builtin history 1 | sed '1 s/^ *[0-9][0-9]*[* ] //'
)
# Sanity check to make sure we have something to invoke our function with.
if [[ -z "$this_command" ]]; then
return
fi
# Invoke every function defined in our function array.
local preexec_function
local preexec_function_ret_value
local preexec_ret_value=0
for preexec_function in "${preexec_functions[@]:-}"; do
# Only execute each function if it actually exists.
# Test existence of function with: declare -[fF]
if type -t "$preexec_function" 1>/dev/null; then
__bp_set_ret_value "${__bp_last_ret_value:-}"
# Quote our function invocation to prevent issues with IFS
"$preexec_function" "$this_command"
preexec_function_ret_value="$?"
if [[ "$preexec_function_ret_value" != 0 ]]; then
preexec_ret_value="$preexec_function_ret_value"
fi
fi
done
# Restore the last argument of the last executed command, and set the return
# value of the DEBUG trap to be the return code of the last preexec function
# to return an error.
# If `extdebug` is enabled a non-zero return value from any preexec function
# will cause the user's command not to execute.
# Run `shopt -s extdebug` to enable
__bp_set_ret_value "$preexec_ret_value" "$__bp_last_argument_prev_command"
}
__bp_install() {
# Exit if we already have this installed.
if [[ "${PROMPT_COMMAND[*]:-}" == *"__bp_precmd_invoke_cmd"* ]]; then
return 1;
fi
trap '__bp_preexec_invoke_exec "$_"' DEBUG
# Preserve any prior DEBUG trap as a preexec function
local prior_trap
# we can't easily do this with variable expansion. Leaving as sed command.
# shellcheck disable=SC2001
prior_trap=$(sed "s/[^']*'\(.*\)'[^']*/\1/" <<<"${__bp_trap_string:-}")
unset __bp_trap_string
if [[ -n "$prior_trap" ]]; then
eval '__bp_original_debug_trap() {
'"$prior_trap"'
}'
preexec_functions+=(__bp_original_debug_trap)
fi
# Note: this method diverges from the bash_preexec script in that
# we don't call __bp_adjust_histcontrol because of
# https://linear.app/warpdotdev/issue/WAR-2592.
# End of difference 3/4 between Warp and bash-preexec's original source.
# Issue #25. Setting debug trap for subshells causes sessions to exit for
# backgrounded subshell commands (e.g. (pwd)& ). Believe this is a bug in Bash.
#
# Disabling this by default. It can be enabled by setting this variable.
if [[ -n "${__bp_enable_subshells:-}" ]]; then
# Set so debug trap will work be invoked in subshells.
set -o functrace > /dev/null 2>&1
shopt -s extdebug > /dev/null 2>&1
fi;
local existing_prompt_command
# Remove setting our trap install string and sanitize the existing prompt command string
existing_prompt_command="${PROMPT_COMMAND:-}"
# Edge case of appending to PROMPT_COMMAND
existing_prompt_command="${existing_prompt_command//$__bp_install_string/:}" # no-op
existing_prompt_command="${existing_prompt_command//$'\n':$'\n'/$'\n'}" # remove known-token only
existing_prompt_command="${existing_prompt_command//$'\n':;/$'\n'}" # remove known-token only
__bp_sanitize_string existing_prompt_command "$existing_prompt_command"
if [[ "${existing_prompt_command:-:}" == ":" ]]; then
existing_prompt_command=
fi
# Install our hooks in PROMPT_COMMAND to allow our trap to know when we've
# actually entered something.
PROMPT_COMMAND='__bp_precmd_invoke_cmd'
PROMPT_COMMAND+=${existing_prompt_command:+$'\n'$existing_prompt_command}
if (( BASH_VERSINFO[0] > 5 || (BASH_VERSINFO[0] == 5 && BASH_VERSINFO[1] >= 1) )); then
PROMPT_COMMAND+=('__bp_interactive_mode')
else
# shellcheck disable=SC2179 # PROMPT_COMMAND is not an array in bash <= 5.0
PROMPT_COMMAND+=$'\n__bp_interactive_mode'
fi
# Add two functions to our arrays for convenience
# of definition.
precmd_functions+=(precmd)
preexec_functions+=(preexec)
# Invoke our two functions manually that were added to $PROMPT_COMMAND
__bp_precmd_invoke_cmd
__bp_interactive_mode
}
# Sets an installation string as part of our PROMPT_COMMAND to install
# after our session has started. This allows bash-preexec to be included
# at any point in our bash profile.
__bp_install_after_session_init() {
# bash-preexec needs to modify these variables in order to work correctly
# if it can't, just stop the installation
__bp_require_not_readonly PROMPT_COMMAND HISTCONTROL HISTTIMEFORMAT || return
local sanitized_prompt_command
__bp_sanitize_string sanitized_prompt_command "${PROMPT_COMMAND:-}"
if [[ -n "$sanitized_prompt_command" ]]; then
# shellcheck disable=SC2178 # PROMPT_COMMAND is not an array in bash <= 5.0
PROMPT_COMMAND=${sanitized_prompt_command}$'\n'
fi;
# shellcheck disable=SC2179 # PROMPT_COMMAND is not an array in bash <= 5.0
PROMPT_COMMAND+=${__bp_install_string}
}
### In Warp, we run this last install step in the install_bashpreexec
### function so this is commented out here.
## Run our install so long as we're not delaying it.
#if [[ -z "${__bp_delay_install:-}" ]]; then
# __bp_install_after_session_init
#fi;
### End of difference 4/4 between Warp and bash-preexec's original source.
}
function install_bashpreexec() {
# Run our install so long as we're not delaying it.
if [[ -z "${__bp_delay_install:-}" ]]; then
__bp_install_after_session_init
fi;
}
# This string, after interpolation of the contents of bash_body.sh, contains
# the warp bootstrap script. We take over startup from the shell so we have
# more control over when the various startup files run. At a high level,
# whenever we start a shell, we try and get it to do as little as possible and
# then take over when we input these contents into the PTY. We also minimize
# the side effects of doing this to give the user a seamless experience.
#
# Starting a shell happens before this string is evaluated, and that happens either
# locally where we create a new PTY, or remotely, in a SSH wrapper. In both cases,
# we use the --rcfile option so *no* startup files are evaluated. In our
# custom rcfile, we turn off the line editor to work around a bug that
# prevented us from reliably inputting our script. And then
# we notify the terminal to input these characters in. For the remote case,
# we actually start in an interactive non-login shell (i.e. it runs ~/.bashrc),
# but it gets replaced by a new shell that we fully control.
read -r -d '' WARP_BOOTSTRAP_VAR << 'EOM'
#include bundled/bootstrap/bash_body.sh
EOM
# We need to restore the line editor before we evaluate the bootstrap logic
# or everything freezes up
stty sane
eval "$WARP_BOOTSTRAP_VAR"; unset WARP_BOOTSTRAP_VAR
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,15 @@
# command -p resolves the given command with the system default PATH, ensuring the shell
# can find them even if the user has a clobbered PATH value.
command -p stty raw
HISTCONTROL=ignorespace
HISTIGNORE=" *"
WARP_SESSION_ID="$(command -p date +%s)$RANDOM"
_hostname=$(command -pv hostname >/dev/null 2>&1 && command -p hostname 2>/dev/null || command -p uname -n)
_user=$(command -pv whoami >/dev/null 2>&1 && command -p whoami 2>/dev/null || echo $USER)
if [[ "$OS" == Windows_NT ]]; then WARP_IN_MSYS2=true; else WARP_IN_MSYS2=false; fi
# If we're in MSYS2, we want to send the hook via key-value pairs.
if [ "$WARP_IN_MSYS2" = true ]; then _msg="\e]9278;k;A;InitShell\a\e]9278;k;B;session_id;$WARP_SESSION_ID\a\e]9278;k;B;shell;bash\a\e]9278;k;B;user;$_user\a\e]9278;k;B;hostname;$_hostname\a\e]9278;k;C\a"; else _msg=$(printf "{\"hook\": \"InitShell\", \"value\": {\"session_id\": $WARP_SESSION_ID, \"shell\": \"bash\", \"user\": \"%s\", \"hostname\": \"%s\"}}" "$_user" "$_hostname" | command -p od -An -v -tx1 | command -p tr -d " \n"); fi
WARP_USING_WINDOWS_CON_PTY=@@USING_CON_PTY_BOOLEAN@@
# We send the InitShell hook via OSCs when on Windows and via DCSs otherwise.
if [ "$WARP_USING_WINDOWS_CON_PTY" = true ]; then if [ "$WARP_IN_MSYS2" = true ]; then printf "$_msg"; else printf '\e]9278;d;%s\x07' "$_msg"; fi; else printf '\e\x50\x24\x64%s\x9c' "$_msg"; fi
unset _hostname _user _msg
@@ -0,0 +1,15 @@
# command -p resolves the given command with the system default PATH, ensuring the shell
# can find them even if the user has a clobbered PATH value.
command -p stty raw
unset PROMPT_COMMAND
HISTCONTROL=ignorespace
HISTIGNORE=" *"
WARP_IS_SUBSHELL=1
WARP_SESSION_ID="$(command -p date +%s)$RANDOM"
_hostname=$(command -pv hostname >/dev/null 2>&1 && command -p hostname 2>/dev/null || command -p uname -n)
_user=$(command -pv whoami >/dev/null 2>&1 && command -p whoami 2>/dev/null || echo $USER)
_msg=$(printf "{\"hook\": \"InitShell\", \"value\": {\"session_id\": $WARP_SESSION_ID, \"shell\": \"bash\", \"user\": \"%s\", \"hostname\": \"%s\", \"is_subshell\": true}}" "$_user" "$_hostname" | command -p od -An -v -tx1 | command -p tr -d " \n")
if [[ "$OS" == Windows_NT ]]; then WARP_IN_MSYS2=true; else WARP_IN_MSYS2=false; fi
WARP_USING_WINDOWS_CON_PTY=@@USING_CON_PTY_BOOLEAN@@
if [ "$WARP_USING_WINDOWS_CON_PTY" = true ]; then printf '\e]9278;d;%s\x07' "$_msg"; else printf '\e\x50\x24\x64%s\x9c' "$_msg"; fi
unset _hostname _user _msg
@@ -0,0 +1 @@
echo -e '\n# Auto-Warpify\n[[ "$-" == *i* ]] && printf '\''\eP$f{"hook": "SourcedRcFileForWarp", "value": { "shell": "%", "uname": "'$(uname)'"% }}\x9c'\'' ' >> %
+724
View File
@@ -0,0 +1,724 @@
# Note that WARP_SESSION_ID is expected to have been set when executing commands to
# emit the InitShell payload, which includes the session ID.
begin
# We wrap ourselves in a begin block because these are effectively injected
# keystrokes, and we want to execute this whole script as a single command.
# Of course we are fish script, not POSIX shell script.
# Set fish_private_mode to prevent saving to history.
# Note: We don't add a leading space to the `begin` command here because this entire script is
# pasted into fish with bracketed paste, and Fish strips out the leading whitespace. Instead,
# we insert the space _before_ pasting the script in, which has the same effect
set -l saved_fish_private_mode $fish_private_mode
set -g fish_private_mode 1
# Disable fish autosuggestions - because input goes through Warp's editor instead,
# they are never actionable, and the extra output can cause problems.
set -g fish_autosuggestion_enabled 0
# Byte sequence used to signal the start of a DCS. ([0x1b, 0x50, 0x24] which
# maps to <ESC>, P, $ in ASCII.)
set -g DCS_START \u1b\u50\u24
# Appended to $DCS_START to signal that the following message is JSON-encoded.
# The Rust app also receives non-JSON-encoded DCS's sent from
# _warp_run_generator_command_internal, which instead end in 'e' (0x65).
set -g DCS_JSON_MARKER 'd'
set -g DCS_END \u9c
set -g OSC_START (printf '\e]9278;')
set -g OSC_END (printf '\a')
set -g OSC_PARAM_SEPARATOR ';'
set -g RESET_GRID_OSC (printf '\e]9279\a')
if test -n "$WARP_INITIAL_WORKING_DIR"
cd "$WARP_INITIAL_WORKING_DIR" >/dev/null 2>&1
set -e WARP_INITIAL_WORKING_DIR
end
# Append additional PATH entries if provided via WARP_PATH_APPEND.
if test -n "$WARP_PATH_APPEND"
set -gx --path PATH "$PATH:$WARP_PATH_APPEND"
set -e WARP_PATH_APPEND
end
function warp_send_json_message
# Sends a message to the controlling terminal as a DSC control sequence.
set -l escaped_json (warp_hex_encode_string "$argv")
if [ "$WARP_USING_WINDOWS_CON_PTY" = true ]
echo -n "$OSC_START$DCS_JSON_MARKER$OSC_PARAM_SEPARATOR$escaped_json$OSC_END"
else
echo -n "$DCS_START$DCS_JSON_MARKER$escaped_json$DCS_END"
end
end
function warp_maybe_send_reset_grid_osc
# Note that $WARP_USING_WINDOWS_CON_PTY is set in the init shell script.
if [ "$WARP_USING_WINDOWS_CON_PTY" = true ]
printf $RESET_GRID_OSC
end
end
# warp_hex_encode_string hex-encodes the given string with `od`.
function warp_hex_encode_string
echo "$argv" | od -An -v -tx1 | command tr -d ' \n'
end
# A list of PIDs for running in-band command(s). This is used to kill running
# in-band commands in preexec for a user command, so they do not interfere with
# user command output.
set -g _warp_generator_pids ''
# Runs the given command in the background, records its PID in
# _WARP_GENERATOR_PIDS_STARTED_TMP_FILE, and adds its PID from the file when
# the job is completed.
#
# Usage:
# _warp_run_generator_command_internal <command_id> '<command>'
#
# The first argument is the command's ID, which is included in the DCS string sent
# to the rust app. The second argument is the command string itself.
function _warp_run_generator_command_internal
set -l command_id $argv[1]
set -l command (string join -- ' ' (string escape $argv[2]))
# Fish cannot run shell functions in the background, so in order to run
# the command in the the background we spawn a fish process, inlining the
# code necessary to write the command's output OSC to the rust app. This
# differs from the bash and zsh implementations, which rely on running
# functions in the background.
#
# The `IFS` has to be set to the empty string to prevent fish from converting
# the command output into a list by splitting output on newlines (fish splits
# strings on $IFS into lists). Essentially, setting IFS to the empty string
# allows us to preserve newlines in command output (that might be relied
# upon) for parsing output.
#
# N.B. Fish shell variables cannot contain null characters, so the command output must be
# immediately hex encoded before being stored in a variable.
fish -c "
set -l warp_using_windows_con_pty $WARP_USING_WINDOWS_CON_PTY;
set -l reset_grid_osc $RESET_GRID_OSC;
function warp_maybe_send_reset_grid_osc
if [ \"\$warp_using_windows_con_pty\" = true ]
printf \$reset_grid_osc
end
end
set -l OSC_START_GENERATOR_OUTPUT \$(printf '\e]9277;A\a')
set -l OSC_END_GENERATOR_OUTPUT \$(printf '\e]9277;B\a')
set -l command_id $command_id;
set -l command $command;
set -l IFS;
begin
echo -n \"\$command_id;\"
eval \$command 2>&1
echo -n \";\$status\"
end | od -An -v -tx1 | command tr -d ' \n' | read -lz hex_encoded_message
set -l LC_ALL \"C\"
set -l byte_count (string length \"\$hex_encoded_message\")
echo -n \"\$OSC_START_GENERATOR_OUTPUT\$byte_count;\$hex_encoded_message\$OSC_END_GENERATOR_OUTPUT\"
warp_maybe_send_reset_grid_osc" 2> /dev/null &
set -l command_pid $last_pid
set -a _warp_generator_pids $command_pid
# Remove the command's PID from _warp_generator_pids when the command exits.
function on_command_{$command_pid}_finish --on-process-exit $command_pid --inherit-variable command_pid
set -g _warp_generator_pids (string replace $command_pid '' $_warp_generator_pids)
# Erase this function after the pids list is updated above so we don't create an infinite number of
# functions that could pollute the user's context (nested functions are still existing in the global
# scope).
functions -e on_command_{$command_pid}_finish
# Note: If we're on windows, we send a reset grid to erase any cursor mutations caused by
# the in-band command.
warp_maybe_send_reset_grid_osc
end
end
# Executes a generator command in the background, where the first argument is
# the "command ID" assigned by the Rust app and the second-nth arguments
# specify the command to be run.
#
# Note that the command string should be single-quoted so any variables are
# not substituted until the command string is actually evaluated.
#
# Usage:
# warp_run_generator_command <command_id> '<command> <arg1> ... <argn>'
function warp_run_generator_command
# Setting this environment variable allows warp_precmd to detect if a generator
# command or a user command has just completed.
set -g _WARP_GENERATOR_COMMAND 1
_warp_run_generator_command_internal $argv
end
# Run before a command is executed.
function warp_preexec --on-event fish_preexec
set -l command (warp_escape_json "$argv")
warp_send_json_message "{\"hook\": \"Preexec\", \"value\": {\"command\": \"$command\"}}"
warp_maybe_send_reset_grid_osc
# If this preexec is called for user command, kill ongoing generator command jobs.
if test (! string match -q "warp_run_generator_command*" $argv[1])
for pid in $_warp_generator_pids
# Surpress stderr output; kill writes to stderr if any of the given
# PIDS are not running (which might rarely be the case due to race
# conditions in checking which PIDS to cancel and this kill command.
kill -9 $pids >/dev/null 2>/dev/null
end
set -g _warp_generator_pids ''
end
end
# The git prompts git commands are read-only and should not interfere with
# other processes. This environment variable is equivalent to running with `git
# --no-optional-locks`, but falls back gracefully for older versions of git.
# See git(1) for and git-status(1) for a description of that flag.
#
# We wrap in a local function instead of exporting the variable directly in
# order to avoid interfering with manually-run git commands by the user.
function warp_git
GIT_OPTIONAL_LOCKS=0 command git $argv
end
# Wrap fish prompt function output with OSC prompt marker sequences,
# so that we can direct the prompt bytes to the appropriate grids.
function warp_update_prompt_vars
# Back up the original fish_prompt if not already done
if not functions -q warp_original_fish_prompt
functions -c fish_prompt warp_original_fish_prompt
end
# Back up the original fish_right_prompt if it exists and not already backed up
if functions -q fish_right_prompt; and not functions -q warp_original_fish_right_prompt
functions -c fish_right_prompt warp_original_fish_right_prompt
end
# If not honoring PS1, set both prompts to be empty
if test "$WARP_HONOR_PS1" = "0"
function fish_prompt; echo -n ""; end
function fish_right_prompt; echo -n ""; end
# If honoring PS1, add prefix/suffix to both prompts
else
function end_prompt
echo -n (printf '\x1b')
if test "$WARP_HONOR_PS1" != "1" && [ "$WARP_USING_WINDOWS_CON_PTY" = true ]
echo -n "]133;B$RESET_GRID_OSC"
else
echo -n ']133;B'
end
echo -n (printf '\x07')
end
# Redefine fish_prompt to include prefix and suffix
function fish_prompt
echo -n (printf '\x1b')
echo -n ']133;A'
echo -n (printf '\x07')
warp_original_fish_prompt
end_prompt
end
# Check if warp_original_fish_right_prompt was backed up before redefining fish_right_prompt
if functions -q warp_original_fish_right_prompt
function fish_right_prompt
echo -n (printf '\x1b')
echo -n ']133;P;k=r'
echo -n (printf '\x07')
warp_original_fish_right_prompt
end_prompt
end
end
end
end
# Changes the WARP_HONOR_PS1 variable to 1, to indicate we want to use the user's custom prompt. Restores
# the original fish prompt functions (which we set to empty for Warp prompt) by calling warp_update_prompt_vars
# to refresh the prompt. We force a repaint of the prompt to ensure the change is reflected immediately.
function warp_change_prompt_modes_to_ps1
set -x WARP_HONOR_PS1 "1"
# Restores fish_prompt and fish_right_prompt.
warp_update_prompt_vars
# Forces a repaint of the current prompt to ensure the change is reflected immediately.
commandline -f repaint
end
# Changes the WARP_HONOR_PS1 variable to 0, to indicate we want to use the Warp prompt. Saves and clears
# the fish prompt functions (which we set to empty for Warp prompt) by calling warp_update_prompt_vars
# to refresh the prompt. We force a repaint of the prompt to ensure the change is reflected immediately.
function warp_change_prompt_modes_to_warp_prompt
set -x WARP_HONOR_PS1 "0"
# Updates fish_prompt and fish_right_prompt to be empty.
warp_update_prompt_vars
# Forces a repaint of the current prompt to ensure the change is reflected immediately.
commandline -f repaint
end
set block_id 0
# Run before the prompt is displayed. We also need to trigger this on "fish_posterror", as
# submitting a command containing a syntax error will not trigger "fish_preexec" or "fish_prompt".
function warp_precmd --on-event fish_prompt --on-event fish_posterror
# Handle prompt behavior (we do this first to make sure the exit status is from the command,
# rather than from our own code)
set -l exit_code $status
# This function is triggered by both "fish_prompt" and "fish_posterror" events. If it was
# "fish_prompt", then $status will be properly set. If it was "fish_posterror", it won't be.
# We want to set the exit code to 1 for errors, but there is no direct way to check which event
# triggered this function call. The length of $argv actually tells us, as "fish_posterror"
# passes the erroneous command while "fish_prompt" passes nothing.
if test (count $argv) -gt 0
set exit_code 1
end
warp_send_json_message "{\"hook\": \"CommandFinished\", \"value\": {\"exit_code\": $exit_code, \"next_block_id\": \"precmd-$WARP_SESSION_ID-$block_id\"}}"
warp_maybe_send_reset_grid_osc
set block_id (math $block_id + 1)
if ! test -z $_WARP_GENERATOR_COMMAND
set -e _WARP_GENERATOR_COMMAND
set -l escaped_json "{\"hook\": \"Precmd\", \"value\": {
\"pwd\": \"\",
\"ps1\": \"\",
\"git_head\": \"\",
\"git_branch\": \"\",
\"virtual_env\": \"\",
\"conda_env\": \"\",
\"node_version\": \"\",
\"session_id\": $WARP_SESSION_ID,
\"is_after_in_band_command\": true
}}"
warp_send_json_message $escaped_json
return 0
end
# Fish's vi mode causes a conflict with the input reporting binding.
# Set the bindings back for this session. Note that just calling fish_default_key_bindings
# affects other sessions so we do it this way instead.
set -g fish_key_bindings fish_default_key_bindings
# Do not use kill-line because of the kill ring interation.
bind \cP "commandline ''"
# We use the ESC-p bindkey for this ("p" for PS1/custom prompt).
bind \ep warp_change_prompt_modes_to_ps1
# We use the ESC-w bindkey for this ("w" for Warp prompt).
bind \ew warp_change_prompt_modes_to_warp_prompt
bind \ei warp_report_input
# Define local variables in appropriate outer block for fish variable scoping.
# See https://stackoverflow.com/a/53685510.
set -l escaped_prompt
set -l escaped_right_prompt
set -l escaped_pwd
if set -q WSL_DISTRO_NAME
# In WSL, avoid symlinks b/c on Windows `std::fs` is unable to resolve symlink inside WSL containers.
set escaped_pwd (warp_escape_json (pwd -P))
else
set escaped_pwd (warp_escape_json $PWD)
end
set -l escaped_virtual_env ""
set -l escaped_conda_env ""
set -l escaped_node_version ""
set -l escaped_git_head ""
set -l escaped_git_branch ""
# Only fill these fields once we've finished bootstrapping, as the
# blocks created during the bootstrap process don't have visible
# prompts, and we don't want to invoke `git` before we've sourced the
# user's rcfiles and have a fully-populated PATH.
if test -n "$WARP_BOOTSTRAPPED"
if test -n "$VIRTUAL_ENV"
set escaped_virtual_env (warp_escape_json "$VIRTUAL_ENV")
end
if test -n "$CONDA_DEFAULT_ENV"
set escaped_conda_env (warp_escape_json "$CONDA_DEFAULT_ENV")
end
# Get Node.js version if node is available and we're in a Node.js project
if command -v node > /dev/null 2>&1
# Check for package.json in current directory and parent directories
set current_dir (pwd)
set found_package_json false
set package_json_dir ""
while test "$current_dir" != "/"
if test -f "$current_dir/package.json"
set found_package_json true
set package_json_dir "$current_dir"
break
end
set current_dir (dirname "$current_dir")
end
# Only show node version if package.json is within a git repository
if test "$found_package_json" = true
set git_dir "$package_json_dir"
set in_git_repo false
while test "$git_dir" != "/"
if test -d "$git_dir/.git"
set in_git_repo true
break
end
set git_dir (dirname "$git_dir")
end
if test "$in_git_repo" = true
set node_version (node --version 2>/dev/null)
if test -n "$node_version"
set escaped_node_version (warp_escape_json "$node_version")
end
end
end
end
set -l git_branch ""
set -l git_head ""
if command -q git
set git_branch (warp_git symbolic-ref --short HEAD 2> /dev/null)
if test -z "$git_branch"
# Fallback to the git commit hash if we aren't on a named branch.
set git_head (warp_git rev-parse --short HEAD 2> /dev/null)
else
set git_head "$git_branch"
end
end
set escaped_git_head (warp_escape_json "$git_head")
set escaped_git_branch (warp_escape_json "$git_branch")
end
warp_update_prompt_vars
# This is used solely for prompt previews, when we're using prompt markers with combined grid.
# We need to use this since fish does not have a way to ignore printable characters for cursor
# positioning (unlike zsh/bash), so we need a separate mechansim to send the prompt to Warp
# in the case of Warp prompt (for previewing the PS1). We send an escaped version of the raw prompt
# bytes via a hex string (in a JSON payload) to Warp.
# Note that we are CALLING the `warp_original_fish_prompt` function on the next line and assigning the
# outputted string to the local variable `raw_prompt_for_preview`.
set -l raw_prompt_for_preview (warp_original_fish_prompt)
# We encode the prompt as a hex string to pass it to Warp.
set escaped_prompt (warp_escape_prompt "$raw_prompt_for_preview")
set -l escaped_json
if test "$WARP_HONOR_PS1" = "1"
# Don't send lprompt or rprompt in this case - we'll use prompt markers for both directly!
set escaped_json "{\"hook\": \"Precmd\", \"value\": {
\"pwd\": \"$escaped_pwd\",
\"ps1\": \"\",
\"rprompt\": \"\",
\"git_head\": \"$escaped_git_head\",
\"git_branch\": \"$escaped_git_branch\",
\"virtual_env\": \"$escaped_virtual_env\",
\"conda_env\": \"$escaped_conda_env\",
\"node_version\": \"$escaped_node_version\",
\"session_id\": $WARP_SESSION_ID
}}"
else
# We send an lprompt to use for prompt preview purposes only (we still use prompt markers for active prompts).
set escaped_json "{\"hook\": \"Precmd\", \"value\": {
\"pwd\": \"$escaped_pwd\",
\"ps1\": \"$escaped_prompt\",
\"rprompt\": \"\",
\"git_head\": \"$escaped_git_head\",
\"git_branch\": \"$escaped_git_branch\",
\"virtual_env\": \"$escaped_virtual_env\",
\"conda_env\": \"$escaped_conda_env\",
\"node_version\": \"$escaped_node_version\",
\"session_id\": $WARP_SESSION_ID
}}"
end
warp_send_json_message $escaped_json
end
function warp_escape_prompt
# To match the implementation of PS1 support in bash / zsh, we use the same method of encoding
# the prompt as a hex string so that it can be interpreted on the Warp side
# Note: before converting the prompt to a hex string, we remove any multi-line newlines and
# replace them with a single space (to avoid prompts that span multiple empty lines)
echo "$argv" | command tr '\n\n' ' ' | command od -An -v -tx1 | command tr -d ' \n'
end
# Escapes string(s) passed as input to be JSON-serializable.
#
# Specifically, special characters like backspace, tab, form feed, carriage return, and newlines
# are replaced with escaped equivalents. Double quotes and literal backslash characters are also
# backslash-escaped.
function warp_escape_json
# Explanation of the sed replacements (each command is separated by a `;`):
# s/(["\\])/\\\1/g - Replace all double-quote (") and backslash (\) characters with the escaped versions (\" and \\)
# s/\b/\\b/g - Replace all backspace characters with \b
# s/\t/\\t/g - Replace all tab characters with \t
# s/\f/\\f/g - Replace all form feed characters with \f
# s/\r/\\r/g - Replace all carriage return characters with \r
# $!s/$/\\\\n/ - Replace any newlines (except the last trailing newline) with the literal \n character
#
# Additional note: In Fish, backslashes still need to be escaped in single quoted strings. So each `\\` below
# represents a single `\` in the above regex explanation. We also close the single-quoted string in order to
# insert literal characters (Fish supports literals with escapes when not quoting)
#
# We also use 'command sed' to ensure that we aren't accidentally executing a function named 'sed'
string join \n $argv | command sed -E 's/(["\\\\])/\\\\\\1/g; s/'\b'/\\\\b/g; s/'\t'/\\\\t/g; s/'\f'/\\\\f/g; s/'\r'/\\\\r/g; $!s/$/\\\\n/' | command tr -d '\n'
end
function warp_bootstrapped
set -l histfile_directory
set histfile_directory "$XDG_DATA_HOME"
if test -z "$histfile_directory"
set histfile_directory "$HOME/.local/share"
end
set -l escaped_histfile (warp_escape_json "$histfile_directory/fish/fish_history")
set -l vi_mode_enabled ""
if [ "$fish_key_bindings" = "fish_vi_key_bindings" ]
set vi_mode_enabled "1"
end
set -l kernel_name (uname)
if test -n "$kernel_name"
if [ "$kernel_name" = "Darwin" ]
set os_category "MacOS"
else if [ "$kernel_name" = "Linux" ]
set os_category "Linux"
set -l default_os_release_filepath "/etc/os-release"
set -l fallback_os_release_filepath "/usr/lib/os-release"
# We first try /etc/os-release and then try /usr/lib/os-release as a fallback.
if test -f "$default_os_release_filepath"
set os_release_file "$default_os_release_filepath";
else if test -f "$fallback_os_release_filepath"
set os_release_file "$fallback_os_release_filepath";
end
if test -f "$os_release_file"
set linux_distribution (cat $os_release_file | sed -nE 's/^NAME="(.*)"$/\1/p')
end
end
end
set -l escaped_abbr (warp_escape_json (abbr --show))
set -l escaped_aliases (warp_escape_json (alias))
set -l env_var_names (warp_escape_json (set --names))
set -l function_names (warp_escape_json (functions -an))
set -l escaped_builtins (warp_escape_json (builtin -n))
# Note "keywords" is set to an empty string since fish includes keywords as a
# part of its builtins (e.g. "for", "while", etc.).
set -l escaped_editor (warp_escape_json "$EDITOR")
set -l escaped_shell_path (warp_escape_json (status fish-path))
set -l escaped_json "{\"hook\": \"Bootstrapped\", \"value\": {\"histfile\": \"$escaped_histfile\", \"shell\": \"fish\", \"home_dir\": \"$HOME\", \"path\": \"$PATH\", \"editor\": \"$escaped_editor\", \"abbreviations\": \"$escaped_abbr\", \"aliases\": \"$escaped_aliases\", \"function_names\": \"$function_names\", \"env_var_names\": \"$env_var_names\", \"builtins\": \"$escaped_builtins\", \"keywords\": \"\", \"shell_version\": \"$FISH_VERSION\", \"vi_mode_enabled\": \"$vi_mode_enabled\", \"os_category\": \"$os_category\", \"linux_distribution\": \"$linux_distribution\", \"wsl_name\": \"$WSL_DISTRO_NAME\", \"shell_path\": \"$escaped_shell_path\"}}"
warp_send_json_message $escaped_json
end
function warp_init_shell
set -l init_shell "{\"hook\": \"InitShell\", \"value\": {\"shell\": \"$argv\"}}"
warp_hex_encode_string "$init_shell"
end
# Add a key binding to report the current input buffer to Warp. We can override
# any user-defined binds here because user input goes through Warp's editor, not
# the fish line editor.
# This is arbitrarily bound to ESC-i in all supported shells ("i" for input).
# Binding to ESC-1 caused bootstrap failures with vi keybindings.
function warp_report_input
set -l escaped_input (warp_escape_json (commandline))
warp_send_json_message "{ \"hook\": \"InputBuffer\", \"value\": { \"buffer\": \"$escaped_input\" } }"
# This prevents fish from rendering typeahead as background output once we've collected it.
commandline ''
end
function clear
warp_send_json_message "{\"hook\": \"Clear\", \"value\": {}}"
end
function warp_finish_update
set -l update_id "$argv[1]"
warp_send_json_message "{\"hook\": \"FinishUpdate\", \"value\": { \"update_id\": \"$update_id\"}}"
end
# Check if the warp apt source file has been renamed to `warpdotdev.list.distUpgrade` due to an ubuntu version update.
# If this occurred, we want to rename the source file back to `warpdotdev.list` to ensure updates can proceed.
# We purposefully skip this if either the `warpdotdev.list` file already exists (indicating that the user has already
# done this themselves) _or_ if a `warpdotdev.sources` file exists (which is the new Deb822 format for source files).
# The `.sources` file could only exist if a user manually created it; Ubuntu doesn't create one automatically for the
# warp source file due to a bug in its update flow where it considers our source file to be "invalid" because it
# contains a `signed-by` key.
function warp_handle_dist_upgrade
set -l source_file_name "$argv[1]"
# The `apt-config shell` command outputs an environment variable assignment in POSIX-compliant syntax. Therefore,
# we need to run this from within an sh shell to actually get the correct directory for the sources dir.
set -l APT_SOURCESDIR (command sh -c 'eval $(apt-config shell APT_SOURCESDIR "Dir::Etc::sourceparts/d"); echo $APT_SOURCESDIR')
if not test -e $APT_SOURCESDIR$source_file_name.list; and not test -e $APT_SOURCESDIR$source_file_name.sources; and test -e $APT_SOURCESDIR$source_file_name.list.distUpgrade
# DO NOT DO THIS. We should never run a command for user with `sudo`. The only reason this is safe here is because
# we insert this function into the input for the user to determine if they want to execute (we never run it on
# their behalf without their permission). To be transparent about what is being executed with sudo, we echo out the
# command we're about to run.
echo "Executing: sudo cp \"$APT_SOURCESDIR$source_file_name.list.distUpgrade\" \"$APT_SOURCESDIR$source_file_name.list\""
sudo cp "$APT_SOURCESDIR$source_file_name.list.distUpgrade" "$APT_SOURCESDIR$source_file_name.list"
end
end
# The SSH logic only applies to local sessions, because we don't yet have support for bootstrapping
# recursive SSH sessions.
if test "$WARP_IS_LOCAL_SHELL_SESSION" = "1"
function is_interactive_ssh_session
# Parse through all ssh options, as defined in the ssh man pages. Send
# stderr to /dev/null to silence argparse output when an option is invalid.
argparse '1' '2' '4' '6' 'A' 'a' 'C' 'f' 'g' 'K' 'k' 'M' 'N' 'n' 'q' 's' 'T' 't' 'V' 'v' 'X' 'x' 'Y' 'y' 'b=' 'c=' 'D=' 'e=' 'F=' 'i=' 'L=' 'l=' 'm=' 'O=' 'o=' 'p=' 'R=' 'S=' 'W=' 'w=' -- $argv 2>/dev/null
# If argparse returned a non-success value, propagate it up.
or return
if [ $_flag_T ]
# -T disables pty allocation (aka a non-interactive session)
return 1
end
if [ $_flag_W ]
# -W implies -T
return 1
end
# If there is more than one positional argument, the user is attempting to
# run a command, not start an interactive session. If there is less than
# one positional argument, the user should be shown the usage text.
if [ (count $argv) -ne 1 ]
return 1
end
end
function warp_ssh_helper
set -l init_shell_zsh (warp_init_shell "zsh")
set -l init_shell_bash (warp_init_shell "bash")
# Hex-encode the ZSH environment script we use to bootstrap remote zsh b/c it contains control characters
# We decode on the SSH server using xxd if its available, otherwise fall back to a for-loop over each byte
# and use printf to convert back to plaintext
set -l zsh_env_script (printf '%s' 'unsetopt ZLE; unset RCS; unset GLOBAL_RCS; WARP_SESSION_ID="$(command -p date +%s)$RANDOM"; WARP_USING_WINDOWS_CON_PTY=@@USING_CON_PTY_BOOLEAN@@; WARP_HONOR_PS1='$WARP_HONOR_PS1'; _hostname=$(command -pv hostname >/dev/null 2>&1 && command -p hostname 2>/dev/null || uname -n); _user=$(command -pv whoami >/dev/null 2>&1 && command -p whoami 2>/dev/null || echo $USER); _msg=$(printf "{\"hook\": \"InitShell\", \"value\": {\"session_id\": $WARP_SESSION_ID, \"shell\": \"zsh\", \"user\": \"%s\", \"hostname\": \"%s\"}}" "$_user" "$_hostname" | command -p od -An -v -tx1 | command -p tr -d " \n"); printf '"'"'\x1b\x50\x24\x64%s\x9c'"'"' $_msg; unset _hostname _user _msg' | command od -An -v -tx1 | command tr -d ' \n')
# Note that in this command, we're passing a string to the remote shell. Any variable expansions need to be
# escaped with "''" to avoid the local shell from expanding them before they're passed to the remote shell.
# We check the SHELL env var and use shell string manipulation to get the contents after the last slash to
# determine what shell is the login shell on the remote machine. We perform a preliminary check to see if
# the remote shell is the Bourne shell to avoid asking it to parse later lines that use syntax it doesn't
# support.
command ssh -o ControlMaster=yes -o ControlPath=$SSH_SOCKET_DIR/$WARP_SESSION_ID \
-t $argv \
"
export TERM_PROGRAM='WarpTerminal'
test -n '$WARP_CLIENT_VERSION' && export WARP_CLIENT_VERSION='$WARP_CLIENT_VERSION'
# Only forward the protocol version if it was set locally (i.e. the HOANotifications feature flag is on).
test -n '$WARP_CLI_AGENT_PROTOCOL_VERSION' && export WARP_CLI_AGENT_PROTOCOL_VERSION='$WARP_CLI_AGENT_PROTOCOL_VERSION'
hook="'$(printf "{\"hook\": \"SSH\", \"value\": {\"socket_path\": \"'$SSH_SOCKET_DIR/$WARP_SESSION_ID'\", \"remote_shell\": \"%s\"}}" "${SHELL##*/}" | command od -An -v -tx1 | command tr -d " \n")'"
printf '$DCS_START$DCS_JSON_MARKER%s$DCS_END' "'$hook'"
if test "'"${SHELL##*/}" != "bash" -a "${SHELL##*/}" != "zsh"'"; then
# Emulate the SSHD logic to print the MotD. Because the Warp SSH wrapper passes
# a command to run, SSHD does a quiet login, updating utmp and other login
# state, but not printing the MotD. For bash and zsh, this is instead handled
# by our bootstrap script.
if test ! -e "'$HOME/.hushlogin'"; then
# This uses an if-else chain instead of a for-loop to avoid expansion issues on older shells.
if test -r /etc/motd; then
cat /etc/motd
elif test -r /run/motd; then
cat /run/motd
elif test -r /run/motd.dynamic; then
cat /run/motd.dynamic
elif test -r /usr/lib/motd; then
cat /usr/lib/motd
elif test -r /usr/lib/motd.dynamic; then
cat /usr/lib/motd.dynamic
fi
fi
# Likewise, emulate a login shell by sourcing /etc/profile
if test -r /etc/profile; then
. /etc/profile
fi
exec "'$SHELL'"
fi
case "'${SHELL##*/}'" in
bash)
exec -a bash bash --rcfile <(echo '"'
stty raw
HISTCONTROL=ignorespace
HISTIGNORE=" *"
WARP_SESSION_ID="$(command -p date +%s)$RANDOM"
WARP_HONOR_PS1="'$WARP_HONOR_PS1'"
_hostname=$(command -pv hostname >/dev/null 2>&1 && command -p hostname 2>/dev/null || uname -n)
_user=$(command -pv whoami >/dev/null 2>&1 && command -p whoami 2>/dev/null || echo $USER)
_msg=$(printf "{\"hook\": \"InitShell\", \"value\": {\"session_id\": $WARP_SESSION_ID, \"shell\": \"bash\", \"user\": \"%s\", \"hostname\": \"%s\"}}" "$_user" "$_hostname" | command -p od -An -v -tx1 | command -p tr -d " \n")'"
WARP_USING_WINDOWS_CON_PTY=@@USING_CON_PTY_BOOLEAN@@
if [[ "'$OS'" == Windows_NT ]]; then WARP_IN_MSYS2=true; else WARP_IN_MSYS2=false; fi
printf '\''"'\eP$d%s\x9c'"'\'' \""'$_msg'"\"'
unset _hostname _user _msg
)
;;
zsh) WARP_TMP_DIR="'$(mktemp -d warptmp.XXXXXX)'"
local ZSH_ENV_SCRIPT='$zsh_env_script'
if [[ "'$?'" == 0 ]]; then
if command -v xxd >/dev/null 2>&1; then
echo "'$ZSH_ENV_SCRIPT'" | command xxd -p -r > "'$WARP_TMP_DIR'"/.zshenv
else
for i in {0..\$((\${#ZSH_ENV_SCRIPT} - 1))..2}; do
builtin printf "'"\x${ZSH_ENV_SCRIPT:$i:2}"'"
done > "'$WARP_TMP_DIR'"/.zshenv
fi
else
echo \"Failed to bootstrap warp. Continuing with a non-bootstrapped shell.\"
fi
TMPPREFIX="'$HOME/.zshtmp-'" WARP_SSH_RCFILES="'${ZDOTDIR:-$HOME}'" ZDOTDIR="'$WARP_TMP_DIR'" exec -l zsh -g $TRACE_FLAG_IF_WARP_SHELL_DEBUG_MODE
;;
esac
"
end
function ssh
if is_interactive_ssh_session $argv
warp_send_json_message '{"hook": "PreInteractiveSSHSession", "value": {}}'
if [ "$WARP_USE_SSH_WRAPPER" = "1" ]
if test $WARP_SHELL_DEBUG_MODE
set -g TRACE_FLAG_IF_WARP_SHELL_DEBUG_MODE "-x"
else
set -g TRACE_FLAG_IF_WARP_SHELL_DEBUG_MODE ""
end
warp_ssh_helper $argv
else
command ssh $argv
end
else
command ssh $argv
end
end
end
warp_precmd
# Print the MotD if this is a login shell. Normally, login(1) or pam_motd(8)
# would do this. However, Warp does not use login(1) for local sessions and for
# remote sessions, SSHD thinks it is starting a non-interactive session, so it
# does not print PAM messages.
if status --is-login
and test ! -e "$HOME/.hushlogin"
for motd_file in /etc/motd /run/motd /run/motd.dynamic /usr/lib/motd /usr/lib/motd.dynamic;
if test -r "$motd_file"
command cat "$motd_file"
break
end
end
end
warp_bootstrapped
set -g WARP_BOOTSTRAPPED 1
set -g fish_private_mode $saved_fish_private_mode
end
@@ -0,0 +1,9 @@
set -g WARP_SESSION_ID (random)
set _hostname (command -v hostname >/dev/null 2>&1 && command hostname 2>/dev/null || uname -n)
set _user (command -v whoami >/dev/null 2>&1 && command whoami 2>/dev/null || echo $USER)
set -g WARP_IN_MSYS2 (test "$OS" = Windows_NT; and echo true; or echo false)
if test "$WARP_IN_MSYS2" = true; set _msg "\e]9278;k;A;InitShell\a\e]9278;k;B;session_id;$WARP_SESSION_ID\a\e]9278;k;B;shell;fish\a\e]9278;k;B;user;$_user\a\e]9278;k;B;hostname;$_hostname\a\e]9278;k;C\a"; else; set _msg (printf "{\"hook\": \"InitShell\", \"value\": {\"session_id\": $WARP_SESSION_ID, \"shell\": \"fish\", \"user\": \"%s\", \"hostname\": \"%s\"}}" "$_user" "$_hostname" | command od -An -v -tx1 | command tr -d " \n"); end
set WARP_USING_WINDOWS_CON_PTY @@USING_CON_PTY_BOOLEAN@@
# We send the InitShell hook via OSCs when on Windows and via DCSs otherwise.
if test "$WARP_USING_WINDOWS_CON_PTY" = true; if test "$WARP_IN_MSYS2" = true; printf "$_msg"; else; printf '\e]9278;d;%s\x07' "$_msg"; end; else; printf '\e\x50\x24\x64%s\x9c' "$_msg"; end
set -e _hostname _user _msg
@@ -0,0 +1,8 @@
set -g WARP_SESSION_ID (random)
set _hostname (command -v hostname >/dev/null 2>&1 && command hostname 2>/dev/null || uname -n)
set _user (command -v whoami >/dev/null 2>&1 && command whoami 2>/dev/null || echo $USER)
set -g WARP_IN_MSYS2 (test "$OS" = Windows_NT; and echo true; or echo false)
if test "$WARP_IN_MSYS2" = true; set _msg "\e]9278;k;A;InitShell\a\e]9278;k;B;session_id;$WARP_SESSION_ID\a\e]9278;k;B;shell;fish\a\e]9278;k;B;user;$_user\a\e]9278;k;B;hostname;$_hostname\a\e]9278;k;B;is_subshell;true\a\e]9278;k;C\a"; else; set _msg (printf "{\"hook\": \"InitShell\", \"value\": {\"session_id\": $WARP_SESSION_ID, \"user\": \"%s\", \"hostname\": \"%s\", \"shell\": \"fish\", \"is_subshell\": true, \"wsl_name\": \"$WSL_DISTRO_NAME\"}}" "$_user" "$_hostname" | command od -An -v -tx1 | command tr -d " \n"); end
set WARP_USING_WINDOWS_CON_PTY @@USING_CON_PTY_BOOLEAN@@
if test "$WARP_USING_WINDOWS_CON_PTY" = true; if test "$WARP_IN_MSYS2" = true; printf "$_msg"; else; printf '\e]9278;d;%s\x07' "$_msg"; end; else; printf '\e\x50\x24\x64%s\x9c' "$_msg"; end
set -e _hostname _user _msg
@@ -0,0 +1 @@
echo -e '\n# Auto-Warpify\nstatus --is-interactive; and printf '\''\eP$f{"hook": "SourcedRcFileForWarp", "value": { "shell": "%", "uname": "'$(uname)'"% }}\x9c'\'' ' >> %
@@ -0,0 +1 @@
In remote subshells, Warp runs commands in the background to power completions, syntax highlighting, and other features.
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,35 @@
# Prevent history from being written to file, among other interactive features.
Remove-Module -Name PSReadline
$global:_warpOriginalPrompt = $function:global:prompt
if ($PSEdition -eq 'Desktop' -or $IsWindows) {
$EP = [Microsoft.PowerShell.ExecutionPolicy]
# MachinePolicy and UserPolicy scopes cannot be overridden. If either is Restricted, there's nothing we can do.
if ((Get-ExecutionPolicy -Scope MachinePolicy) -eq $EP::Restricted -or (Get-ExecutionPolicy -Scope UserPolicy) -eq $EP::Restricted) {
Write-Error 'ExecutionPolicy is Restricted. Unable to Warpify this PowerShell session.'
} elseif ((Get-ExecutionPolicy) -eq $EP::Restricted -and (Get-ExecutionPolicy -Scope MachinePolicy) -eq $EP::Undefined -and (Get-ExecutionPolicy -Scope UserPolicy) -eq $EP::Undefined) {
$global:_warp_PSProcessExecPolicy = $(Get-ExecutionPolicy -Scope Process)
Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned -Force
}
}
# We must wait until pwsh attempts to show the first prompt before writing an OSC string.
# Trying to do so beforehand will prevent the "Write-Host" command from being submitted, as pwsh
# ignores submissions prior to the first prompt.
function prompt {
# Reset the prompt back to the default to avoid infinite loops if sourcing the bootstrap script has an error.
$function:global:prompt = $global:_warpOriginalPrompt
$username = [Environment]::UserName
$epoch = [int](New-TimeSpan -Start ([DateTime]::new(1970, 1, 1, 0, 0, 0, 0)) -End ([DateTime]::UtcNow)).TotalSeconds
$random = Get-Random -Maximum 32768
$global:_warpSessionId = [int64]"$epoch$random"
$msg = ConvertTo-Json -Compress -InputObject @{ hook = 'InitShell'; value = @{ session_id = $_warpSessionId; shell = 'pwsh'; user = $username; hostname = [System.Net.Dns]::GetHostName() } }
$encodedMsg = [BitConverter]::ToString([System.Text.Encoding]::UTF8.GetBytes($msg)).Replace('-', '')
$oscStart = "$([char]0x1b)]9278;"
$oscEnd = "`a"
$oscJsonMarker = 'd'
$oscParameterSeparator = ';'
Write-Host "${oscStart}${oscJsonMarker}${oscParameterSeparator}${encodedMsg}${oscEnd}"
return $null
}
@@ -0,0 +1 @@
Success! This subshell spawned by % has been Warpified.
@@ -0,0 +1,8 @@
# fish doesn't allow setting variables with `=`, so the easiest cross-shell compatible expression is
# this oneliner.
# Making this cross-shell compatible is a bit complicated: we need the surrounding curly braces to
# fix precedence issues between `||` and `|`, but curly braces are processed differently in fish.
# Thankfully, we don't need curly braces around the first expression, so we can put the fish check
# first and it early exits. This runs correctly in sh, bash, zsh, and fish.
# Replace `HOOK_NAME` with the appropriate hook name.
[ -z $WARP_BOOTSTRAPPED ] && printf "\\e]9278;f;{\"hook\": \"HOOK_NAME\", \"value\": { \"shell\": \"%s\", \"uname\": \"%s\" }}\\a" $([ $FISH_VERSION ] && echo "fish" || { echo $0 | command -p grep -q zsh && echo "zsh"; } || { echo $0 | command -p grep -q bash && echo "bash"; } || echo "unknown") $(uname)
+21
View File
@@ -0,0 +1,21 @@
setopt interactivecomments
# Set PS2 to an empty string to prevent zsh from printing a secondary prompt
# (e.g.: 'heredoc> '), which would otherwise be printed repeatedly when we
# paste the bootstrap script into the PTY.
if (( ${+PS2} )); then
ORIGINAL_PS2="$PS2"
fi
PS2=""
# Similar to our approach in bash, we start a shell with the minimal amount of
# startup (i.e. --no-rcs) and then take over by executing the shell startup.
# We only support the local zsh case for now.
#
# Note that we indent everything in this top-level script by one space in order
# to hide from history.
#
# Also, note that we put the 'eval' on the same line as the 'read' separated by a semi-colon
# rather than on its own line after the HEREDOC. This seems to work around a bug in zsh
# where the buffer was getting messed up after processing the heredoc about 1/50 of the time.
read -r -d '' WARP_BOOTSTRAP_VAR << 'EOM'; eval "$WARP_BOOTSTRAP_VAR"; unset WARP_BOOTSTRAP_VAR
#include bundled/bootstrap/zsh_body.sh
EOM
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,13 @@
# Each line starts with a leading space to leave these commands out of history.
#
# command -p resolves the given command with the system default PATH, ensuring the shell
# can find them even if the user has a clobbered PATH value.
unsetopt ZLE
WARP_SESSION_ID="$(command -p date +%s)$RANDOM"
_hostname=$(command -pv hostname >/dev/null 2>&1 && command -p hostname 2>/dev/null || command -p uname -n)
_user=$(command -pv whoami >/dev/null 2>&1 && command -p whoami 2>/dev/null || echo $USER)
_msg=$(printf "{\"hook\": \"InitShell\", \"value\": {\"session_id\": $WARP_SESSION_ID, \"shell\": \"zsh\", \"user\": \"%s\", \"hostname\": \"%s\"}}" "$_user" "$_hostname" | command -p od -An -v -tx1 | command -p tr -d " \n")
WARP_USING_WINDOWS_CON_PTY=@@USING_CON_PTY_BOOLEAN@@
# We send the InitShell hook via OSCs when on Windows and via DCSs otherwise.
if [ "$WARP_USING_WINDOWS_CON_PTY" = true ]; then printf '\e]9278;d;%s\x07' "$_msg"; else printf '\e\x50\x24\x64%s\x9c' "$_msg"; fi
unset _hostname _user _msg
@@ -0,0 +1,16 @@
# Ensure the histignorespace is set so all subsequent commands are omitted from history.
# setopt hist_ignore_space will still appear, but its better than the entire bootstrap
# script showing up in session history.
#
# command -p resolves the given command with the system default PATH, ensuring the shell
# can find them even if the user has a clobbered PATH value.
setopt hist_ignore_space
unsetopt ZLE
WARP_IS_SUBSHELL=1
WARP_SESSION_ID="$(command -p date +%s)$RANDOM"
_hostname=$(command -pv hostname >/dev/null 2>&1 && command -p hostname 2>/dev/null || command -p uname -n)
_user=$(command -pv whoami >/dev/null 2>&1 && command -p whoami 2>/dev/null || echo $USER)
_msg=$(printf "{\"hook\": \"InitShell\", \"value\": {\"session_id\": $WARP_SESSION_ID, \"shell\": \"zsh\", \"user\": \"%s\", \"hostname\": \"%s\", \"is_subshell\": true, \"wsl_name\": \"$WSL_DISTRO_NAME\"}}" "$_user" "$_hostname" | command -p od -An -v -tx1 | command -p tr -d " \n")
WARP_USING_WINDOWS_CON_PTY=@@USING_CON_PTY_BOOLEAN@@
if [ "$WARP_USING_WINDOWS_CON_PTY" = true ]; then printf '\e]9278;d;%s\x07' "$_msg"; else printf '\e\x50\x24\x64%s\x9c' "$_msg"; fi
unset _hostname _user _msg
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+45
View File
@@ -0,0 +1,45 @@
The work in the Hack project is Copyright 2018 Source Foundry Authors and licensed under the MIT License
The work in the DejaVu project was committed to the public domain.
Bitstream Vera Sans Mono Copyright 2003 Bitstream Inc. and licensed under the Bitstream Vera License with Reserved Font Names "Bitstream" and "Vera"
### MIT License
Copyright (c) 2018 Source Foundry Authors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
### BITSTREAM VERA LICENSE
Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is a trademark of Bitstream, Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy of the fonts accompanying this license ("Fonts") and associated documentation files (the "Font Software"), to reproduce and distribute the Font Software, including without limitation the rights to use, copy, merge, publish, distribute, and/or sell copies of the Font Software, and to permit persons to whom the Font Software is furnished to do so, subject to the following conditions:
The above copyright and trademark notices and this permission notice shall be included in all copies of one or more of the Font Software typefaces.
The Font Software may be modified, altered, or added to, and in particular the designs of glyphs or characters in the Fonts may be modified and additional glyphs or characters may be added to the Fonts, only if the fonts are renamed to names not containing either the words "Bitstream" or the word "Vera".
This License becomes null and void to the extent applicable to Fonts or Font Software that has been modified and is distributed under the "Bitstream Vera" names.
The Font Software may be sold as part of a larger software package but no copy of one or more of the Font Software typefaces may be sold by itself.
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
Except as contained in this notice, the names of Gnome, the Gnome Foundation, and Bitstream Inc., shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Font Software without prior written authorization from the Gnome Foundation or Bitstream Inc., respectively. For further information, contact: fonts at gnome dot org.
Binary file not shown.
@@ -0,0 +1,93 @@
Copyright 2011 The Roboto Project Authors (https://github.com/googlefonts/roboto-classic)
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
https://openfontlicense.org
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

@@ -0,0 +1 @@
brew install tmux && tmux -Lwarp -CC && exit
@@ -0,0 +1,29 @@
INSTALL_TMUX='set -e
_on_error() {
local _msg=$(printf "{\"hook\": \"TmuxInstallFailed\", \"value\": { \"line\": \"$1\", \"command\": \"$2\" } }" | command -p od -An -v -tx1 | command -p tr -d " \n")
printf '\''\033\120\044\144%s\234'\'' "$_msg"
rm -rf "$HOME/.warp/tmux"
}
trap "_on_error \"\${LINENO}\" \"\$BASH_COMMAND\"" ERR
mkdir -p $HOME/.warp/tmux
pushd "$HOME/.warp/tmux"
ARCH=$(uname -m)
case "$ARCH" in
x86_64) ARCH_NAME=amd64 ;;
amd64) ARCH_NAME=amd64 ;;
aarch64) ARCH_NAME=arm64 ;;
*) echo "Unsupported architecture $ARCH"; exit 1 ;;
esac
URL="https://github.com/warpdotdev/portable-tmux/releases/download/tmux-3.5a/tmux-${ARCH_NAME}.tar.gz"
(curl -o tmux.tar.gz -L $URL || wget -O tmux.tar.gz $URL) && tar -xf tmux.tar.gz
INSTALL_PATH="$HOME/.warp/tmux/local"
echo "TERM=tmux-256color LD_LIBRARY_PATH=\"$INSTALL_PATH/lib\" TERMINFO=\"$INSTALL_PATH/share/terminfo/\" \"$INSTALL_PATH/bin/tmux\" \"\$@\";" > ~/.warp/tmux/execute_tmux.sh
chmod +x ~/.warp/tmux/execute_tmux.sh;'
bash <<< "$INSTALL_TMUX" && ~/.warp/tmux/execute_tmux.sh -Lwarp -CC && exit
@@ -0,0 +1,13 @@
INSTALL_TMUX='set -e
_on_error() {
local _msg=$(printf "{\"hook\": \"TmuxInstallFailed\", \"value\": { \"line\": \"$1\", \"command\": \"$2\" } }" | command -p od -An -v -tx1 | command -p tr -d " \n")
printf '\''\033\120\044\144%s\234'\'' "$_msg"
rm -rf "$HOME/.warp/tmux"
}
trap "_on_error \"\${LINENO}\" \"\$BASH_COMMAND\"" ERR
sudo apt update -y
sudo apt install -y tmux'
bash <<< "$INSTALL_TMUX" && _check_tmux && command tmux -Lwarp -CC && exit
@@ -0,0 +1,13 @@
INSTALL_TMUX='set -e
_on_error() {
local _msg=$(printf "{\"hook\": \"TmuxInstallFailed\", \"value\": { \"line\": \"$1\", \"command\": \"$2\" } }" | command -p od -An -v -tx1 | command -p tr -d " \n")
printf '\''\033\120\044\144%s\234'\'' "$_msg"
rm -rf "$HOME/.warp/tmux"
}
trap "_on_error \"\${LINENO}\" \"\$BASH_COMMAND\"" ERR
sudo dnf update -y
sudo dnf install -y tmux'
bash <<< "$INSTALL_TMUX" && _check_tmux && command tmux -Lwarp -CC && exit
@@ -0,0 +1,13 @@
INSTALL_TMUX='set -e
_on_error() {
local _msg=$(printf "{\"hook\": \"TmuxInstallFailed\", \"value\": { \"line\": \"$1\", \"command\": \"$2\" } }" | command -p od -An -v -tx1 | command -p tr -d " \n")
printf '\''\033\120\044\144%s\234'\'' "$_msg"
rm -rf "$HOME/.warp/tmux"
}
trap "_on_error \"\${LINENO}\" \"\$BASH_COMMAND\"" ERR
sudo pacman -Syu --noconfirm
sudo pacman -S --noconfirm tmux'
bash <<< "$INSTALL_TMUX" && _check_tmux && command tmux -Lwarp -CC && exit
@@ -0,0 +1,13 @@
INSTALL_TMUX='set -e
_on_error() {
local _msg=$(printf "{\"hook\": \"TmuxInstallFailed\", \"value\": { \"line\": \"$1\", \"command\": \"$2\" } }" | command -p od -An -v -tx1 | command -p tr -d " \n")
printf '\''\033\120\044\144%s\234'\'' "$_msg"
rm -rf "$HOME/.warp/tmux"
}
trap "_on_error \"\${LINENO}\" \"\$BASH_COMMAND\"" ERR
sudo yum update -y
sudo yum install -y tmux'
bash <<< "$INSTALL_TMUX" && _check_tmux && command tmux -Lwarp -CC && exit
@@ -0,0 +1,13 @@
INSTALL_TMUX='set -e
_on_error() {
local _msg=$(printf "{\"hook\": \"TmuxInstallFailed\", \"value\": { \"line\": \"$1\", \"command\": \"$2\" } }" | command -p od -An -v -tx1 | command -p tr -d " \n")
printf '\''\033\120\044\144%s\234'\'' "$_msg"
rm -rf "$HOME/.warp/tmux"
}
trap "_on_error \"\${LINENO}\" \"\$BASH_COMMAND\"" ERR
sudo zypper refresh
sudo zypper install -y tmux'
bash <<< "$INSTALL_TMUX" && _check_tmux && command tmux -Lwarp -CC && exit
@@ -0,0 +1,68 @@
_find() {
command -v "$1" >/dev/null 2>&1
}
_log() {
_msg=$(printf "{\"hook\": \"$1\", \"value\": $2}" | command -p od -An -v -tx1 | command -p tr -d " \n")
printf '\033\120\044\144%s\234' "$_msg"
}
_err() {
_log RemoteWarpificationIsUnavailable "$1"
}
_system_details() {
OS=$(uname)
if [ "$OS" = "Darwin" ]; then
if _find brew; then
PKG="homebrew"
fi
elif [ "$OS" = "Linux" ]; then
if _find pacman; then
PKG="pacman"
elif _find zypper; then
PKG="zypper"
elif _find dnf; then
PKG="dnf"
elif _find yum && _find yumdownloader; then
PKG="yum"
elif _find apt; then
PKG="apt"
fi
fi
RA="no_root_access"
if command -v sudo >/dev/null && { sudo -vn && sudo -ln; } 2>&1 | grep -E 'may run|a password' > /dev/null; then RA="can_run_sudo"
elif [ "$(id -u)" -eq 0 ] && [ "$(whoami)" = "root" ]; then RA="is_root"
fi
WH=$( [ -w ~ ] && echo true || echo false )
printf '%s' "{\"os\": \"$OS\", \"pkg\": \"$PKG\", \"shell\": \"$(basename $SHELL)\", \"root_access\": \"$RA\", \"writable_home\": $WH}"
}
# _check_tmux is used in tmux install script post install!
_check_tmux() {
if _find $HOME/.warp/tmux/execute_tmux.sh; then
_log SshTmuxInstaller "\"warp\""
TMUX="$HOME/.warp/tmux/execute_tmux.sh"
elif _find tmux; then
TMUX="tmux"
_log SshTmuxInstaller "\"user\""
fi
if [ $TMUX ]; then
VER=$(command $TMUX -V 2>/dev/null | awk '{print $2}')
if [ -z "$VER" ]; then
_err "\"TmuxFailed\""
elif [ "$(printf '%s\n' "$VER" "2.9" | sort -V | tail -n1)" = "2.9" ]; then
_err "{\"UnsupportedTmuxVersion\": $(_system_details)}"
else
return 0
fi
else
_err "{\"TmuxNotInstalled\": $(_system_details)}"
fi
return 1
}
_check_tmux && command $TMUX -Lwarp -CC && exit
@@ -0,0 +1,49 @@
_find() {
command -v "$1" >/dev/null 2>&1
}
_log() {
_msg=$(printf "{\"hook\": \"$1\", \"value\": $2}" | command -p od -An -v -tx1 | command -p tr -d " \n")
printf '\033\120\044\144%s\234' "$_msg"
}
_err() {
_log RemoteWarpificationIsUnavailable "$1"
}
_sd() {
if _find brew; then
PKG="homebrew"
fi
WH=$( [ -w ~ ] && echo true || echo false )
printf '{"os": "Darwin", "pkg": "%s", "shell": "%s", "root_access": "no_root_access", "writable_home": %s}' "$PKG" "$(basename $SHELL)" $WH
}
# _check_tmux is used in tmux install script post install!
_check_tmux() {
TMUX="$HOME/.warp/tmux/execute_tmux.sh"
if _find "$TMUX"; then
_log SshTmuxInstaller "\"warp\""
elif _find tmux; then
TMUX="tmux"
_log SshTmuxInstaller "\"user\""
fi
if [ $TMUX ]; then
VER=$($TMUX -V 2>/dev/null | awk '{print $2}')
if [ -z "$VER" ]; then
_err "\"TmuxFailed\""
elif [ "$(printf '%s\n' "$VER" "2.9" | sort -V | tail -n1)" = "2.9" ]; then
_err "{\"UnsupportedTmuxVersion\": $(_sd)}"
else
return 0
fi
else
_err "{\"TmuxNotInstalled\": $(_sd)}"
fi
return 1
}
_check_tmux && $TMUX -Lwarp -CC && exit
@@ -0,0 +1,6 @@
brew install tmux
if test $status -eq 0
tmux -Lwarp -CC
exit
end
@@ -0,0 +1,29 @@
set INSTALL_TMUX 'set -e
_on_error() {
local _msg=$(printf "{\"hook\": \"TmuxInstallFailed\", \"value\": { \"line\": \"$1\", \"command\": \"$2\" } }" | command -p od -An -v -tx1 | command -p tr -d " \n")
printf '\''\033\120\044\144%s\234'\'' "$_msg"
rm -rf "$HOME/.warp/tmux"
}
trap "_on_error \"\${LINENO}\" \"\$BASH_COMMAND\"" ERR
mkdir -p $HOME/.warp/tmux
pushd "$HOME/.warp/tmux"
ARCH=$(uname -m)
case "$ARCH" in
x86_64) ARCH_NAME=amd64 ;;
amd64) ARCH_NAME=amd64 ;;
aarch64) ARCH_NAME=arm64 ;;
*) echo "Unsupported architecture $ARCH"; exit 1 ;;
esac
URL="https://github.com/warpdotdev/portable-tmux/releases/download/tmux-3.5a/tmux-${ARCH_NAME}.tar.gz"
(curl -o tmux.tar.gz -L $URL || wget -O tmux.tar.gz $URL) && tar -xf tmux.tar.gz
INSTALL_PATH="$HOME/.warp/tmux/local"
echo "TERM=tmux-256color LD_LIBRARY_PATH=\"$INSTALL_PATH/lib\" TERMINFO=\"$INSTALL_PATH/share/terminfo/\" \"$INSTALL_PATH/bin/tmux\" \"\$@\";" > ~/.warp/tmux/execute_tmux.sh
chmod +x ~/.warp/tmux/execute_tmux.sh;'
bash -c "$INSTALL_TMUX" && ~/.warp/tmux/execute_tmux.sh -Lwarp -CC && exit
@@ -0,0 +1,80 @@
function _is
command -v $argv[1] >/dev/null 2>&1
end
function _log
set _hook $argv[1]
set _value $argv[2]
set _m (printf "{\"hook\": \"%s\", \"value\": %s}" $_hook $_value | od -An -v -tx1 | tr -d " \n")
printf '\033\120\044\144%s\234' $_m
end
function _err
_log RemoteWarpificationIsUnavailable $argv[1]
end
function _system_details
set -l OS (uname)
set -l PK ""
if test "$OS" = "Darwin"
if _is brew
set PK "homebrew"
end
else if test "$OS" = "Linux"
if _is pacman
set PK "pacman"
else if _is zypper
set PK "zypper"
else if _is dnf
set PK "dnf"
else if _is yum; and _is yumdownloader
set PK "yum"
else if _is apt
set PK "apt"
end
end
set -l CHECK (begin; command -v sudo > /dev/null 2>&1 && sudo -vn && sudo -ln; end 2>&1)
set -l RA "no_root_access"
if string match -qr '.*(may run|a password).*' "$CHECK"
set RA "can_run_sudo"
else if test (id -u) -eq 0; and test (whoami) = "root"
set RA "is_root"
end
set -l WH $( [ -w ~ ] && echo true || echo false )
printf '%s' "{\"os\": \"$OS\", \"pkg\": \"$PK\", \"shell\": \"fish\", \"root_access\": \"$RA\", \"writable_home\": $WH}"
end
# _check_tmux is used in the install script post install!
function _check_tmux
set -g TMUX ""
if _is tmux
set TMUX "tmux"
_log SshTmuxInstaller "\"user\""
else if _is $HOME/.warp/tmux/execute_tmux.sh
set TMUX "$HOME/.warp/tmux/execute_tmux.sh"
_log SshTmuxInstaller "\"warp\""
end
if test -n "$TMUX"
command $TMUX -V | awk '{print $2}' | read VER;
if test -z "$VER"
_err "\"TmuxFailed\""
else if test (printf '%s\n' "$VER" "2.9" | sort -V | tail -n1) = "2.9"
set -l DETAILS (_system_details)
_err "{\"UnsupportedTmuxVersion\": $DETAILS}"
else;
return 0
end
else;
set -l DETAILS (_system_details)
_err "{\"TmuxNotInstalled\": $DETAILS}"
end
return 1
end
_check_tmux; and command $TMUX -Lwarp -CC; and exit
@@ -0,0 +1,51 @@
function _is
command -v $argv[1] >/dev/null 2>&1
end
function _l
set _m (printf "{\"hook\": \"%s\", \"value\": %s}" $argv[1] $argv[2] | od -An -v -tx1 | tr -d " \n")
printf '\033\120\044\144%s\234' $_m
end
function _e
_l RemoteWarpificationIsUnavailable $argv[1]
end
function _sd
set -l PK ""
if _is brew
set PK "homebrew"
end
printf '{"os": "Darwin", "pkg": "%s", "shell": "fish", "root_access": "no_root_access", "writable_home": %s}' "$PK" $( [ -w ~ ] && echo true || echo false )
end
# _check_tmux is used in tmux install script post install!
function _check_tmux
set -g TMUX "$HOME/.warp/tmux/execute_tmux.sh"
if _is "$TMUX"
_l SshTmuxInstaller "\"warp\""
else if _is tmux
set TMUX "tmux"
_l SshTmuxInstaller "\"user\""
end
if test -n "$TMUX"
$TMUX -V | awk '{print $2}' | read V;
if test -z "$V"
_e "\"TmuxFailed\""
else if test (printf '%s\n' "$V" "2.9" | sort -V | tail -n1) = "2.9"
set -l D (_sd)
_e "{\"UnsupportedTmuxVersion\": $D}"
else;
return 0
end
else;
set -l D (_sd)
_e "{\"TmuxNotInstalled\": $D}"
end
return 1
end
_check_tmux; and $TMUX -Lwarp -CC; and exit
@@ -0,0 +1,5 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6.04039 1.07202C5.96043 0.976074 5.81309 0.976074 5.73314 1.07202L1.16014 6.55957C1.05162 6.68994 1.14415 6.8877 1.31382 6.8877H4.88682V22.6877C4.88682 22.7981 4.9763 22.8877 5.08677 22.8877H6.68675C6.73851 22.8877 6.78575 22.8679 6.82127 22.8357C6.86155 22.7991 6.88682 22.7463 6.88682 22.6877V6.8877H10.4597C10.6294 6.8877 10.7219 6.68994 10.6134 6.55957L6.04039 1.07202Z" fill="#FF0000"/>
<path d="M22.8867 9.14551V11H12.9306V9.72949L19.03 2.86133H12.8867V1H22.8253V2.23633L16.7826 9.14551H22.8867Z" fill="#FF0000"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M19.0548 13H16.6972L12.8867 23H15.5719L16.1699 21.1318H19.5947L20.1944 23H22.8867L19.0548 13ZM18.9972 19.2705H16.7657L17.8799 15.7903L18.9972 19.2705Z" fill="#FF0000"/>
</svg>

After

Width:  |  Height:  |  Size: 851 B

@@ -0,0 +1,5 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.88668 1.19995C4.88668 1.0896 4.97628 1 5.08663 1H6.68673C6.79708 1 6.88668 1.0896 6.88668 1.19995V17H10.4597C10.6292 17 10.7219 17.1978 10.6134 17.3281L6.04036 22.8157C5.96041 22.9116 5.81295 22.9116 5.73299 22.8157L1.15999 17.3281C1.05147 17.1978 1.14412 17 1.31368 17H4.88668V1.19995Z" fill="#FF0000"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M19.0548 1L22.8867 11H20.1944L19.5947 9.13184H16.1699L15.5719 11H12.8867L16.6972 1H19.0548ZM16.7657 7.27051H18.9972L17.8798 3.79028L16.7657 7.27051Z" fill="#FF0000"/>
<path d="M22.8867 23V21.1455H16.7826L22.8253 14.2363V13H12.8867V14.8613H19.03L12.9306 21.7295V23H22.8867Z" fill="#FF0000"/>
</svg>

After

Width:  |  Height:  |  Size: 760 B

+3
View File
@@ -0,0 +1,3 @@
<svg width="14" height="15" viewBox="0 0 14 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M7 0.5C6.44772 0.5 6 0.947716 6 1.5V6.5H1C0.447715 6.5 0 6.94772 0 7.5C0 8.05228 0.447716 8.5 1 8.5H6V13.5C6 14.0523 6.44772 14.5 7 14.5C7.55228 14.5 8 14.0523 8 13.5V8.5H13C13.5523 8.5 14 8.05228 14 7.5C14 6.94771 13.5523 6.5 13 6.5H8V1.5C8 0.947715 7.55228 0.5 7 0.5Z" fill="white" fill-opacity="0.6"/>
</svg>

After

Width:  |  Height:  |  Size: 457 B

@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.91999 2.04111C5.66699 2.05811 5.34299 2.09211 5.19999 2.11811C4.02699 2.32611 2.99899 3.08611 2.46499 4.14111C2.22499 4.61311 2.10899 5.07211 2.04099 5.82011C1.98699 6.40711 1.98699 15.0181 2.04099 15.4891C2.18999 16.7951 3.01899 17.9661 4.21999 18.5701C4.70499 18.8141 5.43599 18.9971 5.92999 19.0001C5.99499 19.0001 5.99999 19.0741 5.99999 19.9951C5.99999 20.5421 6.01799 21.0851 6.03999 21.2021C6.23699 22.2371 7.23999 22.7451 8.16599 22.2771C8.29199 22.2141 9.18299 21.5311 10.147 20.7601C12.016 19.2661 12.24 19.1161 12.72 19.0411C12.874 19.0171 13.952 19.0001 15.36 19.0001C18.126 19.0001 18.606 18.9701 19.32 18.7551C20.422 18.4231 21.423 17.4221 21.755 16.3201C21.987 15.5491 22 15.2481 22 10.5001C22 5.75211 21.987 5.45111 21.755 4.68011C21.424 3.58111 20.465 2.62211 19.32 2.24611C18.644 2.02411 18.8 2.02911 12.34 2.01911C9.06199 2.01411 6.17299 2.02411 5.91999 2.04111ZM18.492 4.09111C18.894 4.18811 19.109 4.30911 19.4 4.60011C19.696 4.89511 19.814 5.10911 19.912 5.52811C19.974 5.79511 19.98 6.22811 19.98 10.5001C19.98 15.6081 19.986 15.4721 19.752 15.9521C19.627 16.2101 19.19 16.6381 18.92 16.7671C18.516 16.9611 18.432 16.9661 15.36 17.0001C12.389 17.0331 12.316 17.0371 11.8 17.2061C11.177 17.4101 10.986 17.5391 9.27299 18.9051L8.00499 19.9151L7.99299 18.7681C7.98099 17.6701 7.97599 17.6131 7.89099 17.4531C7.79899 17.2821 7.65599 17.1571 7.45499 17.0751C7.38799 17.0471 6.97399 17.0151 6.45999 16.9971C5.72599 16.9721 5.54099 16.9531 5.34599 16.8841C4.77199 16.6811 4.36599 16.2841 4.12799 15.6901L4.01999 15.4201V10.6201C4.01999 6.23411 4.02599 5.79511 4.08799 5.52811C4.17499 5.15511 4.29399 4.91811 4.51999 4.66711C4.88299 4.26211 5.28199 4.09111 5.97999 4.03911C6.19999 4.02311 9.04399 4.01311 12.3 4.01811C17.643 4.02411 18.247 4.03211 18.492 4.09111ZM15.16 7.02311C15.072 7.06111 14.278 7.82511 13.01 9.09111L11.001 11.0981L10.25 10.3521C9.47199 9.57711 9.28599 9.44211 8.99999 9.44211C8.80099 9.44211 8.55299 9.56611 8.32199 9.78211C7.97699 10.1041 7.87099 10.4691 8.01899 10.8231C8.06399 10.9321 8.44999 11.3481 9.27199 12.1741C10.516 13.4251 10.684 13.5591 11 13.5591C11.34 13.5591 11.417 13.4921 13.968 10.9341C16.503 8.39311 16.558 8.33211 16.559 8.00011C16.56 7.68311 16.169 7.16311 15.82 7.01811C15.644 6.94411 15.339 6.94611 15.16 7.02311Z" fill="#FF0000"/>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.87174 4.5183C7.59057 6.24771 6.42262 8.09138 5.39473 10.0021C4.48588 11.6915 4 13.6181 4 15.5639V23.2047C4 23.4445 4.30708 23.5162 4.40168 23.2985L6.42891 18.6329C6.49385 18.4835 6.55836 18.3362 6.63183 18.1913C7.0861 17.2952 8.98967 13.9364 12 13.9364C15.0103 13.9364 16.9139 17.2952 17.3682 18.1913C17.4416 18.3362 17.5062 18.4835 17.5711 18.6329L19.5983 23.2985C19.6929 23.5162 20 23.4445 20 23.2047V15.5639C20 13.6181 19.5141 11.6915 18.6053 10.0021C17.5774 8.09138 16.4094 6.24771 15.1283 4.5183L12.3309 0.742204C12.1623 0.514643 11.8377 0.514643 11.6691 0.742204L8.87174 4.5183ZM10.953 5.10851C10.5202 5.72876 10.1585 6.40155 9.87551 7.11267L9.7464 7.4371C9.71243 7.52247 9.69492 7.61421 9.69492 7.7069C9.69492 7.92492 9.77004 8.13541 9.90611 8.29864L9.92118 8.31673C10.0797 8.50692 10.2605 8.67744 10.481 8.77577C10.788 8.91267 11.3067 9.08115 12 9.08115C12.6933 9.08115 13.2119 8.91267 13.519 8.77577C13.7395 8.67744 13.9203 8.50692 14.0788 8.31671L14.0939 8.29863C14.23 8.1354 14.3051 7.92492 14.3051 7.70691C14.3051 7.61422 14.2876 7.52247 14.2536 7.43709L14.1245 7.11265C13.8415 6.40154 13.4798 5.72876 13.047 5.10853L12.1723 3.85503C12.0866 3.73218 11.9135 3.73218 11.8277 3.85503L10.953 5.10851Z" fill="#FF0000"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.7139 1.03693C12.6549 1.05593 12.5499 1.10493 12.4789 1.14593C12.3369 1.22893 3.08588 12.3039 2.83488 12.6919C2.63488 13.0019 2.57988 13.1899 2.58288 13.5599C2.58588 13.9599 2.72588 14.2779 3.02288 14.5599C3.26088 14.7839 3.48188 14.8939 3.82488 14.9579C3.97588 14.9849 5.22788 14.9999 7.45988 14.9999H10.8649L10.4309 18.4499C9.95588 22.2179 9.94888 22.3189 10.1379 22.6039C10.2749 22.8119 10.5879 22.9619 10.9429 22.9899C11.1629 23.0079 11.2269 22.9959 11.4169 22.9029C11.6249 22.8009 11.8889 22.4929 16.3229 17.1719C18.8999 14.0789 21.0789 11.4409 21.1649 11.3079C21.3649 10.9979 21.4199 10.8099 21.4169 10.4399C21.4159 10.1989 21.3929 10.0909 21.3019 9.88893C21.1499 9.55293 20.8189 9.24393 20.4729 9.11493L20.2199 9.02093L16.6779 9.00893L13.1349 8.99693L13.5689 5.54893C13.8729 3.13793 13.9989 2.01893 13.9869 1.82993C13.9649 1.46993 13.8369 1.27093 13.5409 1.13493C13.3099 1.02893 12.8899 0.978932 12.7139 1.03693ZM11.2779 7.68193C11.0959 9.12593 11.0009 10.0199 11.0119 10.1629C11.0429 10.5229 11.1839 10.7469 11.4799 10.9049C11.6129 10.9759 11.8009 10.9809 15.2349 10.9999L18.8499 11.0199L15.6549 14.8539C13.8979 16.9629 12.4549 18.6629 12.4489 18.6329C12.4419 18.6019 12.5649 17.5599 12.7219 16.3179C12.9219 14.7289 12.9999 13.9919 12.9839 13.8299C12.9459 13.4449 12.7879 13.2179 12.4549 13.0709C12.3659 13.0309 11.5359 13.0159 8.74488 12.9999L5.14988 12.9799L8.34488 9.14593C10.1019 7.03693 11.5449 5.33693 11.5509 5.36693C11.5579 5.39793 11.4349 6.43993 11.2779 7.68193Z" fill="#FF0000"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.28 1.02299C11.203 1.03199 10.951 1.05899 10.72 1.08299C9.52703 1.20999 8.33703 1.55799 7.18003 2.11999C6.04503 2.67099 5.19303 3.28499 4.23803 4.23899C3.27703 5.19799 2.64303 6.07999 2.09703 7.21999C0.301033 10.968 0.728033 15.286 3.22603 18.633C3.70103 19.269 4.75303 20.316 5.40003 20.797C9.36403 23.745 14.666 23.734 18.637 20.77C19.246 20.316 20.316 19.246 20.77 18.637C23.744 14.652 23.744 9.34799 20.77 5.36299C20.316 4.75499 19.247 3.68599 18.64 3.23499C17.045 2.04899 15.365 1.35999 13.423 1.09599C13 1.03799 11.574 0.989989 11.28 1.02299ZM13.32 3.10099C15.883 3.48799 18.124 4.93099 19.56 7.11999C19.863 7.58299 20.303 8.47899 20.492 9.01999C20.838 10.013 20.977 10.865 20.977 12C20.977 13.493 20.72 14.621 20.08 15.94C19.375 17.394 18.311 18.607 16.927 19.532C16.138 20.06 14.876 20.588 13.908 20.797C11.266 21.366 8.47903 20.708 6.37003 19.019C4.85703 17.807 3.72203 16.029 3.26703 14.16C3.08103 13.397 3.02303 12.888 3.02303 12C3.02303 10.507 3.28003 9.37899 3.92003 8.05999C4.97103 5.89099 6.87703 4.22099 9.16003 3.46599C9.86503 3.23299 10.432 3.11799 11.34 3.02399C11.662 2.99099 12.911 3.03899 13.32 3.10099ZM11.614 7.05699C11.377 7.13099 11.212 7.26099 11.109 7.45299C11.02 7.61899 11.02 7.62899 11.009 9.91099C11.001 11.392 11.012 12.256 11.039 12.355C11.144 12.747 11.433 12.961 11.896 12.991C12.381 13.022 12.699 12.882 12.88 12.558L12.98 12.38V9.99999V7.61999L12.891 7.45299C12.842 7.36199 12.746 7.24699 12.678 7.19899C12.414 7.00999 11.957 6.94999 11.614 7.05699ZM11.614 15.055C11.22 15.184 11.039 15.437 11.009 15.9C10.978 16.381 11.119 16.699 11.442 16.88C11.597 16.967 11.669 16.98 12 16.98C12.312 16.98 12.408 16.964 12.54 16.894C12.866 16.718 13 16.459 13 16C13 15.357 12.713 15.048 12.083 15.016C11.893 15.006 11.718 15.021 11.614 15.055Z" fill="#FF0000"/>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.4181 1.24123C11.1661 1.32123 3.16414 5.74223 2.83514 5.98323C2.41314 6.29223 2.15814 6.67623 2.05714 7.15523C1.97314 7.54823 1.97314 16.4522 2.05714 16.8452C2.17014 17.3812 2.49114 17.8132 3.01714 18.1392C3.53714 18.4612 11.0851 22.6362 11.3131 22.7292C11.5031 22.8052 11.6131 22.8202 11.9991 22.8202C12.3851 22.8202 12.4951 22.8052 12.6851 22.7292C12.9131 22.6362 20.4611 18.4612 20.9811 18.1392C21.3211 17.9282 21.6321 17.6092 21.7781 17.3222C22.0011 16.8812 21.9981 16.9692 21.9981 12.0002C21.9981 7.03623 22.0011 7.11823 21.7801 6.68123C21.6561 6.43823 21.4231 6.17323 21.1631 5.98323C20.8071 5.72223 12.8321 1.32123 12.5671 1.23923C12.2321 1.13623 11.7471 1.13723 11.4181 1.24123ZM16.0031 5.37023L19.9791 7.58023L19.9891 11.9852C19.9971 15.4792 19.9891 16.3982 19.9491 16.4312C19.8681 16.4972 12.0381 20.8402 11.9991 20.8402C11.9601 20.8402 4.13014 16.4972 4.04914 16.4312C4.00914 16.3982 4.00114 15.4792 4.00914 11.9852L4.01914 7.58023L7.99514 5.37023C10.1831 4.15423 11.9841 3.16023 11.9991 3.16023C12.0141 3.16023 13.8151 4.15423 16.0031 5.37023ZM11.6481 7.03723C11.4381 7.09123 11.2071 7.26723 11.1101 7.45023L11.0191 7.62023L11.0081 9.91123C11.0001 11.3922 11.0111 12.2562 11.0381 12.3552C11.1431 12.7472 11.4321 12.9612 11.8951 12.9912C12.3801 13.0222 12.6981 12.8822 12.8791 12.5582L12.9791 12.3802V10.0002V7.62023L12.8791 7.44223C12.7251 7.16723 12.4831 7.03723 12.0931 7.01823C11.9201 7.01023 11.7201 7.01823 11.6481 7.03723ZM11.6131 15.0552C11.2191 15.1842 11.0381 15.4372 11.0081 15.9002C10.9771 16.3812 11.1181 16.6992 11.4411 16.8802C11.5961 16.9672 11.6681 16.9802 11.9991 16.9802C12.3111 16.9802 12.4071 16.9642 12.5391 16.8942C12.8651 16.7182 12.9991 16.4592 12.9991 16.0002C12.9991 15.3572 12.7121 15.0482 12.0821 15.0162C11.8921 15.0062 11.7171 15.0212 11.6131 15.0552Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.44732 1.36074C3.93465 1.39474 3.61532 1.47007 3.28732 1.63407C2.55998 1.99741 2.07198 2.64074 1.91665 3.44007C1.84265 3.81941 1.83398 4.30341 1.83398 8.00007C1.83398 12.2387 1.83798 12.3507 1.99732 12.8801C2.21865 13.6147 2.88598 14.2821 3.62065 14.5034C4.14998 14.6627 4.26198 14.6667 8.50065 14.6667C12.7393 14.6667 12.8513 14.6627 13.3807 14.5034C14.1153 14.2821 14.7827 13.6147 15.004 12.8801C15.1633 12.3507 15.1673 12.2387 15.1673 8.00007C15.1673 3.76141 15.1633 3.64941 15.004 3.12007C14.7833 2.38741 14.144 1.74807 13.3807 1.49741C12.93 1.34941 13.034 1.35274 8.72732 1.34607C6.54198 1.34274 4.61598 1.34941 4.44732 1.36074ZM12.8287 2.72741C13.0967 2.79207 13.24 2.87274 13.434 3.06674C13.6313 3.26341 13.71 3.40607 13.7753 3.68541C13.8173 3.86474 13.8207 4.20874 13.8207 8.00007C13.8207 11.7914 13.8173 12.1354 13.7753 12.3147C13.71 12.5941 13.6313 12.7361 13.434 12.9341C13.2347 13.1341 13.0473 13.2341 12.7793 13.2854C12.5073 13.3367 4.49398 13.3367 4.22198 13.2847C3.94732 13.2334 3.76598 13.1361 3.56732 12.9354C3.36932 12.7361 3.29132 12.5934 3.22598 12.3147C3.18398 12.1354 3.18065 11.7914 3.18065 8.00007C3.18065 4.20874 3.18398 3.86474 3.22598 3.68541C3.28398 3.43674 3.36332 3.27874 3.51398 3.11141C3.75598 2.84141 4.02198 2.72741 4.48732 2.69274C4.63398 2.68207 6.52998 2.67541 8.70065 2.67874C12.2627 2.68274 12.6653 2.68807 12.8287 2.72741ZM8.24332 4.70474C8.08532 4.75407 7.97532 4.84074 7.90665 4.96874C7.84732 5.07941 7.84732 5.08607 7.83998 6.60741C7.83465 7.59474 7.84198 8.17074 7.85998 8.23674C7.92998 8.49807 8.12265 8.64074 8.43132 8.66074C8.75465 8.68141 8.96665 8.58807 9.08732 8.37207L9.15398 8.25341V6.66674V5.08007L9.09465 4.96874C9.06198 4.90807 8.99798 4.83141 8.95265 4.79941C8.77665 4.67341 8.47198 4.63341 8.24332 4.70474ZM8.24332 10.0367C7.98065 10.1227 7.85998 10.2914 7.83998 10.6001C7.81932 10.9207 7.91332 11.1327 8.12865 11.2534C8.23198 11.3114 8.27998 11.3201 8.50065 11.3201C8.70865 11.3201 8.77265 11.3094 8.86065 11.2627C9.07798 11.1454 9.16732 10.9727 9.16732 10.6667C9.16732 10.2381 8.97598 10.0321 8.55598 10.0107C8.42932 10.0041 8.31265 10.0141 8.24332 10.0367Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.64 1.6821C11.044 1.8061 10.374 2.3791 9.86502 3.2001C9.50202 3.7861 1.48302 17.6701 1.31602 18.0011C0.962016 18.7071 0.829016 19.3611 0.936016 19.8751C1.13802 20.8421 1.91602 21.3641 3.32302 21.4771C4.06002 21.5361 19.94 21.5361 20.677 21.4771C21.842 21.3841 22.559 21.0201 22.893 20.3521C23.224 19.6901 23.158 18.9511 22.682 18.0001C22.425 17.4861 14.339 3.5221 14.015 3.0311C13.579 2.3721 13.018 1.8801 12.544 1.7391C12.28 1.6611 11.866 1.6341 11.64 1.6821ZM12.146 3.8501C12.209 3.9221 12.317 4.0711 12.386 4.1801C12.626 4.5601 20.734 18.5811 20.888 18.8841C20.973 19.0511 21.047 19.2381 21.052 19.3011C21.059 19.4021 21.042 19.4191 20.9 19.4571C20.675 19.5171 3.32502 19.5171 3.10002 19.4571C2.95602 19.4191 2.94102 19.4021 2.94802 19.2971C2.95302 19.2331 3.02602 19.0451 3.11202 18.8801C3.27502 18.5661 11.394 4.5281 11.614 4.1801C11.757 3.9531 11.953 3.7201 12 3.7201C12.017 3.7201 12.083 3.7791 12.146 3.8501ZM11.649 8.0391C11.442 8.0881 11.209 8.2661 11.111 8.4501L11.02 8.6201L11.009 10.9111C11.001 12.3921 11.012 13.2561 11.039 13.3551C11.1 13.5831 11.242 13.7681 11.442 13.8801C11.598 13.9671 11.668 13.9801 12 13.9791C12.505 13.9771 12.715 13.8741 12.894 13.5401C12.979 13.3821 12.98 13.3571 12.98 11.0001V8.6201L12.891 8.4531C12.842 8.3621 12.746 8.2471 12.678 8.1991C12.432 8.0241 11.999 7.9561 11.649 8.0391ZM11.649 16.0371C11.263 16.1361 11.039 16.4381 11.009 16.9001C10.978 17.3811 11.119 17.6991 11.442 17.8801C11.597 17.9671 11.669 17.9801 12 17.9801C12.312 17.9801 12.408 17.9641 12.54 17.8941C12.866 17.7181 13 17.4591 13 17.0001C13 16.3561 12.712 16.0471 12.083 16.0171C11.916 16.0091 11.721 16.0181 11.649 16.0371Z" fill="#FF0000"/>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

@@ -0,0 +1,4 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7.44817 18.5035H13.0291L12.6701 20C12.4552 19.9995 12.2329 19.9992 12.003 19.9986L6.21278 19.9846L5.81207 19.8934C3.36874 19.3374 1.62061 17.5813 1.09767 15.159C0.967442 14.5519 0.967442 13.4419 1.09767 12.8349C1.65467 10.2543 3.71132 8.33992 6.24682 8.04139L6.47824 8.01431L6.76072 7.62962C6.917 7.41825 7.21855 7.07363 7.43292 6.86426C8.32809 5.98712 9.45121 5.38427 10.6574 5.12434L7.44817 18.5035Z" fill="#FF0000"/>
<path d="M12.3054 5C13.0309 5.04012 13.7882 5.18553 14.3292 5.40566C15.909 6.0478 17.2003 7.23294 17.8594 8.64845L18.0337 9.02208L18.2741 9.04916C20.0964 9.25853 21.8816 10.6309 22.5918 12.37C23.2166 13.9005 23.1429 15.546 22.4454 16.9402L22.4396 16.9403H9.41673L12.3054 5Z" fill="#FF0000"/>
</svg>

After

Width:  |  Height:  |  Size: 825 B

+12
View File
@@ -0,0 +1,12 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_122279_13)">
<path d="M11.9316 11.666L14.8984 22.7715L12.207 23.4902L10.0684 15.4902L4.18457 21.3477L2.21875 19.373L8.09473 13.5244L0.102539 11.3926L0.821289 8.7002L11.9316 11.666Z" fill="#FF0000"/>
<path d="M16.2334 7.35645L19.2002 18.4619L16.5098 19.1807L13.957 9.63184L4.40527 7.08301L5.12305 4.3916L16.2334 7.35645Z" fill="#FF0000"/>
<path d="M20.5547 3.04785L23.5215 14.1533L20.8311 14.8721L18.2783 5.32324L8.72656 2.77441L9.44434 0.0820312L20.5547 3.04785Z" fill="#FF0000"/>
</g>
<defs>
<clipPath id="clip0_122279_13">
<rect width="24" height="24" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 717 B

+4
View File
@@ -0,0 +1,4 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.9977 0C10.9293 2.61948 10.2849 4.33293 9.09535 6.87455C9.8247 7.64765 10.7199 8.54796 12.1738 9.56478C10.6107 8.9216 9.54456 8.27587 8.74779 7.60578C7.2254 10.7825 4.84025 15.3076 0 24.0045C3.80427 21.8082 6.75327 20.4542 9.5016 19.9375C9.38359 19.43 9.31648 18.8809 9.32104 18.308L9.32556 18.1862C9.38594 15.7489 10.6538 13.8746 12.1557 14.0019C13.6577 14.1291 14.8251 16.2093 14.7647 18.6466C14.7534 19.1052 14.7016 19.5464 14.6112 19.9556C17.3297 20.4874 20.2472 21.8379 24 24.0045C23.26 22.6421 22.5995 21.4141 21.9688 20.2445C20.9753 19.4744 19.939 18.4722 17.8251 17.3872C19.278 17.7648 20.3183 18.2003 21.1292 18.6872C14.7162 6.74735 14.1969 5.16079 11.9977 0Z" fill="#050505"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.9977 0C10.9293 2.61948 10.2849 4.33293 9.09535 6.87455C9.8247 7.64765 10.7199 8.54796 12.1738 9.56478C10.6107 8.9216 9.54456 8.27587 8.74779 7.60578C7.2254 10.7825 4.84025 15.3076 0 24.0045C3.80427 21.8082 6.75327 20.4542 9.5016 19.9375C9.38359 19.43 9.31648 18.8809 9.32104 18.308L9.32556 18.1862C9.38594 15.7489 10.6538 13.8746 12.1557 14.0019C13.6577 14.1291 14.8251 16.2093 14.7647 18.6466C14.7534 19.1052 14.7016 19.5464 14.6112 19.9556C17.3297 20.4874 20.2472 21.8379 24 24.0045C23.26 22.6421 22.5995 21.4141 21.9688 20.2445C20.9753 19.4744 19.939 18.4722 17.8251 17.3872C19.278 17.7648 20.3183 18.2003 21.1292 18.6872C14.7162 6.74735 14.1969 5.16079 11.9977 0Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

@@ -0,0 +1,3 @@
<svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.07994 2.69716C6.92128 2.7785 2.10328 7.60383 2.02594 7.75783C1.94928 7.91183 1.94928 8.08783 2.02594 8.24183C2.09861 8.3865 6.83128 13.1398 7.00795 13.2445C7.08461 13.2905 7.17594 13.3172 7.28794 13.3258C7.58328 13.3492 7.80128 13.2505 7.91994 13.0385L7.98661 12.9198L7.99461 11.7938L8.00261 10.6678L11.2879 10.6605L14.5733 10.6532L14.7466 10.5705C14.8419 10.5252 14.9726 10.4352 15.0373 10.3705C15.1019 10.3058 15.1919 10.1752 15.2373 10.0798L15.3199 9.9065V7.99983V6.09316L15.2373 5.91983C15.0953 5.62183 14.8339 5.42116 14.5099 5.3605C14.4179 5.34316 13.2226 5.33316 11.1839 5.33316H8.00195L7.99461 4.23316L7.98661 3.13316L7.91395 3.00916C7.83861 2.88183 7.70528 2.7605 7.55461 2.68316C7.43594 2.6225 7.21194 2.62916 7.07994 2.69716ZM6.74661 6.37183C6.81994 6.50316 6.94261 6.5985 7.08994 6.63916C7.15261 6.6565 8.39328 6.6665 10.5933 6.6665H13.9999V7.99983V9.33316H10.6039C6.96328 9.33316 7.07261 9.32916 6.88128 9.46583C6.83594 9.49783 6.77194 9.5745 6.73928 9.63516C6.68395 9.73916 6.67928 9.78916 6.66661 10.3932L6.65328 11.0405L5.13328 9.51983L3.61328 7.99983L5.13328 6.47983L6.65328 4.95916L6.66661 5.6065C6.67928 6.2345 6.68194 6.2565 6.74661 6.37183Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.62 2.04604C11.412 2.15304 4.27502 9.27204 4.12702 9.52004C4.03302 9.67704 4.02002 9.74304 4.02002 10.04C4.02002 10.328 4.03502 10.407 4.12002 10.558C4.23002 10.755 4.41402 10.898 4.63502 10.959C4.72102 10.983 5.43502 11 6.38902 11H7.99802L8.00902 15.93L8.02002 20.86L8.14402 21.12C8.30102 21.45 8.55002 21.699 8.88002 21.856L9.14002 21.98H12H14.86L15.12 21.856C15.45 21.699 15.699 21.45 15.856 21.12L15.98 20.86L15.991 15.932L16.002 11.003L17.651 10.992L19.3 10.98L19.486 10.871C19.964 10.589 20.17 10.056 19.961 9.63704C19.839 9.39404 12.614 2.16504 12.372 2.04404C12.151 1.93404 11.836 1.93504 11.62 2.04604ZM14.297 6.71704L16.574 8.99504L15.616 9.00704C14.678 9.02004 14.653 9.02204 14.459 9.12204C14.245 9.23304 14.105 9.40404 14.041 9.63504C14.015 9.72904 14 11.59 14 14.89V20H12.001H10.001L9.99102 14.81L9.98002 9.62004L9.89102 9.45304C9.84202 9.36204 9.74602 9.24704 9.67802 9.19904C9.43902 9.02804 9.24302 9.00004 8.30402 9.00004H7.42002L9.70002 6.72004C10.954 5.46604 11.989 4.44004 12 4.44004C12.011 4.44004 13.045 5.46504 14.297 6.71704Z" fill="#FF0000"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

@@ -0,0 +1,3 @@
<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.2802 0.0107821C10.2032 0.0197821 9.95121 0.0467821 9.72021 0.0707821C8.21621 0.230782 6.64421 0.768782 5.30321 1.58278C3.89421 2.43778 2.55521 3.75678 1.66121 5.16778C1.37721 5.61678 0.893205 6.60178 0.701205 7.12078C-0.162795 9.46278 -0.229795 11.9608 0.508205 14.2878C1.26421 16.6738 2.83021 18.7598 4.90021 20.1388C5.53221 20.5598 5.80721 20.6878 6.07421 20.6838C6.19821 20.6818 6.35621 20.6518 6.42421 20.6158C6.72421 20.4608 7.04021 19.9218 7.04021 19.5658C7.04021 19.2218 6.89521 19.0478 6.27121 18.6428C5.35821 18.0498 4.80721 17.5808 4.21421 16.8918C3.28021 15.8068 2.55021 14.3938 2.24721 13.0878C2.08021 12.3638 2.02521 11.8448 2.02421 10.9878C2.02221 9.49778 2.27921 8.36778 2.92021 7.04778C3.79921 5.23478 5.24721 3.78678 7.06021 2.90778C8.37921 2.26778 9.50721 2.01078 11.0002 2.01078C12.4932 2.01078 13.6212 2.26778 14.9402 2.90778C16.7532 3.78678 18.2012 5.23478 19.0802 7.04778C19.7212 8.36778 19.9782 9.49778 19.9762 10.9878C19.9752 12.5148 19.6952 13.7168 19.0372 15.0178C18.2922 16.4928 17.2732 17.6228 15.8282 18.5758C15.0942 19.0588 14.9602 19.2118 14.9602 19.5658C14.9602 19.9218 15.2762 20.4608 15.5762 20.6158C15.6442 20.6518 15.8022 20.6818 15.9262 20.6838C16.1932 20.6878 16.4682 20.5598 17.1002 20.1388C20.1302 18.1198 21.9982 14.6548 21.9992 11.0478C22.0012 8.59678 21.2462 6.33278 19.7672 4.34778C19.3172 3.74278 18.2472 2.67378 17.6402 2.22278C16.0452 1.03678 14.3652 0.347782 12.4232 0.0837821C12.0002 0.0257821 10.5742 -0.0222179 10.2802 0.0107821ZM10.5302 6.07078C10.3932 6.13778 10.2492 6.23978 10.2102 6.29878C10.1722 6.35678 9.2372 7.31478 8.1342 8.42678C6.7662 9.80578 6.10121 10.5038 6.04021 10.6248C5.86321 10.9768 5.95221 11.3418 6.29921 11.6888C6.64621 12.0358 7.01121 12.1248 7.36321 11.9478C7.47921 11.8888 7.96121 11.4398 8.76921 10.6348L9.9992 9.41178L10.0092 15.3898L10.0202 21.3678L10.1062 21.5278C10.2852 21.8628 10.4962 21.9658 11.0002 21.9658C11.5042 21.9658 11.7152 21.8628 11.8942 21.5278L11.9802 21.3678L11.9912 15.3898L12.0012 9.41178L13.2312 10.6348C14.0392 11.4398 14.5212 11.8888 14.6372 11.9478C14.9892 12.1248 15.3542 12.0358 15.7012 11.6888C16.0482 11.3418 16.1372 10.9768 15.9602 10.6248C15.8992 10.5038 15.2342 9.80578 13.8662 8.42678C12.7632 7.31478 11.8282 6.35678 11.7892 6.29778C11.7512 6.23978 11.6042 6.13678 11.4642 6.06978C11.1202 5.90578 10.8712 5.90578 10.5302 6.07078Z" fill="#FF0000"/>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

@@ -0,0 +1,10 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_121540_6)">
<path d="M8.71005 11.71L11.3001 14.3C11.6901 14.69 12.3201 14.69 12.7101 14.3L15.3001 11.71C15.9301 11.08 15.4801 10 14.5901 10H9.41005C8.52005 10 8.08005 11.08 8.71005 11.71Z" fill="#FF0000"/>
</g>
<defs>
<clipPath id="clip0_121540_6">
<rect width="24" height="24" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 441 B

+3
View File
@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.62 4.04606C11.521 4.09706 10.129 5.45606 7.96005 7.61806C6.03505 9.53806 4.39905 11.1501 4.32405 11.2011C4.14905 11.3211 3.95105 11.7441 3.95105 12.0001C3.95105 12.2391 4.15005 12.6821 4.30405 12.7841C4.36705 12.8261 6.00305 14.4381 7.93905 16.3661C10.423 18.8401 11.512 19.8981 11.637 19.9611C11.99 20.1371 12.354 20.0481 12.701 19.7011C13.048 19.3541 13.137 18.9901 12.9611 18.6371C12.8981 18.5131 12.0581 17.6441 10.147 15.7301L7.42105 13.0001H13.321C17.149 13.0001 19.271 12.9851 19.365 12.9591C19.586 12.8981 19.77 12.7551 19.88 12.5581C19.967 12.4021 19.98 12.3321 19.979 12.0001C19.9781 11.5671 19.898 11.3551 19.678 11.1991C19.389 10.9931 19.616 11.0001 13.304 11.0001H7.42105L10.147 8.27006C12.0581 6.35606 12.8981 5.48706 12.9611 5.36306C13.137 5.01006 13.048 4.64606 12.701 4.29906C12.361 3.95906 11.967 3.86706 11.62 4.04606Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1010 B

@@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.74266 2.03803C7.58466 2.08736 7.47466 2.17403 7.40599 2.30203L7.34666 2.41336L7.33999 7.06603L7.33266 11.718L5.84666 10.2354C4.86266 9.25403 4.32199 8.73336 4.24799 8.69603C4.01332 8.5787 3.75932 8.63936 3.53266 8.86603C3.30132 9.09736 3.24199 9.34003 3.35999 9.57536C3.40132 9.65803 4.01932 10.2967 5.42266 11.7074C6.52466 12.8154 7.44932 13.7554 7.47732 13.7974C7.54532 13.9 7.84066 14.0327 7.99999 14.0327C8.15932 14.0327 8.45466 13.9 8.52266 13.7974C8.55066 13.7554 9.47532 12.8154 10.5773 11.7074C11.9807 10.2967 12.5987 9.65803 12.64 9.57536C12.758 9.34003 12.6987 9.09736 12.4673 8.86603C12.2407 8.63936 11.9867 8.5787 11.752 8.69603C11.678 8.73336 11.1373 9.25403 10.154 10.2354L8.66732 11.718L8.66066 7.06603L8.65332 2.41336L8.59399 2.30203C8.56132 2.24136 8.49732 2.1647 8.45199 2.1327C8.27599 2.0067 7.97132 1.9667 7.74266 2.03803Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1014 B

@@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.68666 2.05667C7.59466 2.10134 7.49866 2.16934 7.47332 2.20801C7.44732 2.24667 6.52466 3.18467 5.42266 4.29267C4.01932 5.70334 3.40132 6.34201 3.35999 6.42467C3.24199 6.66001 3.30132 6.90267 3.53266 7.13401C3.76399 7.36534 4.00666 7.42467 4.24199 7.30667C4.32399 7.26601 4.81599 6.79267 5.84666 5.76467L7.33332 4.28134V8.88067C7.33332 11.8793 7.34266 13.5133 7.36066 13.5767C7.43199 13.8333 7.62466 13.9747 7.93066 13.994C8.25399 14.0147 8.46599 13.9213 8.58666 13.7053L8.65332 13.5867L8.66066 8.93401L8.66732 4.28201L10.154 5.76467C11.184 6.79267 11.676 7.26601 11.758 7.30667C11.9933 7.42467 12.236 7.36534 12.4673 7.13401C12.6987 6.90267 12.758 6.66001 12.64 6.42467C12.5987 6.34201 11.9807 5.70334 10.5773 4.29267C9.47532 3.18467 8.55266 2.24667 8.52666 2.20801C8.50132 2.16934 8.40266 2.10067 8.30666 2.05534C8.07532 1.94601 7.91532 1.94667 7.68666 2.05667Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.626 4.04492C11.42 4.15392 11.146 4.43292 11.038 4.64392C10.924 4.86692 10.924 5.13192 11.039 5.36292C11.102 5.48692 11.942 6.35592 13.853 8.26992L16.579 10.9999H10.696C4.38402 10.9999 4.61102 10.9929 4.32202 11.1989C4.10002 11.3569 4.02002 11.5679 4.02002 11.9999C4.02002 12.3309 4.03302 12.4029 4.12002 12.5579C4.23002 12.7549 4.41402 12.8979 4.63502 12.9589C4.72902 12.9849 6.85102 12.9999 10.679 12.9999H16.579L13.853 15.7299C11.942 17.6439 11.102 18.5129 11.039 18.6369C10.863 18.9899 10.952 19.3539 11.299 19.7009C11.646 20.0479 12.01 20.1369 12.363 19.9609C12.488 19.8979 13.577 18.8399 16.061 16.3659C17.997 14.4379 19.633 12.8259 19.696 12.7839C19.85 12.6819 20.049 12.2389 20.049 11.9999C20.049 11.7439 19.851 11.3209 19.676 11.2009C19.601 11.1499 17.965 9.53792 16.04 7.61792C13.675 5.25892 12.485 4.10092 12.372 4.04392C12.152 3.93392 11.835 3.93492 11.626 4.04492Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.33366 8.66699C3.14477 8.66699 2.98644 8.6031 2.85866 8.47533C2.73088 8.34755 2.66699 8.18921 2.66699 8.00033C2.66699 7.81144 2.73088 7.6531 2.85866 7.52533C2.98644 7.39755 3.14477 7.33366 3.33366 7.33366H7.73366L11.067 4.00033H10.0003C9.81144 4.00033 9.6531 3.93644 9.52533 3.80866C9.39755 3.68088 9.33366 3.52255 9.33366 3.33366C9.33366 3.14477 9.39755 2.98644 9.52533 2.85866C9.6531 2.73088 9.81144 2.66699 10.0003 2.66699H12.667C12.8559 2.66699 13.0142 2.73088 13.142 2.85866C13.2698 2.98644 13.3337 3.14477 13.3337 3.33366V6.00033C13.3337 6.18921 13.2698 6.34755 13.142 6.47533C13.0142 6.6031 12.8559 6.66699 12.667 6.66699C12.4781 6.66699 12.3198 6.6031 12.192 6.47533C12.0642 6.34755 12.0003 6.18921 12.0003 6.00033V4.93366L8.65033 8.28366C8.5281 8.40588 8.38644 8.50033 8.22533 8.56699C8.06421 8.63366 7.89477 8.66699 7.71699 8.66699H3.33366ZM10.0003 13.3337C9.81144 13.3337 9.6531 13.2698 9.52533 13.142C9.39755 13.0142 9.33366 12.8559 9.33366 12.667C9.33366 12.4781 9.39755 12.3198 9.52533 12.192C9.6531 12.0642 9.81144 12.0003 10.0003 12.0003H11.067L9.41699 10.367C9.28366 10.2337 9.21699 10.0753 9.21699 9.89199C9.21699 9.70866 9.28366 9.55032 9.41699 9.41699C9.55032 9.28366 9.71144 9.21699 9.90033 9.21699C10.0892 9.21699 10.2503 9.28366 10.3837 9.41699L12.0003 11.067V10.0003C12.0003 9.81144 12.0642 9.6531 12.192 9.52533C12.3198 9.39755 12.4781 9.33366 12.667 9.33366C12.8559 9.33366 13.0142 9.39755 13.142 9.52533C13.2698 9.6531 13.3337 9.81144 13.3337 10.0003V12.667C13.3337 12.8559 13.2698 13.0142 13.142 13.142C13.0142 13.2698 12.8559 13.3337 12.667 13.3337H10.0003Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.2801 1.02399C11.2031 1.03299 10.9601 1.05899 10.7401 1.08299C7.4311 1.43699 4.3501 3.41099 2.5951 6.30299C1.8511 7.52799 1.3421 8.93899 1.1141 10.406C0.994102 11.175 0.984102 12.724 1.0931 13.46C1.4031 15.539 2.1761 17.33 3.4521 18.92C3.8971 19.474 4.7901 20.338 5.3641 20.769C7.9291 22.695 11.1211 23.411 14.2531 22.762C15.7041 22.461 17.1251 21.845 18.3201 20.998C18.9551 20.548 19.1201 20.337 19.1201 19.972C19.1201 19.727 18.9841 19.444 18.7541 19.207C18.4811 18.927 18.2261 18.838 17.9291 18.918C17.8381 18.942 17.4881 19.146 17.1511 19.371C16.4411 19.844 15.9991 20.083 15.3651 20.338C13.8751 20.937 12.2021 21.137 10.6651 20.899C8.7401 20.602 6.9701 19.7 5.6111 18.322C4.2491 16.943 3.3891 15.206 3.0931 13.24C2.9981 12.61 2.9981 11.386 3.0941 10.76C3.5361 7.84699 5.2141 5.44399 7.7611 4.07299C8.6371 3.60199 9.5421 3.29799 10.6201 3.11399C11.3121 2.99699 12.5881 2.98699 13.2801 3.09499C15.4631 3.43599 17.3491 4.46599 18.7811 6.09999C19.9191 7.39899 20.6471 8.99099 20.9031 10.739C20.9851 11.301 21.0251 12.981 20.9651 13.34C20.8961 13.748 20.7141 14.092 20.4031 14.404C20.0021 14.807 19.5471 15 19.0001 15C18.3171 15 17.6951 14.654 17.3121 14.063C17.0111 13.597 17.0251 13.756 17.0011 10.52L16.9801 7.61999L16.8801 7.44199C16.8161 7.32799 16.7091 7.21899 16.5831 7.14199C16.3991 7.02799 16.3611 7.01999 16.0001 7.01999C15.6391 7.01999 15.6011 7.02799 15.4171 7.14199C15.1851 7.28499 15.0471 7.50699 15.0131 7.79299L14.9901 7.99199L14.7251 7.82099C13.9951 7.35099 13.3461 7.12499 12.4701 7.03599C11.7421 6.96199 10.8981 7.06999 10.2481 7.31999C9.0671 7.77399 8.0721 8.67499 7.5261 9.78499C7.1581 10.533 7.0201 11.136 7.0201 12C7.0201 12.67 7.0781 13.044 7.2681 13.6C7.8461 15.291 9.2531 16.525 11.0401 16.907C11.5111 17.008 12.4891 17.008 12.9601 16.907C13.9351 16.698 14.7951 16.244 15.4811 15.575L15.7411 15.321L15.9211 15.546C16.7691 16.615 18.2821 17.179 19.6561 16.94C21.3641 16.642 22.6451 15.353 22.9441 13.63C23.0381 13.09 23.0021 11.164 22.8841 10.4C22.3231 6.76999 20.1031 3.74099 16.8201 2.12299C15.7491 1.59499 14.6631 1.26799 13.4191 1.09899C12.9921 1.03999 11.5611 0.989986 11.2801 1.02399ZM12.8611 9.12899C13.8041 9.40499 14.5841 10.183 14.8751 11.139C14.9581 11.412 14.9731 11.542 14.9731 12C14.9731 12.458 14.9581 12.588 14.8751 12.861C14.5881 13.803 13.8451 14.555 12.8871 14.872C12.6201 14.961 12.5081 14.974 12.0201 14.977C11.5391 14.98 11.4181 14.967 11.1601 14.886C10.1801 14.58 9.4181 13.822 9.1251 12.861C9.0421 12.588 9.0271 12.458 9.0271 12C9.0271 11.542 9.0421 11.412 9.1251 11.139C9.4561 10.054 10.3711 9.24499 11.4991 9.03999C11.8321 8.97999 12.5001 9.02299 12.8611 9.12899Z" fill="#FF0000"/>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

+7
View File
@@ -0,0 +1,7 @@
<svg width="24" height="24" viewBox="0 24 512 441" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M78.844 464.762c-8.453 0-15.573-1.451-21.359-4.339-5.77-2.888-10.144-7.289-13.076-13.095-2.932-5.807-4.436-12.912-4.436-21.255v-86.028c0-10.605-2.125-18.321-6.329-23.135-4.234-4.798-11.742-7.334-22.507-7.579-3.35 0-6.034-1.253-8.066-3.804C1.008 303.005 0 300.087 0 296.832c0-3.53 1.008-6.448 3.071-8.725 2.048-2.277 4.762-3.53 8.066-3.774 10.765-.26 18.273-2.781 22.507-7.579 4.235-4.798 6.329-12.392 6.329-22.752v-86.028c0-12.637 3.35-22.249 10.005-28.804 6.654-6.555 16.287-9.856 28.866-9.856H181.5c3.862 0 7.042 1.146 9.617 3.408 2.559 2.277 3.862 5.195 3.862 8.694 0 3.301-1.086 6.128-3.257 8.542-2.172 2.414-5.057 3.622-8.671 3.622H87.732c-5.413 0-9.508 1.39-12.316 4.171-2.823 2.781-4.234 7.075-4.234 12.912v86.425c0 7.579-1.551 14.455-4.623 20.644-3.07 6.204-7.181 11.063-12.316 14.623-5.134 3.53-11.137 5.302-18.07 5.302v-1.528c6.933 0 12.936 1.773 18.07 5.303 5.135 3.529 9.245 8.404 12.316 14.623 3.072 6.188 4.623 13.064 4.623 20.643v86.808c0 5.837 1.411 10.115 4.234 12.911 2.823 2.812 6.934 4.172 12.316 4.172h95.318c3.583 0 6.468 1.207 8.671 3.606 2.202 2.414 3.257 5.257 3.257 8.542s-1.272 6.097-3.862 8.511c-2.575 2.414-5.771 3.606-9.617 3.606H78.844v-.092Z" fill="#FF0000"/>
<path d="M330.501 464.768c-3.862 0-7.042-1.207-9.617-3.606-2.575-2.414-3.863-5.256-3.863-8.511 0-3.255 1.086-6.128 3.258-8.542 2.171-2.414 5.057-3.606 8.671-3.606h95.317c5.414 0 9.509-1.36 12.316-4.171 2.823-2.781 4.235-7.075 4.235-12.912v-86.808c0-7.579 1.551-14.455 4.622-20.643 3.071-6.204 7.182-11.063 12.316-14.623 5.134-3.53 11.137-5.303 18.071-5.303v1.528c-6.934 0-12.937-1.772-18.071-5.302-5.134-3.53-9.245-8.404-12.316-14.623-3.071-6.189-4.622-13.065-4.622-20.644v-86.425c0-5.807-1.412-10.1-4.235-12.912-2.823-2.781-6.933-4.171-12.316-4.171H328.95c-3.583 0-6.469-1.208-8.671-3.622-2.172-2.384-3.258-5.241-3.258-8.542 0-3.529 1.272-6.417 3.863-8.694 2.559-2.277 5.755-3.407 9.617-3.407h102.654c12.58 0 22.181 3.3 28.867 9.855 6.685 6.556 10.005 16.167 10.005 28.804v86.028c0 10.36 2.125 17.969 6.328 22.752 4.235 4.798 11.742 7.334 22.507 7.579 3.351.244 6.034 1.497 8.066 3.774 2.063 2.277 3.071 5.195 3.071 8.725 0 3.301-1.008 6.189-3.071 8.695-2.032 2.521-4.762 3.804-8.066 3.804-10.765.245-18.257 2.781-22.507 7.579-4.234 4.798-6.328 12.5-6.328 23.135v86.028c0 8.358-1.474 15.418-4.437 21.255-2.962 5.837-7.305 10.176-13.076 13.095-5.785 2.888-12.905 4.339-21.359 4.339H330.501v.092Z" fill="#FF0000"/>
<path d="M356.885 329.738c18.691 0 33.846-14.929 33.846-33.342 0-18.412-15.155-33.341-33.846-33.341-18.691 0-33.846 14.929-33.846 33.341 0 18.413 15.155 33.342 33.846 33.342Z" fill="#FF0000"/>
<path d="M167.305 329.738c18.691 0 33.846-14.929 33.846-33.342 0-18.412-15.155-33.341-33.846-33.341-18.691 0-33.846 14.929-33.846 33.341 0 18.413 15.155 33.342 33.846 33.342Z" fill="#FF0000"/>
<path d="M244.477 32.846l-2.59 68.135c0 3.82-3.661 5.73-10.983 5.73-7.321 0-10.982-1.91-10.982-5.73-.651-16.976-1.178-30.148-1.613-39.484-.217-9.55-.434-16.35-.651-20.384-.217-4.034-.326-6.479-.326-7.32v-1.268c0-4.874 4.529-7.319 13.572-7.319 9.044 0 13.573 2.552 13.573 7.64Zm54.941 0-2.59 68.135c0 3.82-3.661 5.73-10.982 5.73-7.322 0-10.982-1.91-10.982-5.73-.652-16.976-1.179-30.148-1.613-39.484-.218-9.55-.435-16.35-.652-20.384-.217-4.034-.326-6.479-.326-7.32v-1.268c0-4.874 4.53-7.319 13.573-7.319s13.572 2.552 13.572 7.64Z" fill="#FF0000"/>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg width="20" height="18" viewBox="0 0 20 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.41666 0.704143C7.67499 0.867476 6.04666 1.86831 5.08249 3.36748C4.86832 3.69998 4.59166 4.28164 4.47249 4.64748L4.37582 4.94498L4.04666 5.04998C2.33999 5.59414 1.14749 7.00581 0.878325 8.79998C0.815825 9.21498 0.832491 9.86831 0.914991 10.2916C1.11916 11.3316 1.71999 12.3241 2.54332 12.9841C3.17582 13.49 3.55332 13.5308 3.91416 13.1316C4.11166 12.9133 4.21082 12.6666 4.19416 12.4366C4.17582 12.1891 4.10499 12.0916 3.71832 11.7841C3.10666 11.2966 2.77416 10.81 2.59332 10.1366C2.49416 9.76664 2.49332 9.05331 2.59166 8.67831C2.83249 7.75831 3.56332 6.97164 4.46582 6.66164C4.56666 6.62664 4.81999 6.56831 5.02916 6.53081C5.44166 6.45831 5.50249 6.43581 5.64499 6.30414C5.78332 6.17581 5.82332 6.08164 5.93249 5.61831C6.05082 5.12248 6.18332 4.76748 6.36749 4.45164C6.98582 3.39581 8.03249 2.63581 9.16749 2.41831C10.6158 2.14164 12.0217 2.59081 13.035 3.65414C13.5733 4.21831 13.8658 4.77664 14.0683 5.62664C14.1775 6.08164 14.2175 6.17664 14.355 6.30414C14.4975 6.43581 14.5583 6.45831 14.9708 6.53081C15.18 6.56831 15.4333 6.62664 15.5342 6.66164C16.4367 6.97164 17.1675 7.75831 17.4083 8.67831C17.5067 9.05331 17.5058 9.76664 17.4067 10.1366C17.2258 10.81 16.8933 11.2966 16.2817 11.7841C15.895 12.0916 15.8242 12.1891 15.8058 12.4366C15.7892 12.6733 15.8917 12.92 16.1033 13.15C16.455 13.5316 16.83 13.4858 17.4567 12.9841C19.0767 11.6858 19.6067 9.47331 18.7608 7.54081C18.355 6.61498 17.5383 5.76914 16.6083 5.31331C16.4292 5.22581 16.135 5.10664 15.9533 5.04914L15.6242 4.94498L15.5275 4.64748C15.4083 4.28164 15.1317 3.69998 14.9175 3.36748C13.725 1.51164 11.6283 0.496643 9.41666 0.704143ZM9.67832 8.21414C9.48082 8.27581 9.34332 8.38414 9.25749 8.54414L9.18332 8.68331L9.17416 11.5816L9.16499 14.4791L8.14082 13.46C7.50082 12.8233 7.06416 12.415 6.97666 12.3708C6.68332 12.2233 6.36582 12.2983 6.08249 12.5825C5.79332 12.8716 5.71916 13.1758 5.86666 13.4691C5.91749 13.57 6.47166 14.1516 7.61166 15.3008C8.53082 16.2275 9.31166 17.0283 9.34666 17.08C9.43166 17.2083 9.80082 17.3741 9.99999 17.3741C10.1992 17.3741 10.5683 17.2083 10.6533 17.08C10.6883 17.0283 11.4692 16.2275 12.3883 15.3008C13.5283 14.1516 14.0825 13.57 14.1333 13.4691C14.2808 13.1758 14.2067 12.8716 13.9175 12.5825C13.6342 12.2983 13.3167 12.2233 13.0233 12.3708C12.9358 12.415 12.5 12.8233 11.8592 13.46L10.835 14.4791L10.8258 11.5808L10.8167 8.68331L10.7425 8.54414C10.7017 8.46831 10.6217 8.37248 10.565 8.33248C10.345 8.17498 9.96416 8.12498 9.67832 8.21414Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.6139 2.05714C8.3769 2.13114 8.2119 2.26114 8.1089 2.45314L8.0199 2.62014L8.0099 11.9141C8.0029 18.0561 8.0129 21.2601 8.0399 21.3581C8.1439 21.7471 8.4349 21.9621 8.8959 21.9911C9.3809 22.0221 9.6989 21.8821 9.8799 21.5581L9.9799 21.3801V12.0001V2.62014L9.8909 2.45314C9.8419 2.36214 9.7459 2.24714 9.6779 2.19914C9.4139 2.01014 8.9569 1.95014 8.6139 2.05714ZM20.6139 2.05714C20.3769 2.13114 20.2119 2.26114 20.1089 2.45314L20.0199 2.62014L20.0099 11.9141C20.0029 18.0561 20.0129 21.2601 20.0399 21.3581C20.1439 21.7471 20.4349 21.9621 20.8959 21.9911C21.3809 22.0221 21.6989 21.8821 21.8799 21.5581L21.9799 21.3801V12.0001V2.62014L21.8909 2.45314C21.8419 2.36214 21.7459 2.24714 21.6779 2.19914C21.4139 2.01014 20.9569 1.95014 20.6139 2.05714ZM2.6139 10.0571C2.3769 10.1311 2.2119 10.2611 2.1089 10.4531L2.0199 10.6201L2.0089 15.9141C2.0019 19.3931 2.0129 21.2591 2.0389 21.3581C2.1439 21.7471 2.4339 21.9611 2.8959 21.9911C3.3809 22.0221 3.6989 21.8821 3.8799 21.5581L3.9799 21.3801V16.0001V10.6201L3.8909 10.4531C3.8419 10.3621 3.7459 10.2471 3.6779 10.1991C3.4139 10.0101 2.9569 9.95014 2.6139 10.0571ZM14.6139 10.0571C14.3769 10.1311 14.2119 10.2611 14.1089 10.4531L14.0199 10.6201L14.0089 15.9141C14.0019 19.3931 14.0129 21.2591 14.0389 21.3581C14.1439 21.7471 14.4339 21.9611 14.8959 21.9911C15.3809 22.0221 15.6989 21.8821 15.8799 21.5581L15.9799 21.3801V16.0001V10.6201L15.8909 10.4531C15.8419 10.3621 15.7459 10.2471 15.6779 10.1991C15.4139 10.0101 14.9569 9.95014 14.6139 10.0571Z" fill="#FF0000"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg width="18" height="19" viewBox="0 0 18 19" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.61665 0.852378C7.72915 0.938212 7.23166 1.06821 6.51666 1.40071C4.93832 2.13488 3.76165 3.57155 3.33582 5.28321C3.24415 5.65155 3.16665 6.27655 3.16665 6.64405C3.16665 7.42821 3.04999 8.55821 2.89915 9.23738C2.66415 10.2965 2.36415 10.9982 1.64665 12.1665C1.14665 12.9807 1.02415 13.2032 0.949155 13.4315C0.748321 14.0482 1.09749 14.704 1.74499 14.9249C1.90582 14.9799 2.33499 14.984 8.79999 14.9924C13.2892 14.999 15.78 14.9907 15.9617 14.9682C16.4442 14.9099 16.7642 14.709 16.9592 14.3424C17.0842 14.1057 17.1375 13.8357 17.1 13.6324C17.04 13.3157 16.9575 13.1565 16.2358 11.9682C15.61 10.9382 15.3258 10.254 15.1008 9.23905C14.9492 8.55321 14.8842 7.95071 14.8333 6.76655C14.7908 5.76488 14.7225 5.36405 14.4775 4.68321C13.7658 2.70405 11.9908 1.23321 9.93332 0.918212C9.60582 0.867378 8.84999 0.829878 8.61665 0.852378ZM9.45999 2.53488C11.1883 2.72405 12.6175 3.97905 13.0458 5.68321C13.1167 5.96405 13.1667 6.46738 13.1667 6.89155C13.1667 7.63238 13.2925 8.78655 13.4517 9.50738C13.7258 10.749 14.0717 11.6107 14.7467 12.7332L15.0975 13.3165L12.0483 13.3249C10.3717 13.3299 7.62832 13.3299 5.95165 13.3249L2.90249 13.3165L3.25332 12.7332C3.93332 11.6024 4.30332 10.6707 4.56499 9.43321C4.71332 8.73155 4.83249 7.61155 4.83249 6.90655C4.83332 6.46738 4.88332 5.96655 4.95415 5.68321C5.33499 4.16821 6.52165 2.98738 8.03332 2.61738C8.47832 2.50905 8.96165 2.48071 9.45999 2.53488ZM7.01165 16.714C6.81415 16.7757 6.67665 16.884 6.59082 17.044C6.52915 17.1599 6.51666 17.2365 6.51666 17.4999C6.51666 17.7757 6.52749 17.8357 6.59999 17.9649C6.69165 18.129 6.84499 18.2482 7.02915 18.299C7.10332 18.3199 7.86249 18.3332 8.99999 18.3332C10.1375 18.3332 10.8967 18.3199 10.9708 18.299C11.155 18.2482 11.3083 18.129 11.4 17.9649C11.4725 17.8349 11.4833 17.7765 11.4825 17.4999C11.4817 17.139 11.415 16.9624 11.2317 16.8324C11.005 16.6707 10.9467 16.6665 8.98665 16.669C7.57749 16.6707 7.11749 16.6807 7.01165 16.714Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

+4
View File
@@ -0,0 +1,4 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.614 1.05701C11.377 1.13101 11.212 1.26101 11.109 1.45301C11.02 1.61901 11.02 1.62901 11.009 3.91101C11.001 5.39201 11.012 6.25601 11.039 6.35501C11.144 6.74701 11.433 6.96101 11.896 6.99101C12.381 7.02201 12.699 6.88201 12.88 6.55801L12.98 6.38001V4.00001V1.62001L12.891 1.45301C12.842 1.36201 12.746 1.24701 12.678 1.19901C12.414 1.01001 11.957 0.950013 11.614 1.05701ZM1.61399 11.057C1.37699 11.131 1.21199 11.261 1.10899 11.453C1.03499 11.592 1.01999 11.684 1.01999 12C1.01999 12.331 1.03299 12.403 1.11999 12.558C1.22999 12.755 1.41399 12.898 1.63499 12.959C1.83099 13.014 6.16899 13.014 6.36499 12.959C6.58599 12.898 6.76999 12.755 6.87999 12.558C6.96699 12.402 6.97999 12.332 6.97899 12C6.97799 11.567 6.89799 11.355 6.67799 11.199C6.40599 11.005 6.33599 11 3.98399 11.003C2.29299 11.005 1.74099 11.017 1.61399 11.057ZM11.614 17.057C11.377 17.131 11.212 17.261 11.109 17.453C11.02 17.619 11.02 17.629 11.009 19.911C11.001 21.392 11.012 22.256 11.039 22.355C11.144 22.747 11.433 22.961 11.896 22.991C12.381 23.022 12.699 22.882 12.88 22.558L12.98 22.38V20V17.62L12.891 17.453C12.842 17.362 12.746 17.247 12.678 17.199C12.414 17.01 11.957 16.95 11.614 17.057Z" fill="#FF0000"/>
<path d="M17.109 11.453C17.212 11.261 17.377 11.131 17.614 11.057C17.741 11.017 18.293 11.005 19.984 11.003C22.336 11 22.406 11.005 22.678 11.199C22.898 11.355 22.978 11.567 22.979 12C22.98 12.332 22.967 12.402 22.88 12.558C22.77 12.755 22.586 12.898 22.365 12.959C22.169 13.014 17.831 13.014 17.635 12.959C17.414 12.898 17.23 12.755 17.12 12.558C17.033 12.403 17.02 12.331 17.02 12C17.02 11.684 17.035 11.592 17.109 11.453Z" fill="#FF0000"/>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

+6
View File
@@ -0,0 +1,6 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.614 1.05701C11.377 1.13101 11.212 1.26101 11.109 1.45301C11.02 1.61901 11.02 1.62901 11.009 3.91101C11.001 5.39201 11.012 6.25601 11.039 6.35501C11.144 6.74701 11.433 6.96101 11.896 6.99101C12.381 7.02201 12.699 6.88201 12.88 6.55801L12.98 6.38001V4.00001V1.62001L12.891 1.45301C12.842 1.36201 12.746 1.24701 12.678 1.19901C12.414 1.01001 11.957 0.950013 11.614 1.05701ZM18.7 4.04601C18.605 4.09501 17.892 4.77501 16.952 5.71401C15.277 7.38701 15.203 7.47601 15.201 7.82501C15.2 8.05501 15.293 8.25501 15.511 8.48801C15.86 8.86001 16.228 8.96501 16.6 8.79701C16.836 8.69101 19.908 5.62801 20.036 5.37201C20.212 5.02001 20.121 4.63901 19.781 4.29901C19.441 3.95901 19.047 3.86701 18.7 4.04601ZM17.614 11.057C17.377 11.131 17.212 11.261 17.109 11.453C17.035 11.592 17.02 11.684 17.02 12C17.02 12.331 17.033 12.403 17.12 12.558C17.23 12.755 17.414 12.898 17.635 12.959C17.831 13.014 22.169 13.014 22.365 12.959C22.586 12.898 22.77 12.755 22.88 12.558C22.967 12.402 22.98 12.332 22.979 12C22.978 11.567 22.898 11.355 22.678 11.199C22.406 11.005 22.336 11 19.984 11.003C18.293 11.005 17.741 11.017 17.614 11.057ZM7.4 15.283C7.159 15.391 4.092 18.453 3.96 18.716C3.785 19.067 3.875 19.437 4.219 19.781C4.559 20.121 4.94 20.212 5.292 20.036C5.548 19.908 8.611 16.836 8.717 16.6C8.877 16.245 8.806 15.931 8.489 15.592C8.14 15.22 7.772 15.115 7.4 15.283ZM15.879 15.298C15.659 15.413 15.347 15.738 15.262 15.941C15.178 16.143 15.185 16.384 15.283 16.6C15.389 16.836 18.452 19.908 18.708 20.036C19.06 20.212 19.441 20.121 19.781 19.781C20.121 19.441 20.212 19.06 20.036 18.708C19.908 18.452 16.836 15.389 16.6 15.283C16.36 15.175 16.105 15.18 15.879 15.298ZM11.614 17.057C11.377 17.131 11.212 17.261 11.109 17.453C11.02 17.619 11.02 17.629 11.009 19.911C11.001 21.392 11.012 22.256 11.039 22.355C11.144 22.747 11.433 22.961 11.896 22.991C12.381 23.022 12.699 22.882 12.88 22.558L12.98 22.38V20V17.62L12.891 17.453C12.842 17.362 12.746 17.247 12.678 17.199C12.414 17.01 11.957 16.95 11.614 17.057Z" fill="#FF0000"/>
<path d="M11.109 1.45301C11.212 1.26101 11.377 1.13101 11.614 1.05701C11.957 0.950013 12.414 1.01001 12.678 1.19901C12.746 1.24701 12.842 1.36201 12.891 1.45301L12.98 1.62001V4.00001V6.38001L12.88 6.55801C12.699 6.88201 12.381 7.02201 11.896 6.99101C11.433 6.96101 11.144 6.74701 11.039 6.35501C11.012 6.25601 11.001 5.39201 11.009 3.91101L11.009 3.90728C11.02 1.629 11.02 1.61892 11.109 1.45301Z" fill="#FF0000"/>
<path d="M3.96298 4.63501C4.06598 4.43201 4.34298 4.15201 4.54598 4.04501C4.75498 3.93501 5.07198 3.93401 5.29198 4.04401C5.54798 4.17201 8.61098 7.24401 8.71698 7.48001C8.87698 7.83501 8.79598 8.16801 8.46598 8.51301C8.13298 8.86201 7.76198 8.96001 7.39998 8.79701C7.16398 8.69101 4.09198 5.62801 3.96398 5.37201C3.85398 5.15101 3.85298 4.84901 3.96298 4.63501Z" fill="#FF0000"/>
<path d="M1.10899 11.453C1.21199 11.261 1.37699 11.131 1.61399 11.057C1.74099 11.017 2.29299 11.005 3.98399 11.003C6.33599 11 6.40599 11.005 6.67799 11.199C6.89799 11.355 6.97799 11.567 6.97899 12C6.97999 12.332 6.96699 12.402 6.87999 12.558C6.76999 12.755 6.58599 12.898 6.36499 12.959C6.16899 13.014 1.83099 13.014 1.63499 12.959C1.41399 12.898 1.22999 12.755 1.11999 12.558C1.03299 12.403 1.01999 12.331 1.01999 12C1.01999 11.684 1.03499 11.592 1.10899 11.453Z" fill="#FF0000"/>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

+4
View File
@@ -0,0 +1,4 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M18.7 4.046C18.605 4.095 17.892 4.775 16.952 5.714C15.277 7.387 15.203 7.476 15.201 7.825C15.2 8.055 15.293 8.255 15.511 8.488C15.86 8.86 16.228 8.965 16.6 8.797C16.836 8.691 19.908 5.628 20.036 5.372C20.212 5.02 20.121 4.639 19.781 4.299C19.441 3.959 19.047 3.867 18.7 4.046ZM7.4 15.283C7.159 15.391 4.092 18.453 3.96 18.716C3.785 19.067 3.875 19.437 4.219 19.781C4.559 20.121 4.94 20.212 5.292 20.036C5.548 19.908 8.611 16.836 8.717 16.6C8.877 16.245 8.806 15.931 8.489 15.592C8.14 15.22 7.772 15.115 7.4 15.283ZM15.879 15.298C15.659 15.413 15.347 15.738 15.262 15.941C15.178 16.143 15.185 16.384 15.283 16.6C15.389 16.836 18.452 19.908 18.708 20.036C19.06 20.212 19.441 20.121 19.781 19.781C20.121 19.441 20.212 19.06 20.036 18.708C19.908 18.452 16.836 15.389 16.6 15.283C16.36 15.175 16.105 15.18 15.879 15.298Z" fill="#FF0000"/>
<path d="M3.96298 4.63501C4.06598 4.43201 4.34298 4.15201 4.54598 4.04501C4.75498 3.93501 5.07198 3.93401 5.29198 4.04401C5.54798 4.17201 8.61098 7.24401 8.71698 7.48001C8.87698 7.83501 8.79598 8.16801 8.46598 8.51301C8.13298 8.86201 7.76198 8.96001 7.39998 8.79701C7.16398 8.69101 4.09198 5.62801 3.96398 5.37201C3.85398 5.15101 3.85298 4.84901 3.96298 4.63501Z" fill="#FF0000"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.477 4.0729C2.806 4.2489 2.238 4.8229 2.06 5.5079C1.941 5.9619 2.003 6.4919 2.225 6.9299C2.361 7.1989 2.801 7.6389 3.07 7.7749C3.659 8.0729 4.341 8.0729 4.93 7.7749C5.196 7.6399 5.638 7.1999 5.771 6.9369C5.994 6.4979 6.052 6.0069 5.94 5.5289C5.858 5.1819 5.72 4.9269 5.465 4.6529C4.948 4.0969 4.211 3.8819 3.477 4.0729ZM8.614 5.0569C8.377 5.1309 8.212 5.2609 8.109 5.4529C8.035 5.5919 8.02 5.6839 8.02 5.9999C8.02 6.3309 8.033 6.4029 8.12 6.5579C8.23 6.7549 8.414 6.8979 8.635 6.9589C8.834 7.0149 21.166 7.0149 21.365 6.9589C21.586 6.8979 21.77 6.7549 21.88 6.5579C21.967 6.4019 21.98 6.3319 21.979 5.9999C21.978 5.5669 21.898 5.3549 21.678 5.1989C21.388 4.9919 21.642 4.9999 14.984 5.0029C10.009 5.0049 8.747 5.0159 8.614 5.0569ZM3.477 10.0729C3.13 10.1639 2.802 10.3659 2.535 10.6529C2.178 11.0379 2 11.4849 2 11.9999C2 12.5459 2.193 13.0009 2.596 13.4039C2.741 13.5499 2.955 13.7159 3.07 13.7749C3.659 14.0729 4.341 14.0729 4.93 13.7749C5.196 13.6399 5.638 13.1999 5.771 12.9369C6.161 12.1679 6.043 11.2749 5.471 10.6589C5.074 10.2319 4.563 10.0049 4 10.0049C3.857 10.0049 3.622 10.0359 3.477 10.0729ZM8.614 11.0569C8.377 11.1309 8.212 11.2609 8.109 11.4529C8.035 11.5919 8.02 11.6839 8.02 11.9999C8.02 12.3309 8.033 12.4029 8.12 12.5579C8.23 12.7549 8.414 12.8979 8.635 12.9589C8.834 13.0149 21.166 13.0149 21.365 12.9589C21.586 12.8979 21.77 12.7549 21.88 12.5579C21.967 12.4019 21.98 12.3319 21.979 11.9999C21.978 11.5669 21.898 11.3549 21.678 11.1989C21.388 10.9919 21.642 10.9999 14.984 11.0029C10.009 11.0049 8.747 11.0159 8.614 11.0569ZM3.477 16.0729C3.13 16.1639 2.802 16.3659 2.535 16.6529C2.178 17.0379 2 17.4849 2 17.9999C2 18.5459 2.193 19.0009 2.596 19.4039C2.999 19.8069 3.454 19.9999 4 19.9999C4.546 19.9999 5.001 19.8069 5.404 19.4039C5.92 18.8889 6.106 18.2359 5.94 17.5289C5.858 17.1819 5.72 16.9269 5.465 16.6529C5.074 16.2319 4.56 16.0049 4 16.0049C3.857 16.0049 3.622 16.0359 3.477 16.0729ZM8.614 17.0569C8.377 17.1309 8.212 17.2609 8.109 17.4529C8.035 17.5919 8.02 17.6839 8.02 17.9999C8.02 18.3309 8.033 18.4029 8.12 18.5579C8.23 18.7549 8.414 18.8979 8.635 18.9589C8.834 19.0149 21.166 19.0149 21.365 18.9589C21.586 18.8979 21.77 18.7549 21.88 18.5579C21.967 18.4019 21.98 18.3319 21.979 17.9999C21.978 17.5669 21.898 17.3549 21.678 17.1989C21.388 16.9919 21.642 16.9999 14.984 17.0029C10.009 17.0049 8.747 17.0159 8.614 17.0569Z" fill="#FF0000"/>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

+5
View File
@@ -0,0 +1,5 @@
<svg width="13" height="12" viewBox="0 0 13 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M1.41733 0.696692C1.28 0.769359 1.09733 0.955359 1.02533 1.09603C0.949333 1.24469 0.949333 1.42136 1.026 1.57536C1.068 1.65803 1.628 2.23736 2.902 3.51336L4.71933 5.33336L2.902 7.15336C1.628 8.42936 1.068 9.00869 1.026 9.09136C0.908666 9.32669 0.968 9.56936 1.19933 9.80069C1.43 10.0314 1.67333 10.0914 1.90867 9.97402C2.07533 9.89069 6.224 5.74202 6.30733 5.57536C6.34267 5.50402 6.366 5.40736 6.366 5.33336C6.366 5.25936 6.34267 5.16269 6.30733 5.09136C6.22667 4.92936 2.076 0.776025 1.91467 0.696025C1.768 0.622692 1.556 0.623359 1.41733 0.696692ZM6.74267 10.038C6.58467 10.0874 6.47467 10.174 6.406 10.302C6.35667 10.3947 6.34667 10.456 6.34667 10.6667C6.34667 10.8874 6.35533 10.9354 6.41333 11.0387C6.48667 11.17 6.60933 11.2654 6.75667 11.306C6.88867 11.3427 12.4447 11.3427 12.5767 11.306C12.724 11.2654 12.8467 11.17 12.92 11.0387C12.978 10.9347 12.9867 10.888 12.986 10.6667C12.9853 10.378 12.932 10.2367 12.7853 10.1327C12.5953 9.99736 12.658 10 9.656 10.002C7.434 10.0034 6.83067 10.0107 6.74267 10.038Z"
fill="white" />
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

+4
View File
@@ -0,0 +1,4 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.8123 1.33266L9.77168 1.34666L9.63901 1.41466C9.41234 1.53133 9.31834 1.73733 9.33901 2.06933C9.35834 2.37533 9.49967 2.56799 9.75634 2.63933C9.81501 2.65599 10.353 2.66666 11.1197 2.66666H12.3857L9.90167 5.15333C8.13701 6.91999 7.40101 7.67399 7.35901 7.75799C7.24167 7.99333 7.30101 8.23666 7.53234 8.46733C7.76301 8.69866 8.00634 8.75799 8.24167 8.64066C8.32567 8.59866 9.07967 7.86266 10.8463 6.09799L13.333 3.61399V4.87999C13.333 5.64666 13.3437 6.18466 13.3603 6.24333C13.4317 6.49999 13.6243 6.64133 13.9303 6.66066C14.2537 6.68133 14.4657 6.58799 14.5863 6.37199L14.653 6.25333L14.671 4.14666C14.681 2.98799 14.6897 2.00066 14.691 1.95266C14.6937 1.82933 14.5563 1.53999 14.4637 1.47466C14.311 1.36799 14.1317 1.30666 13.9897 1.31266C13.9143 1.31599 12.9343 1.32533 11.8123 1.33266ZM3.94634 1.36133C3.43634 1.39399 3.11567 1.46933 2.78634 1.63399C2.05901 1.99733 1.57101 2.64066 1.41567 3.43999C1.34167 3.81933 1.33301 4.30333 1.33301 7.99999C1.33301 12.2387 1.33701 12.3507 1.49634 12.88C1.71767 13.6147 2.38501 14.282 3.11967 14.5033C3.64901 14.6627 3.76101 14.6667 7.99967 14.6667C12.2383 14.6667 12.3503 14.6627 12.8797 14.5033C13.6143 14.282 14.283 13.614 14.503 12.88C14.6477 12.398 14.6717 12.024 14.6617 10.4133C14.653 9.09333 14.6523 9.07866 14.5937 8.96866C14.459 8.71733 14.0917 8.60133 13.7523 8.70333C13.585 8.75399 13.4763 8.83733 13.4057 8.96866C13.347 9.07866 13.3463 9.09533 13.329 10.6133C13.3103 12.2547 13.3023 12.358 13.1677 12.6347C13.0837 12.8073 12.793 13.092 12.6117 13.1787C12.3103 13.3233 12.4177 13.32 7.99967 13.32C3.58834 13.32 3.69167 13.3233 3.38767 13.1807C3.20767 13.0953 2.91767 12.8113 2.83167 12.6347C2.79834 12.566 2.75034 12.422 2.72501 12.3147C2.68301 12.1353 2.67967 11.7913 2.67967 7.99999C2.67967 4.20866 2.68301 3.86466 2.72501 3.68533C2.75034 3.57799 2.79834 3.43399 2.83167 3.36533C2.91034 3.20399 3.20367 2.91066 3.36501 2.83199C3.64167 2.69733 3.74501 2.68933 5.38634 2.67066C6.88634 2.65399 6.92167 2.65199 7.02634 2.59599C7.24967 2.47666 7.31834 2.33599 7.31834 1.99999C7.31834 1.71133 7.26568 1.57066 7.11834 1.46599C6.93901 1.33799 6.87701 1.33333 5.52234 1.33733C4.82434 1.33933 4.11501 1.34999 3.94634 1.36133Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.8123 1.33266L9.77168 1.34666L9.63901 1.41466C9.41234 1.53133 9.31834 1.73733 9.33901 2.06933C9.35834 2.37533 9.49967 2.56799 9.75634 2.63933C9.81501 2.65599 10.353 2.66666 11.1197 2.66666H12.3857L9.90167 5.15333C8.13701 6.91999 7.40101 7.67399 7.35901 7.75799C7.24167 7.99333 7.30101 8.23666 7.53234 8.46733C7.76301 8.69866 8.00634 8.75799 8.24167 8.64066C8.32567 8.59866 9.07967 7.86266 10.8463 6.09799L13.333 3.61399V4.87999C13.333 5.64666 13.3437 6.18466 13.3603 6.24333C13.4317 6.49999 13.6243 6.64133 13.9303 6.66066C14.2537 6.68133 14.4657 6.58799 14.5863 6.37199L14.653 6.25333L14.671 4.14666C14.681 2.98799 14.6897 2.00066 14.691 1.95266C14.6937 1.82933 14.5563 1.53999 14.4637 1.47466C14.311 1.36799 14.1317 1.30666 13.9897 1.31266C13.9143 1.31599 12.9343 1.32533 11.8123 1.33266ZM3.94634 1.36133C3.43634 1.39399 3.11567 1.46933 2.78634 1.63399C2.05901 1.99733 1.57101 2.64066 1.41567 3.43999C1.34167 3.81933 1.33301 4.30333 1.33301 7.99999C1.33301 12.2387 1.33701 12.3507 1.49634 12.88C1.71767 13.6147 2.38501 14.282 3.11967 14.5033C3.64901 14.6627 3.76101 14.6667 7.99967 14.6667C12.2383 14.6667 12.3503 14.6627 12.8797 14.5033C13.6143 14.282 14.283 13.614 14.503 12.88C14.6477 12.398 14.6717 12.024 14.6617 10.4133C14.653 9.09333 14.6523 9.07866 14.5937 8.96866C14.459 8.71733 14.0917 8.60133 13.7523 8.70333C13.585 8.75399 13.4763 8.83733 13.4057 8.96866C13.347 9.07866 13.3463 9.09533 13.329 10.6133C13.3103 12.2547 13.3023 12.358 13.1677 12.6347C13.0837 12.8073 12.793 13.092 12.6117 13.1787C12.3103 13.3233 12.4177 13.32 7.99967 13.32C3.58834 13.32 3.69167 13.3233 3.38767 13.1807C3.20767 13.0953 2.91767 12.8113 2.83167 12.6347C2.79834 12.566 2.75034 12.422 2.72501 12.3147C2.68301 12.1353 2.67967 11.7913 2.67967 7.99999C2.67967 4.20866 2.68301 3.86466 2.72501 3.68533C2.75034 3.57799 2.79834 3.43399 2.83167 3.36533C2.91034 3.20399 3.20367 2.91066 3.36501 2.83199C3.64167 2.69733 3.74501 2.68933 5.38634 2.67066C6.88634 2.65399 6.92167 2.65199 7.02634 2.59599C7.24967 2.47666 7.31834 2.33599 7.31834 1.99999C7.31834 1.71133 7.26568 1.57066 7.11834 1.46599C6.93901 1.33799 6.87701 1.33333 5.52234 1.33733C4.82434 1.33933 4.11501 1.34999 3.94634 1.36133Z" fill="white" fill-opacity="0.9"/>
</svg>

After

Width:  |  Height:  |  Size: 4.5 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M2.40934 2.038C2.25134 2.08733 2.14134 2.174 2.07267 2.302C2.02334 2.39467 2.01334 2.456 2.01334 2.66667C2.01334 2.88733 2.022 2.93533 2.08 3.03867C2.15334 3.17 2.276 3.26533 2.42334 3.306C2.47667 3.32067 2.70267 3.33333 2.92667 3.33333H3.33334V8V12.6667H2.93734C2.38467 12.6667 2.2 12.7313 2.07267 12.9687C2.02334 13.0613 2.01334 13.1227 2.01334 13.3333C2.01334 13.554 2.022 13.602 2.08 13.7053C2.15334 13.8367 2.276 13.932 2.42334 13.9727C2.554 14.0093 5.446 14.0093 5.57667 13.9727C5.724 13.932 5.84667 13.8367 5.92 13.7053C5.978 13.6013 5.98667 13.5547 5.986 13.3333C5.98534 13.1247 5.97467 13.0607 5.92667 12.9687C5.80134 12.7313 5.616 12.6667 5.06267 12.6667H4.66667V10.6667V8.66667H8H11.3333V10.6667V12.6667H10.9373C10.3847 12.6667 10.2 12.7313 10.0727 12.9687C10.0233 13.0613 10.0133 13.1227 10.0133 13.3333C10.0133 13.554 10.022 13.602 10.08 13.7053C10.1533 13.8367 10.276 13.932 10.4233 13.9727C10.554 14.0093 13.446 14.0093 13.5767 13.9727C13.724 13.932 13.8467 13.8367 13.92 13.7053C13.978 13.6013 13.9867 13.5547 13.986 13.3333C13.9853 13.1247 13.9747 13.0607 13.9267 12.9687C13.8013 12.7313 13.616 12.6667 13.0627 12.6667H12.6667V8V3.33333H13.0733C13.2967 3.33333 13.5233 3.32067 13.5767 3.306C13.724 3.26533 13.8467 3.17 13.92 3.03867C13.978 2.93467 13.9867 2.888 13.986 2.66667C13.9853 2.378 13.932 2.23667 13.7853 2.13267C13.6047 2.00333 13.5553 2 12 2C10.4447 2 10.3953 2.00333 10.2147 2.13267C10.0667 2.238 10.0133 2.37867 10.0133 2.66667C10.0133 2.88733 10.022 2.93533 10.08 3.03867C10.1533 3.17 10.276 3.26533 10.4233 3.306C10.4767 3.32067 10.7033 3.33333 10.9267 3.33333H11.3333V5.33333V7.33333H8H4.66667V5.33333V3.33333H5.07334C5.29734 3.33333 5.52334 3.32067 5.57667 3.306C5.724 3.26533 5.84667 3.17 5.92 3.03867C5.978 2.93467 5.98667 2.888 5.986 2.66667C5.98534 2.378 5.932 2.23667 5.78534 2.13267C5.604 2.00333 5.55734 2 3.98934 2.002C2.862 2.00333 2.494 2.01133 2.40934 2.038Z" fill="#C28000"/>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

@@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M1.74267 1.37133C1.58467 1.42066 1.47467 1.50733 1.406 1.63533C1.348 1.74466 1.34667 1.766 1.34734 2.66666C1.348 3.53066 1.35134 3.60133 1.40734 3.82333C1.48267 4.122 1.58534 4.336 1.76667 4.572C2.02534 4.90866 2.396 5.146 2.84334 5.25933L3.08 5.32H7.98667C12.6753 5.32 12.9027 5.318 13.1067 5.27066C13.5127 5.176 13.8073 5.01733 14.0787 4.74533C14.3507 4.474 14.5093 4.17933 14.604 3.77333C14.6467 3.58733 14.6533 3.44266 14.6533 2.65333C14.6533 1.76666 14.652 1.744 14.594 1.63533C14.5233 1.504 14.4147 1.42066 14.2473 1.37C13.9073 1.268 13.54 1.384 13.4067 1.63533C13.3507 1.74133 13.3467 1.78933 13.33 2.61333C13.3187 3.14866 13.3 3.51933 13.2807 3.58266C13.2413 3.712 13.054 3.902 12.9173 3.95C12.762 4.00466 3.238 4.00466 3.08267 3.95C2.946 3.902 2.75867 3.712 2.71934 3.58266C2.70067 3.52 2.68134 3.144 2.67 2.61333C2.65267 1.792 2.64867 1.74066 2.59267 1.63533C2.56067 1.57466 2.49734 1.498 2.452 1.466C2.276 1.34 1.97134 1.3 1.74267 1.37133ZM1.74267 7.37C1.48 7.456 1.35934 7.62466 1.33934 7.93333C1.31867 8.254 1.41267 8.466 1.628 8.58666C1.73134 8.64466 1.77934 8.65333 2 8.65333C2.208 8.65333 2.272 8.64266 2.36 8.596C2.57734 8.47866 2.66667 8.306 2.66667 8C2.66667 7.57133 2.47534 7.36533 2.05534 7.344C1.92867 7.33733 1.812 7.34733 1.74267 7.37ZM4.78667 7.35933C4.47667 7.43933 4.34267 7.63133 4.34134 7.998C4.34 8.232 4.388 8.37066 4.514 8.50133C4.754 8.74866 5.37867 8.70666 5.56067 8.43C5.684 8.24333 5.71 7.89333 5.61667 7.67133C5.508 7.412 5.132 7.27066 4.78667 7.35933ZM7.74267 7.37C7.48 7.456 7.35934 7.62466 7.33934 7.93333C7.31867 8.254 7.41267 8.466 7.628 8.58666C7.73134 8.64466 7.77934 8.65333 8 8.65333C8.208 8.65333 8.272 8.64266 8.36 8.596C8.57734 8.47866 8.66667 8.306 8.66667 8C8.66667 7.57133 8.47534 7.36533 8.05534 7.344C7.92867 7.33733 7.812 7.34733 7.74267 7.37ZM10.7867 7.35933C10.4767 7.43933 10.3427 7.63133 10.3413 7.998C10.34 8.232 10.388 8.37066 10.514 8.50133C10.754 8.74866 11.3787 8.70666 11.5607 8.43C11.684 8.24333 11.71 7.89333 11.6167 7.67133C11.508 7.412 11.132 7.27066 10.7867 7.35933ZM13.7427 7.37C13.48 7.456 13.3593 7.62466 13.3393 7.93333C13.3187 8.254 13.4127 8.466 13.628 8.58666C13.7313 8.64466 13.7793 8.65333 14 8.65333C14.208 8.65333 14.272 8.64266 14.36 8.596C14.5773 8.47866 14.6667 8.306 14.6667 8C14.6667 7.57133 14.4753 7.36533 14.0553 7.344C13.9287 7.33733 13.812 7.34733 13.7427 7.37ZM3.166 10.6967C2.514 10.7593 2.02467 11.038 1.68467 11.54C1.54534 11.7447 1.47867 11.8973 1.408 12.1733C1.35934 12.3607 1.35134 12.4913 1.34067 13.254C1.332 13.8373 1.33734 14.1567 1.35734 14.23C1.42934 14.4987 1.61934 14.6407 1.93067 14.6607C2.254 14.6813 2.466 14.588 2.58667 14.372C2.65267 14.2547 2.65334 14.2453 2.67067 13.3867C2.68134 12.8533 2.7 12.4807 2.71934 12.4173C2.76134 12.2787 2.95267 12.092 3.09734 12.048C3.26867 11.9967 12.7313 11.9967 12.9027 12.048C13.0473 12.092 13.238 12.278 13.2807 12.4173C13.3 12.4807 13.3187 12.8493 13.3293 13.3867C13.3467 14.2467 13.3473 14.254 13.4133 14.372C13.5247 14.5707 13.7147 14.6667 14 14.6667C14.2853 14.6667 14.4753 14.5707 14.5867 14.372L14.6533 14.2533V13.3467C14.6533 12.5573 14.6467 12.4127 14.604 12.2267C14.4587 11.6027 14.1113 11.158 13.5527 10.8807C13.346 10.7787 13.1373 10.7273 12.7867 10.6947C12.4293 10.6607 3.51734 10.6627 3.166 10.6967Z" fill="#C28000"/>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

@@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.076 1.37133C4.918 1.42067 4.808 1.50733 4.73934 1.63533C4.68067 1.746 4.68 1.75533 4.67267 3.20667L4.66467 4.66667H3.60334C2.47334 4.66667 2.38934 4.67467 2.21467 4.79933C2.06667 4.90467 2.01334 5.04533 2.01334 5.33333C2.01334 5.554 2.022 5.602 2.08 5.70533C2.15334 5.83667 2.276 5.932 2.42334 5.97267C2.48067 5.98867 2.95667 6 3.59334 6H4.66667V8V10H3.604C2.47334 10 2.38934 10.008 2.21467 10.1327C2.06667 10.238 2.01334 10.3787 2.01334 10.6667C2.01334 10.8873 2.022 10.9353 2.08 11.0387C2.15334 11.17 2.276 11.2653 2.42334 11.306C2.48067 11.322 2.95667 11.3333 3.59334 11.3333H4.66667V12.74C4.66667 13.6 4.67734 14.184 4.694 14.2433C4.76534 14.5 4.958 14.6413 5.264 14.6607C5.58734 14.6813 5.79934 14.588 5.92 14.372L5.98667 14.2533L5.99467 12.7933L6.002 11.3333H8.00134H10V12.74C10 13.6 10.0107 14.184 10.0273 14.2433C10.0987 14.5 10.2913 14.6413 10.5973 14.6607C10.9207 14.6813 11.1327 14.588 11.2533 14.372L11.32 14.2533L11.328 12.7933L11.3353 11.3333H12.408C13.044 11.3333 13.5193 11.322 13.5767 11.306C13.724 11.2653 13.8467 11.17 13.92 11.0387C13.978 10.9347 13.9867 10.888 13.986 10.6667C13.9853 10.378 13.932 10.2367 13.7853 10.1327C13.6107 10.008 13.5267 10 12.396 10H11.3333V8V6H12.4067C13.0433 6 13.5193 5.98867 13.5767 5.97267C13.724 5.932 13.8467 5.83667 13.92 5.70533C13.978 5.60133 13.9867 5.55467 13.986 5.33333C13.9853 5.04467 13.932 4.90333 13.7853 4.79933C13.6107 4.67467 13.5267 4.66667 12.3967 4.66667H11.3353L11.328 3.20667C11.32 1.74667 11.32 1.74667 11.2593 1.63333C11.1493 1.42667 10.886 1.31333 10.5827 1.34067C10.2927 1.36733 10.094 1.516 10.0273 1.75667C10.0107 1.816 10 2.4 10 3.26V4.66667H8.00134H6.002L5.99467 3.20667C5.98667 1.75533 5.986 1.746 5.92734 1.63533C5.89467 1.57467 5.83067 1.498 5.78534 1.466C5.60934 1.34 5.30467 1.3 5.076 1.37133ZM10 8V10H8H6V8V6H8H10V8Z" fill="#C28000"/>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

@@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.94668 1.36133C3.43668 1.394 3.11601 1.46933 2.78668 1.634C2.05934 1.99733 1.57134 2.64067 1.41601 3.44C1.34201 3.81933 1.33334 4.30333 1.33334 8C1.33334 12.2387 1.33734 12.3507 1.49668 12.88C1.71801 13.6147 2.38534 14.282 3.12001 14.5033C3.64934 14.6627 3.76134 14.6667 8.00001 14.6667C12.2387 14.6667 12.3507 14.6627 12.88 14.5033C13.6147 14.282 14.2833 13.614 14.5033 12.88C14.656 12.37 14.6713 12.0747 14.6613 9.74667L14.6533 7.74667L14.594 7.63533C14.5233 7.504 14.4147 7.42067 14.2473 7.37C13.908 7.268 13.5407 7.384 13.406 7.63533L13.3467 7.74667L13.3307 9.94666C13.3127 12.318 13.3113 12.34 13.168 12.6347C13.084 12.8073 12.7933 13.092 12.612 13.1787C12.3107 13.3233 12.418 13.32 8.00001 13.32C3.58868 13.32 3.69201 13.3233 3.38801 13.1807C3.20801 13.0953 2.91801 12.8113 2.83201 12.6347C2.79868 12.566 2.75068 12.422 2.72534 12.3147C2.68334 12.1353 2.68001 11.7913 2.68001 8C2.68001 4.20867 2.68334 3.86467 2.72534 3.68533C2.75068 3.578 2.79868 3.434 2.83201 3.36533C2.91068 3.204 3.20401 2.91067 3.36534 2.832C3.67734 2.68 3.54868 2.68533 7.38668 2.66867L10.92 2.65333L11.0267 2.596C11.25 2.47667 11.3187 2.336 11.3187 2C11.3187 1.71133 11.266 1.57067 11.1187 1.466C10.9273 1.32933 11.0287 1.33333 7.52268 1.33733C5.72468 1.33933 4.11534 1.35 3.94668 1.36133ZM14.4133 2.03067C14.346 2.06467 13.1367 3.25467 11.154 5.23533L8.00068 8.38533L7.18068 7.56933C6.66734 7.05867 6.31801 6.732 6.24801 6.69667C6.01334 6.57867 5.75934 6.63866 5.53268 6.866C5.30134 7.09666 5.24201 7.34 5.35934 7.57533C5.44201 7.74 7.59334 9.89133 7.75801 9.974C7.91201 10.0507 8.08801 10.0507 8.24201 9.974C8.41001 9.89 15.2233 3.07667 15.3073 2.90867C15.424 2.67333 15.3647 2.43 15.134 2.19933C14.9073 1.97267 14.6453 1.91133 14.4133 2.03067Z" fill="#C28000"/>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

+5
View File
@@ -0,0 +1,5 @@
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M1.77667 0.0293402C0.941333 0.11734 0.289333 0.674007 0.0766664 1.48001C0.0313331 1.65201 0.0179997 1.79934 0.00733303 2.24001C-0.00133363 2.59867 0.00399981 2.82401 0.0233331 2.89601C0.0966665 3.16534 0.285333 3.30734 0.597333 3.32734C0.92 3.34801 1.13333 3.25401 1.25133 3.04134C1.31133 2.93267 1.31733 2.88467 1.33733 2.36934C1.35133 2.00401 1.37133 1.78534 1.39533 1.72734C1.452 1.59201 1.56267 1.47667 1.70067 1.40867L1.82667 1.34667L3.58 1.33801L5.33333 1.32934V5.99801V10.6667H4.604C3.82933 10.6667 3.71333 10.6813 3.548 10.7993C3.4 10.9047 3.34667 11.0453 3.34667 11.3333C3.34667 11.554 3.35533 11.602 3.41333 11.7053C3.48667 11.8367 3.60933 11.932 3.75667 11.9727C3.888 12.0093 8.112 12.0093 8.24333 11.9727C8.39067 11.932 8.51333 11.8367 8.58667 11.7053C8.64467 11.6013 8.65333 11.5547 8.65267 11.3333C8.652 11.0447 8.59867 10.9033 8.452 10.7993C8.28667 10.6813 8.17067 10.6667 7.396 10.6667H6.66667V5.99801V1.32934L8.42 1.33801L10.1733 1.34667L10.2933 1.40934C10.4527 1.49201 10.5127 1.55067 10.5833 1.69201C10.636 1.79734 10.644 1.86934 10.662 2.36534C10.6807 2.88534 10.686 2.92801 10.748 3.03934C10.8573 3.23734 11.048 3.33334 11.3333 3.33334C11.6187 3.33334 11.8087 3.23734 11.92 3.03867C11.986 2.92134 11.9867 2.91334 11.9847 2.30667C11.9827 1.76334 11.976 1.66934 11.924 1.48134C11.7673 0.910007 11.424 0.484007 10.914 0.228674C10.6767 0.110007 10.4947 0.0593402 10.1867 0.0273402C9.87733 -0.00465981 2.08467 -0.00332646 1.77667 0.0293402Z"
fill="#C28000" />
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.74902 2.04209C2.95702 2.12409 2.40002 2.37309 1.89002 2.87009C1.49102 3.26009 1.23602 3.73109 1.09402 4.34009C1.02402 4.64409 1.02002 4.94909 1.02002 10.5201V16.3801L1.11102 16.7351C1.22502 17.1841 1.37902 17.5051 1.65002 17.8581C2.03302 18.3571 2.59302 18.7181 3.24402 18.8841C3.56202 18.9661 3.70702 18.9721 5.96002 19.0001C8.19302 19.0271 8.35902 19.0341 8.64602 19.1121C9.19002 19.2591 9.72002 19.5831 10.045 19.9661C10.298 20.2641 10.924 21.1751 11.058 21.4401C11.206 21.7331 11.26 21.7881 11.529 21.9241C11.847 22.0851 12.153 22.0851 12.471 21.9241C12.74 21.7881 12.794 21.7331 12.943 21.4401C13.082 21.1661 13.58 20.4311 13.877 20.0631C14.245 19.6051 14.763 19.2721 15.354 19.1121C15.641 19.0341 15.808 19.0271 18.04 19.0001C20.258 18.9731 20.442 18.9651 20.74 18.8881C21.154 18.7821 21.383 18.6821 21.69 18.4731C22.324 18.0441 22.722 17.4491 22.906 16.6601C22.976 16.3561 22.98 16.0511 22.98 10.5001C22.98 4.94909 22.976 4.64409 22.906 4.34009C22.688 3.40409 22.167 2.73709 21.329 2.32109C20.742 2.03009 20.185 1.98309 17.72 2.01409C15.809 2.03809 15.293 2.07209 14.676 2.21509C13.832 2.41109 13.045 2.87309 12.382 3.56409L12 3.96209L11.618 3.56409C10.955 2.87309 10.168 2.41109 9.32402 2.21509C8.68002 2.06509 8.21302 2.03709 6.14002 2.02109C5.01802 2.01209 3.94202 2.02209 3.74902 2.04209ZM7.76002 4.03909C8.78102 4.09409 9.14502 4.18309 9.64202 4.50109C9.97602 4.71409 10.286 5.02409 10.499 5.35809C10.819 5.85909 10.907 6.22209 10.961 7.26009C11.005 8.11709 11.013 18.0931 10.97 18.0731C10.954 18.0661 10.782 17.9551 10.588 17.8261C10.03 17.4561 9.38202 17.2011 8.68002 17.0771C8.51602 17.0481 7.55302 17.0211 6.08002 17.0051L3.74002 16.9801L3.55002 16.8861C3.33502 16.7811 3.14202 16.5681 3.07002 16.3601C3.00802 16.1771 2.97702 5.48909 3.03702 4.94609C3.10202 4.36509 3.34202 4.10309 3.86602 4.04209C4.25602 3.99709 6.92902 3.99509 7.76002 4.03909ZM20.374 4.07709C20.584 4.14409 20.862 4.43009 20.928 4.64609C21.002 4.89209 21.005 16.0981 20.931 16.3401C20.863 16.5621 20.675 16.7761 20.45 16.8861L20.26 16.9801L17.92 17.0051C15.595 17.0311 15.375 17.0431 14.82 17.1851C14.316 17.3151 13.571 17.6721 13.194 17.9661C13.114 18.0291 13.038 18.0801 13.024 18.0801C12.985 18.0801 12.999 8.00209 13.039 7.24009C13.094 6.21909 13.183 5.85509 13.501 5.35809C13.714 5.02409 14.024 4.71409 14.358 4.50109C15.047 4.06109 15.542 4.00209 18.46 4.01809C19.717 4.02509 20.264 4.04209 20.374 4.07709Z" fill="#FF0000"/>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.6665 6.66665C8.48969 6.66665 8.32012 6.73688 8.1951 6.86191C8.07008 6.98693 7.99984 7.1565 7.99984 7.33331V16.7045L11.6123 14.1242C11.8441 13.9586 12.1555 13.9586 12.3873 14.1242L15.9998 16.7045V7.33331C15.9998 7.1565 15.9296 6.98693 15.8046 6.86191C15.6796 6.73688 15.51 6.66665 15.3332 6.66665H8.6665ZM7.25229 5.9191C7.62736 5.54403 8.13607 5.33331 8.6665 5.33331H15.3332C15.8636 5.33331 16.3723 5.54403 16.7474 5.9191C17.1225 6.29417 17.3332 6.80288 17.3332 7.33331V18C17.3332 18.2497 17.1936 18.4785 16.9716 18.5928C16.7495 18.707 16.4822 18.6876 16.279 18.5425L11.9998 15.4859L7.72066 18.5425C7.51745 18.6876 7.25016 18.707 7.02812 18.5928C6.80607 18.4785 6.6665 18.2497 6.6665 18V7.33331C6.6665 6.80288 6.87722 6.29417 7.25229 5.9191Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 912 B

@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.25229 5.9191C7.62736 5.54403 8.13607 5.33331 8.6665 5.33331H15.3332C15.8636 5.33331 16.3723 5.54403 16.7474 5.9191C17.1225 6.29417 17.3332 6.80288 17.3332 7.33331V18C17.3332 18.2497 17.1936 18.4785 16.9716 18.5928C16.7495 18.707 16.4822 18.6876 16.279 18.5425L11.9998 15.4859L7.72066 18.5425C7.51745 18.6876 7.25016 18.707 7.02812 18.5928C6.80607 18.4785 6.6665 18.2497 6.6665 18V7.33331C6.6665 6.80288 6.87722 6.29417 7.25229 5.9191Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 606 B

+3
View File
@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M18.8 1.42097C18.323 1.51797 17.887 1.71697 17.516 2.00597C17.047 2.37197 6.65597 12.034 6.48397 12.264C6.16797 12.688 5.95897 13.231 5.89797 13.78L5.87197 14.02L5.63197 14.006C5.49997 13.999 5.21097 14.014 4.98997 14.039C3.46097 14.217 2.07997 15.188 1.63897 16.395C1.39797 17.055 1.38597 17.181 1.38297 19.04C1.37997 20.908 1.38297 20.877 1.11397 21.548C1.00697 21.816 0.992967 21.893 1.00997 22.124C1.04197 22.574 1.25897 22.856 1.65597 22.965C1.76497 22.995 2.41297 23.012 3.57997 23.015C5.09697 23.019 5.40297 23.01 5.79997 22.948C7.17997 22.731 8.00997 22.353 8.73297 21.613C9.53397 20.794 9.99997 19.648 9.99997 18.499V18.129L10.23 18.102C10.602 18.057 10.919 17.965 11.26 17.801C11.577 17.648 12.074 17.263 12.303 16.991C12.368 16.915 14.444 14.667 16.918 11.996C19.392 9.32497 21.549 6.99597 21.711 6.81997C22.312 6.16797 22.595 5.52897 22.631 4.73697C22.679 3.66697 22.302 2.78797 21.505 2.11397C21.128 1.79597 20.532 1.50497 20.086 1.42197C19.687 1.34797 19.158 1.34697 18.8 1.42097ZM19.995 3.50097C20.23 3.62897 20.396 3.79897 20.529 4.05097C20.602 4.18797 20.619 4.28497 20.62 4.55997C20.62 4.86497 20.608 4.92097 20.5 5.10897C20.427 5.23597 18.884 6.93397 16.562 9.44097L12.744 13.564L11.592 12.412L10.44 11.261L10.57 11.134C11.079 10.635 18.651 3.65097 18.768 3.57197C19.013 3.40697 19.195 3.35697 19.503 3.37297C19.72 3.38397 19.834 3.41397 19.995 3.50097ZM10.195 13.815C10.841 14.462 11.363 15.01 11.355 15.035C11.347 15.059 11.161 15.271 10.942 15.505C10.498 15.98 10.275 16.119 9.95297 16.12C9.59697 16.12 9.43597 16.011 8.69597 15.268C8.08997 14.659 8.00297 14.555 7.94097 14.365C7.85697 14.11 7.87697 13.842 7.99597 13.608C8.07497 13.452 8.90097 12.64 8.97997 12.64C9.00197 12.64 9.54897 13.169 10.195 13.815ZM6.01997 16.06C7.35497 16.339 8.22197 17.675 7.93997 19.02C7.81097 19.635 7.38897 20.253 6.89997 20.541C6.34797 20.867 5.67597 20.995 4.33997 21.028L3.37997 21.052L3.38697 19.305C3.39197 18.231 3.41097 17.478 3.43797 17.349C3.53497 16.883 3.85897 16.522 4.42297 16.253C4.92897 16.011 5.47297 15.946 6.01997 16.06Z" fill="#FF0000"/>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.66673 15.6665H2.22224C1.89808 15.6665 1.5872 15.5378 1.35799 15.3086C1.12877 15.0793 1 14.7685 1 14.4443C1 14.1201 1.12877 13.8093 1.35799 13.58C1.5872 13.3508 1.89808 13.2221 2.22224 13.2221H4.66673V11.5879C4.45456 11.6529 4.22871 11.6589 4.01338 11.6053C3.79806 11.5517 3.6014 11.4405 3.44448 11.2836L1.71623 9.55533C1.49359 9.32482 1.3704 9.01607 1.37318 8.69561C1.37597 8.37514 1.50451 8.06859 1.73112 7.84197C1.95774 7.61536 2.26429 7.48682 2.58476 7.48403C2.90523 7.48125 3.21397 7.60444 3.44448 7.82708L4.83295 9.21555C5.0407 8.26404 5.43568 7.36337 5.9949 6.56599C6.55411 5.76861 7.26638 5.09046 8.09023 4.57103L6.6052 3.08723C6.37586 2.85805 6.24695 2.54715 6.24684 2.22292C6.24672 1.8987 6.37541 1.58771 6.60459 1.35836C6.83377 1.12902 7.14467 1.00011 7.4689 1C7.79312 0.999885 8.10411 1.12857 8.33345 1.35775L10.5616 3.58468C11.5113 3.39563 12.489 3.39563 13.4388 3.58468L15.6669 1.35775C15.8974 1.13511 16.2062 1.01192 16.5266 1.0147C16.8471 1.01749 17.1537 1.14603 17.3803 1.37264C17.6069 1.59926 17.7354 1.90581 17.7382 2.22628C17.741 2.54675 17.6178 2.85549 17.3952 3.086L15.9114 4.57225C16.7352 5.09168 17.4475 5.76983 18.0067 6.56721C18.5659 7.36459 18.9609 8.26526 19.1686 9.21677L20.5559 7.82586C20.7852 7.59668 21.0962 7.46799 21.4204 7.46811C21.7447 7.46822 22.0556 7.59713 22.2847 7.82647C22.5139 8.05581 22.6426 8.3668 22.6425 8.69103C22.6424 9.01525 22.5135 9.32615 22.2841 9.55533L20.5559 11.2836C20.3991 11.4407 20.2025 11.5521 19.9872 11.606C19.7718 11.6598 19.5459 11.654 19.3336 11.5891V13.2221H21.7781C22.1023 13.2221 22.4132 13.3508 22.6424 13.58C22.8716 13.8093 23.0004 14.1201 23.0004 14.4443C23.0004 14.7685 22.8716 15.0793 22.6424 15.3086C22.4132 15.5378 22.1023 15.6665 21.7781 15.6665H19.3336C19.3336 16.2569 19.264 16.8313 19.132 17.3826C19.3623 17.264 19.6243 17.2216 19.8802 17.2616C20.1361 17.3016 20.3727 17.4218 20.5559 17.605L22.2841 19.3333C22.5068 19.5638 22.63 19.8725 22.6272 20.193C22.6244 20.5135 22.4959 20.82 22.2692 21.0466C22.0426 21.2733 21.7361 21.4018 21.4156 21.4046C21.0951 21.4074 20.7864 21.2842 20.5559 21.0615L18.8276 19.3333C18.7149 19.221 18.6252 19.0877 18.5636 18.9409C17.955 20.1607 17.0184 21.1866 15.859 21.9036C14.6996 22.6206 13.3634 23.0003 12.0002 23C10.637 23.0003 9.30073 22.6206 8.14136 21.9036C6.98198 21.1866 6.0454 20.1607 5.43674 18.9409C5.3752 19.0877 5.28551 19.221 5.17274 19.3333L3.44448 21.0615C3.33174 21.1783 3.19687 21.2714 3.04775 21.3354C2.89863 21.3995 2.73825 21.4332 2.57596 21.4346C2.41367 21.436 2.25273 21.4051 2.10252 21.3436C1.95231 21.2822 1.81584 21.1914 1.70108 21.0767C1.58632 20.9619 1.49557 20.8254 1.43411 20.6752C1.37266 20.525 1.34173 20.3641 1.34314 20.2018C1.34455 20.0395 1.37827 19.8791 1.44233 19.73C1.50638 19.5809 1.5995 19.446 1.71623 19.3333L3.44448 17.605C3.62763 17.4218 3.86424 17.3016 4.12017 17.2616C4.37609 17.2216 4.63811 17.264 4.8684 17.3826C4.73397 16.8205 4.66628 16.2445 4.66673 15.6665ZM16.7351 9.55533H7.26522C7.53709 8.50636 8.14959 7.57735 9.00659 6.91416C9.86358 6.25096 10.9165 5.89112 12.0002 5.89112C13.0838 5.89112 14.1368 6.25096 14.9938 6.91416C15.8508 7.57735 16.4633 8.50636 16.7351 9.55533ZM16.7351 16.8888C16.4633 17.9378 15.8508 18.8668 14.9938 19.53C14.1368 20.1932 13.0838 20.553 12.0002 20.553C10.9165 20.553 9.86358 20.1932 9.00659 19.53C8.14959 18.8668 7.53709 17.9378 7.26522 16.8888H16.7351Z" fill="#FF0000"/>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.614 1.05689C7.377 1.13089 7.212 1.26089 7.109 1.45289C7.029 1.60289 7.019 1.68889 7.007 2.30489L6.994 2.99089L6.367 3.01789C5.29 3.06489 4.711 3.18089 4.16 3.45989C3.083 4.00489 2.355 4.96989 2.124 6.15989C2.013 6.72889 2 7.45489 2 12.9999C2 19.3579 2.006 19.5259 2.245 20.3199C2.577 21.4219 3.578 22.4229 4.68 22.7549C5.474 22.9939 5.642 22.9999 12 22.9999C18.358 22.9999 18.526 22.9939 19.32 22.7549C20.422 22.4229 21.423 21.4219 21.755 20.3199C21.994 19.5259 22 19.3579 22 12.9999C22 7.45489 21.987 6.72889 21.876 6.15989C21.68 5.14689 21.12 4.28989 20.287 3.72489C19.573 3.24089 18.954 3.07589 17.634 3.01789L17.008 2.99089L16.993 2.30489C16.975 1.52389 16.927 1.36389 16.649 1.18189C16.199 0.886891 15.426 0.978891 15.17 1.35789C15.029 1.56789 15 1.73889 15 2.38989V2.99989H12.004H9.008L8.993 2.30989C8.976 1.54089 8.93 1.37789 8.678 1.19889C8.414 1.00989 7.957 0.949891 7.614 1.05689ZM7 5.60989C7 5.94589 7.019 6.28489 7.041 6.36489C7.148 6.74989 7.437 6.96189 7.896 6.99089C8.381 7.02189 8.699 6.88189 8.88 6.55789C8.974 6.39089 8.981 6.33789 8.994 5.68989L9.008 4.99989H12.004H15V5.60989C15 5.94589 15.019 6.28489 15.041 6.36489C15.148 6.74989 15.437 6.96189 15.896 6.99089C16.381 7.02189 16.699 6.88189 16.88 6.55789C16.974 6.39089 16.981 6.33789 16.994 5.68489L17.008 4.98989L17.614 5.01789C18.655 5.06589 18.969 5.16789 19.4 5.59989C19.887 6.08589 19.952 6.33989 19.987 7.88989L20.012 8.99989H12H3.988L4.013 7.88989C4.047 6.40889 4.112 6.11989 4.52 5.66689C4.967 5.16889 5.422 5.02989 6.69 5.00589L7 4.99989V5.60989ZM19.989 15.1099C19.972 19.5639 19.975 19.4929 19.752 19.9519C19.626 20.2109 19.19 20.6379 18.918 20.7679C18.466 20.9849 18.627 20.9799 12 20.9799C5.383 20.9799 5.538 20.9849 5.082 20.7709C4.812 20.6429 4.377 20.2169 4.248 19.9519C4.025 19.4929 4.028 19.5639 4.011 15.1099L3.995 10.9999H12H20.005L19.989 15.1099ZM15.26 12.4869C15.194 12.5109 15.086 12.5669 15.02 12.6109C14.954 12.6549 14.023 13.5659 12.951 14.6339L11.002 16.5769L10.271 15.8539C9.857 15.4439 9.467 15.0939 9.372 15.0449C9.021 14.8679 8.64 14.9579 8.299 15.2989C7.952 15.6459 7.863 16.0099 8.04 16.3629C8.162 16.6069 10.393 18.8379 10.637 18.9599C10.868 19.0759 11.132 19.0759 11.363 18.9599C11.579 18.8519 16.216 14.2439 16.408 13.9469C16.655 13.5639 16.587 13.1819 16.202 12.7989C15.905 12.5029 15.541 12.3819 15.26 12.4869Z" fill="#FF0000"/>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.614 1.05714C7.377 1.13114 7.212 1.26114 7.109 1.45314C7.029 1.60314 7.019 1.68914 7.007 2.30514L6.994 2.99114L6.367 3.01814C5.29 3.06514 4.711 3.18114 4.16 3.46014C3.083 4.00514 2.355 4.97014 2.124 6.16014C2.013 6.72914 2 7.45514 2 13.0001C2 19.3581 2.006 19.5261 2.245 20.3201C2.577 21.4221 3.578 22.4231 4.68 22.7551C5.474 22.9941 5.642 23.0001 12 23.0001C18.358 23.0001 18.526 22.9941 19.32 22.7551C20.422 22.4231 21.423 21.4221 21.755 20.3201C21.994 19.5261 22 19.3581 22 13.0001C22 7.45514 21.987 6.72914 21.876 6.16014C21.68 5.14714 21.12 4.29014 20.287 3.72514C19.573 3.24114 18.954 3.07614 17.634 3.01814L17.008 2.99114L16.993 2.30514C16.975 1.52414 16.927 1.36414 16.649 1.18214C16.199 0.887135 15.426 0.979135 15.17 1.35814C15.029 1.56814 15 1.73914 15 2.39014V3.00014H12.004H9.008L8.993 2.31014C8.976 1.54114 8.93 1.37814 8.678 1.19914C8.414 1.01014 7.957 0.950135 7.614 1.05714ZM7 5.61014C7 5.94614 7.019 6.28514 7.041 6.36514C7.148 6.75014 7.437 6.96214 7.896 6.99114C8.381 7.02214 8.699 6.88214 8.88 6.55814C8.974 6.39114 8.981 6.33814 8.994 5.69014L9.008 5.00014H12.004H15V5.61014C15 5.94614 15.019 6.28514 15.041 6.36514C15.148 6.75014 15.437 6.96214 15.896 6.99114C16.381 7.02214 16.699 6.88214 16.88 6.55814C16.974 6.39114 16.981 6.33814 16.994 5.68514L17.008 4.99013L17.614 5.01814C18.655 5.06614 18.969 5.16814 19.4 5.60014C19.887 6.08614 19.952 6.34014 19.987 7.89014L20.012 9.00014H12H3.988L4.013 7.89014C4.047 6.40914 4.112 6.12014 4.52 5.66714C4.967 5.16914 5.422 5.03014 6.69 5.00614L7 5.00014V5.61014ZM19.989 15.1101C19.972 19.5641 19.975 19.4931 19.752 19.9521C19.626 20.2111 19.19 20.6381 18.918 20.7681C18.466 20.9851 18.627 20.9801 12 20.9801C5.383 20.9801 5.538 20.9851 5.082 20.7711C4.812 20.6431 4.377 20.2171 4.248 19.9521C4.025 19.4931 4.028 19.5641 4.011 15.1101L3.995 11.0001H12H20.005L19.989 15.1101ZM11.697 12.0361C11.527 12.1131 10.059 13.0791 9.784 13.2941C9.58 13.4541 9.423 13.7891 9.451 14.0011C9.501 14.3721 9.843 14.8581 10.142 14.9831C10.328 15.0611 10.562 15.0541 10.8 14.9641L11 14.8881V15.9381V16.9891L10.687 17.0101C10.042 17.0541 9.76 17.3551 9.76 18.0001C9.76 18.5051 9.951 18.8161 10.338 18.9371C10.521 18.9951 10.745 19.0021 12.084 18.9921C13.568 18.9801 13.625 18.9771 13.78 18.8941C14.106 18.7181 14.24 18.4591 14.24 18.0001C14.24 17.3551 13.958 17.0541 13.313 17.0101L13 16.9891V14.9211C13 12.6001 13.003 12.6321 12.712 12.3011C12.419 11.9681 12.055 11.8731 11.697 12.0361Z" fill="#FF0000"/>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0,1.61 L24,1.61 L12,22.39 Z" fill="#FFFFFF"/>
</svg>

After

Width:  |  Height:  |  Size: 159 B

@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M22.39,0 L22.39,24 L1.61,12 Z" fill="#FFFFFF"/>
</svg>

After

Width:  |  Height:  |  Size: 160 B

@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0,22.39 L24,22.39 L12,1.61 Z" fill="#FFFFFF"/>
</svg>

After

Width:  |  Height:  |  Size: 159 B

@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.15,0.61 L22.85,0.61 L12,20.39 Z" fill="#FFFFFF"/>
</svg>

After

Width:  |  Height:  |  Size: 165 B

@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M23.39,1.15 L23.39,22.85 L3.61,12 Z" fill="#FFFFFF"/>
</svg>

After

Width:  |  Height:  |  Size: 166 B

@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.15,23.39 L22.85,23.39 L12,3.61 Z" fill="#FFFFFF"/>
</svg>

After

Width:  |  Height:  |  Size: 165 B

+3
View File
@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.346 2.00981C11.276 2.01799 11.0469 2.04255 10.8369 2.06438C9.75248 2.1799 8.67076 2.49643 7.61903 3.00761C6.58731 3.50879 5.81283 4.06726 4.94473 4.935C4.07117 5.80728 3.49486 6.60952 2.99854 7.64644C1.36596 11.0555 1.75411 14.9831 4.02481 18.0274C4.45659 18.6059 5.41287 19.5582 6.001 19.9957C9.60431 22.6772 14.4239 22.6672 18.0335 19.9712C18.5871 19.5582 19.5598 18.585 19.9725 18.031C22.6758 14.4064 22.6758 9.58201 19.9725 5.95736C19.5598 5.40434 18.588 4.432 18.0363 4.02179C16.5864 2.94303 15.0593 2.31633 13.294 2.07621C12.9095 2.02345 11.6132 1.97979 11.346 2.00981ZM13.2003 3.8999C15.5301 4.25191 17.5672 5.56442 18.8726 7.55548C19.148 7.97661 19.5479 8.79159 19.7198 9.28367C20.0343 10.1869 20.1606 10.9618 20.1606 11.9942C20.1606 13.3522 19.9279 14.3746 19.3452 15.5797C19.1125 16.0618 18.5999 16.8859 18.448 17.0232C18.3817 17.0833 18.1726 16.8786 12.6404 11.343L6.90273 5.60172L7.0609 5.47347C7.60994 5.02777 8.61712 4.49658 9.41887 4.2319C10.0597 4.01997 10.5751 3.91537 11.4005 3.82987C11.6932 3.79985 12.8286 3.84351 13.2003 3.8999ZM17.09 18.3976C17.0891 18.4076 16.9627 18.5068 16.8082 18.6186C13.8157 20.7798 9.75611 20.6815 6.88274 18.3785C5.50741 17.2761 4.47568 15.6589 4.06208 13.9589C3.89301 13.2649 3.84029 12.8019 3.84029 11.9942C3.84029 10.9618 3.96664 10.1869 4.28115 9.28367C4.53295 8.56238 5.07654 7.55366 5.48377 7.05158L5.61194 6.89331L11.3514 12.6364C14.5084 15.7953 17.0909 18.3876 17.09 18.3976Z" fill="#FF0000"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

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