This commit is contained in:
brunoherbelin
2020-07-27 11:46:02 +02:00
342 changed files with 685 additions and 2027 deletions

View File

@@ -223,6 +223,7 @@ set(VMIX_SRCS
GarbageVisitor.cpp
SessionCreator.cpp
Mixer.cpp
Recorder.cpp
Settings.cpp
Screenshot.cpp
Resource.cpp

View File

@@ -37,6 +37,7 @@ public:
// width & height
inline uint width() const { return attrib_.viewport.x; }
inline uint height() const { return attrib_.viewport.y; }
inline bool use_alpha() const { return use_alpha_; }
glm::vec3 resolution() const;
float aspectRatio() const;

View File

@@ -2,6 +2,8 @@
#include <algorithm>
#include <thread>
using namespace std;
// vmix
#include "defines.h"
#include "Log.h"
@@ -16,10 +18,7 @@
#include <glad/glad.h>
// GStreamer
#include <gst/gl/gl.h>
#include <gst/gstformat.h>
#include <gst/pbutils/gstdiscoverer.h>
//#include <gst/app/gstappsink.h>
#ifndef NDEBUG
#define MEDIA_PLAYER_DEBUG
@@ -157,6 +156,8 @@ void MediaPlayer::execute_open()
// setup appsink
GstElement *sink = gst_bin_get_by_name (GST_BIN (pipeline_), "sink");
GstBaseSink *s = GST_BASE_SINK(sink);
s->eos;
if (sink) {
// instruct the sink to send samples synched in time

View File

@@ -2,16 +2,11 @@
#define __GST_MEDIA_PLAYER_H_
#include <string>
#include <atomic>
#include <sstream>
#include <set>
#include <list>
#include <map>
#include <utility>
#include <mutex>
#include <gst/gst.h>
#include <gst/gl/gl.h>
#include <gst/pbutils/pbutils.h>
#include <gst/app/gstappsink.h>

View File

@@ -672,6 +672,9 @@ void Mixer::swap()
session_ = back_session_;
back_session_ = tmp;
// swap recorders
back_session_->transferRecorders(session_);
// attach new session's nodes to views
for (auto source_iter = session_->begin(); source_iter != session_->end(); source_iter++)
{

347
Recorder.cpp Normal file
View File

@@ -0,0 +1,347 @@
#include <thread>
// Desktop OpenGL function loader
#include <glad/glad.h>
// standalone image loader
#include <stb_image.h>
#include <stb_image_write.h>
// gstreamer
#include <gst/gstformat.h>
#include <gst/video/video.h>
#include "Settings.h"
#include "GstToolkit.h"
#include "defines.h"
#include "SystemToolkit.h"
#include "FrameBuffer.h"
#include "Log.h"
#include "Recorder.h"
using namespace std;
Recorder::Recorder() : finished_(false)
{
}
PNGRecorder::PNGRecorder() : Recorder()
{
std::string path = SystemToolkit::path_directory(Settings::application.record.path);
if (path.empty())
path = SystemToolkit::home_path();
filename_ = path + SystemToolkit::date_time_string() + "_vimix.png";
}
// Thread to perform slow operation of saving to file
void save_png(std::string filename, unsigned char *data, uint w, uint h, uint c)
{
// got data to save ?
if (data) {
// save file
stbi_write_png(filename.c_str(), w, h, c, data, w * c);
// notify
Log::Notify("Capture %s saved.", filename.c_str());
// done
free(data);
}
}
void PNGRecorder::addFrame(FrameBuffer *frame_buffer, float)
{
uint w = frame_buffer->width();
uint h = frame_buffer->height();
uint c = frame_buffer->use_alpha() ? 4 : 3;
GLenum format = frame_buffer->use_alpha() ? GL_RGBA : GL_RGB;
uint size = w * h * c;
unsigned char * data = (unsigned char*) malloc(size);
glGetTextureSubImage( frame_buffer->texture(), 0, 0, 0, 0, w, h, 1, format, GL_UNSIGNED_BYTE, size, data);
// save in separate thread
std::thread(save_png, filename_, data, w, h, c).detach();
// record one frame only
finished_ = true;
}
const char* VideoRecorder::profile_name[4] = { "H264 (low)", "H264 (high)", "Apple ProRes 4444", "WebM VP9" };
const std::vector<std::string> VideoRecorder::profile_description {
// Control x264 encoder quality :
// pass=4
// quant (4) Constant Quantizer
// qual (5) Constant Quality
// quantizer=23
// The total range is from 0 to 51, where 0 is lossless, 18 can be considered visually lossless,
// and 51 is terrible quality. A sane range is 18-26, and the default is 23.
// speed-preset=3
// veryfast (3)
// faster (4)
// fast (5)
"x264enc pass=4 quantizer=23 speed-preset=3 ! video/x-h264, profile=baseline ! h264parse ! ",
"x264enc pass=5 quantizer=18 speed-preset=4 ! video/x-h264, profile=high ! h264parse ! ",
// Apple ProRes encoding parameters
// pass=2
// cbr (0) Constant Bitrate Encoding
// quant (2) Constant Quantizer
// pass1 (512) VBR Encoding - Pass 1
"avenc_prores bitrate=60000 pass=2 ! ",
// WebM VP9 encoding parameters
// https://www.webmproject.org/docs/encoder-parameters/
// https://developers.google.com/media/vp9/settings/vod/
"vp9enc end-usage=vbr end-usage=vbr cpu-used=3 max-quantizer=35 target-bitrate=200000 keyframe-max-dist=360 token-partitions=2 static-threshold=1000 ! "
};
// FAILED
// x265 encoder quality
// string description = "appsrc name=src ! videoconvert ! "
// "x265enc tune=4 speed-preset=2 option-string='crf=28' ! h265parse ! "
// "qtmux ! filesink name=sink";
VideoRecorder::VideoRecorder() : Recorder(), frame_buffer_(nullptr), width_(0), height_(0), buf_size_(0),
recording_(false), pipeline_(nullptr), src_(nullptr), timestamp_(0), timeframe_(0), accept_buffer_(false)
{
// auto filename
std::string path = SystemToolkit::path_directory(Settings::application.record.path);
if (path.empty())
path = SystemToolkit::home_path();
filename_ = path + SystemToolkit::date_time_string() + "_vimix.mov";
// configure fix parameter
frame_duration_ = gst_util_uint64_scale_int (1, GST_SECOND, 30); // 30 FPS
timeframe_ = 2 * frame_duration_;
}
VideoRecorder::~VideoRecorder()
{
if (pipeline_ != nullptr) {
gst_element_set_state (pipeline_, GST_STATE_NULL);
gst_object_unref (pipeline_);
}
if (src_ != nullptr)
gst_object_unref (src_);
}
void VideoRecorder::addFrame (FrameBuffer *frame_buffer, float dt)
{
// TODO : avoid software videoconvert by using a GPU shader to produce Y444 frames
// ignore
if (frame_buffer == nullptr)
return;
// first frame for initialization
if (frame_buffer_ == nullptr) {
// set frame buffer as input
frame_buffer_ = frame_buffer;
// define stream properties
width_ = frame_buffer_->width();
height_ = frame_buffer_->height();
buf_size_ = width_ * height_ * (frame_buffer_->use_alpha() ? 4 : 3);
// create a gstreamer pipeline
string description = "appsrc name=src ! videoconvert ! ";
description += profile_description[Settings::application.record.profile];
description += "qtmux ! filesink name=sink";
// parse pipeline descriptor
GError *error = NULL;
pipeline_ = gst_parse_launch (description.c_str(), &error);
if (error != NULL) {
Log::Warning("VideoRecorder Could not construct pipeline %s:\n%s", description.c_str(), error->message);
g_clear_error (&error);
finished_ = true;
return;
}
// setup file sink
sink_ = GST_BASE_SINK( gst_bin_get_by_name (GST_BIN (pipeline_), "sink") );
if (sink_) {
g_object_set (G_OBJECT (sink_),
"location", filename_.c_str(),
"sync", FALSE,
NULL);
}
else {
Log::Warning("VideoRecorder Could not configure file");
finished_ = true;
return;
}
// setup custom app source
src_ = GST_APP_SRC( gst_bin_get_by_name (GST_BIN (pipeline_), "src") );
if (src_) {
g_object_set (G_OBJECT (src_),
"stream-type", GST_APP_STREAM_TYPE_STREAM,
"is-live", TRUE,
"format", GST_FORMAT_TIME,
// "do-timestamp", TRUE,
NULL);
// Direct encoding (no buffering)
gst_app_src_set_max_bytes( src_, 0 );
// gst_app_src_set_max_bytes( src_, 2 * buf_size_);
// instruct src to use the required caps
GstCaps *caps = gst_caps_new_simple ("video/x-raw",
"format", G_TYPE_STRING, "RGB",
"width", G_TYPE_INT, width_,
"height", G_TYPE_INT, height_,
"framerate", GST_TYPE_FRACTION, 30, 1,
NULL);
gst_app_src_set_caps (src_, caps);
gst_caps_unref (caps);
// setup callbacks
GstAppSrcCallbacks callbacks;
callbacks.need_data = callback_need_data;
callbacks.enough_data = callback_enough_data;
callbacks.seek_data = NULL; // stream type is not seekable
gst_app_src_set_callbacks (src_, &callbacks, this, NULL);
}
else {
Log::Warning("VideoRecorder Could not configure capture source");
finished_ = true;
return;
}
// start recording
GstStateChangeReturn ret = gst_element_set_state (pipeline_, GST_STATE_PLAYING);
if (ret == GST_STATE_CHANGE_FAILURE) {
Log::Warning("VideoRecorder Could not record %s", filename_.c_str());
finished_ = true;
return;
}
// all good
Log::Info("VideoRecorder start recording (%d x %d)", width_, height_);
// start recording !!
recording_ = true;
}
// frame buffer changed ?
else if (frame_buffer_ != frame_buffer) {
// if an incompatilble frame buffer given: stop recorder
if ( frame_buffer->width() != width_ ||
frame_buffer->height() != height_ ||
frame_buffer->use_alpha() != frame_buffer_->use_alpha()) {
stop();
Log::Info("Recording interrupted: new session (%d x %d) incompatible with recording (%d x %d)", frame_buffer->width(), frame_buffer->height(), width_, height_);
}
else {
// accepting a new frame buffer as input
frame_buffer_ = frame_buffer;
}
}
static int count = 0;
// store a frame if recording is active
if (recording_ && buf_size_ > 0)
{
// calculate dt in ns
timeframe_ += gst_gdouble_to_guint64( dt * 1000000.f);
// if time is passed one frame duration (with 10% margin)
// and if the encoder accepts data
if ( timeframe_ > frame_duration_ - 3000000 && accept_buffer_) {
GstBuffer *buffer = gst_buffer_new_and_alloc (buf_size_);
GLenum format = frame_buffer_->use_alpha() ? GL_RGBA : GL_RGB;
// set timing of buffer
buffer->pts = timestamp_;
buffer->duration = frame_duration_;
// OpenGL capture
GstMapInfo map;
gst_buffer_map (buffer, &map, GST_MAP_WRITE);
glGetTextureSubImage( frame_buffer_->texture(), 0, 0, 0, 0, width_, height_, 1, format, GL_UNSIGNED_BYTE, buf_size_, map.data);
gst_buffer_unmap (buffer, &map);
// push
// Log::Info("VideoRecorder push data %ld", buffer->pts);
gst_app_src_push_buffer (src_, buffer);
// NB: buffer will be unrefed by the appsrc
// restart counter
timeframe_ = 0;
// next timestamp
timestamp_ += frame_duration_;
}
}
// did the recording terminate with sink receiving end-of-stream ?
else
{
// Wait for EOS message
GstBus *bus = gst_pipeline_get_bus(GST_PIPELINE(pipeline_));
GstMessage *msg = gst_bus_poll(bus, GST_MESSAGE_EOS, GST_TIME_AS_USECONDS(1));
if (msg) {
// Log::Info("received EOS");
// stop the pipeline
GstStateChangeReturn ret = gst_element_set_state (pipeline_, GST_STATE_NULL);
if (ret == GST_STATE_CHANGE_FAILURE)
Log::Warning("VideoRecorder Could not stop");
else
Log::Notify("Recording %s ready.", filename_.c_str());
count = 0;
finished_ = true;
}
}
}
void VideoRecorder::stop ()
{
// send end of stream
gst_app_src_end_of_stream (src_);
// Log::Info("VideoRecorder push EOS");
// stop recording
recording_ = false;
}
std::string VideoRecorder::info()
{
if (recording_)
return GstToolkit::time_to_string(timestamp_);
else
return "Saving file...";
}
// appsrc needs data and we should start sending
void VideoRecorder::callback_need_data (GstAppSrc *src, guint length, gpointer p)
{
// Log::Info("H264Recording callback_need_data");
VideoRecorder *rec = (VideoRecorder *)p;
if (rec) {
rec->accept_buffer_ = rec->recording_ ? true : false;
}
}
// appsrc has enough data and we can stop sending
void VideoRecorder::callback_enough_data (GstAppSrc *src, gpointer p)
{
// Log::Info("H264Recording callback_enough_data");
VideoRecorder *rec = (VideoRecorder *)p;
if (rec) {
rec->accept_buffer_ = false;
}
}

87
Recorder.h Normal file
View File

@@ -0,0 +1,87 @@
#ifndef RECORDER_H
#define RECORDER_H
#include <atomic>
#include <string>
#include <vector>
#include <gst/pbutils/pbutils.h>
#include <gst/app/gstappsrc.h>
class FrameBuffer;
/**
* @brief The Recorder class defines the base class for all recorders
* used to save images or videos from a frame buffer.
*
* The Mixer class calls addFrame() at each newly rendered frame for all of its recorder.
*/
class Recorder
{
public:
Recorder();
virtual ~Recorder() {}
virtual void addFrame(FrameBuffer *frame_buffer, float dt) = 0;
virtual void stop() { }
virtual std::string info() { return ""; }
inline bool finished() const { return finished_; }
protected:
std::atomic<bool> finished_;
};
class PNGRecorder : public Recorder
{
std::string filename_;
public:
PNGRecorder();
void addFrame(FrameBuffer *frame_buffer, float);
};
class VideoRecorder : public Recorder
{
std::string filename_;
// Frame buffer information
FrameBuffer *frame_buffer_;
uint width_;
uint height_;
uint buf_size_;
// operation
std::atomic<bool> recording_;
std::atomic<bool> accept_buffer_;
// gstreamer pipeline
GstElement *pipeline_;
GstAppSrc *src_;
GstBaseSink *sink_;
GstClockTime timeframe_;
GstClockTime timestamp_;
GstClockTime frame_duration_;
static void callback_need_data (GstAppSrc *src, guint length, gpointer user_data);
static void callback_enough_data (GstAppSrc *src, gpointer user_data);
public:
static const char* profile_name[4];
static const std::vector<std::string> profile_description;
VideoRecorder();
~VideoRecorder();
void addFrame(FrameBuffer *frame_buffer, float dt);
void stop() override;
std::string info() override;
};
#endif // RECORDER_H

View File

@@ -5,6 +5,7 @@
#include "FrameBuffer.h"
#include "Session.h"
#include "GarbageVisitor.h"
#include "Recorder.h"
#include "Log.h"
@@ -29,12 +30,14 @@ Session::Session() : filename_(""), failedSource_(nullptr), active_(true)
Session::~Session()
{
// delete all recorders
clearRecorders();
// delete all sources
for(auto it = sources_.begin(); it != sources_.end(); ) {
// erase this source from the list
it = deleteSource(*it);
}
}
void Session::setActive (bool on)
@@ -71,6 +74,23 @@ void Session::update(float dt)
// draw render view in Frame Buffer
render_.draw();
// send frame to recorders
std::list<Recorder *>::iterator iter;
for (iter=recorders_.begin(); iter != recorders_.end(); )
{
Recorder *rec = *iter;
rec->addFrame(render_.frame(), dt);
if (rec->finished()) {
iter = recorders_.erase(iter);
delete rec;
}
else {
iter++;
}
}
}
@@ -209,4 +229,49 @@ int Session::index(SourceList::iterator it) const
return index;
}
void Session::addRecorder(Recorder *rec)
{
recorders_.push_back(rec);
}
Recorder *Session::frontRecorder()
{
if (recorders_.empty())
return nullptr;
else
return recorders_.front();
}
void Session::stopRecorders()
{
std::list<Recorder *>::iterator iter;
for (iter=recorders_.begin(); iter != recorders_.end(); )
(*iter)->stop();
}
void Session::clearRecorders()
{
std::list<Recorder *>::iterator iter;
for (iter=recorders_.begin(); iter != recorders_.end(); )
{
Recorder *rec = *iter;
rec->stop();
iter = recorders_.erase(iter);
delete rec;
}
}
void Session::transferRecorders(Session *dest)
{
if (dest == nullptr)
return;
std::list<Recorder *>::iterator iter;
for (iter=recorders_.begin(); iter != recorders_.end(); )
{
dest->recorders_.push_back(*iter);
iter = recorders_.erase(iter);
}
}

View File

@@ -5,6 +5,8 @@
#include "View.h"
#include "Source.h"
class Recorder;
class Session
{
public:
@@ -45,6 +47,13 @@ public:
// get frame result of render
inline FrameBuffer *frame () const { return render_.frame(); }
// Recorders
void addRecorder(Recorder *rec);
Recorder *frontRecorder();
void stopRecorders();
void clearRecorders();
void transferRecorders(Session *dest);
// configure rendering resolution
void setResolution(glm::vec3 resolution);
@@ -67,6 +76,8 @@ protected:
SourceList sources_;
std::map<View::Mode, Group*> config_;
bool active_;
std::list<Recorder *> recorders_;
};
#endif // SESSION_H

View File

@@ -79,6 +79,12 @@ void Settings::Save()
RenderNode->SetAttribute("res", application.render.res);
pRoot->InsertEndChild(RenderNode);
// Record
XMLElement *RecordNode = xmlDoc.NewElement( "Record" );
RecordNode->SetAttribute("path", application.record.path.c_str());
RecordNode->SetAttribute("profile", application.record.profile);
pRoot->InsertEndChild(RecordNode);
// Transition
XMLElement *TransitionNode = xmlDoc.NewElement( "Transition" );
TransitionNode->SetAttribute("auto_open", application.transition.auto_open);
@@ -219,6 +225,19 @@ void Settings::Load()
rendernode->QueryIntAttribute("res", &application.render.res);
}
// Render
XMLElement * recordnode = pRoot->FirstChildElement("Record");
if (recordnode != nullptr) {
recordnode->QueryIntAttribute("profile", &application.record.profile);
const char *path_ = recordnode->Attribute("path");
if (path_)
application.record.path = std::string(path_);
else
application.record.path = SystemToolkit::home_path();
}
// Transition
XMLElement * transitionnode = pRoot->FirstChildElement("Transition");
if (transitionnode != nullptr) {

View File

@@ -58,6 +58,17 @@ struct ViewConfig
};
struct RecordConfig
{
std::string path;
int profile;
RecordConfig() : path("") {
profile = 0;
}
};
struct History
{
std::string path;
@@ -143,6 +154,9 @@ struct Application
// settings render
RenderConfig render;
// settings render
RecordConfig record;
// settings transition
TransitionConfig transition;

View File

@@ -256,6 +256,21 @@ bool SystemToolkit::file_exists(const string& path)
// TODO : WIN32 implementation
}
// tests if dir is a directory and return its path, empty string otherwise
std::string SystemToolkit::path_directory(const std::string& path)
{
string directorypath = "";
DIR *dir;
if ((dir = opendir (path.c_str())) != NULL) {
directorypath = path + PATH_SEP;
closedir (dir);
}
return directorypath;
}
list<string> SystemToolkit::list_directory(const string& path, const string& filter)
{
list<string> ls;

View File

@@ -45,6 +45,9 @@ namespace SystemToolkit
// extract the extension of a filename
std::string extension_filename(const std::string& filename);
// tests if dir is a directory and return its path, empty string otherwise
std::string path_directory(const std::string& path);
// list all files of a directory mathing the given filter extension (if any)
std::list<std::string> list_directory(const std::string& path, const std::string& filter = "");

View File

@@ -5,6 +5,8 @@
#include <algorithm>
#include <map>
using namespace std;
// ImGui
#include "imgui.h"
#define IMGUI_DEFINE_MATH_OPERATORS
@@ -44,6 +46,7 @@
#include "ImGuiVisitor.h"
#include "GstToolkit.h"
#include "Mixer.h"
#include "Recorder.h"
#include "Selection.h"
#include "FrameBuffer.h"
#include "MediaPlayer.h"
@@ -275,11 +278,11 @@ void UserInterface::handleKeyboard()
// Shader Editor
Settings::application.widget.shader_editor = !Settings::application.widget.shader_editor;
}
else if (ImGui::IsKeyPressed( GLFW_KEY_P )) {
else if (ImGui::IsKeyPressed( GLFW_KEY_D )) {
// Logs
Settings::application.widget.preview = !Settings::application.widget.preview;
}
else if (ImGui::IsKeyPressed( GLFW_KEY_M )) {
else if (ImGui::IsKeyPressed( GLFW_KEY_P )) {
// Logs
Settings::application.widget.media_player = !Settings::application.widget.media_player;
}
@@ -287,6 +290,10 @@ void UserInterface::handleKeyboard()
// select all
Mixer::manager().view()->selectAll();
}
else if (ImGui::IsKeyPressed( GLFW_KEY_R )) {
// toggle recording
Mixer::manager().session()->addRecorder(new VideoRecorder);
}
}
// No CTRL modifier
@@ -300,8 +307,6 @@ void UserInterface::handleKeyboard()
Mixer::manager().setView(View::GEOMETRY);
else if (ImGui::IsKeyPressed( GLFW_KEY_F3 ))
Mixer::manager().setView(View::LAYER);
// else if (ImGui::IsKeyPressed( GLFW_KEY_F4 )) // TODO REMOVE (DEBUG ONLY)
// Mixer::manager().setView(View::TRANSITION);
else if (ImGui::IsKeyPressed( GLFW_KEY_F11 ))
Rendering::manager().mainWindow().toggleFullscreen();
else if (ImGui::IsKeyPressed( GLFW_KEY_F12 ))
@@ -845,6 +850,14 @@ void UserInterface::RenderPreview()
}
};
// return from thread for folder openning
static char record_browser_path_[2048] = {};
static std::atomic<bool> record_path_selected = false;
if (record_path_selected) {
record_path_selected = false;
Settings::application.record.path = std::string(record_browser_path_);
}
FrameBuffer *output = Mixer::manager().session()->frame();
if (output)
{
@@ -856,11 +869,15 @@ void UserInterface::RenderPreview()
{
ImGui::End();
return;
}
// adapt rendering if there is a recording ongoing
Recorder *rec = Mixer::manager().session()->frontRecorder();
// menu (no title bar)
if (ImGui::BeginMenuBar())
{
if (ImGui::BeginMenu(ICON_FA_DESKTOP " Preview"))
if (ImGui::BeginMenu(IMGUI_TITLE_PREVIEW))
{
if ( ImGui::MenuItem( ICON_FA_WINDOW_RESTORE " Show output window") )
Rendering::manager().outputWindow().show();
@@ -870,6 +887,56 @@ void UserInterface::RenderPreview()
ImGui::EndMenu();
}
if (ImGui::BeginMenu("Record"))
{
if ( ImGui::MenuItem( ICON_FA_CAMERA_RETRO " Capture frame") )
Mixer::manager().session()->addRecorder(new PNGRecorder);
ImGui::Separator();
// Stop recording menu if recording exists
if (rec) {
if ( ImGui::MenuItem( ICON_FA_SQUARE " Stop Record") )
rec->stop();
}
// start recording menu
else {
if ( ImGui::MenuItem( ICON_FA_CIRCLE " Record") )
Mixer::manager().session()->addRecorder(new VideoRecorder);
ImGui::SetNextItemWidth(300);
ImGui::Combo("##RecProfile", &Settings::application.record.profile, VideoRecorder::profile_name, IM_ARRAYSIZE(VideoRecorder::profile_name) );
}
// Options menu
ImGui::MenuItem("Destination", nullptr, false, false);
{
static char* name_path[4] = { nullptr };
if ( name_path[0] == nullptr ) {
for (int i = 0; i < 4; ++i)
name_path[i] = (char *) malloc( 1024 * sizeof(char));
sprintf( name_path[1], "%s", ICON_FA_HOME " Home");
sprintf( name_path[2], "%s", ICON_FA_FOLDER " Session location");
sprintf( name_path[3], "%s", ICON_FA_FOLDER_PLUS " Select");
}
if (Settings::application.record.path.empty())
Settings::application.record.path = SystemToolkit::home_path();
sprintf( name_path[0], "%s", Settings::application.record.path.c_str());
int selected_path = 0;
ImGui::SetNextItemWidth(300);
ImGui::Combo("##RecDestination", &selected_path, name_path, 4);
if (selected_path > 2)
std::thread (FolderDialogOpen, record_browser_path_, &record_path_selected, Settings::application.record.path).detach();
else if (selected_path > 1)
Settings::application.record.path = SystemToolkit::path_filename( Mixer::manager().session()->filename() );
else if (selected_path > 0)
Settings::application.record.path = SystemToolkit::home_path();
}
ImGui::EndMenu();
}
ImGui::EndMenuBar();
}
@@ -880,12 +947,22 @@ void UserInterface::RenderPreview()
ImVec2 draw_pos = ImGui::GetCursorScreenPos();
// preview image
ImGui::Image((void*)(intptr_t)output->texture(), imagesize);
// recording indicator overlay
if (rec)
{
float r = ImGui::GetTextLineHeightWithSpacing();
ImGui::SetCursorScreenPos(ImVec2(draw_pos.x + r, draw_pos.y + r));
ImGuiToolkit::PushFont(ImGuiToolkit::FONT_LARGE);
ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(1.0, 0.05, 0.05, 0.8f));
ImGui::Text(ICON_FA_CIRCLE " %s", rec->info().c_str() );
ImGui::PopStyleColor(1);
ImGui::PopFont();
}
// tooltip overlay
if (ImGui::IsItemHovered()) {
if (ImGui::IsItemHovered())
{
ImDrawList* draw_list = ImGui::GetWindowDrawList();
draw_list->AddRectFilled(draw_pos, ImVec2(draw_pos.x + width, draw_pos.y + ImGui::GetTextLineHeightWithSpacing()), IM_COL32(5, 5, 5, 100));
ImGui::SetCursorScreenPos(draw_pos);
ImGui::Text(" %d x %d px, %d fps", output->width(), output->height(), int(1000.f / Mixer::manager().dt()) );
}
@@ -973,6 +1050,28 @@ void MediaController::Render()
ImGui::EndMenu();
}
if (mp_ && current_ != LABEL_AUTO_MEDIA_PLAYER && MediaPlayer::registered().size() > 1) {
bool tmp = false;
if ( ImGui::Selectable(ICON_FA_CHEVRON_LEFT, &tmp, ImGuiSelectableFlags_None, ImVec2(10,0))) {
auto mpit = std::find(MediaPlayer::begin(),MediaPlayer::end(), mp_ );
if (mpit == MediaPlayer::begin()) {
mpit = MediaPlayer::end();
}
mpit--;
setMediaPlayer(*mpit);
}
if ( ImGui::Selectable(ICON_FA_CHEVRON_RIGHT, &tmp, ImGuiSelectableFlags_None, ImVec2(10,0))) {
auto mpit = std::find(MediaPlayer::begin(),MediaPlayer::end(), mp_ );
mpit++;
if (mpit == MediaPlayer::end()) {
mpit = MediaPlayer::begin();
}
setMediaPlayer(*mpit);
}
}
if (ImGui::BeginMenu(current_.c_str()))
{
if (ImGui::MenuItem(LABEL_AUTO_MEDIA_PLAYER))
@@ -988,6 +1087,8 @@ void MediaController::Render()
ImGui::EndMenu();
}
ImGui::EndMenuBar();
}
@@ -1125,7 +1226,7 @@ void MediaController::Render()
center.x -= ImGui::GetTextLineHeight() * 2.f;
center.y += ImGui::GetTextLineHeight() * 0.5f;
ImGui::SetCursorPos(center);
ImGui::Text("No selection");
ImGui::Text("No media");
ImGui::PopFont();
ImGui::PopStyleColor(1);
}
@@ -1917,8 +2018,8 @@ void Navigator::RenderMainPannel()
// WINDOWS
ImGui::Text(" ");
ImGui::Text("Windows");
ImGuiToolkit::ButtonSwitch( IMGUI_TITLE_PREVIEW, &Settings::application.widget.preview, CTRL_MOD "P");
ImGuiToolkit::ButtonSwitch( IMGUI_TITLE_MEDIAPLAYER, &Settings::application.widget.media_player, CTRL_MOD "M");
ImGuiToolkit::ButtonSwitch( IMGUI_TITLE_PREVIEW, &Settings::application.widget.preview, CTRL_MOD "D");
ImGuiToolkit::ButtonSwitch( IMGUI_TITLE_MEDIAPLAYER, &Settings::application.widget.media_player, CTRL_MOD "P");
#ifndef NDEBUG
ImGuiToolkit::ButtonSwitch( IMGUI_TITLE_SHADEREDITOR, &Settings::application.widget.shader_editor, CTRL_MOD "E");
ImGuiToolkit::ButtonSwitch( IMGUI_TITLE_TOOLBOX, &Settings::application.widget.toolbox, CTRL_MOD "T");

View File

@@ -3,7 +3,6 @@
#include <string>
#include <list>
using namespace std;
#define NAV_COUNT 68
#define NAV_MAX 64

View File

@@ -42,10 +42,10 @@
#define TRANSITION_MAX_DURATION 10.f
#define IMGUI_TITLE_MAINWINDOW ICON_FA_CIRCLE_NOTCH " vimix"
#define IMGUI_TITLE_MEDIAPLAYER ICON_FA_FILM " Media Player"
#define IMGUI_TITLE_MEDIAPLAYER ICON_FA_FILM " Player"
#define IMGUI_TITLE_TOOLBOX ICON_FA_WRENCH " Tools"
#define IMGUI_TITLE_SHADEREDITOR ICON_FA_CODE " Shader Editor"
#define IMGUI_TITLE_PREVIEW ICON_FA_DESKTOP " Preview"
#define IMGUI_TITLE_PREVIEW ICON_FA_DESKTOP " Ouput"
#define IMGUI_TITLE_DELETE ICON_FA_BROOM " Delete?"
#define IMGUI_LABEL_RECENT_FILES " Recent files"
#define IMGUI_RIGHT_ALIGN -3.5f * ImGui::GetTextLineHeightWithSpacing()

View File

@@ -1,38 +0,0 @@
License Agreement
https://iconmonstr.com/license/
This license agreement (the “Agreement”) sets forth the terms by which Alexander Kahlkopf, the owner of iconmonstr (the “Licensor”), shall provide access to certain Work (defined below) to you (the “Licensee”, “you” or “your”). This Agreement regulates the free use of the icons, fonts, images and other media content (collectively, the “Work”), which is made available via the website iconmonstr.com (the “Website”). By downloading or copying a Work, you agree to be bound by the following terms and conditions.
1. Grant of Rights
The Works on the Website are copyrighted property of Licensor. Licensor hereby grants Licensee a perpetual, non-exclusive, non-transferrable single-user license for the use of the Work based on the conditions of this Agreement. You agree that the Work serves as part of the design and is not the basis or main component of the product, template or application distributed by the Licensee. Furthermore, you agree not to sell, redistribute, sublicense, share or otherwise transfer the Work to other people or entities.
2. Permitted Uses
Licensee may use the Work in non-commercial and commercial projects, services or products without attribution.
Licensee may use the Work for any illustrative purposes in any media, including, but not limited to, websites, web banners, newsletters, PDF documents, blogs, emails, slideshows, TV and video presentations, smartphones, splash screens, movies, magazine articles, books, advertisements, brochures, document illustrations, booklets, billboards, business cards, packages, etc.
Licensee may use the Work in template or application without attribution; provided, however, that the Work serves as part of the design and is not the basis or main component of the product, template or application distributed by Licensee and is not used contrary to the terms and conditions of this Agreement.
Licensee may adapt or change the Work according to his or her requirements.
3. Prohibited Uses
Licensee may not sell, redistribute, sublicense, share or otherwise transfer the Work to other people or entities.
Licensee may not use the Work as part of a logo, trademark or service mark.
Licensee may not use the Work for pornographic, infringing, defamatory, racist or religiously offensive illustrations.
4. Additional Information on Rights
Certain Works, such as logos or brands, are subject to copyright and require the agreement of a third party for the assignment of these rights. Licensee is responsible for providing all rights, agreements, and licenses for the use of the Work.
5. Termination
This Agreement shall automatically terminate without notice if you do not comply with the terms or conditions specified in this Agreement. If you yourself wish to terminate this Agreement, destroy the Work, all copies and derivatives of the Work and any materials related to it.
6. Indemnification
You agree to indemnify Licensor for any and all claims, liability performances, damages, costs (including attorney fees) or other liabilities that are caused by or related to a breach of this Agreement, which are caused by the use of the Website or Work, by the non-compliance of the use restrictions of a Work or which are caused by the claims of third parties regarding the use of a Work.
7. Warranty and Liability
The Website and the Works are provided “as is.” Licensor does not accept any warranty or liability regarding a Work, the Website, the accuracy of the information or rights described therein or the licenses, which are subject to this Agreement. Licensor is not liable for damages, costs, losses or claims incurred by you, another person or entity by the use of the Website or the Works.

View File

@@ -1,12 +0,0 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="32px"
height="32px" viewBox="0 0 32 32" style="enable-background:new 0 0 32 32;" xml:space="preserve">
<g id="Layer_1">
</g>
<g id="arrow_x5F_down">
<path style="fill:#010101;" d="M32,16.016l-5.672-5.664c0,0-3.18,3.18-6.312,6.312V0h-8.023v16.664l-6.32-6.32L0,16.016L16,32
L32,16.016z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 674 B

View File

@@ -1,12 +0,0 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="32px"
height="32px" viewBox="0 0 32 32" style="enable-background:new 0 0 32 32;" xml:space="preserve">
<g id="Layer_1">
</g>
<g id="arrow_x5F_left">
<path style="fill:#010101;" d="M15.984,32l5.672-5.672c0,0-3.18-3.18-6.312-6.312H32v-8.023H15.344l6.312-6.32L15.984,0L0,16
L15.984,32z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 673 B

View File

@@ -1,12 +0,0 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="32px"
height="32px" viewBox="0 0 32 32" style="enable-background:new 0 0 32 32;" xml:space="preserve">
<g id="Layer_1">
</g>
<g id="arrow_x5F_right">
<path style="fill:#010101;" d="M16.016,0l-5.668,5.672c0,0,3.18,3.18,6.312,6.312H0v8.027h16.66l-6.316,6.316L16.016,32L32,16
L16.016,0z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 674 B

View File

@@ -1,12 +0,0 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="32px"
height="32px" viewBox="0 0 32 32" style="enable-background:new 0 0 32 32;" xml:space="preserve">
<g id="Layer_1">
</g>
<g id="arrow_x5F_up">
<path style="fill:#010101;" d="M0,15.984l5.672,5.664c0,0,3.182-3.18,6.314-6.312V32h8.023V15.336l6.318,6.32L32,15.984L16.002,0
L0,15.984z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 674 B

View File

@@ -1,18 +0,0 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="32px"
height="32px" viewBox="0 0 32 32" style="enable-background:new 0 0 32 32;" xml:space="preserve">
<g id="Layer_1">
</g>
<g id="equalizer">
<g>
<path style="fill:#010101;" d="M20,20h-2V2c0-1.105-0.891-2-2-2c-1.102,0-2,0.895-2,2v18h-2v4h2v6c0,1.105,0.898,2,2,2
c1.109,0,2-0.895,2-2v-6h2V20z"/>
<path style="fill:#010101;" d="M32,8h-2V2c0-1.105-0.891-2-2-2c-1.102,0-2,0.895-2,2v6h-2v4h2v18c0,1.105,0.898,2,2,2
c1.109,0,2-0.895,2-2V12h2V8z"/>
<path style="fill:#010101;" d="M8,12H6V2c0-1.105-0.891-2-2-2C2.898,0,2,0.895,2,2v10H0v4h2v14c0,1.105,0.898,2,2,2
c1.109,0,2-0.895,2-2V16h2V12z"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1002 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17.133 17.202l1.596.923c-1.508 2.055-3.606 3.548-5.729 3.875v-11h3v-2h-3v-1.103c0-2.39 2-2.619 2-4.897 0-1.654-1.346-3-3-3s-3 1.346-3 3c0 2.297 2 2.487 2 4.897v1.103h-3v2h3v11c-2.123-.327-4.221-1.799-5.729-3.854l1.596-.944-4.867-2.811v5.621l1.5-.908c2.178 3.077 5.203 4.896 8.5 4.896s6.282-1.798 8.458-4.875l1.542.887v-5.621l-4.867 2.811zm-6.133-14.202c0-.551.449-1 1-1s1 .449 1 1-.449 1-1 1-1-.449-1-1z"/></svg>

Before

Width:  |  Height:  |  Size: 505 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 17.607c-.786 2.28-3.139 6.317-5.563 6.361-1.608.031-2.125-.953-3.963-.953-1.837 0-2.412.923-3.932.983-2.572.099-6.542-5.827-6.542-10.995 0-4.747 3.308-7.1 6.198-7.143 1.55-.028 3.014 1.045 3.959 1.045.949 0 2.727-1.29 4.596-1.101.782.033 2.979.315 4.389 2.377-3.741 2.442-3.158 7.549.858 9.426zm-5.222-17.607c-2.826.114-5.132 3.079-4.81 5.531 2.612.203 5.118-2.725 4.81-5.531z"/></svg>

Before

Width:  |  Height:  |  Size: 481 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 5.829l6.171 6.171-6.171 6.171v-3.171h-13v-6h13v-3.171zm-2-4.829v6h-13v10h13v6l11-11-11-11z"/></svg>

Before

Width:  |  Height:  |  Size: 195 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 12l-18 12v-24l18 12zm4-11h-4v22h4v-22z"/></svg>

Before

Width:  |  Height:  |  Size: 143 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 12l18-12v24z"/></svg>

Before

Width:  |  Height:  |  Size: 116 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 21l-12-18h24z"/></svg>

Before

Width:  |  Height:  |  Size: 118 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 3l12 18h-24z"/></svg>

Before

Width:  |  Height:  |  Size: 117 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.455 0l-3.234 3.984-7.221 4.016v2.288l3.836-2.136-5.844 7.198v-7.35h-4.992v10h2.842l-3.842 4.731 1.545 1.269 18.455-22.731-1.545-1.269zm-14.455 16h-1v-6h1v6zm13-8.642v15.642l-8.749-4.865 1.277-1.573 5.472 3.039v-9.779l2-2.464z"/></svg>

Before

Width:  |  Height:  |  Size: 330 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 9v6h-1v-6h1zm13-7l-9 5v2.288l7-3.889v13.202l-7-3.889v2.288l9 5v-20zm6.416 2.768l-4.332 2.5 1 1.732 4.332-2.5-1-1.732zm-17.416 2.232h-5v10h5v-10zm19 4h-5v2h5v-2zm-4.916 4l-1 1.732 4.332 2.5 1-1.732-4.332-2.5z"/></svg>

Before

Width:  |  Height:  |  Size: 311 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13.299 3.74c-.207-.206-.299-.461-.299-.711 0-.524.407-1.029 1.02-1.029.262 0 .522.1.721.298l3.783 3.783c-.771.117-1.5.363-2.158.726l-3.067-3.067zm3.92 14.84l-.571 1.42h-9.296l-3.597-8.961-.016-.039h9.441c.171-.721.459-1.395.848-2h-14.028v2h.643c.535 0 1.021.304 1.256.784l4.101 10.216h12l1.21-3.015c-.698-.03-1.367-.171-1.991-.405zm-6.518-14.84c.207-.206.299-.461.299-.711 0-.524-.407-1.029-1.02-1.029-.261 0-.522.1-.72.298l-4.701 4.702h2.883l3.259-3.26zm8.799 4.26c-2.484 0-4.5 2.015-4.5 4.5s2.016 4.5 4.5 4.5c2.482 0 4.5-2.015 4.5-4.5s-2.018-4.5-4.5-4.5zm2.5 5h-2v2h-1v-2h-2v-1h2v-2h1v2h2v1z"/></svg>

Before

Width:  |  Height:  |  Size: 695 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13.299 3.74c-.207-.206-.299-.461-.299-.711 0-.524.407-1.029 1.02-1.029.262 0 .522.1.721.298l3.783 3.783c-.771.117-1.5.363-2.158.726l-3.067-3.067zm3.92 14.84l-.571 1.42h-9.296l-3.597-8.961-.016-.039h9.441c.171-.721.46-1.395.848-2h-14.028v2h.643c.535 0 1.021.304 1.256.784l4.101 10.216h12l1.211-3.015c-.699-.03-1.368-.171-1.992-.405zm-6.518-14.84c.207-.206.299-.461.299-.711 0-.524-.407-1.029-1.02-1.029-.261 0-.522.1-.72.298l-4.701 4.702h2.883l3.259-3.26zm8.799 4.26c-2.484 0-4.5 2.015-4.5 4.5s2.016 4.5 4.5 4.5c2.482 0 4.5-2.015 4.5-4.5s-2.018-4.5-4.5-4.5zm2.5 5h-5v-1h5v1z"/></svg>

Before

Width:  |  Height:  |  Size: 675 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13.299 3.74c-.207-.206-.299-.461-.299-.711 0-.524.407-1.029 1.02-1.029.262 0 .522.1.721.298l3.783 3.783c-.771.117-1.5.363-2.158.726l-3.067-3.067zm3.92 14.84l-.571 1.42h-9.296l-3.597-8.961-.016-.039h9.441c.171-.721.46-1.395.848-2h-14.028v2h.643c.535 0 1.021.304 1.256.784l4.101 10.216h12l1.211-3.015c-.699-.03-1.368-.171-1.992-.405zm-6.518-14.84c.207-.206.299-.461.299-.711 0-.524-.407-1.029-1.02-1.029-.261 0-.522.1-.72.298l-4.701 4.702h2.883l3.259-3.26zm8.799 4.26c-2.486 0-4.5 2.015-4.5 4.5s2.014 4.5 4.5 4.5c2.484 0 4.5-2.015 4.5-4.5s-2.016-4.5-4.5-4.5zm-.469 6.484l-1.688-1.637.695-.697.992.94 2.115-2.169.697.696-2.811 2.867z"/></svg>

Before

Width:  |  Height:  |  Size: 732 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13.299 3.74c-.207-.206-.299-.461-.299-.711 0-.524.407-1.029 1.02-1.029.262 0 .522.1.721.298l3.783 3.783c-.771.117-1.5.363-2.158.726l-3.067-3.067zm3.92 14.84l-.571 1.42h-9.296l-3.597-8.961-.016-.039h9.441c.171-.721.459-1.395.848-2h-14.028v2h.643c.535 0 1.021.304 1.256.784l4.101 10.216h12l1.21-3.015c-.698-.03-1.367-.171-1.991-.405zm-6.518-14.84c.207-.206.299-.461.299-.711 0-.524-.407-1.029-1.02-1.029-.261 0-.522.1-.72.298l-4.701 4.702h2.883l3.259-3.26zm13.299 8.76c0 2.485-2.017 4.5-4.5 4.5s-4.5-2.015-4.5-4.5 2.017-4.5 4.5-4.5 4.5 2.015 4.5 4.5zm-3.086-2.122l-1.414 1.414-1.414-1.414-.707.708 1.414 1.414-1.414 1.414.707.708 1.414-1.414 1.414 1.414.708-.708-1.414-1.414 1.414-1.414-.708-.708z"/></svg>

Before

Width:  |  Height:  |  Size: 797 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.476 8.853c-.469-.288-.616-.903-.328-1.372l3.004-5.004c.191-.312.517-.477.849-.477.776 0 1.259.855.851 1.519l-3.005 5.005c-.294.479-.91.611-1.371.329zm8.786 2.147l-.016.041-3.598 8.959h-9.296l-3.598-8.961-.015-.039h4.266c.92 1.247 2.372 2 3.994 2 1.596 0 3.06-.741 3.998-2h4.265zm3.738-2h-9.098l-.351.569c-.548.896-1.503 1.431-2.553 1.431-1.202 0-2.359-.72-2.812-2h-9.186v2h.643c.535 0 1.021.304 1.256.784l4.101 10.216h12l4.102-10.214c.234-.481.722-.786 1.256-.786h.642v-2zm-14 9c0 .552-.447 1-1 1s-1-.448-1-1v-3c0-.552.447-1 1-1s1 .448 1 1v3zm6 0c0 .552-.447 1-1 1s-1-.448-1-1v-3c0-.552.447-1 1-1s1 .448 1 1v3zm-3 0c0 .552-.447 1-1 1s-1-.448-1-1v-3c0-.552.447-1 1-1s1 .448 1 1v3z"/></svg>

Before

Width:  |  Height:  |  Size: 784 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M24 8v2h-.642c-.535 0-1.023.305-1.257.786l-4.101 10.214h-12l-4.101-10.216c-.234-.48-.722-.784-1.256-.784h-.643v-2h3l4.352 11h9.296l4.352-11h3zm-14 4h-2l4 4 4-4h-2s-.288-7.383-7-9c3.94 2.58 3 9 3 9z"/></svg>

Before

Width:  |  Height:  |  Size: 298 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M24 8v2h-.642c-.534 0-1.022.305-1.257.786l-4.101 10.214h-12l-4.101-10.216c-.234-.48-.722-.784-1.256-.784h-.643v-2h3l4.352 11h9.296l4.352-11h3zm-9.428 7c1.039-6.826-3.961-10.102-3.961-10.102l.778-1.898-5.389 2.26 2.27 5.384.809-2.006c-.001 0 4.591 1.74 5.493 6.362z"/></svg>

Before

Width:  |  Height:  |  Size: 365 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9.408 9.14c-.036 1.615 4.452 1.618 4.397 0v-.957c-.131-1.527-4.271-1.536-4.384-.001h-.013v.958zm2.212-1.381c.764 0 1.385.256 1.385.57s-.621.57-1.385.57-1.385-.256-1.385-.57.621-.57 1.385-.57zm6.785-1.051v-.957c-.132-1.527-4.271-1.536-4.384-.001h-.014v.958c-.035 1.616 4.453 1.619 4.398 0zm-3.57-.81c0-.314.621-.57 1.385-.57s1.385.256 1.385.57c0 .314-.621.57-1.385.57s-1.385-.256-1.385-.57zm8.165.244v12.185l-11 5.673v-12.14l9.864-5.19-10.367-5.517-10.331 5.453 9.834 5.23v12.164l-11-5.674v-12.248l.009.005-.009-.019 11.5-6.064 11.5 6.142zm-18.188-.392h-.014v.958c-.036 1.615 4.451 1.618 4.397 0v-.957c-.131-1.527-4.271-1.535-4.383-.001zm3.583.147c0 .314-.621.571-1.385.571-.765 0-1.385-.256-1.385-.571 0-.314.62-.57 1.385-.57.763 0 1.385.256 1.385.57zm5.411-1.491v-.957c-.132-1.528-4.271-1.536-4.384-.001h-.014v.958c-.036 1.615 4.453 1.618 4.398 0zm-2.185-1.381c.763 0 1.385.256 1.385.57s-.622.571-1.385.571c-.765 0-1.385-.256-1.385-.571s.62-.57 1.385-.57z"/></svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10v-20zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12z"/></svg>

Before

Width:  |  Height:  |  Size: 224 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 2v20l-20-20h20zm2-2h-24v24h24v-24z"/></svg>

Before

Width:  |  Height:  |  Size: 139 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 9c1.654 0 3 1.346 3 3s-1.346 3-3 3-3-1.346-3-3 1.346-3 3-3zm0-2c-2.762 0-5 2.238-5 5s2.238 5 5 5 5-2.238 5-5-2.238-5-5-5zm-4.184-.599l-3.593-3.594-1.415 1.414 3.595 3.595c.401-.537.876-1.013 1.413-1.415zm4.184-1.401c.34 0 .672.033 1 .08v-5.08h-2v5.08c.328-.047.66-.08 1-.08zm5.598 2.815l3.595-3.595-1.414-1.414-3.595 3.595c.537.402 1.012.878 1.414 1.414zm-12.598 4.185c0-.34.033-.672.08-1h-5.08v2h5.08c-.047-.328-.08-.66-.08-1zm11.185 5.598l3.594 3.593 1.415-1.414-3.594-3.593c-.403.536-.879 1.012-1.415 1.414zm-9.784-1.414l-3.593 3.593 1.414 1.414 3.593-3.593c-.536-.402-1.011-.877-1.414-1.414zm12.519-5.184c.047.328.08.66.08 1s-.033.672-.08 1h5.08v-2h-5.08zm-6.92 8c-.34 0-.672-.033-1-.08v5.08h2v-5.08c-.328.047-.66.08-1 .08z"/></svg>

Before

Width:  |  Height:  |  Size: 832 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7.074 1.408c0-.778.641-1.408 1.431-1.408.942 0 1.626.883 1.38 1.776-.092.336-.042.695.139.995.4.664 1.084 1.073 1.977 1.078.881-.004 1.572-.408 1.977-1.078.181-.299.23-.658.139-.995-.248-.892.434-1.776 1.378-1.776.79 0 1.431.63 1.431 1.408 0 .675-.482 1.234-1.117 1.375-.322.071-.6.269-.77.548-.613 1.017.193 1.917.931 2.823-1.211.562-2.525.846-3.97.846-1.468 0-2.771-.277-3.975-.84.748-.92 1.555-1.803.936-2.83-.17-.279-.447-.477-.77-.548-.634-.14-1.117-.699-1.117-1.374zm12.207 15.18c-.104.645.27 1.162.764 1.383l2.42 1.078c.531.236.766.851.526 1.373-.241.524-.866.752-1.395.518l-2.561-1.14c-.341-.152-.706-.062-.964.364-1.063 1.76-3.138 3.509-6.071 3.836-2.991-.333-5.091-2.146-6.135-3.943-.2-.342-.564-.409-.901-.259l-2.561 1.14c-.534.237-1.155.002-1.395-.518-.239-.522-.005-1.137.526-1.373l2.42-1.078c.523-.233.863-.734.751-1.462-.106-.685-.692-1.057-1.265-1.057h-2.385c-.583.002-1.055-.462-1.055-1.035s.472-1.037 1.055-1.037h2.402c.552 0 1.129-.353 1.234-1.111.082-.58-.277-1.082-.773-1.274l-2.23-.866c-.542-.21-.808-.813-.594-1.346.212-.53.822-.796 1.367-.584.231.09 2.332.944 2.572.944.242 0 .502-.125.663-.491.181-.408.384-.787.601-1.146 1.709.998 3.59 1.496 5.703 1.496 2.08 0 3.986-.51 5.699-1.502.225.372.436.765.62 1.188.14.319.394.454.648.454.39 0 2.462-1.016 2.958-1.016.42 0 .817.249.98.657.214.533-.053 1.135-.594 1.346l-2.23.866c-.479.186-.857.655-.766 1.333.09.659.652 1.052 1.227 1.052h2.402c.583 0 1.055.464 1.055 1.037s-.472 1.037-1.055 1.037h-2.387c-.557 0-1.146.332-1.276 1.136zm-8.281 5.167v-10.798c-1.356-.093-2.652-.368-3.872-.839-1.247 2.763-1.274 10.056 3.872 11.637zm5.859-11.642c-1.224.473-2.516.749-3.859.843v10.799c5.093-1.564 5.152-8.716 3.859-11.642z"/></svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-17 5c0-1.654 1.346-3 3-3h6v9h-9v-6zm0 14v-6h9v9h-6c-1.654 0-3-1.346-3-3zm20 0c0 1.654-1.346 3-3 3h-6v-9h9v6zm0-8h-9v-9h6c1.654 0 3 1.346 3 3v6zm-2 6h-5v-1h5v1zm-5-11h5v1h-5v-1zm0 13v-1h5v1h-5zm-6-2v1h-2v2h-1v-2h-2v-1h2v-2h1v2h2zm-1.793-10.5l1.414 1.414-.707.707-1.414-1.414-1.414 1.414-.708-.707 1.414-1.414-1.414-1.414.707-.707 1.415 1.414 1.415-1.415.708.708-1.416 1.414zm9.793-2c0-.276.224-.5.5-.5s.5.224.5.5-.224.5-.5.5-.5-.224-.5-.5zm1 4c0 .276-.224.5-.5.5s-.5-.224-.5-.5.224-.5.5-.5.5.224.5.5z"/></svg>

Before

Width:  |  Height:  |  Size: 703 B

View File

@@ -1 +0,0 @@
<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd"><path d="M14.003 17.23c-.178.247-1.456.922-1.462-.396v-.464c.43-.208.731-.634.731-1.015 0-.526-.571-.762-1.272-.762-.701 0-1.271.236-1.271.762 0 .377.294.796.717 1.007v.472c-.008 1.227-1.18.829-1.392.453-.404-.716-1.249-.153-.94.423.29.541 1.001.918 1.73.918.446 0 .848-.146 1.149-.416.302.27.703.416 1.15.416.727 0 1.439-.377 1.729-.918.316-.584-.417-1.105-.869-.48zm.997-5.73c-.459 0-.833.374-.833.834 0 .459.374.833.833.833.459 0 .833-.374.833-.833 0-.46-.374-.834-.833-.834zm0 2.667c-1.011 0-1.833-.823-1.833-1.833 0-1.012.822-1.834 1.833-1.834 1.011 0 1.833.822 1.833 1.834 0 1.01-.822 1.833-1.833 1.833zm-6-2.667c-.459 0-.833.374-.833.834 0 .459.374.833.833.833.46 0 .834-.374.834-.833 0-.46-.374-.834-.834-.834zm0 2.667c-1.011 0-1.833-.823-1.833-1.833 0-1.012.822-1.834 1.833-1.834 1.011 0 1.834.822 1.834 1.834 0 1.01-.823 1.833-1.834 1.833zm1.545-5.66c.772-.195 2.101-.198 2.909 0 .977-1.478 1.643-2.298 3.03-3.507 2.7 3.301 3.762 9.095 4.196 13.732-2.015 2.591-5.152 4.268-8.68 4.268-3.56 0-6.721-1.708-8.733-4.339.347-4.718 1.237-10.618 3.733-13.661 1.469 1.16 2.426 2.15 3.545 3.507zm1.455-8.507c-6.623 0-12 5.376-12 12 0 6.623 5.377 12 12 12s12-5.377 12-12c0-6.624-5.377-12-12-12z"/></svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.744 21.158c-2.09 1.77-4.79 2.842-7.744 2.842-6.627 0-12-5.373-12-12 0-6.29 4.842-11.44 11-11.95v12.364l8.744 8.744zm-6.744-19.107c5.046.503 9 4.772 9 9.949 0 2.397-.85 4.6-2.262 6.324l1.42 1.42c1.77-2.09 2.842-4.79 2.842-7.744 0-6.29-4.842-11.44-11-11.95v2.001z"/></svg>

Before

Width:  |  Height:  |  Size: 366 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M24 3.875l-6 1.221 1.716 1.708-5.351 5.358-3.001-3.002-7.336 7.242 1.41 1.418 5.922-5.834 2.991 2.993 6.781-6.762 1.667 1.66 1.201-6.002zm0 16.125v2h-24v-20h2v18h22z"/></svg>

Before

Width:  |  Height:  |  Size: 266 B

View File

@@ -1 +0,0 @@
<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd"><path d="M18.799 7.038c-.496-.535-.799-1.252-.799-2.038 0-1.656 1.344-3 3-3s3 1.344 3 3-1.344 3-3 3c-.146 0-.29-.01-.431-.031l-3.333 6.032c.475.53.764 1.231.764 1.999 0 1.656-1.344 3-3 3s-3-1.344-3-3c0-.583.167-1.127.455-1.587l-2.565-3.547c-.281.087-.58.134-.89.134l-.368-.022-3.355 6.069c.451.525.723 1.208.723 1.953 0 1.656-1.344 3-3 3s-3-1.344-3-3 1.344-3 3-3c.186 0 .367.017.543.049l3.298-5.967c-.52-.539-.841-1.273-.841-2.082 0-1.656 1.344-3 3-3s3 1.344 3 3c0 .617-.187 1.191-.507 1.669l2.527 3.495c.307-.106.637-.164.98-.164.164 0 .325.013.482.039l3.317-6.001zm-3.799 7.962c.552 0 1 .448 1 1s-.448 1-1 1-1-.448-1-1 .448-1 1-1zm-6-8c.552 0 1 .448 1 1s-.448 1-1 1-1-.448-1-1 .448-1 1-1z"/></svg>

Before

Width:  |  Height:  |  Size: 802 B

View File

@@ -1 +0,0 @@
<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd"><path d="M5.829 6c-.412 1.165-1.524 2-2.829 2-1.656 0-3-1.344-3-3s1.344-3 3-3c1.305 0 2.417.835 2.829 2h13.671c2.484 0 4.5 2.016 4.5 4.5s-2.016 4.5-4.5 4.5h-4.671c-.412 1.165-1.524 2-2.829 2-1.305 0-2.417-.835-2.829-2h-4.671c-1.38 0-2.5 1.12-2.5 2.5s1.12 2.5 2.5 2.5h13.671c.412-1.165 1.524-2 2.829-2 1.656 0 3 1.344 3 3s-1.344 3-3 3c-1.305 0-2.417-.835-2.829-2h-13.671c-2.484 0-4.5-2.016-4.5-4.5s2.016-4.5 4.5-4.5h4.671c.412-1.165 1.524-2 2.829-2 1.305 0 2.417.835 2.829 2h4.671c1.38 0 2.5-1.12 2.5-2.5s-1.12-2.5-2.5-2.5h-13.671zm6.171 5c.552 0 1 .448 1 1s-.448 1-1 1-1-.448-1-1 .448-1 1-1z"/></svg>

Before

Width:  |  Height:  |  Size: 703 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 19h-4v-8h4v8zm6 0h-4v-18h4v18zm6 0h-4v-12h4v12zm6 0h-4v-4h4v4zm1 2h-24v2h24v-2z"/></svg>

Before

Width:  |  Height:  |  Size: 183 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 2v20h-20v-20h20zm2-2h-24v24h24v-24zm-6 16.538l-4.592-4.548 4.546-4.587-1.416-1.403-4.545 4.589-4.588-4.543-1.405 1.405 4.593 4.552-4.547 4.592 1.405 1.405 4.555-4.596 4.591 4.55 1.403-1.416z"/></svg>

Before

Width:  |  Height:  |  Size: 295 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 2v20h-20v-20h20zm2-2h-24v24h24v-24zm-5.541 8.409l-1.422-1.409-7.021 7.183-3.08-2.937-1.395 1.435 4.5 4.319 8.418-8.591z"/></svg>

Before

Width:  |  Height:  |  Size: 224 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12z"/></svg>

Before

Width:  |  Height:  |  Size: 250 B

View File

@@ -1 +0,0 @@
<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd"><path d="M12 0c6.623 0 12 5.377 12 12s-5.377 12-12 12-12-5.377-12-12 5.377-12 12-12zm0 1c6.071 0 11 4.929 11 11s-4.929 11-11 11-11-4.929-11-11 4.929-11 11-11z"/></svg>

Before

Width:  |  Height:  |  Size: 270 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M23 10.826v2.349c-1.562 0-3 1.312-3 2.857 0 2.181 1.281 5.968-6 5.968v-2.002c4.917 0 3.966-1.6 3.966-3.967 0-2.094 1.211-3.5 2.278-4.031-1.067-.531-2.278-1.438-2.278-3.312 0-2.372.94-4.692-3.966-4.686v-2.002c7.285 0 6 4.506 6 6.688 0 1.544 1.438 2.138 3 2.138zm-19-2.138c0-2.182-1.285-6.688 6-6.688v2.002c-4.906-.007-3.966 2.313-3.966 4.686 0 1.875-1.211 2.781-2.278 3.312 1.067.531 2.278 1.938 2.278 4.031 0 2.367-.951 3.967 3.966 3.967v2.002c-7.281 0-6-3.787-6-5.969 0-1.545-1.438-2.857-3-2.857v-2.349c1.562.001 3-.593 3-2.137zm9 5.312v1.278c0 1.143-.722 2.068-1.774 2.276l-.199-.431c.487-.184.797-.773.797-1.216h-.824v-1.907h2zm0-6h-2v2h2v-2z"/></svg>

Before

Width:  |  Height:  |  Size: 746 B

View File

@@ -1 +0,0 @@
<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd"><path d="M10.5 24h-7c-1.4 0-2.5-1.14-2.5-2.5v-11.64c-.662-.473-1-1.201-1-1.941 0-.376.089-.75.289-1.129 1.065-1.898 2.153-3.783 3.265-5.654.462-.737 1.211-1.136 2.045-1.136.635 0 .972.204 1.445.479.662.386 9 5.352 12.512 7.441.087.052 3.366 1.988 3.449 2.045.663.49.995 1.197.995 1.934 0 .375-.092.745-.295 1.13-1.064 1.899-2.153 3.784-3.265 5.655-.577.92-1.615 1.29-2.496 1.088-.392.234-5.826 3.75-6.252 3.968-.413.212-.762.26-1.192.26m-7.5-10.763v8.263c0 .274.221.5.5.5h4.588c-1.72-2.906-3.417-5.827-5.088-8.763m1.606-1.238c.053.092 5.681 9.797 5.726 9.859.108.139.299.181.455.098.164-.092 5.081-3.251 5.081-3.251-.639-.377-8.144-4.851-11.262-6.706m.659-9.829c-.913 1.456-3.199 5.525-3.235 5.61-.07.171-.008.366.149.464.201.12 16.023 9.547 16.177 9.571.151.022.297-.045.377-.174.942-1.584 3.206-5.55 3.232-5.601.069-.172.007-.367-.15-.465-.201-.12-15.983-9.499-16.09-9.546-.18-.074-.365-.002-.46.141m1.557 2.695c1.104 0 2 .897 2 2 0 1.104-.896 2-2 2s-2-.896-2-2c0-1.103.896-2 2-2"/></svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M0 0v19h24v-19h-24zm22 17h-20v-15h20v15zm-6.599 4l2.599 3h-12l2.599-3h6.802zm5.599-5h-18v-13h18v13z"/></svg>

Before

Width:  |  Height:  |  Size: 200 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M0 1v17h24v-17h-24zm22 15h-20v-13h20v13zm-6.599 4l2.599 3h-12l2.599-3h6.802z"/></svg>

Before

Width:  |  Height:  |  Size: 177 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M8 24l2.674-9h-9.674l16-15-2.674 9h8.674l-15 15zm-1.586-11h6.912l-1.326 4 5.739-6h-6.065l1.304-4-6.564 6z"/></svg>

Before

Width:  |  Height:  |  Size: 206 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 18c0 1.104-.896 2-2 2s-2-.896-2-2 .896-2 2-2 2 .896 2 2zm-14-3c-1.654 0-3 1.346-3 3s1.346 3 3 3h14c1.654 0 3-1.346 3-3s-1.346-3-3-3h-14zm19 3c0 2.761-2.239 5-5 5h-14c-2.761 0-5-2.239-5-5s2.239-5 5-5h14c2.761 0 5 2.239 5 5zm0-12c0 2.761-2.239 5-5 5h-14c-2.761 0-5-2.239-5-5s2.239-5 5-5h14c2.761 0 5 2.239 5 5zm-15 0c0-1.104-.896-2-2-2s-2 .896-2 2 .896 2 2 2 2-.896 2-2z"/></svg>

Before

Width:  |  Height:  |  Size: 473 B

View File

@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="32px"
height="24px" viewBox="0 0 32 24" style="enable-background:new 0 0 32 24;" xml:space="preserve">
<g id="Layer_1">
</g>
<g id="eye">
<g>
<path style="fill:#010101;" d="M16,0C7.164,0,0,11.844,0,11.844S7.164,24,16,24s16-12.156,16-12.156S24.836,0,16,0z M16,20
c-4.418,0-8-3.582-8-8s3.582-8,8-8s8,3.582,8,8S20.418,20,16,20z"/>
<circle style="fill:#010101;" cx="16" cy="12.016" r="4"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 787 B

View File

@@ -1,69 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
x="0px"
y="0px"
width="32px"
height="32px"
viewBox="0 0 32 32"
style="enable-background:new 0 0 32 32;"
xml:space="preserve"
id="svg6"
sodipodi:docname="iconmonstr-control-panel-22.svg"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"><metadata
id="metadata12"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
id="defs10" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="2167"
inkscape:window-height="1159"
id="namedview8"
showgrid="false"
inkscape:zoom="20.85965"
inkscape:cx="9.2931333"
inkscape:cy="17.909737"
inkscape:window-x="76"
inkscape:window-y="30"
inkscape:window-maximized="0"
inkscape:current-layer="pin" />
<g
id="Layer_1">
</g>
<g
id="pin">
<path
style="fill:#010101"
d="m 15.96875,3.96875 c -6.629,0 -12,5.371 -12,12 0,2.527 0.7890937,4.866875 2.1210938,6.796875 l 1.3046874,1.695313 1.8945313,1.476562 c 1.9100005,1.281 4.2066875,2.03125 6.6796875,2.03125 6.629,0 12,-5.371 12,-12 0,-0.346 -0.06956,-0.669812 -0.101562,-1.007812 -0.167261,-1.123229 -0.519301,-2.520288 -1.152344,-3.935547 A 4.1947012,3.9789739 0 0 1 23.259766,12.871094 4.1947012,3.9789739 0 0 1 18.986328,9.0078125 4.1947012,3.9789739 0 0 1 21.396484,5.296875 C 20.174468,4.6866971 18.750522,4.2464826 17.0625,4.0859375 c 0,-0.002 0.0039,-0.00386 0.0039,-0.00586 -0.367,-0.035 -0.722656,-0.1113281 -1.097656,-0.1113281 z m 0.03516,3.984375 C 16.003906,7.969125 16,7.984 16,8 c 0,0.695 0.11725,1.3550469 0.28125,1.9980469 l -3.171875,3.1738281 c -1.562,1.562 -1.562,4.09425 0,5.65625 1.562,1.562 4.09425,1.562 5.65625,0 L 21.90625,15.6875 c 0.66,0.18 1.343594,0.304594 2.058594,0.308594 -0.016,4.402 -3.594094,7.972656 -7.996094,7.972656 -4.414,0 -8,-3.586 -8,-8 0,-4.412 3.586,-8 8,-8 0.012,0 0.02325,0.00391 0.03125,0.00391 0,-0.008 0.0039,-0.013531 0.0039,-0.019531 z"
id="path3"
inkscape:connector-curvature="0" />
<g
id="g839"
transform="translate(-0.7552564,0.947015)"><g
id="Layer_1-3">
</g><g
id="pin-6">
<path
id="path825"
d="M 32,8 C 32,3.584 28.414,0 24,0 21.016,0 18.438,1.658 17.062,4.086 17.062,4.084 17.0665,4.07766 17.066,4.08 14.43433,15.330967 20.781593,15.971292 27.579363,14.913061 30.245749,14.497976 32,11.006 32,8 Z m -8,4 c -2.203,0 -4,-1.795 -4,-4 0,-2.205 1.797,-4 4,-4 2.203,0 4,1.795 4,4 0,2.205 -1.797,4 -4,4 z"
style="fill:#010101"
inkscape:connector-curvature="0"
sodipodi:nodetypes="sscssssssss" />
</g></g></g>
</svg>

Before

Width:  |  Height:  |  Size: 3.2 KiB

View File

@@ -1,17 +0,0 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="32px"
height="32px" viewBox="0 0 32 32" style="enable-background:new 0 0 32 32;" xml:space="preserve">
<g id="Layer_1">
</g>
<g id="pin">
<path style="fill:#010101;" d="M32,8c0-4.416-3.586-8-8-8c-2.984,0-5.562,1.658-6.938,4.086c0-0.002,0.004-0.004,0.004-0.006
c-0.367-0.035-0.723-0.111-1.098-0.111c-6.629,0-12,5.371-12,12c0,2.527,0.789,4.867,2.121,6.797L0,32l9.289-6.062
c1.91,1.281,4.207,2.031,6.68,2.031c6.629,0,12-5.371,12-12c0-0.346-0.07-0.67-0.102-1.008C30.32,13.594,32,11.006,32,8z
M15.969,23.969c-4.414,0-8-3.586-8-8c0-4.412,3.586-8,8-8c0.012,0,0.023,0.004,0.031,0.004c0-0.008,0.004-0.014,0.004-0.02
C16.004,7.969,16,7.984,16,8c0,0.695,0.117,1.355,0.281,1.998l-3.172,3.174c-1.562,1.562-1.562,4.094,0,5.656s4.094,1.562,5.656,0
l3.141-3.141c0.66,0.18,1.344,0.305,2.059,0.309C23.949,20.398,20.371,23.969,15.969,23.969z M24,12c-2.203,0-4-1.795-4-4
s1.797-4,4-4s4,1.795,4,4S26.203,12,24,12z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 9c.552 0 1 .449 1 1s-.448 1-1 1-1-.449-1-1 .448-1 1-1zm0-2c-1.657 0-3 1.343-3 3s1.343 3 3 3 3-1.343 3-3-1.343-3-3-3zm-9 4c-1.657 0-3 1.343-3 3s1.343 3 3 3 3-1.343 3-3-1.343-3-3-3zm18 0c-1.657 0-3 1.343-3 3s1.343 3 3 3 3-1.343 3-3-1.343-3-3-3zm-9-6c.343 0 .677.035 1 .101v-3.101c0-.552-.447-1-1-1s-1 .448-1 1v3.101c.323-.066.657-.101 1-.101zm9 4c.343 0 .677.035 1 .101v-7.101c0-.552-.447-1-1-1s-1 .448-1 1v7.101c.323-.066.657-.101 1-.101zm0 10c-.343 0-.677-.035-1-.101v3.101c0 .552.447 1 1 1s1-.448 1-1v-3.101c-.323.066-.657.101-1 .101zm-18-10c.343 0 .677.035 1 .101v-7.101c0-.552-.447-1-1-1s-1 .448-1 1v7.101c.323-.066.657-.101 1-.101zm9 6c-.343 0-.677-.035-1-.101v7.101c0 .552.447 1 1 1s1-.448 1-1v-7.101c-.323.066-.657.101-1 .101zm-9 4c-.343 0-.677-.035-1-.101v3.101c0 .552.447 1 1 1s1-.448 1-1v-3.101c-.323.066-.657.101-1 .101z"/></svg>

Before

Width:  |  Height:  |  Size: 935 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 8h-2v2h-2v-4h4v2zm8 16v-2h-6v2h6zm2-16h2v2h2v-4h-4v2zm2 12v2h-2v2h4v-4h-2zm-12 2h-2v-2h-2v4h4v-2zm14-10h-2v6h2v-6zm-16 6v-6h-2v4h-4v-14h14v4h-4v2h6v-8h-18v18h8z"/></svg>

Before

Width:  |  Height:  |  Size: 265 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 6v-6h-18v18h6v6h18v-18h-6zm-12 10h-4v-14h14v4h-10v10zm16 6h-14v-14h14v14zm-3-8h-3v-3h-2v3h-3v2h3v3h2v-3h3v-2z"/></svg>

Before

Width:  |  Height:  |  Size: 214 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.143 13.244l.837-2.244 2.698 5.641-5.678 2.502.805-2.23s-8.055-3.538-7.708-10.913c2.715 5.938 9.046 7.244 9.046 7.244zm8.857-7.244v18h-18v-6h-6v-18h18v6h6zm-2 2h-12.112c-.562-.578-1.08-1.243-1.521-2h7.633v-4h-14v14h4v-3.124c.6.961 1.287 1.823 2 2.576v6.548h14v-14z"/></svg>

Before

Width:  |  Height:  |  Size: 368 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 6v-6h-18v18h6v6h18v-18h-6zm-16 10v-14h14v4h-10v10h-4z"/></svg>

Before

Width:  |  Height:  |  Size: 158 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 6v-6h-18v18h6v6h18v-18h-6zm-12 10h-4v-14h14v4h-10v10zm16 6h-14v-14h14v14z"/></svg>

Before

Width:  |  Height:  |  Size: 178 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm0 15.781c-2.084 0-3.781-1.696-3.781-3.781s1.696-3.781 3.781-3.781c1.172 0 2.306.523 3.136 1.669l1.857-1.218c-1.281-1.826-3.133-2.67-4.993-2.67-3.308 0-6 2.692-6 6s2.691 6 6 6c1.881 0 3.724-.859 4.994-2.67l-1.857-1.218c-.828 1.14-1.959 1.669-3.137 1.669z"/></svg>

Before

Width:  |  Height:  |  Size: 504 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.25 6c.414 0 .75.336.75.75v9.5c0 .414-.336.75-.75.75h-9.5c-.414 0-.75-.336-.75-.75v-9.5c0-.414.336-.75.75-.75h9.5zm2.75 0c0-1.104-.896-2-2-2h-11c-1.104 0-2 .896-2 2v11c0 1.104.896 2 2 2h11c1.104 0 2-.896 2-2v-11zm-11 14v3h-1v-3h1zm4 0v3h-1v-3h1zm2 0v3h-1v-3h1zm-4 0v3h-1v-3h1zm6 0v3h-1v-3h1zm-8-20v3h-1v-3h1zm4 0v3h-1v-3h1zm2 0v3h-1v-3h1zm-4 0v3h-1v-3h1zm6 0v3h-1v-3h1zm4 15h3v1h-3v-1zm0-4h3v1h-3v-1zm0-2h3v1h-3v-1zm0 4h3v1h-3v-1zm0-6h3v1h-3v-1zm-20 8h3v1h-3v-1zm0-4h3v1h-3v-1zm0-2h3v1h-3v-1zm0 4h3v1h-3v-1zm0-6h3v1h-3v-1z"/></svg>

Before

Width:  |  Height:  |  Size: 626 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M24 18h-4v-14h-14v-4h-2v4h-4v2h4v14h14v4h2v-4h4v-2zm-18 0v-12h12v12h-12z"/></svg>

Before

Width:  |  Height:  |  Size: 173 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 4v16h-20v-16h20zm2-2h-24v20h24v-20zm-5 13.092v-6.184c.581-.207 1-.756 1-1.408 0-.828-.672-1.5-1.5-1.5-.652 0-1.201.419-1.408 1h-10.184c-.207-.581-.756-1-1.408-1-.828 0-1.5.672-1.5 1.5 0 .652.419 1.201 1 1.408v6.184c-.581.207-1 .756-1 1.408 0 .828.672 1.5 1.5 1.5.652 0 1.201-.419 1.408-1h10.184c.207.581.756 1 1.408 1 .828 0 1.5-.672 1.5-1.5 0-.652-.419-1.201-1-1.408zm-1.908.908h-10.184c-.15-.424-.484-.757-.908-.908v-6.184c.424-.151.757-.484.908-.908h10.184c.151.424.484.757.908.908v6.184c-.424.151-.758.484-.908.908z"/></svg>

Before

Width:  |  Height:  |  Size: 624 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 4v16h-20v-16h20zm2-2h-24v20h24v-20zm-5 13.092v-6.184c.581-.207 1-.756 1-1.408 0-.828-.672-1.5-1.5-1.5-.652 0-1.201.419-1.408 1h-10.184c-.207-.581-.756-1-1.408-1-.828 0-1.5.672-1.5 1.5 0 .652.419 1.201 1 1.408v6.184c-.581.207-1 .756-1 1.408 0 .828.672 1.5 1.5 1.5.652 0 1.201-.419 1.408-1h10.184c.207.581.756 1 1.408 1 .828 0 1.5-.672 1.5-1.5 0-.652-.419-1.201-1-1.408zm-1.908-7.092c.151.424.484.757.908.908v1.092h-3v-2h2.092zm-3.092 0v2h-4v-2h4zm0 3v2h-4v-2h4zm-8-2.092c.424-.151.757-.484.908-.908h2.092v2h-3v-1.092zm0 2.092h3v2h-3v-2zm.908 5c-.15-.424-.484-.757-.908-.908v-1.092h3v2h-2.092zm3.092 0v-2h4v2h-4zm8-.908c-.424.151-.758.484-.908.908h-2.092v-2h3v1.092zm-3-2.092v-2h3v2h-3z"/></svg>

Before

Width:  |  Height:  |  Size: 789 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 4v16h-20v-16h20zm2-2h-24v20h24v-20zm-5 13.092v-6.184c.581-.207 1-.756 1-1.408 0-.828-.672-1.5-1.5-1.5-.652 0-1.201.419-1.408 1h-10.184c-.207-.581-.756-1-1.408-1-.828 0-1.5.672-1.5 1.5 0 .652.419 1.201 1 1.408v6.184c-.581.207-1 .756-1 1.408 0 .828.672 1.5 1.5 1.5.652 0 1.201-.419 1.408-1h10.184c.207.581.756 1 1.408 1 .828 0 1.5-.672 1.5-1.5 0-.652-.419-1.201-1-1.408zm-1.908.908h-10.184c-.15-.424-.484-.757-.908-.908v-6.184c.424-.151.757-.484.908-.908h10.184c.151.424.484.757.908.908v6.184c-.424.151-.758.484-.908.908zm-9.092-6c0-.552.448-1 1-1s1 .448 1 1-.448 1-1 1-1-.448-1-1zm8 5l-2.75-5-1.891 2.984-1.359-1.312-2 3.328h8z"/></svg>

Before

Width:  |  Height:  |  Size: 731 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 18v-13.293l3-3-.707-.707-3 3h-13.293v-4h-2v4h-4v2h4v14h14v4h2v-4h4v-2h-4zm-2.707-12l-11.293 11.293v-11.293h11.293zm-10.586 12l11.293-11.293v11.293h-11.293z"/></svg>

Before

Width:  |  Height:  |  Size: 260 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 18v-14h-14v-4h-2v4h-4v2h4v14h14v4h2v-4h4v-2h-4zm-2-9h-3v-3h3v3zm-8 5v-4h4v4h-4zm4 1v3h-4v-3h4zm-5-1h-3v-4h3v4zm1-5v-3h4v3h-4zm5 1h3v4h-3v-4zm-6-4v3h-3v-3h3zm-3 9h3v3h-3v-3zm9 3v-3h3v3h-3z"/></svg>

Before

Width:  |  Height:  |  Size: 292 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 0l-11 6v12.131l11 5.869 11-5.869v-12.066l-11-6.065zm-9 11.74l2 1.057v2.066l-2-1.056v-2.067zm9.005-.876l-2.065-1.127 1.778-.988 2.082 1.157-1.795.958zm.995 1.736l2-1.067v2.279l-2 1.056v-2.268zm1.852-3.255l-2.104-1.168 1.884-1.047 2.144 1.188-1.924 1.027zm-2.099-4.4l2.029-1.127 1.884 1.039-2.034 1.13-1.879-1.042zm.849 1.614l-1.883 1.046-1.877-1.043 1.881-1.045 1.879 1.042zm-4.79-.569l-1.791-.995 1.895-1.033 1.776.985-1.88 1.043zm1.877 2.187l-1.789.993-1.893-1.032 1.806-1.003 1.876 1.042zm-4.689 5.148l2 1.056v2.066l-2-1.056v-2.066zm2 4.253v2.021l-2-1.067v-2.011l2 1.057zm-2-5.384v-2.328l2 1.091v2.294l-2-1.057zm5 .399v2.242l-2-1.056v-2.276l2 1.09zm-2 2.316l2 1.056v2.066l-2-1.056v-2.066zm4 1.09l2-1.056v2.066l-2 1.056v-2.066zm5 .556v1.978l-2 1.067v-1.988l2-1.057zm-2-.075v-2.066l2-1.056v2.066l-2 1.056zm0-3.196v-2.284l2-1.068v2.295l-2 1.057zm3-.454l2-1.056v2.066l-2 1.056v-2.066zm2-2.187l-2 1.056v-2.301l2-1.067v2.312zm-3.174-2.885l-2.164-1.2 2.019-1.121-.017-.03 2.246 1.239-2.084 1.112zm-4.078-4.51l-2.026 1.126-1.768-.979 2.041-1.113 1.753.966zm-7.767 2.314l1.802 1.001-1.815 1.008-1.835-1.001 1.848-1.008zm-.981 3.759v2.346l-2-1.057v-2.38l2 1.091zm-2 5.616l2 1.056v2.005l-2-1.067v-1.994zm6 5.196v-2.027l2 1.056v2.038l-2-1.067zm4-.938l2-1.056v1.994l-2 1.067v-2.005zm6-1.196v-1.972l2-1.056v1.961l-2 1.067z"/></svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 10.031v-6.423l-6.036-3.608-5.964 3.569v6.499l-6 3.224v7.216l6.136 3.492 5.864-3.393 5.864 3.393 6.136-3.492v-7.177l-6-3.3zm-1.143.036l-4.321 2.384v-4.956l4.321-2.539v5.111zm-4.895-8.71l4.272 2.596-4.268 2.509-4.176-2.554 4.172-2.551zm-.569 6.134v4.96l-4.25-2.421v-5.134l4.25 2.595zm-5.83 14.842l-4.421-2.539v-5.176l4.421 2.595v5.12zm-3.773-8.702l4.778-2.53 4.237 2.417-4.668 2.667-4.347-2.554zm4.917 3.587l4.722-2.697v5.056l-4.722 2.757v-5.116zm10.586 5.115l-4.722-2.757v-5.116l4.722 2.754v5.119zm-4.074-8.861l4.247-2.39 4.769 2.594-4.367 2.509-4.649-2.713zm9.638 6.323l-4.421 2.539v-5.116l4.421-2.538v5.115z"/></svg>

Before

Width:  |  Height:  |  Size: 713 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 10.031v-6.423l-6.036-3.608-5.964 3.569v6.499l-6 3.224v7.216l6.136 3.492 5.864-3.393 5.864 3.393 6.136-3.492v-7.177l-6-3.3zm-1.143.036l-4.321 2.384v-4.956l4.321-2.539v5.111zm-4.895-8.71l4.272 2.596-4.268 2.509-4.176-2.554 4.172-2.551zm-10.172 12.274l4.778-2.53 4.237 2.417-4.668 2.667-4.347-2.554zm4.917 3.587l4.722-2.697v5.056l-4.722 2.757v-5.116zm6.512-3.746l4.247-2.39 4.769 2.594-4.367 2.509-4.649-2.713zm9.638 6.323l-4.421 2.539v-5.116l4.421-2.538v5.115z"/></svg>

Before

Width:  |  Height:  |  Size: 563 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 0l-11 6v12.131l11 5.869 11-5.869v-12.066l-11-6.065zm7.91 6.646l-7.905 4.218-7.872-4.294 7.862-4.289 7.915 4.365zm-16.91 1.584l8 4.363v8.607l-8-4.268v-8.702zm10 12.97v-8.6l8-4.269v8.6l-8 4.269z"/></svg>

Before

Width:  |  Height:  |  Size: 297 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 0l-11 6v12.131l11 5.869 11-5.869v-12.066l-11-6.065zm7.91 6.646l-7.905 4.218-7.872-4.294 7.862-4.289 7.915 4.365zm-6.91 14.554v-8.6l8-4.269v8.6l-8 4.269z"/></svg>

Before

Width:  |  Height:  |  Size: 257 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 0l-11 6v12.131l11 5.869 11-5.869v-12.066l-11-6.065zm7.91 6.646l-7.905 4.218-7.872-4.294 7.862-4.289 7.915 4.365zm-16.91 1.584l8 4.363v8.607l-8-4.268v-8.702zm10 12.97v-8.6l8-4.269v8.6l-8 4.269zm6.678-5.315c.007.332-.256.605-.588.612-.332.007-.604-.256-.611-.588-.006-.331.256-.605.588-.612.331-.007.605.256.611.588zm-2.71-1.677c-.332.006-.595.28-.588.611.006.332.279.595.611.588s.594-.28.588-.612c-.007-.331-.279-.594-.611-.587zm-2.132-1.095c-.332.007-.595.281-.588.612.006.332.279.594.611.588.332-.007.594-.28.588-.612-.007-.331-.279-.594-.611-.588zm-9.902 2.183c.332.007.594.281.588.612-.007.332-.279.595-.611.588-.332-.006-.595-.28-.588-.612.005-.331.279-.594.611-.588zm1.487-.5c-.006.332.256.605.588.612s.605-.257.611-.588c.007-.332-.256-.605-.588-.611-.332-.008-.604.255-.611.587zm2.132-1.094c-.006.332.256.605.588.612.332.006.605-.256.611-.588.007-.332-.256-.605-.588-.612-.332-.007-.604.256-.611.588zm3.447-5.749c-.331 0-.6.269-.6.6s.269.6.6.6.6-.269.6-.6-.269-.6-.6-.6zm0-2.225c-.331 0-.6.269-.6.6s.269.6.6.6.6-.269.6-.6-.269-.6-.6-.6zm0-2.031c-.331 0-.6.269-.6.6s.269.6.6.6.6-.269.6-.6-.269-.6-.6-.6z"/></svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.995 2.281l9.005 4.966v9.685l-9 4.802-9-4.802v-9.744l8.995-4.907zm.005-2.281l-11 6v12.131l11 5.869 11-5.869v-12.066l-11-6.065zm0 4.797l-7 3.703v7.076l7 3.59 7-3.59v-7.037l-7-3.742zm3.635 4.21l-3.625 1.864-3.588-1.918 3.573-1.891 3.64 1.945zm-8.635 1.453l4 2.139v3.807l-4-2.052v-3.894zm6 5.946v-3.796l4-2.056v3.8l-4 2.052z"/></svg>

Before

Width:  |  Height:  |  Size: 425 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.849 24l-3.96-7.853-4.889 4.142v-20.289l16 12.875-6.192 1.038 3.901 7.696-4.86 2.391zm-3.299-10.979l4.194 8.3 1.264-.617-4.213-8.313 4.632-.749-9.427-7.559v11.984l3.55-3.046z"/></svg>

Before

Width:  |  Height:  |  Size: 278 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.026 14.116c-3.475 1.673-7.504 3.619-8.484 4.09-1.848.889-3.542-1.445-3.542-1.445l8.761-4.226 3.265 1.581zm7.93 6.884c-.686 0-1.393-.154-2.064-.479-1.943-.941-2.953-3.001-2.498-4.854.26-1.057-.296-1.201-1.145-1.612l-14.189-6.866s1.7-2.329 3.546-1.436c1.134.549 5.689 2.747 9.614 4.651l.985-.474c.85-.409 1.406-.552 1.149-1.609-.451-1.855.564-3.913 2.51-4.848.669-.321 1.373-.473 2.054-.473 2.311 0 4.045 1.696 4.045 3.801 0 1.582-.986 3.156-2.613 3.973-1.625.816-2.765.18-4.38.965l-.504.245.552.27c1.613.789 2.754.156 4.377.976 1.624.819 2.605 2.392 2.605 3.97 0 2.108-1.739 3.8-4.044 3.8zm-2.555-12.815c.489 1.022 1.876 1.378 3.092.793 1.217-.584 1.809-1.893 1.321-2.916-.489-1.022-1.876-1.379-3.093-.794s-1.808 1.894-1.32 2.917zm-3.643 3.625c0-.414-.335-.75-.75-.75-.414 0-.75.336-.75.75s.336.75.75.75.75-.336.75-.75zm6.777 3.213c-1.215-.588-2.604-.236-3.095.786-.491 1.022.098 2.332 1.313 2.919 1.215.588 2.603.235 3.094-.787.492-1.021-.097-2.33-1.312-2.918z"/></svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M8.564 15.75c2.171 2.49 2.917 4.367 3.316 6.181l-3.859 2.069c-.595-2.949-2.312-5.035-3.564-6.271l-.914.432c-1.85.886-3.543-1.44-3.543-1.44l2.912-1.394c-.549-.801-.839-1.93-.838-2.884h4.743c.039.295.115.595.231.9l1.716-.82 3.265 1.575-3.465 1.652zm15.436 1.408c0 2.907-3.216 4.705-6.108 3.31-1.943-.938-2.953-2.99-2.499-4.837.26-1.054-.296-1.196-1.145-1.606l-14.188-6.843s1.7-2.322 3.546-1.432l.894.431c1.335-1.554 3.084-4.116 3.5-6.181l3.877 2.065c-.586 2.312-2.083 4.363-3.499 5.983 1.535.74 3.24 1.562 4.84 2.337l.986-.473c.849-.408 1.406-.549 1.149-1.604-.451-1.848.565-3.899 2.51-4.831 2.897-1.389 6.1.42 6.1 3.315 0 1.577-.986 3.146-2.613 3.96-1.625.813-2.765.18-4.379.962l-.505.244.553.269c1.612.786 2.753.155 4.377.973 1.623.819 2.604 2.385 2.604 3.958zm-6.599-8.984c.489 1.019 1.876 1.374 3.093.791 1.217-.583 1.809-1.887 1.32-2.906-.488-1.019-1.875-1.374-3.092-.791s-1.809 1.886-1.321 2.906zm-3.656 3.613c0-.407-.33-.737-.736-.737-.407 0-.738.33-.738.737s.331.736.738.736c.406 0 .736-.329.736-.736zm6.79 3.202c-1.215-.586-2.604-.235-3.094.783-.492 1.018.098 2.324 1.312 2.909 1.216.586 2.603.235 3.095-.783.49-1.019-.098-2.323-1.313-2.909z"/></svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10.872 6.831l1.695 3.904 3.654-1.561-1.79 3.426 3.333.954-3.417 1.338 2.231 4.196-4.773-2.582-2.869 2.287.413-3.004-3.792-.726 2.93-1.74-1.885-2.512 3.427.646.843-4.626zm-.786-6.831l-1.665 9.119-6.512-1.228 3.639 4.851-5.548 3.294 7.108 1.361-.834 6.076 5.742-4.577 9.438 5.104-4.288-8.064 6.834-2.677-6.661-1.907 3.25-6.22-6.98 2.982-3.523-8.114z"/></svg>

Before

Width:  |  Height:  |  Size: 449 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.021 12.593c-.141-.427-.314-.844-.516-1.242l-2.454 1.106c.217.394.39.81.517 1.242l2.453-1.106zm-12.573-.903c.271-.354.58-.675.919-.957l-1.89-1.969c-.328.294-.637.615-.918.957l1.889 1.969zm1.715-1.515c.379-.221.781-.396 1.198-.523l-1.034-2.569c-.41.142-.812.318-1.198.524l1.034 2.568zm-2.759 3.616c.121-.435.288-.854.498-1.25l-2.469-1.066c-.197.403-.364.822-.498 1.25l2.469 1.066zm9.434-6.2c-.387-.205-.79-.379-1.2-.519l-1.024 2.573c.417.125.82.299 1.2.519l1.024-2.573zm2.601 2.13c-.282-.342-.59-.663-.918-.957l-1.89 1.969c.339.282.647.604.918.957l1.89-1.969zm-5.791-3.059c-.219-.018-.437-.026-.649-.026s-.431.009-.65.026v2.784c.216-.025.434-.038.65-.038.216 0 .434.012.649.038v-2.784zm-.648 14.338c-1.294 0-2.343-1.049-2.343-2.343 0-.883.489-1.652 1.21-2.051l1.133-5.606 1.133 5.605c.722.399 1.21 1.168 1.21 2.051 0 1.295-1.049 2.344-2.343 2.344zm12-6c0 2.184-.586 4.233-1.61 5.999l-1.736-1.003c.851-1.471 1.346-3.174 1.346-4.996 0-5.523-4.477-10-10-10s-10 4.477-10 10c0 1.822.495 3.525 1.346 4.996l-1.736 1.003c-1.024-1.766-1.61-3.815-1.61-5.999 0-6.617 5.383-12 12-12s12 5.383 12 12z"/></svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.967 21.893c-.703.07-1.377.107-1.959.107-3.412 0-8.008-1.002-8.008-2.614v-2.04c2.117 1.342 5.17 1.78 8.008 1.78.339 0 .681-.007 1.022-.021-.06-.644-.036-1.28.129-2.019-.408.026-.797.04-1.151.04-3.412 0-8.008-1.001-8.008-2.613v-2.364c2.116 1.341 5.17 1.78 8.008 1.78 1.021 0 2.068-.06 3.089-.196 1.91-1.766 4.603-2.193 6.903-1.231v-8.14c0-3.362-5.965-4.362-9.992-4.362-4.225 0-10.008 1.001-10.008 4.361v15.277c0 3.362 6.209 4.362 10.008 4.362 1.081 0 2.359-.086 3.635-.281-.669-.495-1.239-1.115-1.676-1.826zm-1.959-19.893c3.638 0 7.992.909 7.992 2.361 0 1.581-5.104 2.361-7.992 2.361-3.412.001-8.008-.905-8.008-2.361 0-1.584 4.812-2.361 8.008-2.361zm-8.008 4.943c2.117 1.342 5.17 1.78 8.008 1.78 2.829 0 5.876-.438 7.992-1.78v2.372c0 1.753-5.131 2.614-7.992 2.614-3.426-.001-8.008-1.007-8.008-2.615v-2.371zm15.5 7.057c-2.483 0-4.5 2.015-4.5 4.5s2.017 4.5 4.5 4.5 4.5-2.015 4.5-4.5-2.017-4.5-4.5-4.5zm2.5 5h-2v2h-1v-2h-2v-1h2v-2h1v2h2v1z"/></svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.967 21.893c-.703.07-1.377.107-1.959.107-3.412 0-8.008-1.002-8.008-2.614v-2.04c2.117 1.342 5.17 1.78 8.008 1.78.339 0 .681-.007 1.022-.021-.06-.644-.036-1.28.129-2.019-.408.026-.797.04-1.151.04-3.412 0-8.008-1.001-8.008-2.613v-2.364c2.116 1.341 5.17 1.78 8.008 1.78 1.021 0 2.068-.06 3.089-.196 1.91-1.766 4.603-2.193 6.903-1.231v-8.14c0-3.362-5.965-4.362-9.992-4.362-4.225 0-10.008 1.001-10.008 4.361v15.277c0 3.362 6.209 4.362 10.008 4.362 1.081 0 2.359-.086 3.635-.281-.669-.495-1.239-1.115-1.676-1.826zm-1.959-19.893c3.638 0 7.992.909 7.992 2.361 0 1.581-5.104 2.361-7.992 2.361-3.412.001-8.008-.905-8.008-2.361 0-1.584 4.812-2.361 8.008-2.361zm-8.008 4.943c2.117 1.342 5.17 1.78 8.008 1.78 2.829 0 5.876-.438 7.992-1.78v2.372c0 1.753-5.131 2.614-7.992 2.614-3.426-.001-8.008-1.007-8.008-2.615v-2.371zm15.5 7.057c-2.483 0-4.5 2.015-4.5 4.5s2.017 4.5 4.5 4.5 4.5-2.015 4.5-4.5-2.017-4.5-4.5-4.5zm2.5 5h-5v-1h5v1z"/></svg>

Before

Width:  |  Height:  |  Size: 1019 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.967 21.893c-.703.07-1.377.107-1.959.107-3.412 0-8.008-1.002-8.008-2.614v-2.04c2.117 1.342 5.17 1.78 8.008 1.78.339 0 .681-.007 1.022-.021-.06-.644-.036-1.28.129-2.019-.408.026-.797.04-1.151.04-3.412 0-8.008-1.001-8.008-2.613v-2.364c2.116 1.341 5.17 1.78 8.008 1.78 1.021 0 2.068-.06 3.089-.196 1.91-1.766 4.603-2.193 6.903-1.231v-8.14c0-3.362-5.965-4.362-9.992-4.362-4.225 0-10.008 1.001-10.008 4.361v15.277c0 3.362 6.209 4.362 10.008 4.362 1.081 0 2.359-.086 3.635-.281-.669-.495-1.239-1.115-1.676-1.826zm-1.959-19.893c3.638 0 7.992.909 7.992 2.361 0 1.581-5.104 2.361-7.992 2.361-3.412.001-8.008-.905-8.008-2.361 0-1.584 4.812-2.361 8.008-2.361zm-8.008 4.943c2.117 1.342 5.17 1.78 8.008 1.78 2.829 0 5.876-.438 7.992-1.78v2.372c0 1.753-5.131 2.614-7.992 2.614-3.426-.001-8.008-1.007-8.008-2.615v-2.371zm15.5 7.057c-2.483 0-4.5 2.015-4.5 4.5s2.017 4.5 4.5 4.5 4.5-2.015 4.5-4.5-2.017-4.5-4.5-4.5zm-.564 6.55l-1.839-1.778.735-.758 1.09 1.05 2.43-2.439.751.744-3.167 3.181z"/></svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.008 0c-4.225 0-10.008 1.001-10.008 4.361v15.277c0 3.362 6.209 4.362 10.008 4.362 3.783 0 9.992-1.001 9.992-4.361v-15.278c0-3.361-5.965-4.361-9.992-4.361zm0 2c3.638 0 7.992.909 7.992 2.361 0 1.581-5.104 2.361-7.992 2.361-3.412.001-8.008-.905-8.008-2.361 0-1.584 4.812-2.361 8.008-2.361zm7.992 17.386c0 1.751-5.104 2.614-7.992 2.614-3.412 0-8.008-1.002-8.008-2.614v-2.04c2.117 1.342 5.17 1.78 8.008 1.78 2.829 0 5.876-.438 7.992-1.78v2.04zm0-4.873c0 1.75-5.104 2.614-7.992 2.614-3.412-.001-8.008-1.002-8.008-2.614v-2.364c2.116 1.341 5.17 1.78 8.008 1.78 2.839 0 5.881-.442 7.992-1.78v2.364zm-7.992-2.585c-3.426 0-8.008-1.006-8.008-2.614v-2.371c2.117 1.342 5.17 1.78 8.008 1.78 2.829 0 5.876-.438 7.992-1.78v2.372c0 1.753-5.131 2.613-7.992 2.613z"/></svg>

Before

Width:  |  Height:  |  Size: 848 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.004 6c-4.226 0-10.004.953-10.004 4.15v4.701c0 3.197 6.204 4.149 10.004 4.149 3.785 0 9.996-.952 9.996-4.149v-4.701c0-3.198-5.967-4.15-9.996-4.15zm0 1.903c3.64 0 7.995.865 7.995 2.247 0 1.505-5.106 2.247-7.995 2.247-3.414 0-8.011-.861-8.011-2.247 0-1.507 4.814-2.247 8.011-2.247zm7.995 6.707c0 1.666-5.106 2.487-7.995 2.487-3.414 0-8.011-.954-8.011-2.487v-1.94c2.118 1.276 5.172 1.694 8.011 1.694 2.83 0 5.878-.418 7.995-1.694v1.94z"/></svg>

Before

Width:  |  Height:  |  Size: 536 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 7.494v-.663h3.813l-6.813-6.831-6.813 6.831h3.813v.664l-9 2.9 4.706 8.927 1.303-3.164c2.232 1.767 3.054 5.18 3.054 7.842h5.845999999999999c.252-2.662.573-5.858 3.083-7.843l1.303 3.164 4.705-8.926-9-2.901zm.821 3.325l-.821.597v-2.674l.821 2.077zm-3.821-7.984l1.986 1.991h-.986v8.404c-.778.847-1.447 1.776-2 2.781v-11.185h-.986l1.986-1.991zm-3 5.91v2.679c-.252-.203-.523-.405-.821-.604l.821-2.075zm-3.946 4.476l-.57 1.387-1.601-3.037 3.264-1.051-.457 1.151c1.833 1.006 4.015 2.656 5.256 4.445-.379.7-.7 1.437-.967 2.206-1.291-3.206-3.43-4.26-4.925-5.101zm13.891 0c-2.543 1.434-5.095 3.04-5.84 8.774h-1.921c.569-4.924 3.075-8.059 7.125-10.324l-.455-1.152 3.263 1.052-1.6 3.037-.572-1.387z"/></svg>

Before

Width:  |  Height:  |  Size: 789 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 14.135v-14.135h6v7.117c-.713.482-1.38 1.005-2 1.568v-6.685h-2v8.839c-.78 1.008-1.445 2.11-2 3.296zm11.344-.818l1.52 3.683 5.136-9.719-10.442-3.357 1.475 3.72c-5.663 2.851-9.033 8.128-9.033 16.356h6c0-5.813 2.41-9.271 5.344-10.683zm.251-4.638l-.617-1.555 4.14 1.331-2.03 3.843-.623-1.508c-5.521 1.771-8.083 6.314-8.43 11.21h-2.009c.325-6.159 3.274-10.579 9.569-13.321z"/></svg>

Before

Width:  |  Height:  |  Size: 471 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 10.839v-8.839h-2v6.685c-.62-.563-1.287-1.086-2-1.568v-7.117h6v14.135c-.555-1.186-1.22-2.288-2-3.296zm-4 13.161h6c0-8.228-3.37-13.505-9.032-16.356l1.475-3.72-10.443 3.357 5.136 9.719 1.521-3.683c2.933 1.412 5.343 4.87 5.343 10.683zm3.974-2h-2.009c-.347-4.896-2.909-9.439-8.429-11.21l-.623 1.508-2.03-3.843 4.14-1.331-.618 1.555c6.295 2.742 9.244 7.162 9.569 13.321z"/></svg>

Before

Width:  |  Height:  |  Size: 469 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 18.5c0 .276-.224.5-.5.5s-.5-.224-.5-.5.224-.5.5-.5.5.224.5.5zm4-2.5l-5-14h-14l-5 14v6h24v-6zm-17.666-12h11.333l3.75 11h-18.834l3.751-11zm15.666 16h-20v-3h20v3z"/></svg>

Before

Width:  |  Height:  |  Size: 264 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 2v11h2.51l-4.51 5.01-4.509-5.01h2.509v-11h4zm2-2h-8v11h-5l9 10 9-10h-5v-11zm1 22h-10v2h10v-2z"/></svg>

Before

Width:  |  Height:  |  Size: 198 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 2v11h2.51l-4.51 5.01-4.51-5.01h2.51v-11h4zm2-2h-8v11h-5l9 10 9-10h-5v-11zm3 19v3h-14v-3h-2v5h18v-5h-2z"/></svg>

Before

Width:  |  Height:  |  Size: 207 B

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