diff --git a/plugins/startupmanager/startupitem.cpp b/plugins/startupmanager/startupitem.cpp index 05d1ea8..6756f0c 100644 --- a/plugins/startupmanager/startupitem.cpp +++ b/plugins/startupmanager/startupitem.cpp @@ -1,3 +1,21 @@ +/* + * Copyright (C) 2013 ~ 2018 National University of Defense Technology(NUDT) & Tianjin Kylin Ltd. + * + * Authors: + * Kobe Lee xiangli@ubuntukylin.com/kobe24_lixiang@126.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ #include "startupitem.h" #include "../../component/kylinswitcher.h" diff --git a/plugins/startupmanager/startupitem.h b/plugins/startupmanager/startupitem.h index 9a93ff4..fa81c51 100644 --- a/plugins/startupmanager/startupitem.h +++ b/plugins/startupmanager/startupitem.h @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2013 ~ 2018 National University of Defense Technology(NUDT) & Tianjin Kylin Ltd. + * + * Authors: + * Kobe Lee xiangli@ubuntukylin.com/kobe24_lixiang@126.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #ifndef STARTUPITEM_H #define STARTUPITEM_H diff --git a/plugins/startupmanager/startuplistwidget.cpp b/plugins/startupmanager/startuplistwidget.cpp index 600a3f7..3e64de3 100644 --- a/plugins/startupmanager/startuplistwidget.cpp +++ b/plugins/startupmanager/startuplistwidget.cpp @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2013 ~ 2018 National University of Defense Technology(NUDT) & Tianjin Kylin Ltd. + * + * Authors: + * Kobe Lee xiangli@ubuntukylin.com/kobe24_lixiang@126.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #include "startuplistwidget.h" #include "startupitem.h" diff --git a/plugins/startupmanager/startuplistwidget.h b/plugins/startupmanager/startuplistwidget.h index a0f50d9..24b3e3a 100644 --- a/plugins/startupmanager/startuplistwidget.h +++ b/plugins/startupmanager/startuplistwidget.h @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2013 ~ 2018 National University of Defense Technology(NUDT) & Tianjin Kylin Ltd. + * + * Authors: + * Kobe Lee xiangli@ubuntukylin.com/kobe24_lixiang@126.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #ifndef STARTUPLISTWIDGET_H #define STARTUPLISTWIDGET_H diff --git a/plugins/systemmonitor/cpuballwidget.cpp b/plugins/systemmonitor/cpuballwidget.cpp index 901f63b..f54efe4 100644 --- a/plugins/systemmonitor/cpuballwidget.cpp +++ b/plugins/systemmonitor/cpuballwidget.cpp @@ -27,10 +27,10 @@ CpuBallWidget::CpuBallWidget(QWidget *parent) : QWidget(parent) { - this->setFixedSize(100, 100); + this->setFixedSize(210, 210); - m_frontImagePath = "://res/wave-front.png"; - m_backimagePath = "://res/wave-back.png"; + m_frontImagePath = "://res/wave_front.png"; + m_backimagePath = "://res/wave_back.png"; m_xFrontOffset = 0; m_xBackOffset = this->width(); @@ -69,8 +69,9 @@ void CpuBallWidget::loadWaveImage() QImageReader frontReader(m_frontImagePath); int w = frontReader.size().width(); int h = frontReader.size().height(); -// QImage image(w, h, QImage::Format_ARGB32); - QImage image(w, h, QImage::Format_ARGB32_Premultiplied); +// w = w * this->width() / 100; +// h = h * this->height() / 100; + QImage image(w, h, QImage::Format_ARGB32_Premultiplied);//QImage::Format_ARGB32 image.fill(Qt::transparent); image.load(m_frontImagePath); /*QPainter painter(&image); @@ -81,13 +82,13 @@ void CpuBallWidget::loadWaveImage() painter.end();*/ m_frontImage = image; - QImageReader backReader(m_backimagePath); w = backReader.size().width(); h = backReader.size().height(); - -// QImage image(w, h, QImage::Format_ARGB32); - QImage backImage(w, h, QImage::Format_ARGB32_Premultiplied); +// w = w * this->width() / 100; +// h = h * this->height() / 100; + QImage backImage(w, h, QImage::Format_ARGB32_Premultiplied);//QImage::Format_ARGB32 + backImage = backImage.scaled(QSize(w, h), Qt::KeepAspectRatio, Qt::SmoothTransformation); backImage.fill(Qt::transparent); backImage.load(m_backimagePath); /*QPainter backPainter(&backImage); @@ -101,17 +102,13 @@ void CpuBallWidget::loadWaveImage() void CpuBallWidget::onRepaintWaveImage() { -// m_xFrontOffset -= 1; - m_xFrontOffset += 1; + m_xFrontOffset += 2; m_xBackOffset += 2; -// if (m_xFrontOffset < - (m_frontImage.width() - this->width())) {//保留整个显示直径的大小不做处理,避免出现断层 -// m_xFrontOffset = 0; -// } if (m_xFrontOffset > m_frontImage.width()) {//保留整个显示直径的大小不做处理,避免出现断层 - m_xFrontOffset = this->width(); + m_xFrontOffset = 0; } if (m_xBackOffset > m_backImage.width()) {//保留整个显示直径的大小不做处理,避免出现断层 - m_xBackOffset = this->width(); + m_xBackOffset = 0; } this->update();//this->repaint(); } @@ -154,42 +151,38 @@ void CpuBallWidget::paintEvent(QPaintEvent *) QImage waveRectImage = QImage(waveSize, QImage::Format_ARGB32_Premultiplied);//创建一个Format_ARGB32_Premultiplied 格式的QIamge,大小和控件相同 QPainter wavePainter(&waveRectImage);//创建一个QPainter绘制waveRectImage这个图像 wavePainter.setRenderHint(QPainter::Antialiasing, true);//setRenderHint() 来设置反走样,要么绘制出来的线条会出现锯齿 - wavePainter.initFrom(this);//用控件的设置初始化画笔,刷子和字体 +// wavePainter.initFrom(this);//用控件的设置初始化画笔,刷子和字体 wavePainter.setCompositionMode(QPainter::CompositionMode_Source);//输出源像素,避免整个矩形背景区域出现花屏现象 if (currentPercent > 88) { - wavePainter.fillRect(waveRectImage.rect(), QColor(255, 0, 0, 127));//OrangeRed m_shadowEffect->setColor(QColor(255, 0, 0, 127));//红色 } else if (currentPercent > 55) { - wavePainter.fillRect(waveRectImage.rect(), QColor(255, 165, 255, 127));//Orange m_shadowEffect->setColor(QColor(255, 193, 37, 127));//黄 } else { - wavePainter.fillRect(waveRectImage.rect(), QColor(135, 206, 250, 127));//LightSkyBlue m_shadowEffect->setColor(QColor(232, 232, 232, 127));//灰 } + wavePainter.fillRect(waveRectImage.rect(), QColor(255, 255, 255, 127)); //Step2:波浪区域 //CompositionMode_SourceOver保证波浪出现的时候其背景为通明的 wavePainter.setCompositionMode(QPainter::CompositionMode_SourceOver);//混和模式QImage::CompositionMode_SourceOver ,即原象素(正在绘制的象素)和目标象素(已经存在的象素)混和,原象素的alpha分量定义为最终的透明度 - wavePainter.drawImage(static_cast(m_xBackOffset) - m_backImage.width(), 100 - currentPercent, m_backImage); -// wavePainter.drawImage(static_cast(m_xFrontOffset), 100 - currentPercent, m_frontImage); - wavePainter.drawImage(static_cast(m_xFrontOffset) - m_frontImage.width(), 100 - currentPercent, m_frontImage); + wavePainter.drawImage(static_cast(m_xBackOffset), (100 - currentPercent)*this->width()/100, m_backImage); + wavePainter.drawImage(static_cast(m_xBackOffset) - m_backImage.width(), (100 - currentPercent)*this->width()/100, m_backImage); + wavePainter.drawImage(static_cast(m_xFrontOffset), (100 - currentPercent)*this->width()/100, m_frontImage); + wavePainter.drawImage(static_cast(m_xFrontOffset) - m_frontImage.width(), (100 - currentPercent)*this->width()/100, m_frontImage); - //Step3:矩形区域中圆球的外径和内径 + //Step3:矩形区域中圆球的外径 QRectF outRect = QRectF(0, 0, waveSize.width(), waveSize.height()); QPainterPath outBorderPath; //QMargins定义了矩形的四个外边距量,left,top,right和bottom,描述围绕矩形的边框宽度 outBorderPath.addEllipse(outRect.marginsRemoved(QMarginsF(0.5, 0.5, 0.5, 0.5)));//marginsAdded:增长矩形的边距,扩大它 - wavePainter.strokePath(outBorderPath, QPen(QColor(178, 34, 34, 127), 2));//外边框 - QPainterPath inBorderPath; - inBorderPath.addEllipse(outRect.marginsRemoved(QMarginsF(2, 2, 2, 2)));//marginsRemoved:删除矩形的边距,缩小它 - wavePainter.strokePath(inBorderPath, QPen(QColor(0, 0, 255, 127), 2));//内边框 + wavePainter.strokePath(outBorderPath, QPen(QColor("#0f84bc"), 1));//外边框 59aee2 //Step4:占用率文字描述 QFont font = wavePainter.font(); - font.setPixelSize(waveSize.height() * 20 / 100); + font.setPixelSize(44);//waveSize.height() * 20 / this->height() wavePainter.setFont(font); wavePainter.setPen(Qt::white); - wavePainter.drawText(rect, Qt::AlignCenter, m_progressText); + wavePainter.drawText(QRect(rect.x(), rect.y() + rect.height()*2/3, rect.width(), rect.height()/3), Qt::AlignHCenter, m_progressText); wavePainter.end(); QImage image = QImage(waveSize, QImage::Format_ARGB32_Premultiplied); diff --git a/plugins/systemmonitor/cpuoccupancyrate.cpp b/plugins/systemmonitor/cpuratewidget.cpp similarity index 67% rename from plugins/systemmonitor/cpuoccupancyrate.cpp rename to plugins/systemmonitor/cpuratewidget.cpp index 6455e58..a7e8516 100644 --- a/plugins/systemmonitor/cpuoccupancyrate.cpp +++ b/plugins/systemmonitor/cpuratewidget.cpp @@ -17,25 +17,25 @@ * along with this program. If not, see . */ -#include "cpuoccupancyrate.h" +#include "cpuratewidget.h" #include "cpuballwidget.h" #include #include #include -CpuOccupancyRate::CpuOccupancyRate(QWidget *parent) : QWidget(parent) +CpuRateWidget::CpuRateWidget(QWidget *parent) : QWidget(parent) { // this->setFixedSize(302, 140); - /*QVBoxLayout **/mainLayout = new QVBoxLayout(this); + /*QVBoxLayout **/mainLayout = new QHBoxLayout(this); mainLayout->setContentsMargins(0, 0, 0, 0); QWidget *w = new QWidget; - w->setFixedSize(302, 140); - m_titleLeftLayout = new QHBoxLayout(w); - m_titleLeftLayout->setContentsMargins(6, 0, 0, 0); - m_titleLeftLayout->setSpacing(0); + w->setFixedSize(300, 300); + m_widgetLayout = new QVBoxLayout(w); + m_widgetLayout->setContentsMargins(6, 0, 0, 0); + m_widgetLayout->setSpacing(0); m_title = new QLabel(tr("CPU")); m_title->setAlignment(Qt::AlignLeft | Qt::AlignTop); @@ -47,10 +47,10 @@ CpuOccupancyRate::CpuOccupancyRate(QWidget *parent) : QWidget(parent) m_title->setFont(font); m_cpuBall = new CpuBallWidget; - m_cpuBall->setFixedSize(100, 100); +// m_cpuBall->setFixedSize(100, 100); - m_titleLeftLayout->addWidget(m_title, 0, Qt::AlignLeft); - m_titleLeftLayout->addWidget(m_cpuBall, 0, Qt::AlignCenter); + m_widgetLayout->addWidget(m_title, 0, Qt::AlignLeft); + m_widgetLayout->addWidget(m_cpuBall, 0, Qt::AlignCenter); mainLayout->addWidget(w, 1, Qt::AlignCenter); @@ -58,15 +58,24 @@ CpuOccupancyRate::CpuOccupancyRate(QWidget *parent) : QWidget(parent) // mainLayout->addWidget(m_title, 0, Qt::AlignLeft); // mainLayout->addWidget(m_cpuBall, 0, Qt::AlignCenter); + /*sudo dmidecode -t processor + u32 len; + u8 *buf; + size_t size = len; + buf = read_file(&size, devmem); + len = size; +// dmi_table_decode(buf, len, num, ver, flags); +// dmi_decode(&h, ver);*/ + m_cpuBall->startTimer(); } -CpuOccupancyRate::~CpuOccupancyRate() +CpuRateWidget::~CpuRateWidget() { delete m_title; delete m_cpuBall; QLayoutItem *child; - while ((child = m_titleLeftLayout->takeAt(0)) != 0) { + while ((child = m_widgetLayout->takeAt(0)) != 0) { if (child->widget()) child->widget()->deleteLater(); delete child; @@ -74,17 +83,17 @@ CpuOccupancyRate::~CpuOccupancyRate() delete mainLayout; } -void CpuOccupancyRate::onUpdateCpuPercent(double value) +void CpuRateWidget::onUpdateCpuPercent(double value) { m_cpuBall->updateCpuPercent(value); } -void CpuOccupancyRate::startTimer() +void CpuRateWidget::startTimer() { m_cpuBall->startTimer(); } -void CpuOccupancyRate::stopTimer() +void CpuRateWidget::stopTimer() { m_cpuBall->stopTimer(); } diff --git a/plugins/systemmonitor/cpuoccupancyrate.h b/plugins/systemmonitor/cpuratewidget.h similarity index 79% rename from plugins/systemmonitor/cpuoccupancyrate.h rename to plugins/systemmonitor/cpuratewidget.h index e3fb12f..b639db6 100644 --- a/plugins/systemmonitor/cpuoccupancyrate.h +++ b/plugins/systemmonitor/cpuratewidget.h @@ -17,8 +17,8 @@ * along with this program. If not, see . */ -#ifndef CPUOCCUPANCYRATE_H -#define CPUOCCUPANCYRATE_H +#ifndef CPURATEWIDGET_H +#define CPURATEWIDGET_H #include #include @@ -27,13 +27,13 @@ class CpuBallWidget; -class CpuOccupancyRate : public QWidget +class CpuRateWidget : public QWidget { Q_OBJECT public: - CpuOccupancyRate(QWidget *parent = 0); - ~CpuOccupancyRate(); + CpuRateWidget(QWidget *parent = 0); + ~CpuRateWidget(); void startTimer(); void stopTimer(); @@ -44,8 +44,8 @@ public slots: private: QLabel *m_title = nullptr; CpuBallWidget *m_cpuBall = nullptr; - QHBoxLayout *m_titleLeftLayout = nullptr; - QVBoxLayout *mainLayout = nullptr; + QVBoxLayout *m_widgetLayout = nullptr; + QHBoxLayout *mainLayout = nullptr; }; -#endif // CPUOCCUPANCYRATE_H +#endif // CPURATEWIDGET_H diff --git a/plugins/systemmonitor/memorycircle.cpp b/plugins/systemmonitor/memorycircle.cpp new file mode 100644 index 0000000..bf49ed2 --- /dev/null +++ b/plugins/systemmonitor/memorycircle.cpp @@ -0,0 +1,209 @@ +#include "memorycircle.h" +#include "util.h" + +#include +#include + +inline QString formatMemory(guint64 size) +{ + enum { + K_INDEX, + M_INDEX, + G_INDEX, + T_INDEX + }; + + QList factorList; + factorList.append(G_GUINT64_CONSTANT(1) << 10);//KiB + factorList.append(G_GUINT64_CONSTANT(1) << 20);//MiB + factorList.append(G_GUINT64_CONSTANT(1) << 30);//GiB + factorList.append(G_GUINT64_CONSTANT(1) << 40);//TiB + + if (size < factorList.at(K_INDEX)) { + if ((guint) size > 1) { + return QString("%1 %2").arg((guint) size).arg(QObject::tr("byte")); + } + else { + return QString("%1 %2").arg((guint) size).arg(QObject::tr("bytes")); + } + } else { + guint64 factor; + QString format; + if (size < factorList.at(M_INDEX)) { + factor = factorList.at(K_INDEX); + format = QObject::tr("KiB"); + }else if (size < factorList.at(G_INDEX)) { + factor = factorList.at(M_INDEX); + format = QObject::tr("MiB"); + } else if (size < factorList.at(T_INDEX)) { + factor = factorList.at(G_INDEX); + format = QObject::tr("GiB"); + } else { + factor = factorList.at(T_INDEX); + format = QObject::tr("TiB"); + } + std::string formatted_result(make_string(g_strdup_printf("%.1f", size / (double)factor))); + return QString::fromStdString(formatted_result) + format; + } +} + +MemoryCircle::MemoryCircle(QWidget *parent) + : QWidget(parent) +{ + this->setFixedSize(400, 300); + + circleRadius = 128/2; //半径 + rectWidth = 100; //文本框宽 + rectHeight = 20; // 文本框高 + center = rect().center(); + center.setX(center.x()/2); + center.setY(center.y()/2); + swapcenter = rect().center(); + swapcenter.setX(swapcenter.x()*3/2); + swapcenter.setY(swapcenter.y()/2); +} + +MemoryCircle::~MemoryCircle() +{ + +} + +void MemoryCircle::drawCircle(QPainter *painter, bool isSwap) +{ + //渐变效果设置 + /*QRadialGradient circleGradient(center, circleRadius, center); + circleGradient.setColorAt(0.0, QColor(220, 220, 220)); + circleGradient.setColorAt(0.2, QColor(220, 220, 220)); + circleGradient.setColorAt(0.4, QColor(240, 240, 240)); + circleGradient.setColorAt(1.0, QColor(220, 220, 220));*/ + + QPen pen; + if (isSwap) + pen.setColor(QColor("#fc7416")); + else + pen.setColor(QColor("#9528b4")); + pen.setWidth(1); + painter->setPen(pen); +// painter->setBrush(circleGradient); + painter->setBrush(QBrush(QColor("#ffffff"))); + + if (isSwap) + painter->drawEllipse(swapcenter, circleRadius, circleRadius); + else + painter->drawEllipse(center, circleRadius, circleRadius); +} + +void MemoryCircle::drawColorPie(QPainter *painter, bool isSwap) +{ + //内存矩形,绘制扇形需要的参数,圆在矩形内且与矩形相切 + QPointF pieRectLeftTop(center.x()-circleRadius, center.y()-circleRadius); + QPointF pieRectRightBottom(center.x()+circleRadius, center.y()+circleRadius); + pieRect = QRectF(pieRectLeftTop, pieRectRightBottom); + //SWAP矩形范围,,绘制扇形需要的参数,圆在矩形内且与矩形相切 + QPointF swapRectLeftTop(swapcenter.x()-circleRadius, swapcenter.y()-circleRadius); + QPointF swapRectRightBottom(swapcenter.x()+circleRadius, swapcenter.y()+circleRadius); + swappieRect = QRectF(swapRectLeftTop, swapRectRightBottom); + + + if (isSwap) { + if (mi.swappercent == 0) + painter->setPen(Qt::NoPen); + else { + QPen pen; + pen.setColor(QColor("#fc7416")); + pen.setWidth(1); + painter->setPen(pen); + } + painter->setBrush(QBrush(QColor("#fef5f1"))); + float swapcurrentPie = - (360 * (mi.swappercent/100)); //负数顺时针 + painter->drawPie(swappieRect, 90*16, swapcurrentPie*16);//绘制扇形,90*16为初始,12点钟位置 + } + else { + if (mi.percent == 0) + painter->setPen(Qt::NoPen); + else { + QPen pen; + pen.setColor(QColor("#9528b4")); + pen.setWidth(1); + painter->setPen(pen); + } + painter->setBrush(QBrush(QColor("#f4e9f7"))); + float currentPie = - (360 * (mi.percent/100)); //负数顺时针,0*16为3点钟位置 + painter->drawPie(pieRect, 90*16, currentPie*16); //绘制扇形,90*16为初始,12点钟位置 + } +} + +void MemoryCircle::drawText(QPainter *painter) +{ + setFontSize(*painter, 20); + painter->setPen(QPen(QColor("#000000"))); + painter->drawText(QRect(center.x()-circleRadius, center.y() + circleRadius + 10, circleRadius*2, 30), Qt::AlignCenter, tr("Memory")); + painter->drawText(QRect(swapcenter.x()-circleRadius, swapcenter.y() + circleRadius + 10, circleRadius*2, 30), Qt::AlignCenter, tr("Swap")); + + //draw title + setFontSize(*painter, 12); + painter->setPen(QPen(QColor("#999999"))); + painter->drawText(QRect(center.x()-circleRadius, center.y() + circleRadius + 40, circleRadius*2, 30), Qt::AlignLeft |Qt::AlignVCenter, tr("Used(Percent)")); + painter->drawText(QRect(swapcenter.x()-circleRadius, swapcenter.y() + circleRadius + 40, circleRadius*2, 30), Qt::AlignLeft |Qt::AlignVCenter, tr("Used(Percent)")); + painter->drawText(QRect(center.x()-circleRadius, center.y() + circleRadius + 85, circleRadius*2, 30), Qt::AlignLeft |Qt::AlignVCenter, tr("Total")); + painter->drawText(QRect(swapcenter.x()-circleRadius, swapcenter.y() + circleRadius + 85, circleRadius*2, 30), Qt::AlignLeft |Qt::AlignVCenter, tr("Total")); + + //draw text data + setFontSize(*painter, 20); + QFontMetrics fm = painter->fontMetrics(); + painter->setPen(QPen(QColor("#000000"))); + const QString memeryUsed = tr("%1(%2%)").arg(formatMemory(mi.user)).arg(QString::number(mi.percent, 'f', 1)); + const QString swapUsed = tr("%1(%2%)").arg(formatMemory(mi.swapused)).arg(QString::number(mi.swappercent, 'f', 1)); + painter->drawText(QRect(center.x()-circleRadius, center.y() + circleRadius + 60, fm.width(memeryUsed), 30), Qt::AlignLeft |Qt::AlignVCenter, memeryUsed); + painter->drawText(QRect(swapcenter.x()-circleRadius, swapcenter.y() + circleRadius + 60, fm.width(swapUsed), 30), Qt::AlignLeft |Qt::AlignVCenter, swapUsed); + painter->drawText(QRect(center.x()-circleRadius, center.y() + circleRadius + 105, circleRadius*2, 30), Qt::AlignLeft |Qt::AlignVCenter, formatMemory(mi.total)); + painter->drawText(QRect(swapcenter.x()-circleRadius, swapcenter.y() + circleRadius + 105, circleRadius*2, 30), Qt::AlignLeft |Qt::AlignVCenter, formatMemory(mi.swaptotal)); + + const QString info = QString("%1/%2(%3%)").arg(formatMemory(mi.user)).arg(formatMemory(mi.total)).arg(QString::number(mi.percent, 'f', 1)); + emit rebackMemoryInfo(info, mi.percent); +} + +void MemoryCircle::onUpdateMemoryStatus() +{ + glibtop_mem mem; + glibtop_swap swap; + + glibtop_get_mem(&mem); + glibtop_get_swap(&swap); + + float swappercent = (swap.total ? (float)swap.used / (float)swap.total : 0.0f); + float mempercent = (float)mem.user / (float)mem.total; + + mi.percent = mempercent * 100; + mi.swappercent = swappercent * 100; + + //初始单位为字节,需要修正 + mi.user = mem.user; + mi.total = mem.total; + + mi.swapused = swap.used; + mi.swaptotal = swap.total; + + repaint(); +} + +void MemoryCircle::paintEvent(QPaintEvent *event) +{ + QPainter painter; + + painter.begin(this); + painter.setRenderHint(QPainter::Antialiasing, true); + + //draw memory circle + drawCircle(&painter); + drawColorPie(&painter); + + //draw swap circle + drawCircle(&painter, true); + drawColorPie(&painter, true); + + painter.setRenderHint(QPainter::Antialiasing, false); + drawText(&painter); + + painter.end(); +} diff --git a/plugins/systemmonitor/memorycircle.h b/plugins/systemmonitor/memorycircle.h new file mode 100644 index 0000000..d1db548 --- /dev/null +++ b/plugins/systemmonitor/memorycircle.h @@ -0,0 +1,59 @@ +#ifndef MEMORYCIRCLE_H +#define MEMORYCIRCLE_H + +#include +#include +#include +#include + +typedef struct MemoryInfo +{ + float total; + float free; + float cached; + float used; + float user; + float percent; + + float swaptotal; + float swapfree; + float swapcached; + float swapused; + float swappercent; + +}Meminfo; + +class MemoryCircle : public QWidget +{ + Q_OBJECT + +public: + MemoryCircle(QWidget *parent = 0); + ~MemoryCircle(); + + void drawCircle(QPainter *painter, bool isSwap = false); + void drawColorPie(QPainter *painter, bool isSwap = false); + void drawText(QPainter *painter); + +public slots: + void onUpdateMemoryStatus(); + +signals: + void rebackMemoryInfo(const QString &info, double percent); + +protected: + void paintEvent(QPaintEvent * event); + +private: + qreal circleRadius; + qreal rectWidth; + qreal rectHeight; + qreal colorPieRadius; + QPointF center; + QPointF swapcenter; + QRectF pieRect; + QRectF swappieRect; + Meminfo mi; +}; + +#endif // MEMORYCIRCLE_H diff --git a/plugins/systemmonitor/memorywidget.cpp b/plugins/systemmonitor/memorywidget.cpp index 9de65ce..de0316f 100644 --- a/plugins/systemmonitor/memorywidget.cpp +++ b/plugins/systemmonitor/memorywidget.cpp @@ -1,234 +1,53 @@ #include "memorywidget.h" -#include "util.h" +#include "memorycircle.h" #include #include -inline QString formatMemory(guint64 size) -{ - enum { - K_INDEX, - M_INDEX, - G_INDEX, - T_INDEX - }; - - QList factorList; - factorList.append(G_GUINT64_CONSTANT(1) << 10);//KiB - factorList.append(G_GUINT64_CONSTANT(1) << 20);//MiB - factorList.append(G_GUINT64_CONSTANT(1) << 30);//GiB - factorList.append(G_GUINT64_CONSTANT(1) << 40);//TiB - - if (size < factorList.at(K_INDEX)) { - if ((guint) size > 1) { - return QString("%1 %2").arg((guint) size).arg(QObject::tr("byte")); - } - else { - return QString("%1 %2").arg((guint) size).arg(QObject::tr("bytes")); - } - } else { - guint64 factor; - QString format; - if (size < factorList.at(M_INDEX)) { - factor = factorList.at(K_INDEX); - format = QObject::tr("KiB"); - }else if (size < factorList.at(G_INDEX)) { - factor = factorList.at(M_INDEX); - format = QObject::tr("MiB"); - } else if (size < factorList.at(T_INDEX)) { - factor = factorList.at(G_INDEX); - format = QObject::tr("GiB"); - } else { - factor = factorList.at(T_INDEX); - format = QObject::tr("TiB"); - } - std::string formatted_result(make_string(g_strdup_printf("%.1f", size / (double)factor))); - return QString::fromStdString(formatted_result) + format; - } -} - MemoryWidget::MemoryWidget(QWidget *parent) : QWidget(parent) { - this->setFixedSize(302, 165); + mainLayout = new QHBoxLayout(this); + mainLayout->setContentsMargins(0, 0, 0, 0); - circleRadius = 50; //半径 - rectWidth = 100; //文本框宽 - rectHeight = 20; // 文本框高 - center = rect().center(); - center.setX(center.x()/2); //内存圆心,X为窗口的1/4, Y为窗口的1/2 - swapcenter = rect().center(); - swapcenter.setX(swapcenter.x()*3/2); //SWAP圆心,X为窗口的3/4, Y为窗口的1/2 + QWidget *w = new QWidget; + w->setFixedSize(500, 400); + m_widgetLayout = new QVBoxLayout(w); + m_widgetLayout->setContentsMargins(6, 0, 0, 0); + m_widgetLayout->setSpacing(0); + + m_title = new QLabel(tr("Memory")); + m_title->setAlignment(Qt::AlignLeft | Qt::AlignTop); + m_title->setStyleSheet("font-size: 22px; color:#303030"); + + QFont font = m_title->font(); + font.setPointSize(22); + font.setWeight(QFont::Light); + m_title->setFont(font); + + m_memoryCircle = new MemoryCircle; + connect(m_memoryCircle, SIGNAL(rebackMemoryInfo(QString,double)), this, SIGNAL(rebackMemoryInfo(QString,double))); + + m_widgetLayout->addWidget(m_title, 0, Qt::AlignTop); + m_widgetLayout->addWidget(m_memoryCircle); + + mainLayout->addWidget(w, 0, Qt::AlignCenter); } MemoryWidget::~MemoryWidget() { - -} - - -void MemoryWidget::paintEvent(QPaintEvent *event) -{ - QPainter painter; - - painter.begin(this); - painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing); //反锯齿 - - QFont font = painter.font(); - font.setPointSize(22); - font.setWeight(QFont::Light); - painter.setFont(font); - painter.setPen(QPen(QColor("#303030"))); - painter.drawText(QRect(rect().x() + 2, rect().y(), rect().width() - 4, rect().height()), Qt::AlignLeft | Qt::AlignTop, tr("Memory"));//绘制文本 - - drawCircle(&painter); - drawColorPie(&painter); - drawText(&painter); - painter.end(); - -} - -void MemoryWidget::drawCircle(QPainter *painter) -{ - painter->save(); - - //渐变效果设置 - QRadialGradient circleGradient(center, circleRadius, center); - circleGradient.setColorAt(0.0, QColor(220, 220, 220)); - circleGradient.setColorAt(0.2, QColor(220, 220, 220)); - circleGradient.setColorAt(0.4, QColor(240, 240, 240)); - circleGradient.setColorAt(1.0, QColor(220, 220, 220)); - - QPen pen; - pen.setColor(Qt::gray); - pen.setWidth(1); - painter->setPen(pen); - painter->setBrush(circleGradient); - //内存 - painter->drawEllipse(center, circleRadius, circleRadius); - //SWAP - painter->drawEllipse(swapcenter, circleRadius, circleRadius); - - painter->restore(); -} - -void MemoryWidget::drawColorPie(QPainter *painter) -{ - painter->save(); - - painter->setPen(Qt::NoPen); - //内存矩形,绘制扇形需要的参数,圆在矩形内且与矩形相切 - QPointF pieRectLeftTop(center.x()-circleRadius, center.y()-circleRadius); - QPointF pieRectRightBottom(center.x()+circleRadius, center.y()+circleRadius); - pieRect = QRectF(pieRectLeftTop, pieRectRightBottom); - //SWAP矩形范围,,绘制扇形需要的参数,圆在矩形内且与矩形相切 - QPointF swapRectLeftTop(swapcenter.x()-circleRadius, swapcenter.y()-circleRadius); - QPointF swapRectRightBottom(swapcenter.x()+circleRadius, swapcenter.y()+circleRadius); - swappieRect = QRectF(swapRectLeftTop, swapRectRightBottom); - - painter->save(); - //颜色设置 - if(mi.percent > 0 && mi.percent < 50) - painter->setBrush(QColor(0, 255, 0, 128)); //绿 - else if(mi.percent < 80) - painter->setBrush(QColor(255, 255, 0, 128)); //黄 - else - painter->setBrush(QColor(255, 0, 0, 128)); //红 - float currentPie = - (360 * (mi.percent/100)); //负数顺时针,0*16为3点钟位置 - - painter->drawPie(pieRect, 90*16, currentPie*16); //绘制扇形,90*16为初始,12点钟位置 - painter->restore(); - - if(mi.swappercent > 0 && mi.swappercent < 50) - painter->setBrush(QColor(0, 255, 0, 128)); //绿 - else if(mi.swappercent < 80) - painter->setBrush(QColor(255, 255, 0, 128)); //黄 - else - painter->setBrush(QColor(255, 0, 0, 128)); //红 - float swapcurrentPie = - (360 * (mi.swappercent/100)); //负数顺时针 - - painter->drawPie(swappieRect, 90*16, swapcurrentPie*16);//绘制扇形,90*16为初始,12点钟位置 - - painter->restore(); -} - -void MemoryWidget::drawText(QPainter *painter) -{ - painter->save(); - - //内存百分比矩形 - QPointF topLeft(center.x()-circleRadius, center.y()-circleRadius); - QPointF bottomRight(center.x()+circleRadius, center.y()+circleRadius); - QRectF textRect(topLeft, bottomRight); - //内存状态矩形 - QPointF statustopLeft(center.x() - rectWidth, center.y()+circleRadius); - QPointF statusbottomRight(center.x() + rectWidth, center.y()+circleRadius+rectHeight); - QRectF statusRect(statustopLeft, statusbottomRight); - //SWAP百分比矩形 - QPointF swaptopLeft(swapcenter.x()-circleRadius, swapcenter.y()-circleRadius); - QPointF swapbottomRight(swapcenter.x()+circleRadius, swapcenter.y()+circleRadius); - QRectF swaptextRect(swaptopLeft, swapbottomRight); - //SWAP状态矩形 - QPointF swapstatustopLeft(swapcenter.x() - rectWidth, swapcenter.y() + circleRadius); - QPointF swapstatusbottomRight(swapcenter.x() + rectWidth, center.y()+circleRadius+rectHeight); - QRectF swapstatusRect(swapstatustopLeft, swapstatusbottomRight); - - //内存状态内容 - QString statusStr = tr("Used %1(%2%), Total %3").arg(formatMemory(mi.user)).arg(QString::number(mi.percent, 'f', 1)).arg(formatMemory(mi.total)); - //SWAP状态内容 - QString swapstatusStr = tr("Used %1(%2%), Total %3").arg(formatMemory(mi.swapused)).arg(QString::number(mi.swappercent, 'f', 1)).arg(formatMemory(mi.swaptotal)); - - painter->save(); - - //百分比字体设置 - QFont font; - font.setPointSize(0.5*circleRadius); - font.setBold(true); - painter->setFont(font); - painter->setPen(Qt::red); - //绘制内存百分比 - painter->drawText(textRect, Qt::AlignVCenter | Qt::AlignHCenter, QString::number(mi.percent, 'f', 1)); - //绘制SWAP百分比 - painter->drawText(swaptextRect, Qt::AlignVCenter | Qt::AlignHCenter, QString::number(mi.swappercent, 'f', 1)); - - painter->restore(); - - //状态字体设置 - QFont fontf; - fontf.setPointSize(0.08*rectWidth); - fontf.setBold(true); - painter->setFont(fontf); - //绘制内存状态 - painter->drawText(statusRect, Qt::AlignVCenter | Qt::AlignHCenter, statusStr); - //绘制SWAP状态 - painter->drawText(swapstatusRect, Qt::AlignVCenter | Qt::AlignHCenter, swapstatusStr); - - painter->restore(); - - const QString info = QString("%1/%2(%3%)").arg(formatMemory(mi.user)).arg(formatMemory(mi.total)).arg(QString::number(mi.percent, 'f', 1)); - emit rebackMemoryInfo(info, mi.percent); + delete m_title; + delete m_memoryCircle; + QLayoutItem *child; + while ((child = m_widgetLayout->takeAt(0)) != 0) { + if (child->widget()) + child->widget()->deleteLater(); + delete child; + } + delete mainLayout; } void MemoryWidget::onUpdateMemoryStatus() { - glibtop_mem mem; - glibtop_swap swap; - - glibtop_get_mem(&mem); - glibtop_get_swap(&swap); - - float swappercent = (swap.total ? (float)swap.used / (float)swap.total : 0.0f); - float mempercent = (float)mem.user / (float)mem.total; - - mi.percent = mempercent * 100; - mi.swappercent = swappercent * 100; - - //初始单位为字节,需要修正 - mi.user = mem.user; - mi.total = mem.total; - - mi.swapused = swap.used; - mi.swaptotal = swap.total; - - repaint(); + m_memoryCircle->onUpdateMemoryStatus(); } diff --git a/plugins/systemmonitor/memorywidget.h b/plugins/systemmonitor/memorywidget.h index f53b465..25ff6f7 100644 --- a/plugins/systemmonitor/memorywidget.h +++ b/plugins/systemmonitor/memorywidget.h @@ -2,29 +2,11 @@ #define MEMORYWIDGET_H #include - -#include #include +#include +#include -#include -#include - -typedef struct MemoryInfo -{ - float total; - float free; - float cached; - float used; - float user; - float percent; - - float swaptotal; - float swapfree; - float swapcached; - float swapused; - float swappercent; - -}Meminfo; +class MemoryCircle; class MemoryWidget : public QWidget { @@ -34,29 +16,17 @@ public: MemoryWidget(QWidget *parent = 0); ~MemoryWidget(); - void drawCircle(QPainter * painter); - void drawColorPie(QPainter * painter); - void drawText(QPainter * painter); - public slots: void onUpdateMemoryStatus(); signals: void rebackMemoryInfo(const QString &info, double percent); -protected: - void paintEvent(QPaintEvent * event); - private: - qreal circleRadius; - qreal rectWidth; - qreal rectHeight; - qreal colorPieRadius; - QPointF center; - QPointF swapcenter; - QRectF pieRect; - QRectF swappieRect; - Meminfo mi; + QLabel *m_title = nullptr; + MemoryCircle *m_memoryCircle = nullptr; + QVBoxLayout *m_widgetLayout = nullptr; + QHBoxLayout *mainLayout = nullptr; }; #endif // MEMORYWIDGET_H diff --git a/plugins/systemmonitor/networkflow.cpp b/plugins/systemmonitor/networkflow.cpp index 04c8453..e99da12 100644 --- a/plugins/systemmonitor/networkflow.cpp +++ b/plugins/systemmonitor/networkflow.cpp @@ -101,25 +101,19 @@ inline QString formatNetworkRate(guint64 rate) } NetworkFlow::NetworkFlow(QWidget *parent) : QWidget(parent) + ,m_outsideBorderColor(QColor("#009944")) + ,m_bgColor(QColor("#ffffff")) + ,m_downloadColor(QColor("#009944")) + ,m_uploadColor(QColor("#e60012")) { - setFixedSize(302, 200); + setFixedSize(403, 240); + + receiveText = tr("Receive"); + sendText = tr("Send"); m_netMaxHeight = 60; m_pointSpace = 10; -// math1_radio = new QRadioButton(); -// math2_radio = new QRadioButton(); -// math1_radio->setFocusPolicy(Qt::NoFocus); -// math1_radio->setObjectName("math1"); -// math2_radio->setFocusPolicy(Qt::NoFocus); -// math2_radio->setObjectName("math2"); -// math1_radio->setChecked(false); -// math2_radio->setChecked(true); -// math1_radio->move(10,10); -// math2_radio->move(100,10); -// connect(math1_radio, SIGNAL(clicked()), this, SLOT(setRadioButtonRowStatus())); -// connect(math2_radio, SIGNAL(clicked()), this, SLOT(setRadioButtonRowStatus())); - m_pointsCount = int((this->width() -2) / m_pointSpace); m_downloadSpeedList = new QList(); for (int i = 0; i < m_pointsCount; i++) { @@ -147,21 +141,6 @@ NetworkFlow::~NetworkFlow() delete m_gridY; } -void NetworkFlow::setRadioButtonRowStatus() -{ - QObject *obj = sender(); //返回发出信号的对象,用QObject类型接收 - QRadioButton* pbtn = qobject_cast(obj); - QString obj_name = pbtn->objectName(); - if(obj_name == "math1") - { - - } - else if(obj_name == "math2") - { - - } -} - //http://www.qtdebug.com/qtbook-paint-smooth-curve/ void NetworkFlow::onUpdateNetworkStatus(long recvTotalBytes, long sentTotalBytes, long recvRateBytes, long sentRateBytes) { @@ -229,8 +208,6 @@ void NetworkFlow::onUpdateNetworkStatus(long recvTotalBytes, long sentTotalBytes } m_uploadPath = SmoothCurveGenerator::generateSmoothCurve(uploadPoints); -// emit rebackNetworkPainterPath(m_downloadPath, m_uploadPath); - repaint(); } @@ -240,117 +217,75 @@ void NetworkFlow::paintEvent(QPaintEvent *) QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing, true);//反走样,绘制出来的线条会出现锯齿 - QFont font = painter.font(); - font.setPointSize(22); - font.setWeight(QFont::Light); - painter.setFont(font); - painter.setPen(QPen(QColor("#303030"))); - painter.drawText(QRect(rect().x() + 2, rect().y(), rect().width() - 4, rect().height()), Qt::AlignLeft | Qt::AlignTop, tr("Network"));//绘制文本 - - setFontSize(painter, 12); - QFontMetrics fm = painter.fontMetrics(); - QString downloadTitle = QString("%1 %2").arg(tr("Receiving")).arg(formatNetworkRate(m_recvRateBytes)); - QString downloadContent = QString("%1 %2").arg(tr("Total Received")).arg(formatNetwork(m_recvTotalBytes));//接收 - QString uploadTitle = QString("%1 %2").arg(tr("Sending")).arg(formatNetworkRate(m_sentRateBytes)); - QString uploadContent = QString("%1 %2").arg(tr("Total Sent")).arg(formatNetwork(m_sentTotalBytes));//发送 - - int rateW = std::max(fm.width(downloadTitle), fm.width(uploadTitle)); - - //download - painter.setOpacity(1); - QSvgRenderer uploadRender(QString("://res/download.svg")); - QImage uploadimage(20, 20, QImage::Format_ARGB32); - uploadimage.fill(QColor("#1E90FF")); - QPainter uploadPainter(&uploadimage); - uploadPainter.setRenderHint(QPainter::Antialiasing, true); -// uploadPainter.setCompositionMode(QPainter::CompositionMode_SourceOver);//默认模式,源的alpha将目标顶部的像素混合 - uploadRender.render(&uploadPainter); - painter.drawImage(rect().x() + 2, rect().y() + 40, uploadimage); -// uploadPainter.setCompositionMode(QPainter::CompositionMode_SourceIn);//输出是源,其中alpha被目标的值减少 设置画刷的组合模式CompositionMode_SourceIn这个模式为目标图像在下 -// uploadPainter.end(); - - setFontSize(painter, 12); - painter.setPen(QPen(QColor("#1E90FF"))); - painter.drawText(QRect(rect().x() + 20 + 5, rect().y() + 40, fm.width(downloadTitle), rect().height()), Qt::AlignLeft | Qt::AlignTop, downloadTitle); - painter.drawText(QRect(rect().x() + 20 + rateW + 14, rect().y() + 40, fm.width(downloadContent), rect().height()), Qt::AlignLeft | Qt::AlignTop, downloadContent); - - //upload - QSvgRenderer downloadRender(QString("://res/upload.svg")); - QImage downloadimage(20, 20, QImage::Format_ARGB32); - downloadimage.fill(QColor("#FF0000")); - QPainter downloadPainter(&downloadimage); - downloadPainter.setRenderHint(QPainter::Antialiasing, true); -// downloadPainter.setCompositionMode(QPainter::CompositionMode_SourceOver);//默认模式,源的alpha将目标顶部的像素混合 - downloadRender.render(&downloadPainter); - painter.drawImage(rect().x() + 2, rect().y() + 70, downloadimage); -// downloadPainter.setCompositionMode(QPainter::CompositionMode_SourceIn);//输出是源,其中alpha被目标的值减少 设置画刷的组合模式CompositionMode_SourceIn这个模式为目标图像在下 -// downloadPainter.end(); - - setFontSize(painter, 12); - painter.setPen(QPen(QColor("#FF0000"))); - painter.drawText(QRect(rect().x() + 20 + 5, rect().y() + 70, fm.width(uploadTitle), rect().height()), Qt::AlignLeft | Qt::AlignTop, uploadTitle); - painter.drawText(QRect(rect().x() + 20 + rateW + 14, rect().y() + 70, fm.width(uploadContent), rect().height()), Qt::AlignLeft | Qt::AlignTop, uploadContent); - - //网格背景 - painter.setBrush(QBrush(QColor("#AFEEEE"))); - painter.setRenderHint(QPainter::Antialiasing, false); - QPen framePen; - painter.setOpacity(0.1); - framePen.setColor(QColor("#303030")); - framePen.setWidth(0.5); - painter.setPen(framePen); - int penSize = 1; int gridX = rect().x() + penSize; - int gridY = rect().y() + 95; - + int gridY = rect().y() + 10; int gridWidth = rect().width() - penSize * 2; - int gridHeight = 100; + int gridHeight = 90; - QPainterPath framePath; - framePath.addRect(QRect(gridX, gridY, gridWidth, gridHeight)); - painter.drawPath(framePath); - - //网格 - QPen gridPen; - QVector dashes; - qreal space = 4; - dashes << 1 << space << 3 << space << 9 << space << 27 << space << 9 << space; - painter.setOpacity(0.05); - gridPen.setColor(QColor("#303030")); - gridPen.setWidth(0.5); - gridPen.setDashPattern(dashes); - painter.setPen(gridPen); - int gridLineX = gridX; - while (gridLineX < gridX + gridWidth - 100) { - gridLineX += 100; - painter.drawLine(gridLineX, gridY + 1, gridLineX, gridY + gridHeight - 1); - } - painter.setPen(gridPen); - - m_gridY->clear(); - int gridLineY = gridY; - while (gridLineY < gridY + gridHeight - 20) { - gridLineY += 20; - painter.drawLine(gridX + 1, gridLineY, gridX + gridWidth - 1, gridLineY); - m_gridY->append(gridLineY); - } + //border of rect + QPainterPath borderPath; + borderPath.addRoundedRect(QRect(rect().x(), rect().y() + 9, gridWidth + penSize * 2, gridHeight + penSize * 2), 0, 0); + QPen pen(this->m_outsideBorderColor, 1); + painter.setPen(pen); + painter.drawPath(borderPath); + //background of rect painter.setOpacity(1); - painter.setRenderHint(QPainter::Antialiasing, true); - //利用translate()函数进行平移变换 - painter.translate((rect().width() - m_pointsCount * m_pointSpace - 2) / 2 + 6, 175);//将坐标第原点移动到该点 - //利用scale()函数进行比例变换,实现缩放效果 + QPainterPath framePath; + framePath.addRect(QRectF(gridX, gridY, gridWidth, gridHeight)); + painter.fillPath(framePath, this->m_bgColor);//painter.drawPath(framePath); + + painter.save(); + + //draw download smoothcurve + painter.setOpacity(1); + painter.translate((rect().width() - m_pointsCount * m_pointSpace - 2) / 2 + 6, 80);//将坐标第原点移动到该点 painter.scale(1, -1);//将横坐标扩大1倍,将纵坐标缩小1倍 - //使用QPainterPath画贝塞尔曲线 - painter.setPen(QPen(QColor("#1E90FF"), 1)); + painter.setPen(QPen(this->m_downloadColor, 1)); painter.setBrush(QBrush()); painter.drawPath(m_downloadPath);//绘制前面创建的path:m_downloadPath - painter.translate(0, -8);//将点(0,-8)设为原点 -// painter.translate(0, 2); -// painter.scale(1, -1); - painter.setPen(QPen(QColor("#FF0000"), 1)); + //draw upload smoothcurve + painter.translate(0, -8); + painter.setPen(QPen(this->m_uploadColor, 1)); painter.setBrush(QBrush()); painter.drawPath(m_uploadPath); + + painter.restore(); + + painter.setRenderHint(QPainter::Antialiasing, true); + setFontSize(painter, 12); + QFontMetrics fm = painter.fontMetrics(); + int receiveTextWidth = fm.width(this->receiveText); + int sendTextWidth = fm.width(this->sendText); + painter.setPen(QPen(QColor("#000000"), 1)); + painter.drawText(QRect(gridX, gridHeight + 10, receiveTextWidth, 30), Qt::AlignLeft | Qt::AlignVCenter, this->receiveText); + painter.drawText(QRect(gridX + receiveTextWidth*2, gridHeight + 10, sendTextWidth, 30), Qt::AlignLeft | Qt::AlignVCenter, this->sendText); + painter.setPen(QPen(QColor("#009944"), 1)); + painter.drawLine(gridX + receiveTextWidth + 5, gridHeight + 10 + 30/2, gridX + receiveTextWidth*2 - 10, gridHeight + 10 + 30/2); + painter.setPen(QPen(QColor("#e60012"), 1)); + painter.drawLine(gridX + receiveTextWidth*2 + sendTextWidth + 5, gridHeight + 10 + 30/2, gridX + receiveTextWidth*3 + sendTextWidth - 10, gridHeight + 10 + 30/2); + + int contentWidth = 180; + //draw title + setFontSize(painter, 12); + painter.setPen(QPen(QColor("#999999"))); + painter.drawText(QRect(gridX, gridHeight + 40, contentWidth, 30), Qt::AlignLeft |Qt::AlignVCenter, tr("Receiving")); + painter.drawText(QRect(gridX + contentWidth, gridHeight + 40, contentWidth, 30), Qt::AlignLeft |Qt::AlignVCenter, tr("Sending")); + painter.drawText(QRect(gridX, gridHeight + 95, contentWidth, 30), Qt::AlignLeft |Qt::AlignVCenter, tr("Total Received")); + painter.drawText(QRect(gridX + contentWidth, gridHeight + 95, contentWidth, 30), Qt::AlignLeft |Qt::AlignVCenter, tr("Total Sent")); + + //draw text data + setFontSize(painter, 20); + QFontMetrics fms = painter.fontMetrics(); + painter.setPen(QPen(QColor("#000000"))); + const QString downloadRate = formatNetworkRate(m_recvRateBytes); + const QString downloadContent = formatNetwork(m_recvTotalBytes);//接收 + const QString uploadRate = formatNetworkRate(m_sentRateBytes); + const QString uploadContent = formatNetwork(m_sentTotalBytes); + painter.drawText(QRect(gridX, gridHeight + 65, fms.width(downloadRate), 30), Qt::AlignLeft |Qt::AlignVCenter, downloadRate); + painter.drawText(QRect(gridX + contentWidth, gridHeight + 65, fms.width(uploadRate), 30), Qt::AlignLeft |Qt::AlignVCenter, uploadRate); + painter.drawText(QRect(gridX, gridHeight + 120, fms.width(downloadContent), 30), Qt::AlignLeft |Qt::AlignVCenter, downloadContent); + painter.drawText(QRect(gridX + contentWidth, gridHeight + 120, fms.width(uploadContent), 30), Qt::AlignLeft |Qt::AlignVCenter, uploadContent); } diff --git a/plugins/systemmonitor/networkflow.h b/plugins/systemmonitor/networkflow.h index 2edfcf6..6cec024 100644 --- a/plugins/systemmonitor/networkflow.h +++ b/plugins/systemmonitor/networkflow.h @@ -22,7 +22,6 @@ #define NETWORKFLOW_H #include -#include class NetworkFlow : public QWidget { @@ -34,10 +33,6 @@ public: public slots: void onUpdateNetworkStatus(long recvTotalBytes, long sentTotalBytes, long recvRateKbs, long sentRateKbs); - void setRadioButtonRowStatus(); - -signals: -// void rebackNetworkPainterPath(QPainterPath downloadPath, QPainterPath uploadPath); protected: void paintEvent(QPaintEvent *event); @@ -57,8 +52,14 @@ private: long m_sentRateBytes; QList *m_gridY; int m_pointSpace; -// QRadioButton *math1_radio; -// QRadioButton *math2_radio; + + QColor m_outsideBorderColor; + QColor m_bgColor; + QColor m_downloadColor; + QColor m_uploadColor; + + QString receiveText; + QString sendText; }; #endif // NETWORKFLOW_H diff --git a/plugins/systemmonitor/networkindicator.cpp b/plugins/systemmonitor/networkindicator.cpp index 54aaad1..c3ea863 100644 --- a/plugins/systemmonitor/networkindicator.cpp +++ b/plugins/systemmonitor/networkindicator.cpp @@ -34,6 +34,8 @@ NetworkIndicator::NetworkIndicator(QWidget *parent) } m_gridY = new QList(); + + setNetworkState(Normal); } NetworkIndicator::~NetworkIndicator() diff --git a/plugins/systemmonitor/networkwidget.cpp b/plugins/systemmonitor/networkwidget.cpp new file mode 100644 index 0000000..7fa247b --- /dev/null +++ b/plugins/systemmonitor/networkwidget.cpp @@ -0,0 +1,94 @@ +/* + * Copyright (C) 2013 ~ 2018 National University of Defense Technology(NUDT) & Tianjin Kylin Ltd. + * + * Authors: + * Kobe Lee xiangli@ubuntukylin.com/kobe24_lixiang@126.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "networkwidget.h" +#include "networkflow.h" + +#include +#include +#include +#include + +NetworkWidget::NetworkWidget(QWidget *parent) : QWidget(parent) +{ +// setFixedSize(302, 200); + + mainLayout = new QHBoxLayout(this); + mainLayout->setContentsMargins(0, 0, 0, 0); + + QWidget *w = new QWidget; + w->setFixedSize(500, 400); + m_widgetLayout = new QVBoxLayout(w); + m_widgetLayout->setContentsMargins(6, 0, 0, 0); + m_widgetLayout->setSpacing(0); + + m_title = new QLabel(tr("Network")); + m_title->setAlignment(Qt::AlignLeft | Qt::AlignTop); + m_title->setStyleSheet("font-size: 22px; color:#303030"); + + QFont font = m_title->font(); + font.setPointSize(22); + font.setWeight(QFont::Light); + m_title->setFont(font); + + m_networkFlow = new NetworkFlow; + + m_widgetLayout->addWidget(m_title, 0, Qt::AlignTop); + m_widgetLayout->addWidget(m_networkFlow); + + mainLayout->addWidget(w, 0, Qt::AlignCenter); + +// math1_radio = new QRadioButton(); +// math2_radio = new QRadioButton(); +// math1_radio->setFocusPolicy(Qt::NoFocus); +// math1_radio->setObjectName("math1"); +// math2_radio->setFocusPolicy(Qt::NoFocus); +// math2_radio->setObjectName("math2"); +// math1_radio->setChecked(false); +// math2_radio->setChecked(true); +// math1_radio->move(10,10); +// math2_radio->move(100,10); +// connect(math1_radio, SIGNAL(clicked()), this, SLOT(setRadioButtonRowStatus())); +// connect(math2_radio, SIGNAL(clicked()), this, SLOT(setRadioButtonRowStatus())); +} + +NetworkWidget::~NetworkWidget() +{ + +} + +void NetworkWidget::setRadioButtonRowStatus() +{ + QObject *obj = sender(); //返回发出信号的对象,用QObject类型接收 + QRadioButton* pbtn = qobject_cast(obj); + QString obj_name = pbtn->objectName(); + if(obj_name == "math1") + { + + } + else if(obj_name == "math2") + { + + } +} + +void NetworkWidget::onUpdateNetworkStatus(long recvTotalBytes, long sentTotalBytes, long recvRateBytes, long sentRateBytes) +{ + m_networkFlow->onUpdateNetworkStatus(recvTotalBytes, sentTotalBytes, recvRateBytes, sentRateBytes); +} diff --git a/plugins/systemmonitor/networkwidget.h b/plugins/systemmonitor/networkwidget.h new file mode 100644 index 0000000..3efbfdb --- /dev/null +++ b/plugins/systemmonitor/networkwidget.h @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2013 ~ 2018 National University of Defense Technology(NUDT) & Tianjin Kylin Ltd. + * + * Authors: + * Kobe Lee xiangli@ubuntukylin.com/kobe24_lixiang@126.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef NETWORKWIDGET_H +#define NETWORKWIDGET_H + +#include +#include +#include +#include +#include + +class NetworkFlow; + +class NetworkWidget : public QWidget +{ + Q_OBJECT + +public: + NetworkWidget(QWidget *parent = 0); + ~NetworkWidget(); + +public slots: + void onUpdateNetworkStatus(long recvTotalBytes, long sentTotalBytes, long recvRateKbs, long sentRateKbs); + void setRadioButtonRowStatus(); + +private: + QLabel *m_title = nullptr; + NetworkFlow *m_networkFlow = nullptr; + QVBoxLayout *m_widgetLayout = nullptr; + QHBoxLayout *mainLayout = nullptr; +// QRadioButton *math1_radio; +// QRadioButton *math2_radio; +}; + +#endif // NETWORKWIDGET_H diff --git a/plugins/systemmonitor/qrc_res.cpp b/plugins/systemmonitor/qrc_res.cpp deleted file mode 100644 index cc43ef1..0000000 --- a/plugins/systemmonitor/qrc_res.cpp +++ /dev/null @@ -1,1418 +0,0 @@ -/**************************************************************************** -** Resource object code -** -** Created by: The Resource Compiler for Qt version 5.5.1 -** -** WARNING! All changes made in this file will be lost! -*****************************************************************************/ - -static const unsigned char qt_resource_data[] = { - // /home/lixiang/work/kylin-assistant/src/res/kylin-assistant.png - 0x0,0x0,0x25,0x53, - 0x89, - 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0, - 0x0,0x0,0x40,0x0,0x0,0x0,0x40,0x8,0x6,0x0,0x0,0x1,0xdd,0x6e,0x41,0x48, - 0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65, - 0x0,0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67,0x65,0x52,0x65,0x61,0x64, - 0x79,0x71,0xc9,0x65,0x3c,0x0,0x0,0x24,0xf5,0x49,0x44,0x41,0x54,0x78,0xda,0x62, - 0xf8,0xff,0xff,0x3f,0x3,0x12,0x10,0x0,0x62,0x19,0x20,0xe6,0x82,0x9,0x30,0x82, - 0x14,0x9c,0x3a,0x75,0xf2,0xbf,0xb4,0x9a,0x11,0x83,0x38,0x2f,0xb,0x3,0x23,0x23, - 0x3,0xc3,0xa7,0x1f,0xff,0x18,0xae,0x5e,0xbe,0xc4,0xc0,0xc3,0xce,0xc8,0xc0,0xcc, - 0xc2,0xcc,0xc8,0xf0,0xe1,0xf3,0x97,0x6,0x65,0x2d,0x43,0x6,0x56,0x16,0x46,0x6, - 0x90,0x79,0xdf,0xff,0xfc,0x67,0x60,0xe3,0x15,0x65,0x38,0x75,0x68,0x17,0xc4,0x84, - 0xd,0xb7,0x7e,0xfe,0x57,0xe4,0xf9,0xcf,0xc0,0x5,0x54,0xcc,0xce,0xcc,0xc2,0xf0, - 0x8b,0xe1,0x1f,0xc3,0xbb,0xef,0x7f,0x19,0x76,0xdc,0xfa,0xc6,0xc0,0x2,0xb2,0xc7, - 0x5d,0x81,0x95,0x21,0x67,0xf9,0x73,0x86,0x6b,0x5f,0x3e,0x31,0x9c,0xb8,0xf6,0x88, - 0xc1,0x44,0x5f,0x93,0x61,0x5b,0xb4,0x14,0xc3,0x1f,0x26,0x56,0x6,0x46,0x90,0x82, - 0xdb,0xaf,0x7e,0xfe,0xe7,0x0,0x1a,0xcf,0xc1,0xcc,0xc0,0xd0,0x7a,0xf1,0x2b,0x43, - 0x96,0x6,0x17,0x58,0xe2,0xc1,0xb5,0xb3,0xc,0x8c,0xd,0xd,0xd,0x4c,0x52,0xde, - 0x1b,0xff,0x86,0xcb,0xf5,0x32,0x2c,0xb9,0x5f,0x8,0xf7,0xe,0xf,0xab,0x23,0x3, - 0x33,0xf3,0x31,0x6,0x16,0x29,0x29,0x29,0xd7,0x1b,0x6f,0x5f,0x33,0xd4,0xbc,0x48, - 0x64,0xf8,0xf7,0x81,0x8d,0xe1,0x3f,0xe3,0x7f,0x86,0xff,0xff,0x18,0x18,0x38,0x45, - 0x36,0x30,0x7c,0xfc,0xf2,0x9b,0x1,0x20,0x0,0x53,0x64,0xcf,0xd2,0x30,0x18,0x46, - 0xd1,0x93,0xf,0x6c,0x4b,0x5,0x9,0x38,0xa8,0x83,0x52,0x91,0x3a,0x8,0x22,0x2a, - 0x74,0x71,0x13,0x7,0x71,0x73,0x70,0xf0,0x27,0x14,0xfc,0x11,0xce,0xee,0x82,0xb8, - 0x7,0x1c,0x1c,0x33,0x8a,0xe0,0xa6,0x42,0x5b,0x1c,0xa2,0x20,0x66,0xa9,0x62,0x85, - 0xd8,0x8a,0xa4,0xda,0x7c,0xbc,0xef,0x63,0xa2,0x8b,0xc3,0x5d,0xf,0xf7,0x9e,0x6b, - 0xfd,0x73,0x50,0xf4,0x99,0xca,0x53,0x29,0x86,0xe4,0xf9,0x13,0xd4,0x6e,0xb7,0xc4, - 0x75,0x5d,0x19,0xc6,0x4a,0x32,0xa5,0x25,0xc9,0xb4,0xbc,0x7d,0x66,0xe2,0x79,0x9e, - 0xf8,0xbe,0x2f,0x66,0x10,0x4,0xac,0x6e,0xee,0x12,0xc5,0x9a,0x44,0x9,0xa3,0x54, - 0xf8,0x4e,0x35,0xb,0xeb,0x5b,0x84,0x61,0x88,0xdd,0xaf,0xef,0xf0,0xf8,0x1,0x75, - 0xa5,0x18,0xc6,0x39,0x55,0x6b,0xe2,0x5c,0xd4,0xdd,0xc0,0xe0,0x79,0x7c,0xd,0xfb, - 0xf6,0x35,0xe5,0xb0,0x51,0x61,0xfb,0xb4,0x4b,0xe7,0xe9,0x1e,0x72,0xca,0x72,0x6d, - 0x91,0xcb,0x83,0x1a,0xd7,0x57,0x17,0xd8,0x1b,0xbd,0xf3,0x1c,0xbf,0xcf,0xc9,0xde, - 0x34,0xad,0x70,0x92,0xc6,0x4c,0x89,0x6c,0xa4,0xe8,0x7f,0x29,0x1c,0x67,0x2,0xa3, - 0x79,0xe6,0xc8,0xd2,0xdc,0x2c,0x96,0x39,0x86,0xd2,0xc9,0x6f,0xf1,0x4e,0xd0,0x64, - 0x65,0xfe,0x98,0x9b,0x87,0x2e,0x76,0x66,0x55,0x79,0x89,0x22,0x6,0x3d,0x3,0x53, - 0x17,0x67,0x9,0xe5,0xea,0x11,0xef,0x89,0x89,0x51,0x2a,0xf3,0x23,0x0,0xd3,0x64, - 0xf0,0xd2,0x36,0x18,0x86,0xf1,0x27,0x5f,0xd2,0xb4,0x1a,0x17,0xe9,0x62,0xa0,0x83, - 0xaa,0x14,0x99,0xf3,0xd0,0x53,0x1c,0x43,0x28,0xea,0x61,0x87,0xf9,0x3f,0x88,0x9e, - 0xfc,0x27,0x4,0x11,0x51,0x3c,0xe,0x4f,0xbb,0x64,0xc2,0x4e,0x63,0x82,0x94,0x1d, - 0x76,0xd8,0x69,0x14,0xc3,0xd8,0xa,0x42,0xf,0x7a,0xf1,0x20,0xf5,0x50,0x68,0x69, - 0x2d,0xa3,0xb5,0x86,0x60,0xd2,0x26,0x3e,0xa9,0x16,0xf6,0xc1,0xc7,0x97,0x7c,0x6f, - 0xf2,0xf2,0xbe,0xcf,0xf3,0x7b,0x87,0x66,0xf9,0xbe,0xbf,0xd5,0xe9,0x74,0x3e,0x37, - 0x9b,0x4d,0x34,0x1a,0xd,0xbc,0xc9,0x2f,0x42,0x4f,0xa7,0x21,0xfe,0x13,0x89,0xa5, - 0xa1,0xf2,0xa7,0x4,0x4d,0x1b,0x87,0x69,0x9a,0x30,0xc,0x83,0x25,0xa4,0xf5,0x61, - 0x2,0xc7,0x71,0xa2,0x6e,0xb7,0x8b,0x7c,0xe1,0x3,0x52,0x42,0x40,0x4b,0x9,0xc4, - 0xde,0xf1,0x11,0x31,0x6f,0xf1,0xcf,0xf,0x94,0xc7,0x25,0x47,0x41,0x18,0xe1,0xd7, - 0x8f,0x6f,0xc8,0xcd,0x4e,0x43,0xd7,0x75,0xc8,0x41,0xe0,0xc9,0xda,0xcb,0x57,0xbb, - 0xf9,0xc2,0x1a,0x2b,0xa1,0x44,0xfc,0x3a,0xe8,0x3,0x41,0x7c,0xe,0x0,0x9f,0x92, - 0xb9,0x6c,0xad,0xc7,0xc6,0xe3,0x58,0xbc,0xb3,0x73,0x79,0x38,0x6e,0x6,0x99,0x84, - 0xf7,0xc4,0xdb,0xd6,0xcf,0xbb,0xe8,0x68,0x75,0x2,0x12,0x8d,0x5d,0x3e,0xaa,0x22, - 0x35,0xa9,0x22,0x31,0x26,0x20,0x92,0xdc,0x64,0x70,0xd0,0xf,0x11,0xd1,0x83,0x58, - 0xbd,0xac,0x2a,0xe3,0x98,0xa8,0xb5,0xdd,0x3e,0x4e,0xae,0x3c,0x8,0x89,0x8c,0xaf, - 0xb4,0xbe,0xe3,0x60,0x7f,0x7,0x1d,0x42,0xfa,0x65,0x23,0x8b,0xf6,0x3f,0x1f,0x8a, - 0x2c,0x70,0xf6,0xfb,0x12,0x25,0xe7,0x2,0xe6,0xd4,0x18,0xee,0xee,0x7,0x28,0xae, - 0x67,0xb1,0xbd,0x66,0xa0,0xcb,0x44,0xa7,0xf6,0x47,0xbc,0x75,0xcb,0x4f,0xbc,0xda, - 0xe5,0xf7,0xd1,0x9c,0xb1,0x4,0x3d,0x69,0x71,0x5e,0xce,0xa9,0x73,0x38,0xc,0x84, - 0xf1,0x0,0x3d,0x33,0x35,0x3a,0x14,0xa1,0x43,0x53,0x5f,0x33,0x49,0x5,0x5f,0xff, - 0x7e,0x82,0x62,0xdb,0xf6,0xfc,0x75,0xfb,0x90,0xa1,0x16,0x9a,0x5e,0x11,0x5e,0x55, - 0x87,0xb5,0x90,0x43,0x4d,0xd4,0x38,0x92,0x14,0x83,0x5e,0xc,0x68,0x9f,0x44,0x8c, - 0x37,0x7b,0x49,0xd8,0x6a,0x1b,0xe3,0x9,0x9,0x37,0xf5,0x5b,0xbc,0xd0,0xd2,0x50, - 0x68,0xe1,0x83,0x5a,0xde,0x78,0x57,0xae,0xd7,0x67,0x14,0x45,0xd1,0x12,0x5c,0xa5, - 0xa,0x64,0x49,0x32,0x47,0x2e,0x46,0x21,0xf9,0x63,0xab,0xd1,0xde,0xf3,0x5,0xdf, - 0xc3,0x20,0x8,0x7a,0x96,0x65,0x5d,0x3f,0xa,0xc0,0x56,0xd5,0x85,0x44,0x11,0x46, - 0xd1,0x33,0xb3,0x33,0xbb,0x3b,0x3b,0xeb,0xaa,0xcb,0x66,0x54,0xa6,0x9,0xa2,0x86, - 0x42,0xf,0x5,0x96,0x25,0x98,0x44,0x94,0x98,0x95,0x44,0x68,0xf9,0x18,0x44,0x45, - 0x60,0x51,0x41,0xd6,0x43,0x5,0x3d,0x65,0xbd,0xf5,0xd0,0x53,0x50,0xd6,0x43,0x90, - 0xf4,0x50,0xe0,0x43,0x60,0x6b,0x98,0xa0,0x44,0x7f,0x1a,0x4,0xfe,0xec,0xba,0x5a, - 0xb8,0x9b,0xbb,0xba,0xb3,0x3f,0x33,0xbb,0xb3,0x33,0xdd,0x6f,0x26,0x24,0xa1,0xf, - 0x3e,0x76,0x66,0xb8,0xf7,0xee,0xb9,0xf7,0x9e,0x7b,0xae,0x55,0x44,0xce,0x82,0xba, - 0x76,0xb8,0xbf,0x33,0x21,0xd3,0x75,0x31,0x7b,0xba,0x19,0xba,0x69,0xba,0xf9,0x7f, - 0xd,0x99,0xaf,0xc0,0x9c,0x89,0x44,0xf9,0x44,0x22,0x21,0x30,0x12,0x2d,0x45,0xa3, - 0x68,0x3e,0xd0,0x4e,0xb9,0xae,0xb,0xa,0xfa,0x47,0x7c,0x1e,0x7f,0x8f,0x40,0x20, - 0x80,0xb2,0xb2,0x32,0xf8,0xfd,0xfe,0x8f,0xf4,0x79,0x17,0x97,0x4c,0x26,0x33,0xb3, - 0xb3,0x33,0xd2,0xf2,0x72,0x1c,0x2a,0xf5,0x7c,0xcf,0xbe,0x16,0xc8,0xac,0x7d,0x9c, - 0xd,0x85,0xd5,0x4e,0x27,0x3e,0xa4,0x88,0x23,0x3a,0x71,0x60,0x68,0xf0,0x29,0x6a, - 0x6a,0x6a,0x2d,0x12,0x35,0x34,0x34,0x70,0xbc,0xa2,0x28,0xc4,0xc2,0x24,0xc2,0xa1, - 0x30,0xea,0x77,0x36,0x83,0xc6,0x8e,0x8a,0x66,0x5a,0xc,0x64,0xce,0x86,0xc5,0x44, - 0xfb,0x85,0x5,0x6a,0x39,0x72,0x1a,0x91,0x48,0x4,0x29,0x9a,0xf,0xab,0x2b,0xec, - 0x21,0x14,0x9a,0xc3,0xde,0xf6,0x53,0x16,0xfb,0xb4,0x82,0x41,0x13,0xc4,0xc3,0x24, - 0x52,0x31,0x14,0x16,0x8d,0x9,0x99,0xa6,0xdb,0x34,0x66,0x36,0x29,0x55,0x43,0x2c, - 0x16,0x43,0x57,0x4f,0x8f,0x24,0xa4,0xd3,0x69,0xae,0x64,0xc7,0x21,0x2b,0x3a,0xab, - 0xa5,0x91,0x37,0x2d,0x1e,0x38,0x1d,0x76,0x1a,0x86,0x15,0xc0,0x96,0xb,0x66,0xc3, - 0xde,0xf7,0xb7,0x75,0x61,0x4a,0x1,0x66,0x66,0xfb,0x5,0x61,0x59,0xde,0xe6,0x9a, - 0xf8,0x25,0x40,0xa5,0x7a,0x57,0x48,0x26,0x7c,0x4e,0x13,0x99,0x2,0x7,0x95,0x67, - 0x41,0x1c,0xe0,0xc8,0x43,0xe7,0x4d,0xb,0x5,0x4b,0x25,0x94,0xe6,0xa0,0xe7,0x4c, - 0x4c,0x25,0x73,0x98,0xf8,0x70,0x4b,0x11,0x26,0x57,0x78,0x6e,0x7c,0x3e,0x8b,0x6b, - 0x8d,0x32,0xee,0xbc,0x5e,0x42,0x70,0x41,0x85,0xd3,0x2b,0xc2,0xe1,0x26,0xf2,0x8, - 0xc,0x5,0xe1,0x21,0x7,0x5d,0xa3,0x61,0x5a,0xd5,0xf1,0xf6,0x5c,0x25,0x38,0x82, - 0xf6,0xfc,0x4d,0xda,0xaa,0x1,0xdf,0xea,0xe,0x67,0xd,0xd2,0x60,0x6,0xf1,0xd2, - 0xc1,0x0,0xb2,0x4a,0x81,0x86,0x87,0x46,0x7c,0x74,0x12,0xc1,0x91,0x2f,0x18,0xe, - 0x7e,0x85,0x5f,0x16,0x91,0xa5,0x59,0xa8,0x2a,0xe2,0xa1,0xb2,0xa2,0x10,0x92,0xc6, - 0xa2,0x84,0x1d,0x40,0x14,0x5,0x74,0xc4,0x7,0xac,0x0,0xf1,0x94,0x81,0xd1,0xab, - 0x55,0xc8,0x90,0x44,0x7a,0x64,0xc1,0x2e,0xa,0x19,0x2f,0x24,0xf3,0x48,0x29,0x3a, - 0xee,0x1e,0xdf,0x4c,0x92,0x69,0xa2,0xef,0xfa,0x65,0x6c,0x4d,0x4c,0xd8,0x5d,0x58, - 0xcc,0xc,0xbb,0xb,0xa4,0xd5,0x69,0x72,0x72,0x13,0xc7,0xc7,0x42,0x2a,0x5e,0x74, - 0x6f,0x82,0x92,0xdb,0x88,0x67,0x73,0x1a,0xaa,0xbd,0x3c,0x8e,0x55,0x4a,0x58,0xa1, - 0x9,0xf4,0x38,0x39,0x64,0x29,0x9d,0xde,0x1b,0xf7,0x30,0xf8,0xf8,0x1,0xc5,0xef, - 0x76,0x71,0x9d,0xf7,0xbd,0xe6,0xf9,0x8e,0xb,0xf0,0x3a,0xb7,0x53,0xff,0x53,0xb4, - 0x9c,0x22,0x16,0x45,0x29,0x51,0x5b,0x8e,0xb0,0x6e,0x5,0xa2,0x54,0xda,0xd,0x45, - 0xfb,0x46,0x76,0x51,0xb4,0xd5,0x3d,0xac,0x10,0x8a,0x8b,0x7d,0x58,0x52,0xde,0xe1, - 0x47,0x6e,0x8,0x1,0x4f,0x39,0x7a,0x9f,0xf4,0xe2,0xe6,0x89,0x2b,0xf8,0xdf,0xe9, - 0xd9,0x72,0x16,0x3,0x8b,0xb7,0x21,0x92,0xd6,0x7d,0x9f,0xf,0xc3,0xed,0x76,0x73, - 0xbc,0xaf,0x58,0xc6,0x74,0x2c,0x42,0x34,0xd6,0x31,0x1d,0xf,0x61,0xee,0xcc,0x8, - 0x34,0xc3,0xb,0xcd,0xf4,0xd0,0x26,0x94,0x91,0xa3,0x5f,0xd5,0x94,0x50,0x25,0x34, - 0xa3,0xef,0xd5,0x23,0x4a,0x25,0x47,0x9d,0x31,0x8,0xad,0x8c,0xa6,0xa6,0xa6,0xd, - 0xdc,0xc5,0xfe,0xa3,0x11,0xae,0xe6,0x53,0x79,0x31,0xe5,0xba,0x9a,0x21,0x12,0x69, - 0x22,0xa,0xb4,0x9b,0xc8,0x86,0x56,0x99,0xbd,0x73,0x99,0x16,0xb0,0x6c,0x84,0x92, - 0x3c,0x4a,0xa9,0xc5,0xd3,0x3f,0x93,0xf0,0xc9,0x12,0xa4,0x60,0xe7,0x49,0xa1,0xde, - 0x7b,0xb8,0x75,0xec,0x65,0x49,0x75,0x46,0x14,0x4b,0x49,0xf,0x5c,0xe,0x3a,0xa4, - 0x73,0xe,0xd8,0x3d,0x58,0xd3,0x3,0xfa,0xc6,0xd6,0x22,0x7e,0x53,0x81,0x7c,0x86, - 0x91,0x23,0xf8,0xd1,0xda,0xba,0xda,0xf0,0x1f,0x1,0x38,0xaf,0x96,0xd8,0x36,0x8a, - 0x30,0xfc,0xad,0x77,0xbd,0x8e,0xbd,0x7e,0xe4,0xe5,0xc6,0x91,0x4b,0x9d,0x36,0x49, - 0x45,0x43,0x9b,0xb6,0xa8,0xa1,0xd0,0x22,0x9a,0x8a,0xc6,0xb4,0x42,0x14,0x89,0xb, - 0x1c,0x78,0xdd,0x7a,0xe1,0x4,0xe2,0x95,0x73,0xa9,0x90,0x72,0x40,0x8,0xae,0x88, - 0x53,0x45,0x25,0x40,0x1c,0x40,0x5,0xa9,0x12,0x2a,0xa0,0x42,0x11,0x6d,0x54,0x35, - 0x40,0x70,0x12,0x35,0xe4,0x59,0xd7,0x69,0x1c,0xc7,0x6b,0x3b,0xb6,0xd7,0xeb,0xe5, - 0x9b,0x59,0xc7,0xa4,0x70,0x82,0x95,0x26,0xb3,0x3b,0xce,0xee,0xfc,0x33,0xff,0xff, - 0x3d,0x46,0x6e,0xd8,0x56,0xaf,0x70,0x6d,0xae,0xd4,0x6c,0xd,0x6e,0x50,0x1b,0xfc, - 0xd0,0xfe,0xfc,0x8b,0x2f,0xef,0x5b,0xca,0xe4,0xae,0xac,0x15,0x6b,0xd5,0x5c,0xc9, - 0xae,0x67,0xcc,0x9a,0x23,0xda,0x4a,0xa1,0xe6,0x70,0xcc,0xba,0xb3,0x56,0x4c,0xbd, - 0xf6,0xfa,0x5b,0x43,0xfc,0xdf,0xce,0x86,0xd7,0x10,0x9a,0xab,0x6c,0xfd,0x66,0xe3, - 0xbb,0x4d,0x3e,0xd9,0x14,0xa6,0x37,0x53,0xa9,0xd4,0xbb,0xec,0x25,0x6f,0x54,0x2a, - 0x15,0x64,0xb3,0x59,0xc1,0x33,0x30,0xc2,0xad,0x18,0x1e,0x79,0x8a,0x16,0xc4,0x3, - 0x3f,0xcb,0x84,0xdd,0x3f,0x9,0x4c,0x7e,0x88,0x85,0x2e,0x81,0x2a,0xf3,0x2e,0x44, - 0x98,0x7f,0xae,0xff,0xf4,0x1d,0x16,0xe7,0x66,0x85,0x80,0x21,0x14,0xa,0x21,0x10, - 0x8,0xc0,0xef,0xf7,0xd3,0x3a,0xa8,0x88,0xc7,0xe3,0x82,0x9b,0x14,0x19,0x0,0x75, - 0xbc,0x30,0x3f,0x3f,0x2f,0x18,0x10,0xa4,0x17,0xac,0xae,0xae,0x8a,0x12,0xc7,0x83, - 0x8f,0x51,0xe8,0x38,0xa3,0x8f,0x22,0xa7,0x53,0x5e,0x84,0x27,0x92,0x3c,0x75,0xef, - 0xfc,0x4d,0xea,0x21,0x91,0x48,0xce,0x12,0xb8,0xa5,0x8f,0x90,0xcf,0x82,0x9a,0x7e, - 0x1f,0xbf,0x82,0xbb,0xe9,0x45,0x74,0x75,0x75,0x21,0x12,0x89,0x80,0xac,0x2d,0x83, - 0x18,0x1c,0x1c,0x54,0x34,0x33,0x9f,0x27,0x87,0xd9,0xc8,0x90,0x49,0xc5,0xe,0x88, - 0x95,0xf,0x3e,0x74,0xc,0x46,0x34,0x2e,0x3f,0x4c,0x22,0xa1,0x36,0xc8,0x52,0x90, - 0xba,0xce,0x4,0xcb,0x20,0x44,0x73,0xb6,0x4,0xb0,0x39,0xd9,0x26,0xe3,0xd4,0xea, - 0xee,0x98,0xb8,0xef,0xdb,0x7f,0x4,0xfd,0xfb,0x2a,0xb8,0xf4,0xc5,0x79,0x6c,0xa3, - 0xac,0x87,0x19,0x44,0x84,0x84,0x9a,0xcf,0xaf,0x2b,0xea,0x6a,0x3a,0xa7,0xee,0xdd, - 0xff,0xc0,0xe8,0xec,0xec,0x2d,0x6f,0x3a,0x7d,0x1b,0xfd,0x7b,0xf,0xa1,0x35,0xde, - 0xcb,0xdc,0xb8,0x2f,0xd7,0x9d,0xc6,0x4,0x82,0xe4,0xea,0x70,0xdb,0x96,0x9,0x44, - 0x6f,0x31,0xc0,0x6a,0x43,0xc9,0xcb,0x1c,0x14,0x36,0xc0,0xdd,0x1,0x36,0x8e,0xbb, - 0xa4,0xac,0xa2,0x3b,0xd1,0x8f,0xd9,0xf4,0xa,0x5,0xda,0x44,0xc0,0xdf,0x82,0x93, - 0x27,0x86,0x3f,0x54,0xa,0x66,0x5e,0x59,0xce,0x9a,0xc5,0x3f,0xaa,0x9d,0xfe,0x45, - 0xba,0xb6,0x47,0xb7,0xa9,0x24,0x5e,0x56,0xf,0x57,0xa8,0x2a,0x6e,0x19,0x8a,0xce, - 0xe3,0x71,0xf3,0x2f,0xb4,0xc6,0xbd,0x57,0x1a,0x5b,0xaf,0x88,0x32,0x97,0x64,0x2d, - 0x73,0x2f,0x55,0xcf,0x91,0x44,0x2e,0x6,0x44,0x67,0x49,0x48,0xf1,0x5d,0x3e,0x7c, - 0x3a,0xbd,0x81,0x44,0x87,0xf,0x3b,0x42,0x2a,0x46,0x7a,0x7e,0x54,0x34,0x23,0x18, - 0x72,0xbe,0x9f,0x51,0x5a,0x66,0x38,0xf9,0x5c,0xba,0x8c,0xa7,0x7b,0x5b,0x11,0x24, - 0x95,0x2e,0x17,0x1c,0xfc,0x30,0x57,0xc1,0xda,0x46,0x15,0xbf,0xd1,0x29,0x8,0xf, - 0x58,0xa0,0xbd,0x28,0x93,0x8b,0xaa,0x8e,0x2d,0x9d,0x83,0xaa,0xba,0x38,0x15,0x22, - 0x20,0xa,0x83,0xae,0x43,0xf2,0x99,0xd0,0xed,0x70,0x40,0xc5,0x50,0x97,0x8e,0xfb, - 0xc,0x1d,0x3b,0xdb,0xbd,0x48,0x18,0x64,0x52,0x6,0xeb,0x9b,0xb2,0xf0,0xf3,0x42, - 0x5,0xa5,0x2e,0x1f,0x3,0x70,0x61,0x82,0x76,0x67,0xdd,0xbe,0xb5,0x12,0xd6,0x6e, - 0x93,0x8a,0xc3,0x24,0x3c,0xa1,0x6b,0xb1,0x16,0xe0,0xb9,0x1,0x3f,0xe,0x9f,0x5b, - 0x82,0x2f,0xe0,0x81,0x46,0x9b,0xac,0xb3,0x75,0x44,0x54,0x4,0x3,0x3a,0x54,0x9d, - 0xb2,0xa5,0x68,0xa2,0x56,0xe1,0x30,0xf,0x36,0x97,0x59,0x28,0xd5,0x90,0x5d,0xa7, - 0x7b,0xac,0xda,0xe4,0xff,0x3a,0xae,0x5e,0xb3,0x71,0xf5,0xd5,0x5d,0xb0,0xb8,0x13, - 0xa2,0x8c,0xbc,0xc,0x77,0x78,0xa7,0x8e,0x73,0xbf,0x58,0x38,0x6e,0xa6,0x9a,0xde, - 0x18,0xbb,0xf5,0x5c,0x35,0x99,0xfd,0x5a,0xcb,0xc4,0x8e,0x92,0xce,0xc2,0x68,0xf7, - 0x69,0xa4,0x33,0xb1,0x85,0x16,0xae,0xbc,0xd1,0x8b,0xa1,0x77,0xa6,0x10,0xa0,0x3b, - 0xb1,0xb8,0x82,0xce,0xb0,0x8a,0x4f,0x2e,0xde,0xc0,0x3d,0xe6,0x51,0xa4,0x88,0x38, - 0x3c,0xfe,0xf8,0x41,0xb2,0x3a,0xf5,0xa4,0x68,0xa3,0x90,0xaf,0x61,0x7c,0xb4,0x9f, - 0x3b,0x68,0xcb,0x0,0xe8,0x1f,0x98,0xd2,0x1a,0x2e,0x5f,0x78,0x1f,0x2f,0xd0,0xd1, - 0x76,0xd6,0xa2,0x92,0x62,0xa4,0xaf,0x98,0x9a,0x9e,0x94,0x25,0xed,0x9f,0xfe,0x6, - 0x91,0x83,0x2f,0xb1,0xd2,0xc3,0x8,0x8,0xbc,0x73,0x96,0xb4,0x69,0xe1,0xc2,0x99, - 0x1d,0x48,0x44,0x7c,0xf8,0xe8,0x46,0x1e,0xe7,0x27,0x4b,0x38,0x99,0x3c,0x80,0x42, - 0x2e,0x8f,0x89,0xc9,0x65,0xb4,0x77,0x4,0xf1,0xc8,0xc3,0xbb,0xb1,0x70,0xa7,0x8c, - 0xe5,0xb5,0x2a,0x92,0xdb,0x3,0x18,0x1d,0x6e,0xe5,0x69,0xa4,0x8e,0xa9,0x4c,0x19, - 0x89,0x36,0x42,0xae,0xee,0xe2,0x56,0xf7,0xea,0xa0,0xba,0xa2,0xb4,0x51,0xa2,0x2b, - 0x30,0x99,0xb5,0x67,0x5c,0x44,0x8f,0x7e,0x76,0xc0,0x49,0xf6,0xbd,0x82,0xdc,0x42, - 0x18,0xfd,0x87,0x4e,0xcb,0xea,0xdd,0xbc,0x5a,0xbc,0x2a,0x99,0x7f,0x6,0x21,0x7a, - 0x15,0x11,0x94,0x24,0x1,0x51,0x84,0x8a,0x3c,0x4d,0x35,0x96,0x2f,0x50,0x22,0x38, - 0xd7,0x85,0x8c,0x70,0x74,0x55,0x7a,0xa8,0x44,0xbc,0x87,0xe,0xc2,0x2d,0xe2,0xa6, - 0x41,0x5a,0x9f,0xc3,0xec,0xad,0xcb,0x30,0x76,0x2d,0xe2,0xd4,0xc0,0xd9,0xb8,0xfc, - 0xed,0xd9,0xf,0xda,0x9c,0x60,0x9b,0x8d,0xa3,0x7b,0xfa,0x5c,0xf,0xd3,0xf4,0x68, - 0xa,0xa2,0x46,0x82,0x2c,0x57,0xa0,0x9b,0xbc,0x8b,0xff,0x72,0x5,0xbc,0x21,0xb4, - 0xfa,0xbb,0x91,0xce,0xcf,0x10,0x19,0xf5,0xa6,0xe7,0x53,0x3d,0x6e,0xb4,0x5f,0x8d, - 0x4f,0xe0,0xf3,0x33,0xd5,0x1d,0x9e,0xb1,0xb1,0x31,0xa3,0xa3,0x23,0x82,0x6d,0x6d, - 0x41,0xfc,0x99,0x99,0x83,0x4e,0x21,0x5d,0xaf,0x58,0x52,0xb6,0x36,0x6a,0x1a,0x6, - 0xac,0x27,0x51,0x5d,0x38,0x6,0x66,0x42,0x8e,0xfd,0xdd,0x2a,0xf7,0x3c,0xaf,0x6d, - 0x19,0x2b,0x59,0x1e,0xc4,0xac,0x11,0x44,0x6f,0xe6,0xe0,0xf3,0x75,0xc9,0x31,0x93, - 0xdf,0x14,0x8b,0xb3,0xed,0x2a,0xc6,0xe9,0xc3,0x3a,0x43,0x11,0x74,0x77,0x77,0x7b, - 0xb5,0x60,0x30,0x78,0x18,0x1a,0x4d,0x7,0xa3,0xf2,0xa8,0x5e,0x4c,0xae,0x2c,0x21, - 0xd6,0x16,0xc5,0x6a,0x41,0x40,0xb0,0x82,0x8f,0x57,0xde,0x83,0x36,0x13,0xc1,0x69, - 0x5d,0x43,0x34,0xb1,0x93,0x79,0xa4,0x71,0x63,0xe9,0xe6,0x66,0x52,0x8,0x27,0x7a, - 0x50,0xa4,0x1f,0x35,0xa2,0x31,0x28,0xba,0xf,0xf9,0x45,0x9e,0xe,0x62,0xdb,0x31, - 0xfd,0xeb,0x22,0x2e,0x5a,0x5f,0xc2,0x3b,0x48,0xe7,0x93,0xae,0x50,0x43,0x54,0xa6, - 0x50,0x45,0x86,0x26,0x70,0x3e,0x53,0x80,0x4f,0x37,0xa0,0x6b,0x2a,0x92,0xc9,0x63, - 0x3,0xa,0xfd,0xf9,0x91,0x89,0x89,0x89,0x58,0xce,0x9f,0x3a,0x8b,0xfb,0xa7,0xf6, - 0xe8,0x21,0x42,0xc8,0xa9,0x21,0x4c,0xa6,0x32,0x69,0x64,0x6c,0xdb,0xc1,0xff,0xbd, - 0x44,0xb9,0xb4,0x10,0xba,0x7e,0x1e,0x9a,0xd6,0x4d,0x72,0x9,0x9d,0x55,0xb,0x11, - 0x86,0x6c,0xab,0x9d,0xfb,0x36,0xf1,0x76,0xf2,0xc4,0x13,0xd7,0xb4,0x72,0xb9,0x7c, - 0x9d,0x26,0x57,0xd5,0xb4,0x3,0x97,0x3c,0x8a,0x47,0x35,0x6f,0x9b,0x5e,0xc3,0x30, - 0xbc,0x4e,0xde,0xf1,0x52,0x23,0x34,0xd1,0x3c,0x1e,0x9e,0x74,0xa8,0xf1,0xa2,0xf1, - 0x5e,0xe1,0x98,0x42,0x31,0x11,0x3a,0xef,0x88,0x5e,0x28,0xe8,0xe6,0xf3,0xbf,0xa2, - 0x28,0xca,0xf3,0x80,0x43,0xaf,0xc0,0xd7,0x68,0xf8,0x8a,0xc4,0xb6,0x8f,0x88,0x3e, - 0x25,0xd0,0xe9,0x58,0x7f,0x9,0xc0,0x98,0xb5,0xc5,0xc6,0x71,0x95,0xe1,0x6f,0x2e, - 0x7b,0x5f,0x5f,0xd6,0xde,0xf5,0x25,0x76,0x5c,0x3b,0x69,0xdc,0x38,0x49,0x23,0xb7, - 0x34,0x84,0x90,0x94,0x50,0x25,0xa1,0x55,0x93,0x34,0xa1,0x21,0x95,0xc,0x42,0xa0, - 0x22,0x81,0x54,0xc2,0x3,0x88,0x7,0xde,0x2a,0x15,0x4,0x3c,0xf0,0x0,0x4a,0xe1, - 0x1,0x51,0x2a,0xb5,0x15,0x2f,0x69,0xd5,0xa,0x4a,0x12,0xa,0x4,0x4,0xa2,0x95, - 0x9a,0x20,0x20,0xa4,0x90,0xc4,0x76,0x1c,0x3b,0xb1,0x93,0xd4,0xeb,0xf5,0xda,0xeb, - 0xbd,0x78,0xe7,0xc6,0xf7,0x9f,0x99,0x59,0x3b,0x17,0xa1,0xae,0x74,0xe4,0xf5,0xec, - 0xcc,0x39,0xff,0xfd,0xff,0xbe,0x7f,0xee,0xc5,0xf,0xee,0x52,0xc4,0x8f,0x73,0x55, - 0x33,0xa2,0xc1,0x8a,0x4,0x38,0x21,0x4,0xf0,0x4e,0xc0,0x1d,0xea,0xc1,0xb2,0x3, - 0x5e,0xf1,0x7f,0xcd,0xa7,0xf8,0xc5,0xea,0xb,0xab,0xc1,0x82,0x7c,0x1e,0xb9,0x2f, - 0x19,0x1e,0x1c,0x6f,0xcf,0x66,0xd3,0x6f,0xbc,0xf5,0xf6,0x33,0x5b,0x87,0x3f,0xf6, - 0x5d,0x5a,0x21,0xc1,0xda,0x6f,0x78,0x7e,0x5,0x26,0x48,0xd3,0x1c,0xd1,0xe6,0xea, - 0x95,0xd1,0x1f,0x1f,0x39,0x74,0xe0,0x67,0xa4,0x1b,0x8b,0x7c,0xa6,0x26,0x42,0x71, - 0x4f,0xf7,0x8e,0x3d,0x6f,0xd7,0x2e,0x40,0x43,0x2d,0xd5,0x6a,0xf5,0xcf,0x95,0x4a, - 0x65,0x98,0x2e,0x1,0x1,0x3f,0x5b,0xe5,0x62,0xe3,0x6f,0xb2,0xa9,0x19,0xc3,0xdb, - 0x76,0xa9,0xb4,0xd4,0xf5,0xdb,0xf3,0xfa,0x6e,0x5c,0xe0,0x61,0xe2,0xf2,0x7,0x98, - 0xbd,0x75,0x43,0x81,0xf,0x59,0x2,0x46,0xe8,0x56,0x41,0x91,0xb2,0xaa,0xb1,0x58, - 0xec,0x6b,0x5c,0xaf,0x36,0x10,0x11,0x1,0x89,0x27,0x9c,0xc5,0x26,0xb2,0x14,0x4c, - 0x20,0x94,0x25,0x44,0x44,0xfb,0x9f,0x1e,0x41,0x22,0xd9,0x84,0x4,0x6b,0x3f,0x13, - 0x41,0xb0,0x5d,0x43,0x0,0x2d,0xb0,0xb3,0x14,0x2e,0x21,0x57,0xde,0xaa,0xf6,0x2d, - 0xbf,0x9d,0x78,0xed,0x17,0x48,0xa7,0x53,0xa,0x84,0x84,0x42,0x8,0x18,0x91,0x35, - 0x38,0x38,0x78,0x8c,0x71,0xf1,0x53,0x55,0xd1,0x6f,0xdd,0xba,0xa9,0x4c,0x69,0x9a, - 0xfe,0x8,0x85,0xbc,0x13,0x65,0xa,0x71,0x78,0xe4,0x2b,0x88,0xab,0xc3,0x5,0xd, - 0x85,0x9a,0x7b,0x8d,0x15,0x0,0x30,0xd5,0xb6,0x13,0x2c,0x8d,0x86,0x1e,0xb4,0x60, - 0xa9,0x86,0x6c,0xd1,0x87,0x47,0x9e,0x45,0xad,0x5a,0x55,0x96,0x74,0x5d,0xc7,0xbf, - 0x97,0x37,0x49,0xd0,0xd2,0xd2,0xcf,0x7,0x45,0x94,0xfc,0x69,0xb9,0xae,0xa4,0xae, - 0xb1,0x90,0x88,0xf6,0xf3,0xf3,0x45,0xec,0x7d,0x6a,0x84,0xe9,0xa8,0x29,0xc1,0x14, - 0x1f,0x71,0xfd,0xe3,0xe0,0xad,0x16,0x1,0xb7,0x89,0x64,0x68,0x3e,0x5e,0x54,0x5, - 0xc7,0xf3,0x71,0xc0,0x13,0x47,0xbf,0xa4,0xac,0x29,0x2c,0x52,0xce,0xb1,0x2c,0xdb, - 0x17,0xd0,0xb6,0xdd,0x86,0x0,0xe2,0x77,0x39,0x38,0x34,0xfd,0xfa,0xa1,0x61,0xb8, - 0x7a,0x54,0xf9,0x5c,0x32,0x2b,0x44,0x41,0x21,0xe0,0x58,0x7d,0xb2,0x17,0x5e,0xf, - 0x96,0x5c,0xd3,0x81,0x6,0x7a,0x92,0xb9,0xc7,0xae,0xbd,0x7,0x15,0xce,0xc,0xe3, - 0x4a,0x2c,0x40,0x21,0x94,0x41,0xf5,0xf3,0x2f,0xbd,0xac,0x9,0xa2,0x91,0x1f,0xe5, - 0xf0,0x4a,0xb5,0x86,0xce,0x75,0x43,0xa,0xc1,0x84,0x9b,0x2a,0xac,0x17,0xe0,0xbe, - 0x50,0x88,0x6,0xfa,0x69,0x1c,0xee,0xf9,0x30,0xd,0xbe,0xf6,0x6e,0x10,0x90,0x72, - 0x5f,0xa2,0xb5,0x3,0xb1,0x44,0xa,0x5,0xa,0x51,0x9c,0x9f,0x67,0x81,0x5b,0x54, - 0xb1,0x26,0x96,0xd0,0xf7,0x7e,0xf3,0x1b,0x51,0xcb,0xb6,0x50,0x65,0x8b,0x2c,0x14, - 0xe6,0x30,0xbc,0xe3,0x31,0x35,0x5c,0x11,0x4c,0x67,0xd1,0x6f,0x8a,0x17,0x2b,0xb0, - 0xe9,0xfb,0xb5,0x81,0xf5,0x56,0x2d,0x3b,0xe0,0xce,0x4e,0x70,0x9f,0xb5,0xea,0xba, - 0x4d,0x3a,0x22,0xc2,0xed,0x78,0xec,0x49,0x14,0xe6,0xe7,0x50,0xae,0x94,0x55,0xb0, - 0x33,0xe3,0xf0,0xf6,0xc9,0x93,0x9a,0x49,0x8e,0x91,0x10,0x93,0x48,0xc4,0x57,0x58, - 0xfb,0x5b,0xb2,0x6b,0xd4,0x26,0x6a,0x48,0x25,0xfd,0x41,0xf3,0x9d,0xae,0x5,0x71, - 0x2f,0x56,0x30,0xf4,0x0,0x9a,0xaf,0xc2,0x80,0x62,0x21,0x57,0x8d,0x9a,0x42,0xb, - 0x78,0xc1,0x6f,0x81,0xc7,0xf4,0x38,0xd2,0xf,0xee,0x41,0xfd,0xc3,0xcb,0xa,0x85, - 0xb,0xb7,0x1f,0xcb,0x8f,0x6b,0x66,0x5f,0xdf,0xfd,0x5e,0x95,0xd2,0xe4,0x36,0x6d, - 0xc7,0x40,0xe7,0xfd,0x6a,0x3e,0xd5,0xf0,0xaf,0x40,0x6f,0x5b,0x80,0xa8,0xd7,0x98, - 0x9a,0x29,0x1c,0xa0,0xaf,0x0,0xa2,0x70,0x20,0x26,0x1a,0x2f,0x3b,0xbe,0xb0,0xae, - 0xe7,0x35,0xa0,0x7a,0x18,0xa0,0x72,0x2d,0xdb,0xbd,0xe,0xf9,0xdc,0x6,0xc4,0xd3, - 0xdc,0x63,0x69,0xc,0x3d,0x69,0x36,0xb1,0x37,0xdf,0x7c,0xcb,0x4c,0xf,0xef,0xb3, - 0x3e,0xac,0x1a,0x4,0x8e,0x9e,0x8f,0x84,0x2,0xdc,0x1f,0xe,0x4b,0x24,0xb2,0xe5, - 0x60,0x21,0x26,0x86,0xe9,0x7f,0x17,0xe9,0xc2,0xac,0xb0,0x5c,0x77,0x25,0x48,0x3d, - 0x1f,0x86,0xfb,0x9a,0xf3,0xbb,0xe6,0x7,0xa2,0x2,0x37,0x4c,0xe5,0x53,0x53,0x16, - 0xb2,0x2d,0x11,0x6c,0xcb,0xb8,0xe5,0xbe,0x94,0x97,0x36,0xf,0x1e,0x3c,0x60,0xbf, - 0xc3,0x8b,0xf3,0xc4,0x72,0x7d,0x4d,0x64,0x9e,0xa4,0xf9,0xa2,0x70,0x26,0xe6,0xa1, - 0x95,0x15,0x3f,0x6a,0xf8,0xc0,0x44,0xdc,0x22,0x24,0x33,0xea,0xf0,0x3b,0xf,0x31, - 0x88,0xd1,0x35,0x5,0xca,0x35,0x5,0x36,0x5d,0x9e,0x64,0x4b,0xe0,0x3a,0x22,0x88, - 0xa6,0x40,0x88,0x18,0x73,0x9e,0x5,0x79,0xae,0xee,0xb,0x9b,0x4d,0x46,0x30,0xc9, - 0xb,0xe,0x59,0xd1,0xa8,0x67,0xc5,0x36,0x75,0xb6,0x50,0x29,0xfe,0x73,0x66,0xba, - 0x46,0xfc,0xe9,0x60,0x43,0x26,0x86,0x3d,0x7d,0x6,0x95,0xd3,0xf1,0xdb,0x89,0x1a, - 0x2e,0xcd,0x5b,0x18,0x2d,0xd6,0x71,0x83,0x6d,0x59,0xe6,0xe,0x15,0xcb,0x37,0xb3, - 0x4b,0x2b,0x49,0x23,0xd0,0xc,0x3d,0x70,0x83,0xab,0xe8,0xb4,0xcc,0x29,0x93,0x94, - 0x58,0x26,0xd5,0x83,0xb9,0x8,0x36,0x66,0xa2,0xec,0xfd,0x11,0xee,0x69,0x2a,0x7a, - 0x77,0xa9,0xe4,0x61,0xba,0xe8,0xa0,0xae,0x3b,0x58,0x1b,0x71,0xdc,0x6,0x2a,0x2e, - 0x2e,0x12,0xc9,0x72,0x93,0xdd,0x6b,0xd,0x35,0xb7,0x94,0xd0,0x7a,0x7a,0x7d,0x1c, - 0x3b,0x7e,0x34,0x85,0x28,0xfb,0x77,0x84,0xb6,0xd3,0xa3,0x9a,0xaf,0xb5,0x2a,0xc7, - 0x3a,0xff,0xd7,0x1b,0xa5,0x58,0x73,0x7d,0x41,0x64,0x66,0x5c,0xae,0x32,0xc7,0xa9, - 0xfa,0xe8,0xf5,0xa,0x5e,0x27,0xca,0xf9,0xcb,0xb1,0x1,0xe5,0x47,0xb1,0xc6,0x83, - 0x6d,0x4,0xb9,0x65,0x9b,0xf1,0x68,0x62,0x8d,0x51,0xaa,0x92,0x10,0xf8,0x2,0xf4, - 0x65,0x34,0x9c,0xbf,0x41,0x5f,0xd5,0xbd,0x55,0x7e,0x75,0x30,0xdc,0x99,0xc0,0xbf, - 0x67,0x97,0xa9,0xa9,0x40,0x6a,0x1d,0xe9,0x18,0xbb,0x16,0x61,0x79,0x4c,0x9a,0x42, - 0x2c,0xd2,0x28,0xc7,0x9a,0x2d,0x74,0xcc,0x45,0xbe,0x60,0x31,0x1d,0x69,0x7a,0x2a, - 0xe1,0x90,0xc4,0xf4,0x37,0x45,0x95,0x80,0x7a,0x58,0xc4,0x19,0x1c,0xba,0x6e,0x62, - 0xb0,0xdd,0x40,0x87,0xc9,0x94,0xb,0x2d,0xd0,0xb3,0x7c,0xd,0xe7,0xdc,0x1e,0x9c, - 0x1c,0xad,0x60,0x1f,0x35,0xf7,0xf3,0x1a,0x78,0xf1,0xb,0x6b,0xf0,0xf1,0x1f,0x4e, - 0x20,0x2e,0x13,0xa,0xdd,0xc7,0xd,0xaf,0x9f,0xfe,0x7,0x1a,0xf3,0x60,0xd9,0x58, - 0xf7,0xab,0xd1,0xf0,0xe6,0x1e,0x36,0x9c,0x76,0x75,0xb8,0x45,0x77,0x55,0x2b,0x16, - 0x5e,0x3b,0xd6,0x8f,0x2a,0xff,0xd7,0xf9,0xac,0x50,0xb9,0x42,0x4d,0xc3,0x27,0xd7, - 0x2,0x43,0x37,0xdf,0x81,0xd1,0xb9,0x45,0x6b,0x94,0xe2,0xe6,0xd9,0xb,0x78,0x52, - 0x3b,0x87,0x7f,0x4d,0xe7,0x49,0x32,0x49,0xd1,0x29,0xbd,0x50,0xb1,0x7c,0xd9,0xc5, - 0xb,0x87,0x72,0x6a,0x70,0xc5,0xda,0xa1,0x68,0x77,0x22,0x11,0xb,0xd2,0x44,0xf7, - 0xd3,0x4,0x3e,0x5f,0xdf,0x3c,0xd8,0xcb,0xc6,0xe3,0xaa,0x88,0xb7,0x79,0xdf,0x73, - 0xbb,0xb2,0x28,0xd5,0xe8,0x12,0xc6,0x4d,0x69,0x59,0x5e,0x6d,0x0,0xaf,0xbc,0xfc, - 0x73,0xc,0x5c,0x79,0x3,0xcd,0x74,0xa9,0xcc,0xb7,0x94,0x0,0xa,0xd,0xd1,0xbc, - 0xb1,0xc5,0x29,0x24,0xce,0xbe,0x82,0x89,0xc9,0x49,0x2,0xc,0xbf,0xd8,0x14,0xe8, - 0xaf,0x87,0xfb,0x12,0xf8,0xea,0xce,0x8c,0x4a,0x2d,0xd9,0x6c,0xdf,0xa3,0x5b,0x82, - 0x86,0xb0,0xf2,0x21,0x15,0xc4,0x2c,0x31,0x9f,0xcd,0xbd,0x6c,0xba,0xe2,0x89,0xa1, - 0x24,0x3e,0xfb,0x50,0x33,0x16,0x18,0x3,0x82,0x29,0x63,0x6,0xdb,0x35,0x6b,0xcd, - 0xf5,0x89,0xb1,0x80,0x4f,0x30,0x95,0x4d,0xd3,0x93,0xb3,0xf5,0x10,0x94,0x48,0x75, - 0x6a,0xcb,0x75,0xe0,0xbe,0xbe,0x3e,0xd5,0xf3,0x65,0x30,0x31,0xd0,0x16,0xc5,0x74, - 0xc1,0xc6,0xde,0x8d,0x29,0xbc,0x3a,0xd2,0x45,0x68,0x4e,0xec,0x40,0x2d,0xf,0x1f, - 0x7a,0x18,0x3,0x7d,0xed,0x48,0xa7,0x22,0xd8,0xb9,0xad,0x1f,0x8f,0xef,0xdf,0x8e, - 0x99,0x5,0x17,0x45,0x9a,0xfd,0xc5,0xc3,0x1d,0xf8,0xfa,0xce,0x76,0x5a,0x8f,0xfb, - 0x91,0xa0,0xa,0x8e,0x10,0x2b,0xc5,0xe3,0x29,0x1c,0x39,0xfa,0x8c,0x2a,0xc5,0xc5, - 0xe2,0x3c,0x15,0xb2,0xb5,0x30,0x6,0xa2,0x9d,0x5d,0x59,0x5c,0xbb,0x36,0x89,0xa3, - 0x5f,0x3e,0xa6,0x26,0x76,0xe1,0x87,0xfb,0x91,0xe5,0xea,0x6a,0x9e,0x2e,0x66,0x3b, - 0xf3,0xf9,0x6e,0xd4,0xb8,0xdf,0xc5,0xb9,0x3a,0x2e,0x75,0xc,0x62,0xa2,0xec,0x61, - 0x43,0x5a,0xc7,0xa6,0x56,0x13,0x3d,0x8f,0x24,0x91,0xa4,0xd0,0x92,0xaa,0xb,0x35, - 0x59,0x2e,0x9f,0x71,0xb1,0xc2,0x73,0x5c,0xf4,0xd,0x3e,0x84,0x33,0xbf,0xfb,0xd, - 0xb2,0xd9,0x76,0x8c,0xce,0x9e,0xce,0x84,0x2,0xe4,0xaa,0xd9,0x3f,0xa1,0x77,0x7d, - 0x17,0xea,0x4c,0x27,0x49,0xa5,0xd5,0x68,0xd4,0xb3,0x97,0x50,0x5a,0xcc,0xc3,0xe6, - 0xc9,0x25,0x49,0x76,0xd6,0x8d,0x1c,0x8b,0x4e,0x47,0x5a,0xc3,0xee,0x26,0xd7,0x67, - 0x52,0x84,0xa1,0x8b,0xcc,0xa0,0x85,0xa0,0xfb,0x59,0xaa,0x95,0x92,0xcc,0x3a,0xfd, - 0x2a,0x2b,0x82,0x70,0x55,0x63,0x9e,0x7,0x36,0xf,0x60,0xcd,0xa0,0x8d,0xd3,0x17, - 0x5f,0x32,0x43,0x1,0x8c,0x13,0xef,0xff,0x4,0x47,0xb6,0x7f,0x11,0x57,0xe7,0x9f, - 0x47,0xc4,0x68,0x41,0x2a,0xfa,0x0,0x53,0xa6,0x86,0x52,0xfd,0x3f,0xdc,0xd0,0x82, - 0xc9,0x12,0x1d,0x42,0x5e,0x55,0x17,0xd,0x3f,0x1,0xb5,0x60,0x4c,0x23,0x69,0xea, - 0xdd,0x3,0x91,0x4f,0x97,0xc,0xa4,0x22,0xeb,0x98,0x1,0x6d,0xc,0xee,0x59,0x2a, - 0x37,0x89,0x8e,0x61,0x17,0xa3,0x85,0x73,0xb8,0x74,0x75,0x7c,0x85,0x9e,0x17,0xd9, - 0xd,0x6f,0x2d,0xbd,0xc7,0x12,0x89,0xdb,0x36,0x4a,0x45,0x5b,0xd1,0x12,0xcb,0xb2, - 0x12,0x8e,0x7,0xf0,0xeb,0xa3,0x7f,0x3a,0xc8,0x29,0xeb,0xee,0x32,0x26,0x16,0x4e, - 0xaf,0x50,0x78,0x4a,0x2c,0x63,0xce,0x77,0xc7,0x2f,0x93,0xb2,0xc5,0xfc,0x6b,0x44, - 0xa9,0x7a,0x6b,0x2c,0x89,0xb,0xd3,0x57,0x58,0xd3,0x75,0x55,0xf3,0xeb,0x32,0xe2, - 0xe6,0xfa,0xdb,0x7f,0x3f,0x87,0xa6,0x85,0x11,0x12,0x80,0x47,0x1b,0xd7,0x3e,0xca, - 0x4a,0x91,0xf,0xb6,0x2d,0x3d,0x87,0x6f,0xfd,0xf2,0xdb,0xec,0x11,0x86,0xba,0x26, - 0xfb,0xea,0xa,0x55,0xeb,0x88,0x78,0x3a,0x81,0x6e,0x42,0xa1,0x22,0x79,0xd3,0x17, - 0x4b,0x27,0x6b,0x48,0xc4,0x2c,0x4a,0x68,0xab,0x92,0x5c,0x95,0x51,0x17,0x3f,0x9b, - 0xda,0xff,0x8a,0x4f,0xf4,0x3e,0x85,0xe9,0xd9,0x51,0xcc,0x2d,0xbb,0xaa,0xe6,0xdf, - 0x3,0x8c,0x7,0x2d,0x29,0xa4,0x63,0xc4,0xc,0x4b,0x5,0x1c,0xc9,0xfe,0x11,0x8f, - 0xf,0x91,0x2f,0xd6,0x2b,0xca,0x6d,0x31,0xa2,0xda,0x18,0x73,0xfb,0xec,0x18,0x53, - 0x91,0xda,0x1b,0x4e,0x2,0xc7,0x8f,0x1f,0x8f,0xea,0x5b,0xb7,0x6e,0xed,0xd4,0xc, - 0x93,0xb9,0x18,0xc7,0xd8,0xcc,0x4d,0x35,0xec,0x97,0xc0,0xa9,0xb1,0x14,0x16,0xac, - 0x8b,0xc8,0xbf,0xf7,0x3,0x1c,0x88,0xa,0x27,0x68,0x63,0x2f,0x68,0x66,0x8c,0x70, - 0x99,0x2d,0xea,0xbb,0x2c,0x53,0x6f,0x21,0x5c,0x6f,0x62,0x8f,0x68,0x86,0x6e,0x26, - 0xd8,0x49,0xdb,0xf1,0x6c,0xe6,0x33,0xb8,0x3e,0x76,0x5,0x6b,0x7b,0x7e,0xad,0x82, - 0x5a,0x0,0x8b,0x0,0xd6,0x52,0xb9,0xc6,0x5c,0x30,0x69,0x5,0x36,0xa9,0x78,0x54, - 0xe0,0x79,0xd6,0xcc,0x64,0x32,0x5d,0xe,0xa5,0x5e,0xf6,0xe4,0xad,0x9b,0xbc,0x92, - 0xa8,0xa8,0x76,0x2a,0x56,0xd0,0xcc,0xa,0xbe,0x37,0xab,0x63,0xff,0xbb,0x7f,0xc0, - 0xa7,0x9,0x58,0x7b,0xb6,0x6c,0x40,0x79,0xf2,0x3,0xb4,0xf4,0xae,0x47,0xa5,0x94, - 0x87,0x47,0xf8,0x1e,0xcf,0x75,0xa3,0x34,0xc9,0x72,0xdd,0xb5,0x86,0xe5,0xda,0xc0, - 0xec,0xe8,0xc,0x4e,0x2c,0x9d,0xc2,0xd9,0xb6,0x32,0x32,0xeb,0x5d,0x18,0x3c,0x5c, - 0x6,0x57,0x8e,0xe6,0xd0,0xcd,0x79,0xa,0x1f,0x57,0xb3,0x46,0xc7,0x52,0xee,0xe8, - 0x35,0x5b,0x5b,0x5b,0x8d,0x22,0xfb,0x2,0xeb,0x15,0x6f,0x32,0x50,0x24,0x7c,0xee, - 0x6a,0x6b,0x62,0xe5,0xb2,0x15,0xce,0x33,0xba,0x35,0x9c,0x2a,0x4f,0xc2,0x95,0x82, - 0x32,0xf3,0x77,0xa,0xc5,0x88,0xbf,0x75,0x41,0x95,0x5f,0x95,0x1,0x37,0x8a,0xea, - 0xd,0x93,0x3e,0x37,0xe,0x51,0x4,0x6d,0xf4,0x75,0x96,0xcf,0xa5,0x1c,0x55,0xd2, - 0x13,0x6c,0xcf,0x26,0x3d,0x77,0x23,0x5f,0x63,0x2c,0x30,0xa,0x74,0x1f,0x33,0xa6, - 0xaf,0xf,0x8e,0x6b,0xcd,0x5a,0x93,0xd9,0xdf,0xdf,0x3f,0xf3,0xfb,0x5f,0xd,0x7f, - 0xc7,0xda,0x73,0xed,0xfb,0xd1,0xae,0x92,0x4e,0x9a,0x4c,0xe,0xbf,0x4c,0x9,0x5, - 0xae,0x87,0x3e,0xb7,0x6f,0xa7,0xaa,0xb8,0x83,0x76,0x7a,0x77,0x5c,0x97,0x10,0x5a, - 0x14,0xa2,0x43,0x60,0x92,0xf4,0x5f,0x33,0x5c,0x9b,0x5e,0x56,0x5d,0xd4,0xae,0xb0, - 0xb5,0x5f,0xdc,0xf8,0xcf,0x94,0xdd,0xfb,0x82,0x37,0xe4,0xd5,0x4c,0xfa,0x61,0x6a, - 0xf7,0xa7,0xf6,0xe4,0xc7,0x2f,0x8e,0xbf,0x5f,0x3f,0x5f,0x6f,0x76,0x44,0x1f,0xc3, - 0x88,0xd2,0x3c,0x66,0x5a,0x42,0xd6,0xef,0x17,0xfe,0xac,0x52,0xd7,0xef,0x45,0xb, - 0xd5,0x38,0x7e,0x65,0x26,0xa0,0x79,0xb8,0x43,0x36,0x22,0x28,0xaf,0xcb,0xf3,0x1c, - 0xde,0x57,0xe7,0xd7,0x4a,0x4f,0x4f,0xcf,0x6c,0x2e,0x97,0x5b,0xe0,0xbd,0x35,0x93, - 0xe4,0x71,0x26,0x9d,0x4e,0x1b,0xdd,0xdd,0xdd,0x53,0x44,0xc6,0x11,0xe6,0xa7,0x19, - 0xd0,0xef,0xbb,0xe6,0x3,0x7c,0xb8,0x21,0x44,0x38,0xf,0x8,0x67,0x4,0xc1,0x7b, - 0xc1,0xbb,0x8a,0x45,0x78,0x9f,0x2d,0x58,0x9c,0x45,0x92,0x69,0x6f,0x71,0x2f,0x8b, - 0xfb,0x58,0xfc,0xcd,0xfa,0x9f,0x0,0xb5,0x5b,0x6b,0x90,0x1c,0x57,0x75,0xfe,0x6e, - 0x77,0x4f,0xcf,0x7b,0x76,0x77,0x76,0xf6,0x21,0xad,0x57,0xbb,0x6b,0x3d,0x56,0xf2, - 0x4a,0x46,0x96,0x4,0x72,0x84,0xb1,0x6c,0x2b,0xc4,0x76,0xc,0x55,0x24,0x54,0xe9, - 0xf,0x55,0x50,0x45,0x5,0x92,0x18,0xa8,0x14,0x5,0x15,0xf8,0x1,0x45,0x99,0x54, - 0x7e,0x5,0x2a,0x29,0x53,0x40,0xca,0x95,0xc4,0x95,0x7,0x10,0xe3,0x94,0xb,0x53, - 0x76,0xca,0xe,0x29,0xb0,0xc5,0x43,0x58,0x96,0x25,0x4,0x92,0x2d,0x84,0x57,0xd6, - 0x5a,0xda,0xe7,0x68,0x76,0x76,0x76,0xde,0xd3,0xd3,0xdd,0x9c,0x73,0xef,0xed,0x99, - 0xde,0x87,0x37,0xa6,0x92,0x8c,0xdd,0xd5,0xb3,0x33,0xad,0xee,0x7b,0xcf,0xbd,0xe7, - 0x9c,0xef,0xfb,0xce,0x19,0x11,0xae,0x15,0xac,0xd7,0x9,0xd6,0xd3,0xf5,0xcd,0x5e, - 0x44,0xb7,0x45,0x48,0x43,0x30,0xf5,0xc1,0x93,0xb0,0x72,0x3,0x3,0xf6,0xf8,0xf8, - 0x44,0xfc,0xfe,0x7,0x1e,0x1c,0xba,0xff,0xc1,0x87,0xde,0x35,0x30,0x34,0x74,0x20, - 0x93,0xee,0xd9,0x47,0xf,0x4e,0xdb,0xd1,0xd8,0x84,0xbe,0xce,0x77,0x9c,0xd6,0x6c, - 0xdb,0x71,0x8a,0xd5,0x5a,0x65,0xba,0x5c,0x2a,0x5d,0x3e,0xf3,0xf3,0xd3,0x3f,0xff, - 0xf6,0xb7,0xfe,0x8d,0x58,0xfe,0xeb,0xf5,0xd9,0xd9,0x1b,0xd,0xbd,0x7,0xda,0x21, - 0xdd,0x21,0x38,0x78,0x8c,0xfe,0xdb,0x18,0xe3,0xa6,0xda,0x44,0x58,0x1e,0xf8,0x9d, - 0xc,0xb0,0xc9,0xa4,0x23,0xfa,0xb0,0xff,0xec,0xe1,0x4f,0x6d,0xff,0xd8,0x9f,0x3f, - 0x7c,0x72,0xc7,0xc4,0xce,0x8f,0xd3,0xa2,0x65,0x95,0x9a,0xad,0xee,0x2d,0x42,0xd2, - 0xd1,0xc6,0x68,0x16,0xe2,0xbd,0x7e,0x10,0xdd,0xe4,0x43,0x9a,0x37,0xf3,0xb,0xff, - 0xf1,0xdd,0xef,0x7c,0xeb,0x9b,0xdf,0xf8,0xda,0xa3,0x33,0x73,0x73,0xb3,0x75,0x9d, - 0x95,0x1c,0xbd,0xdb,0xa5,0x31,0xb6,0x32,0xc4,0xdb,0x35,0x40,0x2f,0xb1,0xb5,0xb3, - 0xc4,0x8f,0x77,0x16,0x89,0x3e,0x32,0x73,0xe3,0x5d,0xc3,0xfb,0x9b,0x89,0x1b,0xbf, - 0xe7,0xa3,0x4e,0x6c,0x9f,0x69,0x25,0x17,0x75,0xf8,0xcc,0x7f,0xc7,0x12,0x49,0xec, - 0x3f,0x78,0x4,0xe3,0xbb,0xf6,0x76,0x98,0x82,0x25,0x31,0x95,0x52,0xc,0x82,0x1a, - 0x8b,0x58,0xe7,0xc7,0x1d,0x8a,0x2b,0xab,0xf,0x7e,0x87,0xda,0xac,0x7f,0x79,0xda, - 0x30,0xac,0xcb,0x16,0x96,0x16,0xf1,0xab,0xb,0x67,0xe8,0x9c,0x87,0x45,0xa0,0x2e, - 0x62,0x33,0xf0,0xb7,0x65,0x6a,0x23,0x8c,0x25,0x35,0x18,0x96,0x3f,0xf8,0x3d,0x13, - 0xe,0x3e,0xf3,0xc1,0xdf,0x67,0xb3,0x59,0x50,0xd4,0xbb,0x44,0xdf,0x1f,0x53,0x61, - 0x22,0x64,0x0,0x62,0x8a,0x57,0xe6,0xe7,0xe7,0x77,0xb3,0x82,0x1c,0xc,0xd3,0x75, - 0xdb,0x32,0x88,0xd3,0x16,0x95,0x13,0x66,0xf5,0x82,0x29,0x34,0x1b,0xa7,0x5c,0xae, - 0x60,0xc7,0xad,0xbb,0x70,0xe8,0xe8,0xdd,0x12,0x50,0xf2,0x64,0x6d,0x8b,0x73,0xad, - 0x50,0x35,0x1d,0x2d,0x24,0x9,0x74,0x2b,0x1e,0x5b,0xca,0x65,0x21,0x32,0xaa,0x68, - 0xb8,0x3a,0x6f,0xdc,0x19,0xea,0x6c,0xd0,0xbb,0x57,0x2f,0x9e,0xc7,0x95,0x4b,0xbf, - 0x90,0x13,0x65,0x21,0x2a,0x41,0xb,0x11,0x8d,0xda,0xf2,0x7d,0x60,0x10,0x36,0x86, - 0x4,0x9e,0x34,0x20,0x5e,0x4c,0xbe,0x86,0xb2,0xef,0x2b,0x74,0xcd,0x91,0xe,0x18, - 0x91,0x9a,0x50,0xb3,0x39,0xc2,0x13,0x53,0xc4,0xc1,0x50,0xb5,0x44,0xe6,0xf8,0xb4, - 0xea,0x2c,0xab,0xd4,0xeb,0xd,0xa9,0x19,0xb1,0x82,0x32,0x34,0x32,0x86,0xe3,0xf, - 0xbd,0x1b,0x12,0x16,0xe9,0xd2,0x4d,0x44,0x12,0x17,0x35,0x59,0x25,0x4a,0x74,0x67, - 0x2d,0xd6,0x45,0xea,0xd,0x13,0xf,0xcb,0x3c,0xbe,0x6,0x2d,0xa6,0x62,0xe1,0x8e, - 0x17,0xda,0x1d,0x7a,0xeb,0x6,0xd5,0xb9,0x9d,0xb7,0x1d,0xc4,0xae,0xa9,0x3b,0xf0, - 0x9b,0x8b,0xe7,0xf0,0xea,0x85,0x57,0x68,0xe,0xe,0x32,0x3d,0x19,0xd,0xc,0x84, - 0x52,0xf4,0x68,0x71,0x28,0xd4,0x6b,0x95,0x87,0x68,0x65,0xa3,0xc1,0xe0,0x7b,0x34, - 0xdc,0x48,0xa4,0x32,0xd,0x61,0x77,0x96,0x89,0xc2,0x21,0x9d,0xb7,0x3e,0x1b,0x85, - 0xb7,0x39,0x4f,0x9c,0x92,0x14,0x8e,0x9e,0x78,0x8,0x89,0x94,0xa2,0x8,0x96,0x7e, - 0x94,0xaf,0xa5,0x1,0xae,0xca,0x8b,0x90,0x7e,0xa5,0x9,0xbc,0xd2,0x36,0xc4,0xd6, - 0x8a,0x69,0xb0,0xba,0x1d,0xc9,0x49,0x6f,0x7d,0xe8,0x5a,0x99,0xd7,0xf6,0x3a,0x9f, - 0x75,0x24,0x29,0x4e,0xc6,0xc4,0x7f,0xc6,0xf7,0xdd,0x81,0x5b,0xf7,0xec,0xc7,0xe9, - 0x17,0xff,0x4b,0x56,0x1e,0x59,0x9,0xe4,0x16,0xb,0x47,0xd7,0x48,0x29,0x9d,0xc8, - 0xdd,0x20,0xe7,0xa4,0x5d,0x79,0x83,0x1,0xc8,0x9f,0x5,0x6f,0x73,0x3e,0x94,0x30, - 0xe3,0x6a,0x3,0x54,0x9,0x90,0x97,0x90,0xdb,0x36,0x8a,0x83,0x47,0xef,0xa1,0xe8, - 0x63,0x49,0x10,0x6e,0x69,0xf9,0x8a,0xf1,0x99,0xd4,0x4e,0xbc,0xee,0x3a,0xfb,0x46, - 0x17,0xa4,0x19,0x9b,0xe4,0xea,0xcd,0x76,0x41,0x78,0x7b,0x87,0x25,0xe,0x29,0xf4, - 0x78,0xea,0x5e,0x81,0xa1,0x3,0x43,0x79,0x7a,0x67,0x48,0x1a,0x4d,0x31,0xf8,0xd8, - 0x7d,0xef,0xc3,0x6b,0xbf,0x3c,0x83,0xd7,0x2e,0xbc,0xdc,0x89,0x59,0xac,0x76,0xda, - 0x36,0xc7,0x5,0x53,0xba,0xa,0x1f,0x34,0x2f,0x3f,0x50,0xc7,0x8d,0x17,0x7e,0xf4, - 0xdf,0x38,0xf9,0xe1,0x93,0x26,0x4f,0x98,0x57,0x9f,0x57,0x7b,0xb5,0x5c,0x6,0x77, - 0x47,0xb1,0x35,0x97,0x28,0xd8,0xc,0x6c,0x1b,0xc3,0xc1,0x3b,0xef,0x43,0xd3,0x35, - 0x64,0x75,0x52,0x72,0x38,0x59,0x95,0x54,0x40,0xaf,0xed,0x76,0xa5,0x32,0x27,0x90, - 0xc5,0xc2,0x12,0x9a,0xdf,0x15,0x19,0x37,0x3d,0xe4,0x44,0xd4,0x16,0x5d,0x2f,0xbd, - 0xb9,0xae,0xb7,0xe6,0x3d,0x3f,0xdb,0xd3,0xcf,0x93,0x86,0xd1,0xff,0x8e,0xc7,0x55, - 0x27,0x0,0xbb,0x73,0xea,0x8,0xf6,0x1f,0x3a,0x46,0xbc,0x4f,0x8d,0x7f,0x79,0xb9, - 0x28,0x39,0x60,0xb5,0xca,0x15,0xb2,0xaa,0x62,0x4c,0x8e,0x23,0x9e,0x7c,0xfc,0x9f, - 0x64,0xfb,0x8c,0x75,0xfa,0xf9,0x53,0xe2,0xd9,0x27,0x9f,0x8d,0x7f,0xe9,0x73,0x5f, - 0xea,0x44,0x75,0x3e,0x78,0xeb,0xf3,0xc1,0xfe,0x3e,0x75,0xf4,0xbe,0x35,0x54,0x8d, - 0x57,0x45,0x16,0x9,0x68,0xe5,0xcd,0x60,0x8b,0x6a,0x39,0xce,0xd4,0xc2,0x94,0xcb, - 0xc1,0x90,0xfc,0x41,0x8a,0xda,0x42,0x75,0x3f,0x88,0xf5,0x29,0x30,0xe4,0x2e,0xe8, - 0x8,0xdc,0x5a,0xdc,0x42,0xb8,0x3e,0xed,0x77,0xc4,0x51,0xa0,0xab,0xbe,0x85,0x5b, - 0x4,0x3a,0xa8,0x8b,0x6,0x37,0xbe,0xf7,0x1d,0xa8,0x96,0x57,0x29,0x2e,0x9c,0x95, - 0xc6,0x97,0x42,0x28,0xc5,0x35,0x76,0x7,0xde,0x15,0x4,0xb8,0xc4,0x5f,0x3f,0xfa, - 0xb5,0xc4,0x4c,0xab,0x5d,0xb1,0x2e,0xcf,0x5c,0xe3,0x56,0xb,0x9b,0x2f,0xa,0x7a, - 0x16,0xea,0x14,0xed,0x3d,0x2b,0x81,0xcc,0xf0,0x30,0xe,0xdf,0x75,0xaf,0x94,0xc, - 0x3d,0x2d,0xfd,0x6,0x7b,0x99,0x13,0xb0,0xe0,0xa,0x3d,0xb4,0x11,0xa4,0x4b,0x90, - 0x21,0xc,0x45,0x15,0x4d,0xfa,0xae,0x6d,0x28,0x7d,0xb3,0x63,0x84,0x30,0xd6,0x10, - 0xdd,0x9a,0x36,0xd6,0x4c,0x26,0xec,0x2,0xbe,0xea,0x8a,0x5a,0x73,0xcd,0xe6,0x93, - 0xf,0x67,0x92,0x26,0xdd,0x64,0xff,0x9d,0x77,0x63,0x75,0xf4,0x18,0xb9,0xa3,0x40, - 0x6f,0x9c,0x48,0x58,0x65,0x9,0xa2,0x74,0x83,0xeb,0xdb,0xaa,0x4b,0xe1,0xfa,0xb2, - 0x5d,0x5d,0x2e,0x8,0xeb,0xe1,0xbf,0x78,0xd8,0xb5,0x7a,0xa3,0x75,0x66,0x67,0x91, - 0xec,0x76,0x6c,0xdf,0xf7,0x1e,0xba,0x81,0x8d,0x55,0x22,0x60,0xfd,0xac,0xc1,0x90, - 0xef,0xb8,0x4a,0x47,0x53,0x3a,0x18,0xba,0xa2,0x50,0xb0,0x98,0x2c,0xdc,0xa8,0x49, - 0xfa,0x1d,0x59,0x93,0xff,0xe6,0x74,0xa8,0xa4,0x4e,0x85,0xd,0x82,0x9d,0xb0,0x95, - 0xff,0xb3,0x1b,0x4a,0x7c,0xe0,0x85,0x3e,0xf,0x4d,0x5c,0x6,0x6c,0xe,0xaa,0x1a, - 0x2c,0x85,0xcb,0x25,0xc1,0xad,0x65,0xe9,0xa4,0xe9,0x62,0x22,0x3,0xbc,0x70,0xc3, - 0x41,0xbd,0x49,0xab,0x4f,0xd4,0x3a,0x35,0x3c,0x48,0xf3,0x71,0x91,0x8a,0x94,0x8d, - 0xaf,0x7c,0xfa,0x6f,0x56,0xde,0xf9,0x81,0x83,0x9e,0xc4,0x1,0x37,0xae,0x5f,0xc7, - 0x92,0x9b,0x70,0x8a,0x46,0xca,0x9a,0xab,0xb1,0xb8,0xd3,0xc6,0xcd,0x9a,0x8b,0xbb, - 0xb7,0xd9,0x72,0xfb,0xb5,0xf4,0x28,0x38,0xcd,0x31,0xc0,0x89,0xc8,0xea,0x94,0xae, - 0x52,0x89,0xae,0x4e,0xa4,0xa2,0xbe,0x16,0x7b,0x82,0xde,0xe,0x5f,0x9f,0x79,0x42, - 0x86,0xba,0xd6,0xd0,0x4b,0xe5,0x5,0x1a,0xaf,0xee,0x7,0xf1,0xf4,0xb5,0xa6,0xa6, - 0x5a,0xc1,0xa4,0x83,0xc2,0x44,0x30,0x49,0x1f,0xdd,0x2d,0xcf,0xee,0xc8,0x6a,0x5a, - 0x5b,0xb7,0x72,0x4,0xfa,0x36,0xef,0xca,0x6c,0xc2,0xc0,0xbf,0x5f,0xac,0x49,0x4d, - 0x79,0x30,0x6d,0x51,0x30,0x64,0xd,0x9a,0xf0,0x8a,0x68,0x35,0xef,0x9d,0x38,0x1b, - 0x3,0xee,0x55,0x59,0xe0,0x96,0xd1,0x51,0xbc,0xf4,0xda,0xaa,0xf1,0x6,0x4d,0x5a, - 0xaa,0x2c,0x2d,0xf,0xb3,0xab,0x1e,0x26,0x73,0x5c,0x3b,0xf6,0x30,0x98,0x32,0x90, - 0xb5,0x5,0x8a,0x75,0x1f,0xc5,0xaa,0x27,0x41,0x4e,0x86,0xc8,0x6b,0xf,0xb7,0x8d, - 0xda,0xbe,0x94,0x6a,0x4b,0x2c,0xc1,0x91,0xa5,0xa,0xc4,0x1,0xb,0xad,0x36,0x4a, - 0xf4,0x9e,0xa5,0x9a,0xaa,0xab,0x64,0xbe,0xa6,0xc7,0x32,0x9d,0xee,0x14,0x95,0x6d, - 0x1e,0x4a,0x69,0x87,0x4e,0xa7,0x36,0x59,0x32,0x4e,0x16,0x96,0x2d,0x42,0xa6,0x87, - 0x1e,0xa2,0x6e,0x49,0x7a,0x9f,0x24,0x1e,0x9a,0x8d,0x9,0xc,0xd0,0x39,0x43,0xcf, - 0xcb,0x10,0x57,0x4a,0x98,0xca,0xdc,0xdc,0x2e,0xc4,0xf7,0x2f,0xb5,0x55,0xe9,0xe0, - 0x96,0xb4,0x81,0xed,0x19,0x43,0xba,0xd9,0x4c,0xd1,0xc5,0x74,0xd9,0x97,0x78,0x62, - 0x66,0xc5,0x41,0x95,0xb3,0x15,0x8d,0xf9,0x7a,0x59,0x60,0x2a,0xed,0x9a,0x1b,0xd2, - 0xe0,0x6c,0xd5,0x30,0xae,0xae,0x78,0x72,0xbb,0xb2,0xbc,0x37,0x5f,0x6a,0xe2,0xc4, - 0x58,0xf,0x2c,0x5f,0x9,0xdd,0x7e,0x0,0xfc,0xd,0xb,0xa7,0xae,0xd5,0xf1,0xb7, - 0xa7,0x8a,0x64,0x1c,0x46,0x8a,0x6d,0x7a,0xb8,0x29,0x3,0xa1,0x6f,0xe9,0xe0,0x48, - 0xf8,0x97,0x57,0x93,0xdb,0x4a,0x94,0xf2,0x28,0x3a,0x32,0xa6,0x2f,0x2,0x69,0xb3, - 0xbb,0x75,0xb8,0xb2,0xc3,0x6d,0xd9,0x35,0xe9,0xff,0x6d,0x8d,0x91,0x9d,0xe,0x3e, - 0x8,0x0,0x1,0x83,0x2b,0xce,0x3c,0x86,0xe6,0x9,0x5c,0x74,0xeb,0x25,0x83,0x7c, - 0xe8,0x1d,0x69,0xfc,0xe1,0xae,0x84,0x14,0x74,0x85,0xbe,0xff,0x81,0x21,0x13,0x47, - 0xe8,0x19,0xd5,0x7a,0x4,0xa7,0x67,0x9,0xca,0x1b,0xf4,0xef,0x68,0x70,0x53,0x39, - 0x32,0xb4,0x5f,0x77,0x36,0x18,0x20,0x46,0x6b,0x54,0x6b,0x45,0x8c,0x96,0xab,0x1e, - 0xb8,0x42,0xae,0x60,0xd0,0xc3,0x5a,0xe1,0xe8,0x2b,0x9b,0x70,0x7c,0x1c,0xbd,0x25, - 0x86,0x2f,0xde,0x93,0xc5,0xe7,0x9f,0x9a,0x47,0x91,0x56,0xd7,0x24,0xcb,0x1a,0x16, - 0xe5,0x58,0x96,0x1e,0x18,0x11,0x72,0xd4,0xb5,0x94,0x2b,0x44,0xe9,0x33,0x36,0x4, - 0x1f,0x2a,0x38,0xa0,0x53,0xfb,0x10,0x58,0x5b,0x6f,0x13,0x3a,0x15,0xb0,0x26,0xe4, - 0xb4,0x58,0x61,0x52,0xf8,0xdf,0x97,0x5d,0x4a,0x14,0x6e,0x39,0xe8,0xb6,0x95,0x6a, - 0xe5,0x3a,0xaa,0xd2,0xfc,0x89,0xf7,0x66,0xf0,0x0,0x4d,0x9e,0x3b,0x97,0x84,0xe, - 0xb6,0x41,0x81,0x89,0x3,0xf2,0xf1,0x1d,0x11,0x7c,0xe3,0x2c,0xcd,0xaf,0xa9,0x14, - 0x75,0xb3,0xdd,0xc0,0x84,0xb5,0x52,0xd9,0x60,0x80,0xfd,0x91,0x7c,0x2b,0x9f,0x19, - 0x8e,0x9d,0xcb,0x1b,0x2a,0xaf,0xd2,0x40,0xb,0x65,0xf,0xd9,0x94,0x29,0xa3,0x6a, - 0xc0,0xa0,0x82,0xd4,0x34,0xb9,0x3d,0x8a,0xcf,0xde,0x3f,0x80,0x2f,0x7c,0x7f,0x1e, - 0xed,0x16,0x4d,0x96,0x71,0x84,0x4b,0x3,0xa0,0xe0,0xe0,0xd1,0x11,0xa5,0x81,0xa4, - 0x29,0xfa,0x16,0x8,0x4f,0xfc,0xfa,0x8d,0x9b,0x72,0x6b,0x70,0x0,0xe4,0x12,0xa, - 0xcb,0xe5,0x3e,0xf7,0x78,0x9b,0x5a,0xbd,0xe7,0x7b,0x1a,0x2a,0xab,0xf0,0xcd,0x6f, - 0x1d,0xed,0xc7,0xc4,0xd8,0x10,0x96,0xcb,0xc,0xc3,0x3d,0xd9,0x98,0xc4,0xb9,0xdf, - 0x63,0x81,0x89,0xab,0x60,0xdc,0x74,0xdd,0xf0,0xf0,0xe5,0x3f,0x1e,0xc2,0xf1,0xbd, - 0x29,0xd9,0xd0,0xae,0x14,0x8b,0xae,0x42,0x26,0xed,0x40,0x3b,0xe6,0xdb,0x14,0x3, - 0x62,0xb4,0x38,0xbd,0x71,0xb,0x7,0x92,0x2b,0x98,0x2c,0x5d,0x44,0xb4,0x7f,0xc2, - 0xdf,0x60,0x80,0x8c,0xe9,0x78,0x93,0x8b,0x3f,0x44,0xba,0x67,0xa,0x37,0x23,0x43, - 0xb8,0x68,0x44,0xf1,0xcd,0x73,0xd,0xfc,0xe5,0xb1,0x84,0x9c,0x78,0x2b,0xe8,0x86, - 0xd3,0x2b,0x22,0x88,0x90,0xbe,0x6b,0x22,0x81,0xef,0xfc,0xc9,0x18,0x3e,0xfa,0xcf, - 0x6f,0xa2,0xdc,0xd0,0x4d,0x6d,0x41,0x8b,0xa,0x39,0x38,0xaf,0x4a,0x82,0xd8,0xd9, - 0x4a,0xb5,0xaa,0x1d,0xfe,0x6d,0xbc,0x5a,0xe,0x72,0x87,0x46,0xd1,0xa4,0xf8,0xc1, - 0x45,0xf,0x87,0x27,0xcf,0x9d,0x59,0x6d,0x4e,0xd3,0x64,0x9f,0x6,0x8f,0xc3,0xc5, - 0x13,0x1f,0x1f,0xc7,0x8e,0xac,0x25,0xe3,0x4b,0x0,0x99,0xd9,0x80,0x1,0xf6,0x48, - 0xd8,0xc0,0xcf,0xae,0x16,0x50,0x99,0xbe,0x80,0xf7,0xfb,0x79,0xf4,0x15,0x1d,0xa4, - 0x9a,0x9,0xd8,0xe9,0xc,0xb9,0x82,0x29,0x36,0x18,0xc0,0x64,0x7,0x21,0x7f,0x4e, - 0xbf,0xf9,0x13,0x24,0xe8,0x86,0x39,0x22,0x40,0xd5,0xe5,0x1c,0xbe,0x67,0x4e,0xe1, - 0xc4,0xc1,0xdd,0xb2,0x1a,0xdf,0x72,0x3c,0x2d,0x39,0x69,0x91,0x93,0x9c,0x2e,0x66, - 0x45,0xf0,0xfc,0x27,0x27,0xf0,0xf5,0x17,0x57,0xf0,0xf8,0x4b,0x2b,0xb0,0x63,0x86, - 0xec,0x53,0x6a,0xd1,0x6e,0xe0,0x76,0xf8,0x4c,0x32,0x86,0xdb,0x76,0x6e,0xc3,0xab, - 0xd3,0xb,0x9b,0xb,0x1,0xe1,0x17,0x59,0x78,0xcf,0xee,0x6d,0x48,0xa6,0x32,0x28, - 0xac,0x3a,0x72,0x65,0x7d,0x66,0x84,0x5c,0xf3,0x60,0x63,0x34,0x5c,0x9c,0x3c,0xd4, - 0x8b,0xcf,0x9c,0xe8,0xa7,0x80,0xeb,0xc9,0x80,0xdc,0x94,0x28,0x90,0xcb,0x10,0x42, - 0x1,0x33,0x8a,0xd0,0xa9,0xb8,0x89,0x9f,0xbd,0xf0,0x53,0xfc,0xe8,0xb9,0xa7,0x31, - 0x3c,0x3c,0x84,0x54,0xb6,0x8f,0xf8,0x4b,0x2f,0x5,0xda,0x88,0xcc,0x36,0xcc,0x10, - 0x3b,0x6,0x8,0x80,0xc9,0xe5,0xcb,0x97,0x25,0xa8,0x60,0x8e,0x6d,0x70,0xcb,0x69, - 0xdd,0x45,0xe3,0xfa,0x45,0x2c,0x57,0x16,0x50,0x1c,0x89,0x13,0x85,0x1c,0x83,0x1f, - 0xd7,0x85,0x4f,0xe,0x6a,0x74,0x6d,0xbe,0x46,0xc1,0x92,0x66,0x59,0xa0,0xec,0xc0, - 0xf5,0x90,0x3f,0xbd,0xbb,0xf,0xcf,0xbc,0x5a,0xc3,0xbf,0x9c,0x2f,0x61,0xae,0x42, - 0xc6,0xe2,0x95,0xa3,0xac,0x30,0xba,0x63,0x18,0x13,0x13,0xc3,0x78,0xf1,0x27,0x97, - 0x51,0xa9,0x71,0xf,0x8b,0xa9,0xa3,0xa5,0xab,0xa2,0x22,0xad,0x2a,0xff,0x14,0xe0, - 0xc1,0xf7,0xdd,0x41,0x98,0x9e,0xdc,0x86,0x56,0x8b,0x7f,0x8a,0xc1,0xee,0x52,0x67, - 0x23,0xd2,0xf3,0x3e,0x76,0x57,0x16,0x1f,0x38,0x90,0x96,0xae,0xb0,0x50,0x76,0x75, - 0x47,0xb3,0x87,0x81,0x4,0x65,0x5,0x3b,0x2a,0x1,0x19,0x8f,0x5f,0x56,0x2d,0x9, - 0x8e,0x12,0xff,0x43,0x2a,0x95,0xa0,0x58,0x41,0x1,0xd0,0x75,0x28,0xa6,0xb4,0xd4, - 0xce,0x25,0x3,0x71,0x6d,0x6,0xeb,0x44,0x1a,0xe3,0x97,0x97,0xce,0x54,0x16,0x67, - 0x8b,0xf1,0x2b,0x57,0xae,0x48,0xc6,0xd4,0x24,0x12,0xf1,0xee,0x7b,0xee,0xc7,0xd8, - 0xee,0xfd,0x6b,0x1a,0xc9,0xd6,0xf7,0xd2,0x70,0xa3,0xe1,0xf9,0xb9,0x16,0xe5,0x56, - 0xd5,0x38,0xc8,0x75,0x9d,0x34,0x5,0x80,0x34,0xf9,0xdc,0x6f,0xf2,0x2d,0x9c,0x5b, - 0x68,0xe1,0xb9,0xeb,0xd,0x5c,0x27,0x63,0x71,0x71,0x2b,0x12,0xb3,0x64,0x33,0x1a, - 0x77,0xc3,0xf2,0x0,0x1c,0xee,0xf9,0xa3,0x68,0x57,0xa3,0x1d,0x56,0xa7,0x3c,0x59, - 0xa5,0x28,0x3c,0x9e,0xb2,0xf1,0xde,0xf1,0x28,0xe,0x13,0x12,0xdb,0x99,0x8b,0x20, - 0xca,0xdd,0x6e,0xae,0x42,0x85,0xac,0x17,0xb3,0x6b,0x64,0x69,0xe2,0x29,0x7a,0x86, - 0x6e,0x7a,0xd8,0x74,0x6c,0x71,0x72,0x83,0x67,0x9e,0x7a,0x2,0x4b,0x73,0x37,0x8, - 0x6,0xc7,0x8,0x7,0xd8,0xd8,0x33,0xb9,0x7,0xdb,0x6e,0xe9,0x2f,0xde,0x36,0x79, - 0x28,0x7,0x4d,0xe1,0x64,0xff,0xe2,0xf7,0xce,0x7f,0xba,0x20,0x56,0x26,0xd0,0x2e, - 0x6c,0x23,0x1c,0xd0,0x90,0x7d,0x22,0x7,0xef,0x7a,0x50,0xb6,0x7e,0x6f,0xf5,0x62, - 0x1,0x84,0xcb,0x31,0xd3,0x85,0x6,0xd2,0x11,0x4b,0x19,0x21,0xca,0xbe,0x65,0x28, - 0x34,0x28,0xb,0xdc,0x80,0xcd,0xba,0x1,0x19,0xc7,0x32,0x14,0x9e,0xe4,0xad,0xcb, - 0x3a,0x2,0x4f,0x2a,0x1e,0x51,0xd9,0x85,0x11,0x65,0x83,0xe1,0x34,0x6f,0xe9,0xb6, - 0xd0,0x38,0x5e,0xc1,0x6d,0xd9,0x79,0xe1,0xaa,0x9e,0x4,0x1e,0xd2,0x78,0xd6,0x46, - 0xa5,0xe1,0x6e,0x39,0x36,0x56,0xa3,0x5a,0xab,0x79,0x9c,0xff,0xe9,0xf,0x68,0x3e, - 0x71,0x1a,0x87,0x5,0x2b,0x37,0x7,0x37,0xf9,0x26,0xfe,0xe8,0xc8,0x57,0xfb,0xe9, - 0x92,0xe5,0xc0,0x0,0x63,0x27,0xff,0xae,0xe7,0xda,0x9d,0x7,0x8f,0xe0,0xc8,0xd8, - 0x1f,0x20,0x6e,0x64,0xe5,0x76,0x89,0x45,0x46,0x11,0xb3,0xf,0x71,0x47,0x91,0x66, - 0x5e,0x5d,0x4e,0xab,0xa0,0x6e,0x9b,0x56,0xf0,0xa,0xca,0xcd,0x57,0x64,0xe8,0x13, - 0x81,0xa4,0x13,0xe8,0x0,0xc1,0xdf,0x86,0x2b,0x61,0xa0,0x90,0xc8,0xcf,0xd1,0xa5, - 0xf5,0xa0,0xc8,0xaa,0xb6,0xad,0x54,0xa6,0x7c,0xf1,0x3f,0x10,0xe7,0xa0,0xa5,0x9c, - 0x8c,0x1c,0x19,0xa0,0x15,0x3e,0x42,0xe9,0x75,0x48,0xd6,0x44,0x11,0x42,0x87,0x6a, - 0x6c,0x9c,0x4e,0xaf,0xa1,0xda,0x38,0x47,0x86,0xac,0x48,0xf0,0x56,0x73,0x97,0x71, - 0xf6,0xda,0xf3,0x78,0xe9,0xfc,0x5,0x3c,0xf1,0x99,0xe5,0x1d,0x74,0xe9,0xf5,0x4e, - 0x10,0xe4,0xc0,0xf6,0xe3,0x4b,0x3f,0x26,0xdf,0xbb,0x8a,0xbe,0x4c,0x46,0x82,0x49, - 0xe1,0x8b,0x2d,0x54,0x4c,0xd5,0x86,0xa0,0xa0,0xae,0x5a,0x55,0xe1,0x1b,0x5d,0xf5, - 0x23,0x44,0x9c,0xd6,0x4c,0x49,0x4a,0x7,0x3e,0x74,0x73,0x91,0x26,0x47,0xfe,0x3a, - 0xb5,0x70,0x6b,0xe5,0xc4,0x5f,0x23,0xb1,0x89,0x75,0xe5,0xa1,0xf5,0x35,0x4,0xc5, - 0x14,0xf8,0x9a,0xd2,0x6a,0x9,0x67,0xae,0xce,0xd0,0xee,0x4c,0x77,0x83,0x20,0x93, - 0x20,0xa2,0x89,0x22,0x46,0xe,0x4a,0x9c,0x10,0xd3,0xc4,0xa1,0x77,0xd1,0xe8,0xc6, - 0x6,0x87,0x9,0x70,0xb4,0x34,0x2b,0xdb,0xe8,0x67,0x51,0x2b,0x49,0x1,0xe8,0x0, - 0xfe,0xf5,0xf4,0xbd,0xb8,0x9a,0x4f,0xe1,0xf8,0xee,0x37,0x70,0x74,0xf7,0xb3,0x28, - 0xd4,0xe6,0xf1,0xff,0xf5,0x8a,0x98,0x31,0xc,0x27,0x6f,0xc7,0x3f,0x9e,0xfa,0x7d, - 0x82,0xea,0x69,0xbc,0x87,0x9e,0xf9,0x7b,0xbb,0x9e,0x45,0xbe,0x3a,0xbb,0xe1,0x5a, - 0xe5,0x7e,0x4a,0xae,0xb3,0x4c,0x1b,0x33,0xf9,0x45,0x5c,0xce,0xcf,0x23,0x11,0xa5, - 0x79,0x7a,0xb1,0xae,0x1,0x1e,0x79,0xe4,0x11,0x33,0x1a,0x8d,0x9a,0xc9,0x68,0x4c, - 0x36,0x28,0x27,0xa2,0xdc,0xed,0x50,0xc2,0xe2,0xa,0xb0,0xbd,0x77,0x10,0x35,0x47, - 0x35,0x1f,0x30,0x7e,0xf,0x57,0x5f,0x12,0x76,0x1a,0xff,0x79,0x66,0x4,0x7f,0x7f, - 0x22,0x29,0x7f,0x76,0x74,0xe8,0xd1,0x1,0xdc,0xbe,0x63,0xf,0x11,0x92,0x3c,0x5d, - 0xdf,0xf8,0xbf,0x9f,0x3d,0xe1,0x88,0x4c,0xac,0x17,0xdf,0x7f,0x79,0x12,0xff,0x70, - 0x62,0x5,0x5e,0xe9,0x39,0xdc,0xfe,0xf8,0x3,0xb8,0x7d,0x64,0x27,0x3d,0x6f,0x8e, - 0x9e,0xeb,0x84,0x7c,0x9f,0xb8,0x5,0xa5,0x75,0x4b,0xa2,0x50,0xe0,0xda,0xcd,0x39, - 0x2c,0xdc,0x5c,0x21,0x6e,0x91,0x44,0x4b,0xb0,0x2b,0x26,0x58,0x1d,0x36,0x1e,0x7b, - 0xec,0x31,0xd3,0x1a,0x19,0x19,0xe9,0x9f,0x9a,0x9a,0xca,0x44,0xe3,0x8b,0x30,0x22, - 0xc,0x61,0xb9,0x3b,0x8f,0xc8,0x4c,0xad,0x22,0x27,0xbe,0xa3,0x2f,0xa7,0x7e,0xce, - 0xc3,0xcd,0x52,0xac,0xcb,0x69,0x2b,0x2c,0xae,0xce,0x61,0x2c,0xf7,0xc,0x7e,0xf8, - 0xca,0x45,0x3c,0xb0,0x67,0x10,0xe7,0x3e,0xd2,0x87,0xef,0xe6,0x5f,0x43,0x2b,0xca, - 0xfe,0x6c,0x6f,0xba,0x25,0xbb,0xf2,0xe8,0xef,0xf6,0x52,0xf1,0x22,0x82,0x4a,0xc9, - 0xc2,0x57,0x8e,0x52,0x78,0xad,0xff,0x1a,0x4f,0xfe,0xe2,0x4d,0x7c,0xf6,0xfd,0x5f, - 0xc7,0x52,0xbd,0x48,0x98,0xa3,0x15,0xaa,0x0,0xf3,0xaa,0x1b,0xca,0x2d,0xe9,0xff, - 0xcb,0xf3,0xb,0x94,0xca,0xeb,0x64,0x88,0x18,0x85,0x1b,0x4b,0x66,0x2b,0x5a,0x71, - 0xfe,0x1d,0x45,0xa2,0xd5,0x6a,0x25,0xad,0x76,0xbb,0x3d,0x36,0x31,0x31,0x31,0x4, - 0x33,0x4f,0x46,0xb6,0x64,0xb5,0x41,0xf8,0x11,0xa,0x32,0x11,0xd4,0xaa,0xd,0x5c, - 0x6d,0x2f,0x62,0x38,0x97,0x95,0x1d,0xe5,0xae,0x50,0xbf,0xba,0xe2,0xf1,0xd4,0xe9, - 0x3f,0x93,0xb8,0xf5,0xe9,0xe2,0x25,0x9c,0x7d,0x7a,0x1a,0x9f,0xd8,0x6f,0xe3,0x83, - 0xb9,0x49,0x18,0xed,0x8,0x6c,0x93,0x0,0x47,0x82,0xb8,0x77,0xcf,0x1d,0xca,0x7d, - 0x44,0x3,0xa6,0xbd,0x8d,0x40,0xd,0x11,0xa7,0xc6,0x1b,0xf4,0xdd,0x1e,0x49,0x9b, - 0xbd,0xd5,0x97,0x61,0x24,0xf6,0x11,0x7c,0x4e,0xc1,0x5f,0x3d,0x4f,0x2e,0x38,0xe, - 0x41,0xbc,0xdd,0x5b,0x39,0x4d,0xc9,0x7f,0x1f,0x21,0xb6,0x5e,0x2,0x41,0xab,0xb4, - 0xda,0x2f,0x11,0xbc,0xce,0xa2,0x51,0xaa,0xe2,0xea,0xe9,0xa7,0xf0,0xd5,0x33,0x4b, - 0x18,0x38,0x66,0x22,0x4d,0xe3,0x71,0x9,0xb0,0x9,0x4d,0xa1,0xa3,0xfc,0x13,0x2a, - 0xd6,0x20,0xb8,0x43,0x9a,0xc,0x70,0x65,0xa1,0x80,0x72,0xad,0x41,0x2e,0x10,0xa3, - 0xb8,0x63,0x48,0x85,0x58,0x96,0xae,0x84,0x85,0xbd,0x7b,0x77,0xf,0x55,0x2a,0x15, - 0xc1,0xdd,0x4a,0x7d,0xe9,0x74,0xba,0xb7,0xb5,0x9a,0xf0,0x45,0x4f,0x41,0xd8,0xf4, - 0xa5,0x2f,0x1b,0x3e,0xb8,0xe3,0x3c,0x4a,0x34,0xb7,0x8d,0xfa,0xcd,0x22,0x6,0xd2, - 0x29,0xd5,0x21,0x23,0xcb,0xe0,0xbe,0x56,0x62,0x8,0xa2,0xf5,0x51,0x4a,0x8b,0x39, - 0xf8,0xf2,0x1c,0xb9,0xce,0xa5,0x45,0x34,0xaa,0xc,0x86,0x5d,0x25,0x5e,0x7a,0x3f, - 0x90,0x83,0x11,0x42,0x69,0x89,0x2e,0x5,0x49,0x16,0x53,0xb9,0xed,0xc6,0x97,0x72, - 0x91,0xab,0x82,0xa7,0x80,0xce,0x4,0xf2,0x37,0x3f,0x50,0xbd,0xf3,0x4f,0x77,0x2, - 0x30,0xa7,0x52,0xca,0x60,0xb0,0xe3,0x4,0x98,0x7a,0x4d,0xe4,0xee,0xa3,0x6d,0x9c, - 0xa8,0xa1,0xc2,0xe5,0xdb,0xc0,0xcf,0xe5,0x4f,0x6c,0x7c,0x99,0x8d,0xaa,0x4d,0x7, - 0x33,0x85,0x32,0x6a,0x15,0x87,0x70,0x47,0x14,0x4c,0x9b,0x4c,0xc9,0x44,0x4d,0xda, - 0x2d,0xe,0xac,0x4a,0xdc,0xcb,0xd1,0x4b,0xb6,0xee,0x7a,0xc4,0x67,0x7,0x7,0x7, - 0x4b,0xaf,0xbf,0x38,0xf9,0xc5,0xf8,0xfe,0xf9,0xbf,0xaa,0x8e,0xbe,0x2e,0x6c,0xce, - 0xd7,0xb2,0x31,0x4d,0xb1,0xb8,0x1a,0xb1,0xc7,0xb2,0x53,0x24,0x1f,0x4c,0xc8,0x7c, - 0xdd,0x20,0xe0,0xc2,0x4c,0xad,0x5b,0x8b,0x24,0xaa,0x95,0x23,0xdc,0x4f,0x54,0x33, - 0xb1,0x59,0x50,0xf,0xe8,0x64,0x47,0x1b,0x7f,0x8b,0x54,0x27,0x42,0x69,0x63,0xbd, - 0xc3,0x88,0xae,0x2c,0x56,0xf6,0x55,0x53,0xb4,0xa1,0x8b,0x31,0x36,0x91,0x2f,0x97, - 0x2e,0xe0,0x16,0x74,0x6,0x49,0xf9,0x62,0x83,0x80,0x9c,0x47,0xdf,0x59,0x72,0x8d, - 0x3c,0xb3,0x25,0x89,0x5a,0xdb,0x6d,0x22,0x32,0xb3,0xcf,0xaf,0x5d,0xd9,0xfe,0x85, - 0x5d,0xe3,0x23,0x4d,0x42,0x84,0x86,0x45,0x1,0x70,0x89,0xfc,0x21,0xd2,0xd7,0xd7, - 0xb7,0x34,0x3d,0x3d,0x7d,0x6e,0xe9,0x54,0xef,0x70,0xa1,0x50,0x18,0x6c,0x36,0x9b, - 0x49,0xb2,0x50,0x54,0x77,0x6d,0x73,0x89,0x38,0xa8,0xcc,0xa,0x5d,0x38,0x51,0xcd, - 0x4e,0xa1,0xf7,0x6b,0xf3,0xb5,0xc0,0xdb,0xcc,0x6d,0xfe,0xff,0x36,0x3e,0x86,0xeb, - 0x9b,0x5a,0xee,0xf6,0x5c,0xd5,0xf7,0xce,0x3f,0x24,0x75,0x69,0x8c,0xfc,0xeb,0xb1, - 0x72,0x7f,0x7f,0xff,0xd2,0xd8,0xd8,0xd8,0xc2,0xc8,0xbe,0x91,0xd5,0x54,0x2a,0xd5, - 0xe4,0xc5,0xb7,0xea,0xf5,0xfa,0xd,0x7a,0xc3,0xdd,0x22,0xe6,0xe1,0xc3,0x87,0xd, - 0xa,0x88,0xdc,0xa2,0x6e,0x6,0x25,0x69,0x2e,0x4f,0xf3,0x99,0xae,0x91,0x67,0xb6, - 0x1a,0xc5,0xd,0x79,0xe6,0x72,0x75,0x70,0x70,0x4b,0x7b,0x50,0x4b,0x67,0x43,0xf1, - 0xcb,0xf3,0x14,0xd2,0xe4,0x33,0xeb,0xf1,0x2c,0x46,0x1a,0x86,0xd1,0x19,0x6d,0xf0, - 0x9e,0x3f,0xf,0xff,0xfd,0x56,0xa5,0xee,0xb7,0x44,0x7c,0xa6,0xc9,0xe5,0x6f,0xc6, - 0xf8,0x9e,0xaf,0x5e,0x6e,0x70,0xd0,0x3d,0xdb,0xc1,0x99,0xae,0x93,0xef,0x1d,0xc7, - 0x69,0x6b,0xc3,0xb4,0xad,0xa5,0xa5,0xa5,0xf2,0xf1,0xe3,0xc7,0x41,0x1c,0x40,0x24, - 0x93,0x49,0x51,0x2e,0x97,0x5,0xc5,0x4,0xf9,0x7e,0x66,0x66,0xc6,0x48,0x24,0x12, - 0xdc,0xaf,0x6f,0xd0,0x67,0x3c,0x49,0x9e,0xbc,0xc1,0x6,0x6b,0x34,0x1a,0xf2,0x4c, - 0xf,0x15,0xe1,0x33,0x3d,0x84,0x27,0x2b,0x58,0x7b,0xe7,0x33,0x5d,0x2f,0xfb,0xb, - 0xf4,0x6f,0x7c,0x11,0xd4,0xf2,0x79,0x85,0xf8,0x33,0x62,0x66,0xb2,0xff,0x3f,0x98, - 0x48,0x7,0x67,0x44,0xa3,0xb2,0x52,0xb5,0xd5,0x8b,0xef,0xad,0x57,0xdd,0x57,0x1d, - 0xd8,0x4d,0x3f,0x58,0x7d,0x3e,0xd3,0x4,0xa5,0xba,0xce,0x67,0x8a,0xf8,0xdc,0x5c, - 0xe0,0xd1,0x33,0x3c,0xe2,0x4,0x1e,0x3d,0xd7,0xa3,0x45,0xf7,0x7e,0xb,0x53,0xdd, - 0xa7,0xa6,0x99,0xec,0x7c,0x80,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42, - 0x60,0x82, - // /home/lixiang/work/kylin-assistant/plugins/systemmonitor/res/download.svg - 0x0,0x0,0x9,0x10, - 0x0, - 0x0,0x20,0x5c,0x78,0x9c,0xe5,0x59,0xeb,0x8f,0xdb,0xb8,0x11,0xff,0x9e,0xbf,0x42, - 0x75,0x80,0x22,0xc1,0xd9,0x14,0x5f,0xa2,0x44,0xef,0x7a,0xf,0x69,0x16,0x17,0x5c, - 0x91,0xbb,0x2b,0x2e,0x9,0xfa,0xb1,0x90,0x25,0xda,0x56,0x56,0x96,0x7c,0x94,0xbc, - 0xb6,0xf3,0xd7,0x77,0x48,0xbd,0x6d,0x65,0x37,0x8f,0x2d,0xe,0x6d,0x77,0x11,0xac, - 0x38,0x33,0x1c,0x92,0xbf,0x79,0x70,0x86,0xb9,0xfe,0xf1,0xb8,0x4d,0x9d,0x7b,0xa5, - 0x8b,0x24,0xcf,0x16,0x13,0x82,0xf0,0xc4,0x51,0x59,0x94,0xc7,0x49,0xb6,0x5e,0x4c, - 0x3e,0xbc,0xff,0x69,0x16,0x4c,0x9c,0xa2,0xc,0xb3,0x38,0x4c,0xf3,0x4c,0x2d,0x26, - 0x59,0x3e,0xf9,0xf1,0xe6,0xd9,0xf5,0x5f,0x66,0x33,0xe7,0xb5,0x56,0x61,0xa9,0x62, - 0xe7,0x90,0x94,0x1b,0xe7,0xe7,0xec,0xae,0x88,0xc2,0x9d,0x72,0x5e,0x6c,0xca,0x72, - 0x37,0x77,0xdd,0xc3,0xe1,0x80,0x92,0x9a,0x88,0x72,0xbd,0x76,0x5f,0x3a,0xb3,0x19, - 0xcc,0x2c,0xee,0xd7,0xcf,0x1c,0xc7,0x81,0x65,0xb3,0x62,0x1e,0x47,0x8b,0x49,0x2d, - 0xbf,0xdb,0xeb,0xd4,0xca,0xc5,0x91,0xab,0x52,0xb5,0x55,0x59,0x59,0xb8,0x4,0x11, - 0x77,0xd2,0x89,0x47,0x9d,0xf8,0x41,0x2d,0x91,0x56,0x45,0xbe,0xd7,0x51,0xa5,0x3e, - 0x8a,0xfa,0x92,0x3a,0x5e,0x75,0xa2,0xb0,0x93,0x3,0xb3,0x42,0x44,0x4a,0xe9,0x62, - 0xea,0x52,0x3a,0x3,0x89,0x59,0x71,0xca,0xca,0xf0,0x38,0xcb,0x8a,0xe7,0xbd,0xa9, - 0xb0,0xc1,0xb1,0xa9,0x14,0x63,0xec,0x2,0xaf,0x93,0xfc,0x32,0xa9,0xf9,0x31,0x5, - 0x18,0x3e,0xbb,0x19,0xcb,0xed,0xaf,0xe,0xd0,0xef,0xe0,0x5f,0x3b,0xa1,0x21,0xa0, - 0xea,0xac,0x2b,0x98,0xa9,0x50,0xa6,0x4a,0xf7,0xf6,0xfd,0x6d,0xcb,0x9c,0x61,0x14, - 0x97,0x71,0x4f,0x4d,0x83,0xfc,0x60,0xdd,0x81,0x39,0xb2,0x70,0xab,0x8a,0x5d,0x18, - 0xa9,0xc2,0x6d,0xe8,0x76,0x7e,0xa3,0x72,0x1e,0xe7,0x91,0x91,0x59,0x4c,0xe2,0xfc, - 0x90,0xa5,0x79,0x18,0xa3,0xe6,0x5c,0x7d,0x91,0x65,0x58,0x80,0x88,0xbb,0xc9,0xb7, - 0xca,0xbd,0x4b,0xc3,0xb2,0x4c,0xb6,0x4a,0xbb,0x87,0x5c,0xdf,0x59,0xe5,0x6e,0xa1, - 0x8e,0xa7,0x4d,0x18,0xdd,0x15,0xee,0x9b,0x77,0xbf,0xbc,0xce,0xd3,0x5c,0xff,0x23, - 0x89,0xee,0x94,0xb6,0x8a,0x9a,0x85,0xe7,0xad,0x3,0x62,0xc4,0x3d,0x44,0x86,0xab, - 0xf4,0x98,0x8c,0x56,0xf3,0xe2,0xc5,0x4,0x36,0x43,0x8,0xc3,0xd8,0x12,0x36,0x2a, - 0x59,0x6f,0xca,0xc5,0xa4,0xe6,0x1f,0x92,0xb8,0xdc,0xb4,0xa3,0x76,0x15,0x75,0xdc, - 0xe5,0xba,0x9c,0xad,0x92,0x54,0x55,0x27,0xab,0xb6,0xfd,0x31,0xd9,0x6e,0xc3,0xc8, - 0xbd,0x55,0xc5,0x5d,0x99,0xef,0xdc,0x43,0x2,0x12,0x68,0x97,0xad,0x47,0x27,0x1f, - 0xe3,0x1d,0xd8,0x46,0x62,0x84,0xed,0xcf,0xa8,0xcc,0xe9,0x21,0x99,0x7c,0x5f,0xee, - 0xf6,0xe5,0xbf,0xd4,0xb1,0x54,0x59,0x75,0x2c,0xb0,0x46,0xcf,0x34,0x96,0x6d,0xa0, - 0x46,0x3,0xb3,0xc,0x42,0xf4,0x6,0x28,0xd7,0xb1,0x5a,0x15,0x86,0x53,0xc1,0x61, - 0x46,0xcc,0x32,0x80,0x5,0x3e,0xa5,0x42,0xfd,0x46,0x87,0x71,0x2,0x61,0x54,0x9, - 0x55,0x62,0x43,0xe,0xe1,0x9c,0xd6,0x73,0x60,0x56,0x1,0xa7,0x6f,0x64,0x6b,0x8c, - 0x81,0x2,0x32,0x7c,0xd2,0x91,0xf3,0xd5,0xaa,0x50,0x80,0x34,0xee,0xd1,0x8a,0xf2, - 0x94,0xaa,0x4a,0x7a,0x16,0x19,0x13,0xcf,0x9f,0xfb,0x2c,0xa6,0x44,0x4c,0x1c,0xf7, - 0x71,0xed,0x62,0x44,0x3b,0xa9,0xa1,0x7b,0x64,0x15,0xae,0x64,0x88,0xbb,0x55,0xae, - 0xdd,0xe1,0xf1,0xbe,0x12,0x8d,0x40,0x8,0xda,0xae,0xd7,0xda,0xb,0x96,0x4a,0x55, - 0x4,0x7b,0xa,0xd3,0x43,0x78,0x2a,0x1e,0x83,0xb,0x94,0x7c,0x3,0x5c,0xd5,0x61, - 0xaf,0x2c,0x29,0x87,0xb8,0x49,0xca,0xd3,0x9c,0x5c,0x3d,0xe,0x1f,0xac,0x36,0xa, - 0xdf,0xd7,0xaf,0x86,0xaf,0x9e,0xe,0x46,0xf,0x3f,0x1,0x8c,0x1e,0xfd,0x7a,0x18, - 0x57,0xf6,0xe7,0x5b,0x60,0xf4,0xc6,0x8c,0xf6,0x8,0x8c,0x63,0xab,0x3d,0xe,0xa3, - 0x19,0x85,0xe9,0x5,0x8c,0x9f,0xc3,0xa9,0x11,0xb0,0xf7,0xc4,0x7c,0xa3,0x15,0xdc, - 0x6b,0xcf,0x1f,0xf2,0x5b,0x38,0xd2,0x70,0x89,0x41,0x0,0xaf,0x6b,0xe2,0x87,0x2c, - 0x29,0xe1,0x2,0xdb,0x17,0x4a,0xbf,0x33,0x79,0xfa,0xb7,0xec,0x43,0xa1,0x2e,0xa4, - 0xde,0xeb,0x30,0x2b,0xe0,0xc6,0xd9,0x2e,0x26,0xdb,0xb0,0xd4,0xc9,0xf1,0x5,0x46, - 0xd2,0xf3,0x39,0x66,0xc1,0x14,0x9b,0x5f,0x44,0x3d,0x22,0x79,0x40,0xa6,0x33,0x1f, - 0x5,0x18,0x7,0xd4,0xf7,0xa7,0x4,0x3e,0x3,0x8a,0xa5,0x78,0xd9,0xea,0x8b,0x8e, - 0x8b,0x9,0xe5,0x28,0x60,0x3e,0xa1,0x9d,0xbf,0x46,0x27,0x48,0xd1,0x2,0x71,0x4a, - 0x8,0xf5,0x5b,0xea,0x6a,0x54,0x76,0x35,0x2a,0xab,0xc1,0x46,0x1e,0x12,0x9c,0xfb, - 0xcc,0xef,0x70,0x7f,0x7a,0x84,0x6d,0x9e,0x7c,0x8,0x61,0x21,0x9f,0xe,0xe1,0x29, - 0x5c,0xe6,0x1,0x67,0x98,0xd2,0x29,0xa4,0x41,0x8a,0x89,0xb0,0x60,0x23,0x81,0x5, - 0x67,0x62,0xca,0x29,0xf2,0x2,0x41,0xf8,0x10,0x5d,0xe6,0x21,0x2a,0xa9,0x10,0xfe, - 0x0,0x5d,0xa,0xd7,0xa9,0xe4,0x5c,0xb2,0x1,0xba,0x97,0xb2,0xab,0x51,0x59,0x83, - 0xae,0x0,0x7b,0x83,0x77,0xfd,0x7,0xb1,0x1d,0xa6,0x8b,0x11,0x6c,0x7d,0xf2,0x94, - 0xd8,0x52,0x84,0xb9,0xf0,0xa9,0x9c,0xce,0x8,0xf2,0x3c,0x5f,0x10,0xc0,0x96,0x73, - 0x44,0x88,0xe7,0xc9,0xa9,0x80,0xe3,0x32,0xea,0x7b,0x43,0x6c,0xc1,0xc5,0x64,0xe0, - 0x9b,0xeb,0xac,0x8f,0x2d,0x4c,0x67,0x1e,0x66,0x38,0x18,0x60,0x7b,0x29,0xbb,0x1a, - 0x95,0x35,0xd8,0xfa,0x88,0xf8,0x84,0x13,0xef,0x4f,0x44,0x97,0xf6,0xd9,0xdf,0x8f, - 0x2e,0x41,0x82,0xc0,0x41,0x39,0x87,0x2f,0x4a,0x7d,0x49,0x3c,0x7f,0x6a,0xfd,0x99, - 0x31,0x1e,0x48,0x70,0xe8,0x19,0x78,0x99,0x84,0xa2,0x4d,0xfa,0xff,0x3b,0x10,0x3f, - 0x92,0x1c,0x0,0x62,0xf6,0x84,0x10,0x43,0x1e,0x10,0xdc,0xb,0xc,0x96,0x90,0x26, - 0x30,0xa7,0x8c,0x32,0xc0,0x98,0x31,0x24,0x5,0x24,0xe2,0xc0,0xf8,0xb5,0xcf,0x44, - 0xe0,0x89,0x3f,0x21,0x41,0x5c,0xbb,0xa6,0xc,0xb5,0x5f,0x6d,0xf5,0x6e,0x2a,0xed, - 0xf8,0x3e,0x51,0x87,0x67,0x43,0xa4,0xf,0x49,0x6,0x8d,0xc5,0xcc,0x28,0x6e,0x2c, - 0x79,0xce,0x3b,0x76,0x17,0xfe,0x39,0xab,0x29,0xf8,0x9,0x66,0xf2,0x33,0x22,0x75, - 0x13,0x0,0x9,0xc4,0x3b,0x97,0x28,0x36,0xf9,0x61,0x17,0xae,0x55,0xb1,0x9,0x41, - 0x72,0x31,0x29,0xf5,0x5e,0x9d,0xcb,0x40,0x6f,0xb3,0x37,0x4d,0xe8,0x6c,0x5f,0xd9, - 0x6a,0x77,0x3c,0x97,0x58,0xeb,0x24,0x9e,0x2d,0x97,0xf9,0x71,0xa0,0xc0,0xe8,0x36, - 0x9c,0x71,0xad,0xd1,0x5e,0x6b,0xa3,0x34,0xd,0x4f,0xa,0xe0,0xb3,0x7f,0xc8,0x85, - 0x90,0x1,0x85,0xa0,0x80,0xa,0x79,0xc9,0x3b,0x5a,0xb7,0x16,0x10,0x4d,0x22,0x38, - 0x67,0x7e,0xca,0x73,0xf0,0x15,0x6,0xc1,0xc7,0xfc,0xc0,0xbb,0x0,0xa6,0x7f,0x64, - 0x3a,0xc6,0xac,0xab,0x18,0xdb,0x86,0xd5,0xfc,0x65,0xae,0x63,0xa5,0x5b,0x6,0x19, - 0x90,0x6d,0x21,0x4,0x1,0x21,0xec,0x4f,0xcd,0x32,0x8a,0x1a,0x86,0x29,0x90,0x96, - 0x8d,0xc3,0x18,0x4c,0x4c,0xbb,0x58,0xf,0xa1,0xd,0x4b,0x41,0xa4,0xae,0xe1,0x6b, - 0xf0,0x4a,0x9d,0xdf,0xa9,0x73,0x6a,0xdb,0xce,0xb5,0x36,0xe8,0xfa,0xbd,0x96,0x54, - 0xed,0xa8,0xc6,0xf5,0xdc,0x1e,0xfb,0x24,0x56,0xc5,0xb8,0x45,0x2c,0xaf,0x6f,0xc6, - 0x3a,0x51,0xb4,0xe,0x6c,0x5,0x1a,0x97,0xcf,0xb5,0x9,0xcc,0xb0,0xb4,0xad,0x18, - 0xf4,0x64,0x65,0x12,0x85,0x69,0x1b,0x10,0xbb,0xbc,0x48,0x2a,0x16,0xc4,0x5,0x86, - 0x2a,0x9,0x77,0x77,0x97,0x39,0xbd,0x55,0x45,0x5,0x17,0x6d,0xbc,0x5c,0x86,0x89, - 0xa5,0x6f,0x55,0x19,0xc6,0x61,0x19,0x76,0xc0,0x35,0x14,0xde,0xec,0x4f,0xc7,0xab, - 0xf9,0xef,0xb7,0x3f,0xb5,0x95,0x6d,0x14,0xcd,0xff,0x9,0x5d,0x77,0x57,0xb1,0x1a, - 0x81,0x70,0x9,0xfd,0xe4,0x62,0xd2,0x56,0xdb,0xa6,0x6d,0x8c,0xe6,0x26,0xa5,0x84, - 0xe5,0x4d,0xb2,0x5,0x4b,0x99,0xc7,0x8a,0x1f,0x8e,0xdb,0x14,0x42,0xb7,0x65,0xc, - 0x84,0xcb,0xd3,0x4e,0x75,0x4a,0x2b,0xb5,0xcd,0xc3,0xcb,0xe8,0xe3,0x4d,0x1c,0x6d, - 0x13,0x33,0xc9,0x7d,0x57,0x82,0x85,0x7f,0x36,0x8b,0xf4,0x2a,0xf0,0x4a,0x69,0x64, - 0x9e,0x8e,0x72,0x7d,0xd3,0x53,0x6c,0xe,0xf0,0x6a,0xdd,0xd6,0xc9,0x83,0x2d,0x24, - 0x65,0xaa,0x6e,0xfe,0x1e,0xde,0xed,0x97,0xce,0xbb,0x52,0x41,0xf6,0xd5,0x76,0xbb, - 0x15,0xbd,0xaf,0xc3,0xbd,0x54,0x62,0x25,0x2f,0xd6,0x33,0x6a,0xab,0x33,0xdc,0xd4, - 0x47,0xa8,0x5e,0x1,0xd0,0x76,0x5f,0x24,0xd1,0x26,0x4c,0x53,0x14,0x7d,0xb2,0x53, - 0x6b,0xa9,0x6e,0x26,0x2c,0x91,0x26,0x11,0x34,0xef,0x8f,0xc3,0x62,0x97,0x4d,0xee, - 0x21,0x1c,0xb6,0xdb,0x3c,0x2b,0x2c,0x42,0xf5,0xdc,0xc2,0x5d,0x9e,0x66,0x45,0xe8, - 0x42,0x3d,0xe2,0x5e,0xc0,0x53,0x1d,0xec,0x4d,0xee,0xdc,0xe6,0x87,0x6c,0xec,0xa8, - 0x76,0xfb,0xfb,0xe5,0x47,0xb8,0xaa,0x6,0xe7,0x37,0xbb,0xf8,0x5b,0xb8,0x3e,0x83, - 0xd0,0x50,0xd3,0xe4,0x66,0x9d,0x5f,0xbb,0xf5,0xe7,0x28,0x3f,0xcd,0xf,0x6,0xd8, - 0x87,0x44,0x62,0xbb,0x9f,0x87,0x24,0x42,0xad,0xf3,0xc3,0xc3,0x22,0xbb,0x3c,0xc9, - 0xca,0xc7,0x56,0xfa,0xeb,0xba,0xbc,0x1a,0x93,0xa8,0x68,0x83,0x33,0x56,0x66,0x3a, - 0x47,0xc3,0xba,0x59,0x9e,0xc1,0xb5,0xb9,0xdc,0x7f,0xad,0xab,0xbd,0xca,0x62,0xb0, - 0x5c,0xe1,0xfc,0x9a,0xa4,0x45,0x91,0x8f,0x5a,0xe0,0x21,0x67,0xbb,0x5c,0xd5,0xca, - 0x9a,0xf0,0xec,0x87,0xeb,0xdb,0x73,0x2f,0xea,0x45,0xec,0x57,0x3a,0xd0,0xd0,0x3d, - 0x77,0x4a,0x43,0x8,0x16,0x8f,0xba,0xe7,0xd8,0x1b,0xea,0xef,0x6a,0xa7,0xf3,0x78, - 0x1f,0x99,0x34,0x36,0xf4,0xcb,0xef,0x54,0x7c,0x9b,0x14,0x15,0x2a,0x63,0x8a,0xb5, - 0xfa,0x63,0x9f,0xc0,0x8c,0x6f,0xd2,0xfc,0x6b,0xe,0x59,0x58,0x3d,0xad,0xce,0x57, - 0xe5,0xe7,0x37,0xfb,0x5d,0x28,0x28,0x9d,0xdc,0x5b,0x93,0x1a,0x6f,0x28,0x9e,0x76, - 0xd3,0xef,0x36,0xa1,0x56,0xaf,0xd2,0xe4,0xae,0xf,0x86,0x75,0xbd,0xda,0xd5,0x9a, - 0x87,0x89,0xde,0xdd,0x71,0xed,0x36,0x37,0x8b,0x1d,0xad,0x2f,0x6a,0x9c,0x7c,0xbf, - 0xdb,0xe6,0xb1,0xaa,0x6b,0x95,0xf3,0xdb,0x33,0xd,0x97,0xa,0x6e,0xf1,0xb7,0x86, - 0xe7,0x90,0xde,0x45,0x5f,0x57,0x36,0xf5,0x8a,0xbb,0xb0,0xdc,0x34,0x47,0xaa,0x5f, - 0x52,0xda,0x17,0x13,0x44,0x31,0xf7,0xe0,0x97,0x5f,0xd,0x9f,0xa7,0x4c,0x7d,0x30, - 0x87,0x7b,0xe5,0xc5,0xf3,0xcb,0xf7,0x8c,0x97,0x96,0xdb,0x7b,0xe3,0xb1,0x43,0xbd, - 0x4f,0xd5,0x5c,0xdd,0xab,0x2c,0x8f,0xe3,0xab,0xaa,0x94,0x98,0x67,0x79,0xa6,0xea, - 0xef,0xaa,0x22,0x4,0xe1,0x7a,0x68,0xca,0x78,0x38,0xc4,0x1c,0xcc,0x5c,0xf6,0x69, - 0x1f,0x21,0x3f,0xcd,0xc1,0xc2,0x4a,0x5f,0x6d,0x43,0x7d,0xa7,0x74,0xa5,0xa4,0xfa, - 0x9e,0x15,0x65,0xa8,0xcb,0x1,0x65,0x9b,0xc4,0x83,0xb1,0xca,0xe2,0xc1,0xb2,0x56, - 0x55,0x9a,0xc0,0x9f,0x39,0xc1,0xd,0x31,0xe,0xa1,0x12,0xd3,0x3a,0x3c,0xd,0x44, - 0xd,0xb5,0x7a,0x7d,0x9a,0xb7,0x92,0xdd,0x21,0xef,0x93,0x22,0x59,0x26,0xa9,0x19, - 0xd8,0xcf,0x54,0x5d,0xc5,0x49,0xb1,0x3,0xa8,0xe7,0x49,0x66,0x76,0x7e,0x95,0x43, - 0x49,0xb2,0x82,0x3c,0xde,0xf0,0xdb,0xea,0x3,0x2c,0xf2,0x8b,0x43,0xa0,0x49,0x92, - 0xcc,0xf7,0x1c,0xca,0x10,0x23,0xd4,0x73,0x5e,0x3b,0x1e,0x82,0xa6,0xc1,0x87,0x76, - 0xc2,0xd0,0x2,0xc,0x55,0xbf,0x43,0x1c,0x6a,0xea,0x7f,0x22,0x84,0x67,0xbe,0x7d, - 0x84,0x85,0x15,0x85,0x6f,0x9,0x85,0x65,0x40,0x65,0xe0,0xf8,0xc8,0xc7,0xd8,0x27, - 0x44,0x38,0x8c,0x38,0xa6,0x21,0x13,0x1,0xa8,0x85,0xef,0xd7,0xe,0xe5,0x20,0x24, - 0xfc,0x40,0x9a,0x21,0xc3,0x15,0xab,0x3f,0xb7,0xa1,0xf5,0x54,0x77,0xa4,0x7a,0x65, - 0xe1,0x50,0x1,0x3b,0x13,0x40,0xed,0x36,0x6,0xd,0x48,0x7f,0xf3,0x6f,0x1d,0x28, - 0xb2,0x2c,0x21,0x40,0xd5,0x61,0x60,0x4c,0xa1,0xe4,0xc2,0xd2,0x90,0x28,0x67,0x3e, - 0xa3,0x86,0x46,0x28,0xf6,0x39,0x35,0x34,0x33,0xf,0xf7,0x36,0x5c,0x93,0xcc,0x54, - 0xf,0x5,0x44,0xf8,0x5e,0xd0,0xd2,0xcc,0xc3,0x52,0x10,0x8,0x4e,0xfa,0xca,0xbc, - 0x6,0xc0,0x6a,0xc9,0xb7,0x97,0x90,0x7e,0x72,0x6,0x15,0x9f,0x71,0xfc,0x40,0x8, - 0xdc,0x35,0xa0,0x83,0x50,0x68,0xab,0x3f,0x88,0x30,0x53,0x33,0x41,0x8d,0x1a,0xd9, - 0x9f,0x11,0x25,0xdc,0x1b,0x5a,0x93,0x21,0x81,0x7d,0x29,0xa5,0x98,0x12,0xf3,0xa8, - 0x41,0x78,0xe0,0xc3,0x86,0x2,0x24,0x25,0x93,0x7e,0x4d,0x65,0x94,0x72,0x59,0x53, - 0x9,0xec,0x63,0xa,0x34,0x41,0x88,0xc,0xcc,0xde,0xa1,0xc5,0x60,0x44,0x62,0xe8, - 0x19,0xa1,0xd7,0x8,0xe0,0x7c,0xdc,0x20,0x1,0x28,0xfb,0x80,0x98,0x60,0x53,0x3, - 0x2f,0x87,0x86,0x1e,0x5c,0x82,0x22,0x50,0x49,0x7c,0x39,0x25,0x18,0x79,0x38,0xa0, - 0x9e,0xef,0x48,0xc4,0x40,0x8,0xba,0xc4,0x29,0x1,0xed,0x18,0xfc,0x41,0x80,0xce, - 0xb1,0x4d,0xf5,0x20,0xb9,0x88,0x7d,0x50,0x86,0x29,0xf9,0xd2,0xd0,0x37,0xcf,0x15, - 0x4f,0x1a,0xfa,0x90,0xdd,0xb2,0xf8,0x22,0xf6,0x2b,0xea,0x7f,0x7d,0xec,0x8f,0xbb, - 0xdc,0xb9,0x5,0x20,0xfe,0x69,0xc0,0x98,0x1c,0x33,0x81,0xdd,0xde,0x97,0xc2,0xdd, - 0xbd,0x87,0xf7,0x11,0xaf,0xff,0x23,0x87,0x89,0xff,0xdb,0xac,0x4b,0x29,0xf2,0x84, - 0xf4,0x2,0xf,0x82,0x8f,0xfb,0xd2,0x83,0x5c,0xfb,0x16,0xa2,0xc7,0xc3,0x94,0x53, - 0x4a,0xc,0x51,0x42,0xf8,0x48,0x4b,0x4,0xbe,0x69,0xdc,0x4d,0xf0,0x78,0xc4,0xe3, - 0x92,0x0,0x95,0x23,0x61,0xfc,0x1e,0x13,0x4b,0xa5,0x3e,0x24,0xc3,0x2a,0xf7,0x61, - 0x88,0x1d,0xa0,0x42,0xa6,0xa4,0x1c,0xcb,0xc0,0x50,0x21,0xa5,0x9a,0xe0,0x37,0x21, - 0xd,0xb2,0x98,0xf8,0x2c,0x30,0x54,0x33,0x4f,0x70,0x66,0x88,0x5c,0xfa,0x2,0x93, - 0x9a,0x78,0xb6,0xad,0xd1,0xdc,0xe5,0x75,0x2f,0x6a,0x9f,0x4f,0x57,0x90,0xb0,0x9a, - 0x8e,0x16,0xa,0xf3,0x6b,0xd3,0x54,0xde,0x3c,0xfb,0x37,0x29,0x6b,0x3d,0x39, - // /home/lixiang/work/kylin-assistant/plugins/systemmonitor/res/wave-back.png - 0x0,0x0,0xc,0x83, - 0x89, - 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0, - 0x0,0x2,0x58,0x0,0x0,0x0,0x64,0x8,0x6,0x0,0x0,0x0,0x5a,0x41,0x4e,0x23, - 0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65, - 0x0,0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67,0x65,0x52,0x65,0x61,0x64, - 0x79,0x71,0xc9,0x65,0x3c,0x0,0x0,0x3,0x26,0x69,0x54,0x58,0x74,0x58,0x4d,0x4c, - 0x3a,0x63,0x6f,0x6d,0x2e,0x61,0x64,0x6f,0x62,0x65,0x2e,0x78,0x6d,0x70,0x0,0x0, - 0x0,0x0,0x0,0x3c,0x3f,0x78,0x70,0x61,0x63,0x6b,0x65,0x74,0x20,0x62,0x65,0x67, - 0x69,0x6e,0x3d,0x22,0xef,0xbb,0xbf,0x22,0x20,0x69,0x64,0x3d,0x22,0x57,0x35,0x4d, - 0x30,0x4d,0x70,0x43,0x65,0x68,0x69,0x48,0x7a,0x72,0x65,0x53,0x7a,0x4e,0x54,0x63, - 0x7a,0x6b,0x63,0x39,0x64,0x22,0x3f,0x3e,0x20,0x3c,0x78,0x3a,0x78,0x6d,0x70,0x6d, - 0x65,0x74,0x61,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78,0x3d,0x22,0x61,0x64,0x6f, - 0x62,0x65,0x3a,0x6e,0x73,0x3a,0x6d,0x65,0x74,0x61,0x2f,0x22,0x20,0x78,0x3a,0x78, - 0x6d,0x70,0x74,0x6b,0x3d,0x22,0x41,0x64,0x6f,0x62,0x65,0x20,0x58,0x4d,0x50,0x20, - 0x43,0x6f,0x72,0x65,0x20,0x35,0x2e,0x36,0x2d,0x63,0x31,0x33,0x38,0x20,0x37,0x39, - 0x2e,0x31,0x35,0x39,0x38,0x32,0x34,0x2c,0x20,0x32,0x30,0x31,0x36,0x2f,0x30,0x39, - 0x2f,0x31,0x34,0x2d,0x30,0x31,0x3a,0x30,0x39,0x3a,0x30,0x31,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x22,0x3e,0x20,0x3c,0x72,0x64,0x66,0x3a,0x52,0x44,0x46,0x20, - 0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x72,0x64,0x66,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a, - 0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x31,0x39,0x39, - 0x39,0x2f,0x30,0x32,0x2f,0x32,0x32,0x2d,0x72,0x64,0x66,0x2d,0x73,0x79,0x6e,0x74, - 0x61,0x78,0x2d,0x6e,0x73,0x23,0x22,0x3e,0x20,0x3c,0x72,0x64,0x66,0x3a,0x44,0x65, - 0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x72,0x64,0x66,0x3a,0x61,0x62, - 0x6f,0x75,0x74,0x3d,0x22,0x22,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78,0x6d,0x70, - 0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x6e,0x73,0x2e,0x61,0x64,0x6f,0x62, - 0x65,0x2e,0x63,0x6f,0x6d,0x2f,0x78,0x61,0x70,0x2f,0x31,0x2e,0x30,0x2f,0x22,0x20, - 0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78,0x6d,0x70,0x4d,0x4d,0x3d,0x22,0x68,0x74,0x74, - 0x70,0x3a,0x2f,0x2f,0x6e,0x73,0x2e,0x61,0x64,0x6f,0x62,0x65,0x2e,0x63,0x6f,0x6d, - 0x2f,0x78,0x61,0x70,0x2f,0x31,0x2e,0x30,0x2f,0x6d,0x6d,0x2f,0x22,0x20,0x78,0x6d, - 0x6c,0x6e,0x73,0x3a,0x73,0x74,0x52,0x65,0x66,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a, - 0x2f,0x2f,0x6e,0x73,0x2e,0x61,0x64,0x6f,0x62,0x65,0x2e,0x63,0x6f,0x6d,0x2f,0x78, - 0x61,0x70,0x2f,0x31,0x2e,0x30,0x2f,0x73,0x54,0x79,0x70,0x65,0x2f,0x52,0x65,0x73, - 0x6f,0x75,0x72,0x63,0x65,0x52,0x65,0x66,0x23,0x22,0x20,0x78,0x6d,0x70,0x3a,0x43, - 0x72,0x65,0x61,0x74,0x6f,0x72,0x54,0x6f,0x6f,0x6c,0x3d,0x22,0x41,0x64,0x6f,0x62, - 0x65,0x20,0x50,0x68,0x6f,0x74,0x6f,0x73,0x68,0x6f,0x70,0x20,0x43,0x43,0x20,0x32, - 0x30,0x31,0x37,0x20,0x28,0x57,0x69,0x6e,0x64,0x6f,0x77,0x73,0x29,0x22,0x20,0x78, - 0x6d,0x70,0x4d,0x4d,0x3a,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x49,0x44,0x3d, - 0x22,0x78,0x6d,0x70,0x2e,0x69,0x69,0x64,0x3a,0x33,0x33,0x35,0x43,0x38,0x31,0x33, - 0x39,0x46,0x37,0x36,0x41,0x31,0x31,0x45,0x37,0x42,0x34,0x41,0x36,0x46,0x37,0x38, - 0x42,0x35,0x36,0x32,0x30,0x33,0x42,0x31,0x34,0x22,0x20,0x78,0x6d,0x70,0x4d,0x4d, - 0x3a,0x44,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x49,0x44,0x3d,0x22,0x78,0x6d,0x70, - 0x2e,0x64,0x69,0x64,0x3a,0x33,0x33,0x35,0x43,0x38,0x31,0x33,0x41,0x46,0x37,0x36, - 0x41,0x31,0x31,0x45,0x37,0x42,0x34,0x41,0x36,0x46,0x37,0x38,0x42,0x35,0x36,0x32, - 0x30,0x33,0x42,0x31,0x34,0x22,0x3e,0x20,0x3c,0x78,0x6d,0x70,0x4d,0x4d,0x3a,0x44, - 0x65,0x72,0x69,0x76,0x65,0x64,0x46,0x72,0x6f,0x6d,0x20,0x73,0x74,0x52,0x65,0x66, - 0x3a,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x49,0x44,0x3d,0x22,0x78,0x6d,0x70, - 0x2e,0x69,0x69,0x64,0x3a,0x33,0x33,0x35,0x43,0x38,0x31,0x33,0x37,0x46,0x37,0x36, - 0x41,0x31,0x31,0x45,0x37,0x42,0x34,0x41,0x36,0x46,0x37,0x38,0x42,0x35,0x36,0x32, - 0x30,0x33,0x42,0x31,0x34,0x22,0x20,0x73,0x74,0x52,0x65,0x66,0x3a,0x64,0x6f,0x63, - 0x75,0x6d,0x65,0x6e,0x74,0x49,0x44,0x3d,0x22,0x78,0x6d,0x70,0x2e,0x64,0x69,0x64, - 0x3a,0x33,0x33,0x35,0x43,0x38,0x31,0x33,0x38,0x46,0x37,0x36,0x41,0x31,0x31,0x45, - 0x37,0x42,0x34,0x41,0x36,0x46,0x37,0x38,0x42,0x35,0x36,0x32,0x30,0x33,0x42,0x31, - 0x34,0x22,0x2f,0x3e,0x20,0x3c,0x2f,0x72,0x64,0x66,0x3a,0x44,0x65,0x73,0x63,0x72, - 0x69,0x70,0x74,0x69,0x6f,0x6e,0x3e,0x20,0x3c,0x2f,0x72,0x64,0x66,0x3a,0x52,0x44, - 0x46,0x3e,0x20,0x3c,0x2f,0x78,0x3a,0x78,0x6d,0x70,0x6d,0x65,0x74,0x61,0x3e,0x20, - 0x3c,0x3f,0x78,0x70,0x61,0x63,0x6b,0x65,0x74,0x20,0x65,0x6e,0x64,0x3d,0x22,0x72, - 0x22,0x3f,0x3e,0x5f,0x3a,0xd,0x60,0x0,0x0,0x8,0xf3,0x49,0x44,0x41,0x54,0x78, - 0xda,0xec,0xdd,0x6d,0xb3,0x55,0x65,0x19,0x7,0xf0,0xb5,0xf1,0x20,0x2,0x52,0x11, - 0x90,0x88,0x20,0x8c,0x49,0x1,0x6a,0xa8,0x81,0x91,0xe6,0x43,0xa4,0x25,0x35,0xe9, - 0xcb,0x9c,0xde,0xf7,0x5,0xfa,0x8,0x7d,0x19,0xed,0xa5,0xcd,0x64,0xa5,0x90,0x96, - 0xa0,0x60,0x6,0x3e,0x10,0xf,0x22,0x20,0xa,0xa8,0x94,0x98,0x20,0xc6,0x43,0x7a, - 0xba,0xef,0x59,0xd7,0x8e,0xe5,0xe2,0x74,0x8,0xe7,0xe6,0xb0,0xf7,0x5e,0xbf,0xdf, - 0xcc,0x35,0x67,0x38,0x9c,0x19,0xce,0xbe,0xce,0x3e,0x17,0xff,0xb5,0xd6,0xbd,0xee, - 0xd5,0x1b,0x1f,0x1f,0xaf,0x0,0x0,0x28,0x67,0x9a,0x16,0x0,0x0,0x94,0x35,0xf6, - 0xc8,0x13,0xbb,0x75,0x1,0x2e,0xcf,0xc1,0xcb,0x97,0x53,0x7d,0x29,0xd5,0xec,0x54, - 0xb3,0x52,0xcd,0x4c,0x75,0x75,0xaa,0xe9,0xa9,0xae,0x8a,0xaf,0xc9,0xa7,0x90,0x3f, - 0x4b,0xf5,0xef,0x54,0xe7,0x52,0x9d,0x4e,0xf5,0xaf,0x54,0xa7,0x52,0x9d,0x4c,0x75, - 0x22,0xd5,0x27,0xda,0x9,0x23,0xab,0x3f,0x27,0xae,0x6d,0xcc,0x89,0x19,0x31,0x27, - 0xc6,0x52,0xf5,0xe2,0xeb,0xf2,0x9c,0xf8,0x34,0xd5,0xd9,0x54,0x67,0x62,0x56,0xe4, - 0x39,0xf1,0x71,0xcc,0x89,0x13,0x5a,0x39,0xb5,0x7e,0xf3,0xd8,0xca,0xc9,0x3,0x96, - 0x16,0xc1,0x25,0x99,0x93,0x6a,0x59,0xaa,0x1b,0x53,0x2d,0x8e,0xba,0x3e,0xd5,0xc2, - 0x54,0x5f,0x4b,0x35,0x3f,0xd5,0xbc,0x18,0x98,0xa5,0xe4,0xe0,0x75,0x3c,0xd5,0x7, - 0xa9,0xfe,0x9e,0xea,0xfd,0x54,0xef,0xa6,0x3a,0x9a,0xea,0x70,0xaa,0x77,0x52,0x1d, - 0x4a,0xf5,0xb6,0x1f,0xf,0xc,0x84,0x19,0x31,0x27,0x96,0xa6,0x5a,0x92,0xea,0x86, - 0x54,0x8b,0x1a,0x73,0x62,0x41,0xcc,0x89,0xb9,0x5,0xff,0xcd,0xf1,0xd6,0x9c,0x38, - 0x96,0xea,0xbd,0xd6,0x9c,0xc8,0x33,0xe2,0x60,0x1c,0xd0,0x71,0x99,0x9,0x58,0x70, - 0xa1,0x7c,0x76,0x69,0x55,0xaa,0x7c,0x78,0xb2,0x22,0xd5,0x37,0x52,0xdd,0x9c,0xea, - 0xeb,0x11,0xa0,0xa6,0x5a,0x3e,0x92,0xbd,0x2e,0x6a,0x32,0xf9,0x8,0xf7,0x40,0xaa, - 0x37,0x53,0xed,0x4b,0xb5,0x37,0xd5,0x9e,0x54,0xbb,0x22,0x90,0x1,0x65,0x2d,0x8f, - 0x59,0xd1,0x9f,0x13,0xcb,0x63,0x4e,0x2c,0xba,0x2,0xdf,0x4b,0x2f,0x42,0xdb,0xbc, - 0xf8,0x5e,0x26,0x93,0xc3,0xd6,0xfe,0xc6,0x9c,0xd8,0x1b,0x73,0xe2,0x80,0x1f,0xa9, - 0x80,0x5,0xa5,0xe4,0xb3,0x4f,0x77,0xa6,0xba,0x3d,0xd5,0xb7,0xa2,0x56,0xc,0xe9, - 0x6b,0x99,0x16,0x41,0x30,0xd7,0xc3,0xad,0xbf,0xfb,0x30,0xd5,0xce,0x54,0xaf,0xa5, - 0x7a,0x25,0x6a,0x7b,0x84,0x32,0x60,0x72,0x5f,0x69,0xcc,0x89,0xd5,0xa9,0x6e,0x8b, - 0x1a,0xd6,0xff,0x43,0x97,0x44,0x3d,0xd0,0xfa,0xfc,0xe9,0xc6,0x9c,0x78,0xb5,0x31, - 0x27,0x3e,0xf6,0x16,0x10,0xb0,0x60,0x32,0x79,0xad,0xc3,0xba,0x54,0x77,0x45,0xad, - 0xa9,0xea,0x53,0xf6,0x5d,0x90,0x2f,0x45,0xdc,0x1b,0xd5,0xb4,0x23,0xd5,0xcb,0xa9, - 0x5e,0x4a,0xb5,0x2d,0xd5,0xeb,0xde,0x26,0x74,0xdc,0xf4,0x9,0xe6,0xc4,0x4d,0x1d, - 0x79,0xed,0xd7,0xc4,0xeb,0x5d,0xd3,0xfa,0xfc,0x1b,0xad,0x39,0xb1,0xd5,0xdb,0x44, - 0xc0,0xa2,0xdb,0xf2,0x69,0xf2,0xef,0xa5,0xba,0x27,0xd5,0xdd,0xd5,0xf0,0x9e,0x99, - 0xba,0x9c,0xee,0x88,0xfa,0x45,0xfc,0x39,0x2f,0xa8,0x7f,0x31,0xd5,0xb,0xa9,0x36, - 0x47,0x59,0x64,0xcf,0x28,0xbb,0xa1,0x35,0x27,0xbe,0xad,0x25,0x13,0xce,0xd2,0x5c, - 0x3f,0x6f,0x7c,0x6e,0x6b,0xcc,0x89,0x2d,0x31,0x27,0x8e,0x69,0xd3,0x85,0x1,0xeb, - 0x57,0xa9,0x9e,0x8b,0x72,0xb9,0x80,0x61,0x76,0x6b,0x55,0x9f,0xf2,0xbe,0x3f,0xd5, - 0x7d,0x55,0xbd,0x98,0x94,0x4b,0x93,0xef,0x62,0xfa,0x41,0x54,0xdf,0x5f,0x53,0xfd, - 0xb9,0x31,0x27,0xdc,0xad,0xc4,0x30,0x5b,0xd6,0x9a,0x13,0x37,0x69,0xc9,0x17,0xb2, - 0x2e,0xea,0x97,0xf1,0xe7,0xbd,0x31,0x27,0xfe,0x14,0x73,0xe2,0x48,0xd7,0x1b,0xd4, - 0xfb,0xe9,0xe3,0xbb,0x9a,0x3b,0x8d,0xe6,0xc6,0xfc,0x31,0x6a,0xb3,0xf7,0xf,0x3, - 0x2e,0xaf,0x35,0x7a,0x30,0xd5,0xfa,0x54,0xdf,0xaf,0xae,0xcc,0x2,0xf4,0x2e,0xda, - 0x1e,0x33,0x62,0x53,0xd4,0x39,0x2d,0x61,0x80,0x2d,0x8c,0x3,0x86,0xf5,0x51,0xcb, - 0xb4,0x64,0x4a,0xec,0x6b,0xcd,0x89,0xe3,0xa3,0xf6,0x2,0x2f,0xb6,0x4d,0x43,0x3b, - 0x60,0x35,0xe5,0x7d,0x36,0x9e,0x69,0x94,0xd,0xb3,0xb8,0xd2,0xf2,0x3a,0xa2,0x1f, - 0xa6,0x7a,0x28,0x82,0xd5,0x52,0x2d,0x19,0x8,0xf9,0xc0,0x6c,0x63,0xaa,0xa7,0xab, - 0x7a,0x8d,0x6,0x5c,0x49,0x57,0xc5,0x9c,0xe8,0xcf,0x8a,0x5b,0xb4,0x64,0x20,0xec, - 0x68,0xe4,0x89,0x8d,0x5d,0xf,0x58,0x6d,0x79,0x1f,0x8d,0x3f,0xa4,0xfa,0x7d,0x7c, - 0x3c,0xe9,0xfd,0xc2,0x14,0xc8,0x6b,0x23,0x7e,0x14,0xb5,0x56,0x3b,0x6,0xde,0x47, - 0x31,0x1f,0xfa,0xb3,0xe2,0xa8,0x96,0x30,0x5,0xf2,0xdd,0xbf,0xf,0xc7,0x9c,0x58, - 0xaf,0x1d,0x3,0x6f,0xbc,0x35,0x27,0xf6,0x74,0x3d,0x60,0xb5,0x6d,0x89,0xc6,0xfc, - 0xae,0xaa,0xd7,0x68,0x40,0x9,0x79,0xff,0x98,0xd,0x31,0x2c,0xf3,0xc7,0xd9,0x5a, - 0x32,0xd4,0x5e,0x6f,0xcc,0x89,0x67,0xb5,0x83,0x42,0xae,0x8d,0xf9,0xd0,0x9f,0x15, - 0xd7,0x6b,0xc9,0x50,0x3b,0xd4,0x98,0x13,0xb9,0xce,0x76,0x3d,0x60,0x35,0x1d,0x8b, - 0xa6,0x3c,0x15,0x65,0xcf,0xc,0x2e,0x45,0xde,0x3a,0xe0,0xc7,0x31,0x2c,0x57,0x6b, - 0xc7,0xc8,0x3a,0xdd,0x9a,0x13,0xce,0x6e,0x71,0x29,0x56,0x37,0xe6,0xc4,0xbd,0xda, - 0x31,0xd2,0x36,0x35,0xe6,0xc4,0xc0,0x9e,0xdd,0x9a,0xaa,0x80,0xd5,0xf6,0x7c,0x34, - 0xe6,0xb7,0x95,0x7d,0x75,0xb8,0xd0,0xfc,0x18,0x94,0xb9,0x7e,0x12,0x47,0xa3,0x74, - 0xcf,0xab,0x8d,0x39,0xb1,0x45,0x3b,0x68,0xb9,0xba,0x35,0x27,0x16,0x69,0x49,0x27, - 0x1d,0x6c,0x84,0xad,0xa7,0x4,0xac,0xcf,0x3b,0xdc,0x18,0xa2,0xf9,0xa3,0x67,0x20, - 0x75,0xd3,0xda,0xc6,0xa0,0xb4,0x96,0x8a,0xb6,0x13,0x8d,0x1,0x9a,0x67,0xc5,0x71, - 0x2d,0xe9,0xa4,0x6f,0x36,0x42,0xd5,0x83,0xda,0xc1,0x4,0x9a,0x73,0xe2,0xad,0xae, - 0x7,0xac,0xb6,0x67,0xa2,0x39,0xf9,0x52,0xc1,0x5e,0xef,0x95,0x91,0x95,0x1f,0x76, - 0xbc,0xa1,0x31,0x2c,0x6d,0xa1,0xc0,0xa5,0xd8,0xd6,0x98,0x13,0x7f,0xd1,0x8e,0x91, - 0xd6,0x9c,0x13,0xf6,0xa4,0xe2,0x52,0xec,0x6e,0xcc,0x89,0x4d,0x2,0xd6,0xe7,0x1d, - 0xa8,0xce,0x2f,0x6a,0xcb,0xb,0xdc,0x3e,0xf5,0x7e,0x19,0x6a,0x79,0x7,0xe4,0xfe, - 0xe2,0xf4,0x7b,0xb4,0x83,0x42,0xfe,0xd1,0x9a,0x13,0x1f,0x6a,0xc9,0x50,0x5b,0xde, - 0x98,0x13,0x1b,0xb4,0x83,0x42,0xce,0x36,0xe6,0x44,0xae,0xb7,0xbb,0x1e,0xb0,0xda, - 0xf2,0xde,0x18,0xfd,0x5b,0x37,0xad,0xdd,0x1a,0x7c,0xb,0xaa,0x7a,0xaf,0x99,0xfe, - 0xed,0xd1,0xb,0xb4,0x84,0x29,0xf0,0x52,0x75,0x7e,0xbb,0x98,0x17,0xb4,0x63,0xe0, - 0xcd,0xa8,0xce,0x6f,0xb5,0x92,0x67,0x85,0xb3,0x54,0x4c,0x85,0xdd,0x8d,0x3c,0x91, - 0xab,0x78,0xd6,0x19,0xb6,0x80,0xd5,0xf4,0x6e,0x55,0x5f,0x4e,0x7c,0x3a,0x82,0xd7, - 0xfb,0xde,0x2f,0x3,0x21,0xaf,0x8b,0x78,0x28,0xea,0xe,0xed,0xe0,0xa,0x3b,0x15, - 0x33,0xa2,0xbf,0x81,0xe1,0x9b,0x5a,0x32,0x10,0xbe,0xd3,0x98,0x13,0xf7,0x69,0x7, - 0x3,0x60,0x63,0x23,0x4f,0xec,0xe8,0x7a,0xc0,0x6a,0xdb,0x59,0xd5,0xd7,0x58,0xfb, - 0x8f,0xf2,0xb1,0x15,0xc4,0xd4,0xd,0xca,0xbc,0x71,0x5f,0xfb,0xf9,0x74,0x30,0x88, - 0xe,0x55,0xe7,0x1f,0xcd,0xf1,0x6c,0x1c,0xa8,0x71,0xf9,0xad,0x6a,0xcc,0x89,0x7c, - 0x10,0xe6,0xce,0x60,0x6,0xd9,0x7,0xad,0x39,0xb1,0xaf,0xeb,0x1,0xab,0xed,0xe5, - 0xaa,0x7e,0x44,0x47,0xae,0xfc,0x80,0xc9,0x8f,0xbc,0x67,0x8a,0x58,0x17,0x47,0x9c, - 0xf,0x44,0xcd,0xd4,0x12,0x86,0x58,0xbe,0x91,0xe6,0xb9,0xc6,0x9c,0x38,0xa2,0x25, - 0x45,0xdc,0x1a,0x73,0xe2,0xfe,0x98,0x13,0x1e,0xac,0xce,0x30,0x3b,0x12,0x41,0xab, - 0x3f,0x27,0xde,0xe8,0x7a,0xc0,0x6a,0xcb,0x6b,0xb6,0xf2,0x3,0xaa,0xf3,0x7e,0x3a, - 0x2f,0x56,0xf5,0x2,0x7a,0x26,0x97,0xef,0xf4,0xbb,0x3b,0x2a,0x2f,0x4a,0xcf,0x9b, - 0xf7,0x4d,0xd7,0x16,0x46,0xd8,0xc1,0x98,0x13,0x9b,0x63,0x4e,0x58,0xeb,0x79,0x71, - 0xf9,0xd9,0x7e,0xdf,0x8d,0x19,0x91,0x2b,0x3f,0xbe,0x6a,0xae,0xb6,0x30,0xc2,0xf2, - 0xe6,0xe9,0xcf,0x47,0x9e,0xc8,0xeb,0x3c,0xb7,0x7d,0xa1,0x80,0xf5,0xc8,0xe3,0xbb, - 0xc7,0x47,0xb8,0x41,0x5b,0xab,0x7a,0x41,0x6c,0xbe,0xcd,0x3b,0x9f,0xf1,0xea,0xf2, - 0xde,0x3a,0xbd,0xaa,0xbe,0xcb,0x2f,0xef,0x41,0x75,0x57,0x55,0x5f,0xfa,0x5b,0xe9, - 0xf7,0x88,0x8e,0x3b,0x15,0x73,0x62,0x5b,0x63,0x4e,0x1c,0xee,0x78,0x4f,0x56,0xc5, - 0x9c,0x58,0x1b,0x73,0x62,0x8d,0xb7,0x9,0x1d,0x37,0xde,0x9a,0x13,0xb9,0xf6,0x3d, - 0xf9,0xd8,0x8a,0x8b,0x4,0xac,0x27,0x46,0x36,0x60,0x4d,0x24,0xaf,0xcf,0xc8,0x8b, - 0xdb,0x5e,0xa9,0xea,0x5d,0xa4,0xf3,0xd1,0xeb,0xfe,0x11,0x7c,0x9d,0x79,0xcf,0xa9, - 0xdb,0xaa,0xfa,0x1,0xa8,0xf9,0xf1,0x12,0x79,0x31,0xfa,0xed,0x7e,0x47,0xe0,0xff, - 0x3e,0x38,0x6b,0xce,0x89,0xd7,0x52,0xfd,0x6d,0x4,0x5f,0xe7,0xec,0xd6,0x9c,0xc8, - 0x33,0xe2,0xce,0x54,0xd7,0x78,0xb,0xc0,0x45,0x9d,0x4c,0xb5,0xbd,0x35,0x27,0x76, - 0x3e,0xf9,0xb3,0x15,0x67,0xfe,0x1b,0xb0,0x1e,0xed,0x56,0xc0,0x9a,0x48,0x7e,0x3e, - 0xda,0xae,0xaa,0xbe,0xa5,0x33,0x3f,0xf3,0x68,0x5f,0x54,0xe,0x5e,0x83,0xbc,0xae, - 0x6b,0xac,0xaa,0x6f,0x77,0xbe,0xb9,0xaa,0xf7,0x95,0xc9,0x3b,0x20,0xaf,0x8c,0xa3, - 0x4f,0xeb,0x21,0xa0,0xbc,0xe6,0x9c,0x78,0xa3,0x31,0x27,0x8e,0xd,0xf8,0xf7,0xbd, - 0xb4,0x35,0x27,0x56,0xc4,0xac,0x58,0xea,0x47,0xa,0xc5,0xed,0x8f,0x59,0xb1,0xa7, - 0xf7,0xe8,0xaf,0x3b,0x1f,0xb0,0x26,0x93,0x37,0x34,0x7c,0xab,0xaa,0x37,0x2c,0xcb, - 0x97,0xd,0xf2,0x42,0xb8,0x7c,0x57,0xd2,0x7b,0x31,0x54,0xf3,0x6,0x88,0xf9,0x6e, - 0x84,0x53,0x5,0xff,0xcd,0xbc,0x6,0xea,0xab,0x55,0x7d,0x16,0x2a,0xef,0x2b,0x75, - 0x5d,0x55,0x3f,0x29,0x3e,0x3f,0x87,0x6b,0x71,0xaa,0x1b,0x63,0x30,0x2e,0xf6,0xe3, - 0x81,0x81,0x70,0xaa,0x31,0x27,0xde,0x89,0x39,0x71,0x74,0x82,0x39,0x51,0xf2,0x80, - 0x6d,0x5a,0xcc,0x89,0x79,0x8d,0x39,0xb1,0xb0,0x31,0x27,0x96,0xc4,0x9c,0x58,0x16, - 0x5f,0xb,0x4c,0xb1,0x31,0x2d,0x98,0xd4,0xdc,0xa8,0x8b,0xed,0xf7,0x74,0x2e,0x86, - 0x67,0x3e,0x65,0x98,0xb7,0x8f,0xf8,0xa4,0xaa,0xcf,0x8c,0x9d,0x8d,0xbf,0xcb,0x3b, - 0xd4,0xe7,0x20,0xdb,0x8b,0x61,0x97,0xfb,0x9e,0x1f,0x64,0x9a,0x37,0xe0,0x9b,0x55, - 0xd5,0xa7,0xea,0xe7,0x54,0xf5,0xa2,0xf3,0x59,0xda,0xe,0x43,0x25,0xff,0xfe,0xde, - 0x12,0x35,0x99,0x3c,0x3,0xfe,0x59,0xd5,0xcf,0x5d,0x6c,0xce,0x89,0x33,0x8d,0x39, - 0xf1,0x59,0x23,0x40,0x8d,0xc5,0x1,0x57,0xbe,0x64,0x37,0x33,0x66,0x43,0x7f,0x4e, - 0xcc,0xd1,0x76,0x18,0xf4,0x80,0xd5,0xd3,0x84,0x2,0xf2,0x10,0x9c,0x5f,0x79,0xde, - 0x1e,0xf0,0xbf,0xf5,0x1a,0x7,0x6d,0xc0,0xa8,0x7,0xac,0x9e,0x84,0x5,0x0,0x50, - 0x94,0x6b,0xf3,0x0,0x0,0x85,0x8d,0xf5,0x7a,0xce,0x60,0x1,0x0,0x14,0xd,0x58, - 0xae,0x10,0x2,0x0,0x14,0xe,0x58,0xd6,0x60,0x1,0x0,0x14,0xe,0x58,0xf2,0x15, - 0x0,0x40,0x59,0x16,0xb9,0x3,0x0,0x14,0x36,0x66,0x8d,0x3b,0x0,0x40,0xe1,0x80, - 0x55,0xb9,0x46,0x8,0x0,0x50,0x36,0x60,0x39,0x83,0x5,0x0,0x50,0x3c,0x60,0x49, - 0x58,0x0,0x0,0x25,0x59,0xe4,0xe,0x0,0x50,0xd8,0x58,0xe5,0xc,0x16,0x0,0x40, - 0xd9,0x80,0x25,0x5f,0x1,0x0,0x14,0xe,0x58,0x6e,0x22,0x4,0x0,0x28,0x1c,0xb0, - 0x3c,0x2a,0x7,0x0,0xa0,0x74,0xc0,0x92,0xaf,0x0,0x0,0xca,0x6,0x2c,0x8b,0xdc, - 0x1,0x0,0xa,0x7,0x2c,0xfb,0x60,0x1,0x0,0x94,0x65,0x1f,0x2c,0x0,0x80,0xc2, - 0xac,0xc1,0x2,0x0,0x28,0x1f,0xb0,0x24,0x2c,0x0,0x80,0xa2,0x1,0xcb,0x2e,0xd, - 0x0,0x0,0x85,0x3,0x96,0x7d,0xb0,0x0,0x0,0xa,0x7,0x2c,0xf9,0xa,0x0,0xa0, - 0x70,0xc0,0xb2,0x6,0xb,0x0,0xa0,0x78,0xc0,0xd2,0x4,0x0,0x80,0xa2,0x1,0xab, - 0x72,0x8d,0x10,0x0,0xa0,0x6c,0xc0,0x72,0x6,0xb,0x0,0xa0,0x70,0xc0,0xf2,0x2c, - 0x42,0x0,0x80,0xc2,0x1,0xcb,0x22,0x77,0x0,0x80,0xd2,0x1,0x4b,0xf,0x0,0x0, - 0xca,0x6,0x2c,0x6b,0xdc,0x1,0x0,0xa,0x7,0x2c,0x97,0x8,0x1,0x0,0x8a,0x7, - 0x2c,0x4d,0x0,0x0,0x28,0x1b,0xb0,0x5c,0x23,0x4,0x0,0x28,0x1b,0xb0,0x6c,0xd3, - 0x0,0x0,0x50,0x3c,0x60,0x69,0x2,0x0,0x40,0xd1,0x80,0xe5,0x4,0x16,0x0,0x40, - 0xe9,0x80,0xe5,0x14,0x16,0x0,0x40,0xe1,0x80,0x35,0x4d,0x13,0x0,0x0,0x8a,0x6, - 0x2c,0x8b,0xdc,0x1,0x0,0x4a,0x7,0x2c,0x97,0x8,0x1,0x0,0xca,0x6,0x2c,0x27, - 0xb0,0x0,0x0,0x4,0x2c,0x0,0x80,0x41,0xf,0x58,0x12,0x16,0x0,0x40,0x49,0xee, - 0x21,0x4,0x0,0x28,0xcc,0x22,0x77,0x0,0x80,0xd2,0x1,0xcb,0x15,0x42,0x0,0x80, - 0xe2,0x1,0x4b,0xc2,0x2,0x0,0x28,0x1a,0xb0,0x5c,0x21,0x4,0x0,0x28,0x1c,0xb0, - 0xe4,0x2b,0x0,0x80,0xc2,0x1,0xcb,0xa3,0x72,0x0,0x0,0x8a,0x7,0x2c,0x4d,0x0, - 0x0,0x28,0x1a,0xb0,0x2c,0x72,0x7,0x0,0x28,0x1d,0xb0,0xf4,0x0,0x0,0xa0,0x6c, - 0xc0,0xb2,0x6,0xb,0x0,0xa0,0x70,0xc0,0x12,0xaf,0x0,0x0,0xa,0x7,0x2c,0x8b, - 0xdc,0x1,0x0,0x4,0x2c,0x0,0x80,0xc1,0xe,0x58,0x3d,0x9,0xb,0x0,0xa0,0xa8, - 0x69,0x5a,0x0,0x0,0x50,0x96,0x7d,0xb0,0x0,0x0,0xca,0x7,0x2c,0x4d,0x0,0x0, - 0x28,0x1a,0xb0,0x2a,0x6b,0xb0,0x0,0x0,0xa,0x7,0x2c,0xf9,0xa,0x0,0xa0,0x28, - 0x8b,0xdc,0x1,0x0,0x4,0x2c,0x0,0x80,0xc1,0x66,0x91,0x3b,0x0,0x40,0x61,0xce, - 0x60,0x1,0x0,0x14,0x66,0x1f,0x2c,0x0,0x80,0xc2,0xfe,0x23,0xc0,0x0,0x3a,0x4e, - 0xcf,0x25,0x46,0x77,0x8b,0xe4,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42, - 0x60,0x82, - // /home/lixiang/work/kylin-assistant/plugins/systemmonitor/res/upload.svg - 0x0,0x0,0x8,0xa8, - 0x0, - 0x0,0x1d,0x7a,0x78,0x9c,0xe5,0x58,0x6d,0x6f,0xdb,0x38,0x12,0xfe,0xde,0x5f,0xa1, - 0x73,0x81,0x43,0x8b,0x8d,0x29,0x92,0x7a,0xa3,0x9c,0x38,0x8b,0x5e,0x83,0x2d,0x76, - 0xd1,0xdd,0x3b,0x6c,0x5a,0xdc,0xc7,0x3,0x2d,0xd1,0x36,0x1b,0x59,0xd4,0x51,0x72, - 0x6c,0xf7,0xd7,0xdf,0x90,0x7a,0xb1,0x64,0x2b,0x49,0xd3,0xcd,0xe2,0x70,0x38,0x17, - 0x45,0xa4,0x99,0x87,0x33,0xe4,0x33,0x43,0x72,0x46,0x57,0x3f,0xee,0x37,0x99,0x73, - 0x2f,0x74,0x29,0x55,0x3e,0x9f,0x10,0x84,0x27,0x8e,0xc8,0x13,0x95,0xca,0x7c,0x35, - 0x9f,0x7c,0xfe,0xf4,0xd3,0x94,0x4d,0x9c,0xb2,0xe2,0x79,0xca,0x33,0x95,0x8b,0xf9, - 0x24,0x57,0x93,0x1f,0xaf,0x5f,0x5d,0xfd,0x65,0x3a,0x75,0xde,0x6b,0xc1,0x2b,0x91, - 0x3a,0x3b,0x59,0xad,0x9d,0x9f,0xf3,0xbb,0x32,0xe1,0x85,0x70,0xde,0xac,0xab,0xaa, - 0x98,0xb9,0xee,0x6e,0xb7,0x43,0xb2,0x11,0x22,0xa5,0x57,0xee,0x5b,0x67,0x3a,0x85, - 0x91,0xe5,0xfd,0xea,0x95,0xe3,0x38,0xe0,0x36,0x2f,0x67,0x69,0x32,0x9f,0x34,0xf8, - 0x62,0xab,0x33,0x8b,0x4b,0x13,0x57,0x64,0x62,0x23,0xf2,0xaa,0x74,0x9,0x22,0xee, - 0xe4,0x8,0x4f,0x8e,0xf0,0x9d,0x58,0x20,0x2d,0x4a,0xb5,0xd5,0x49,0x6d,0x3e,0x49, - 0xfa,0x48,0x9d,0x2e,0x8f,0x50,0x98,0xc9,0xce,0xb3,0x20,0x12,0xc7,0xb1,0x8b,0xa9, - 0x4b,0xe9,0x14,0x10,0xd3,0xf2,0x90,0x57,0x7c,0x3f,0xcd,0xcb,0xd7,0xbd,0xa1,0x30, - 0xc1,0xb1,0xa1,0x14,0x63,0xec,0x82,0xee,0x88,0xfc,0x36,0xd4,0x6c,0x9f,0x1,0xd, - 0xf,0x4e,0xc6,0x6a,0xfb,0xde,0x81,0xfa,0x2,0xfe,0x77,0x3,0x5a,0x1,0xaa,0xd7, - 0xba,0x84,0x91,0x2,0xe5,0xa2,0x72,0x6f,0x3e,0xdd,0x74,0xca,0x29,0x46,0x69,0x95, - 0xf6,0xcc,0xb4,0xcc,0xf,0xfc,0xe,0xc2,0x91,0xf3,0x8d,0x28,0xb,0x9e,0x88,0xd2, - 0x6d,0xe5,0x76,0x7c,0x6b,0x72,0x96,0xaa,0xc4,0x60,0xe6,0x93,0x6d,0x91,0x29,0x9e, - 0xa2,0x76,0x55,0x7d,0xc0,0x82,0x97,0x0,0x70,0xd7,0x6a,0x23,0xdc,0xbb,0x8c,0x57, - 0x95,0xdc,0x8,0xed,0xee,0x94,0xbe,0xb3,0xa6,0xdd,0x52,0xec,0xf,0x6b,0x9e,0xdc, - 0x95,0xee,0x87,0xdb,0x5f,0xdf,0xab,0x4c,0xe9,0x7f,0xc8,0xe4,0x4e,0x68,0x6b,0xa8, - 0x75,0x3b,0xeb,0xd2,0xf,0x23,0x3f,0x40,0x64,0xe8,0xa5,0xa7,0xf4,0x68,0x3d,0x2e, - 0x9d,0x4f,0x60,0x32,0x84,0x78,0x18,0x5b,0xc1,0x5a,0xc8,0xd5,0xba,0x9a,0x4f,0x1a, - 0xfd,0x4e,0xa6,0xd5,0xba,0x7b,0xeb,0xbc,0x88,0x7d,0xa1,0x74,0x35,0x5d,0xca,0x4c, - 0xd4,0xeb,0xaa,0xa7,0xfd,0x45,0x6e,0x36,0x3c,0x71,0x6f,0x44,0x79,0x57,0xa9,0xc2, - 0xdd,0x49,0x40,0xa0,0x22,0x5f,0x8d,0xe,0xde,0xa7,0x5,0x44,0x26,0xc6,0x8,0xdb, - 0xdf,0x28,0xe6,0xf0,0x18,0x46,0x6d,0xab,0x62,0x5b,0xfd,0x4b,0xec,0x2b,0x91,0xd7, - 0xcb,0x82,0x58,0xf4,0x2,0x63,0xd5,0x86,0x6a,0x34,0x8,0xca,0x60,0x83,0x5e,0x83, - 0xe4,0x2a,0x15,0xcb,0xd2,0x68,0x6a,0x3a,0xcc,0x9b,0x67,0x15,0xa0,0x82,0x8c,0x12, - 0x5c,0x7f,0xd0,0x3c,0x95,0xb0,0x89,0x6a,0x50,0xd,0x1b,0x6a,0xa8,0x87,0xfd,0x66, - 0xc,0x8c,0x2a,0x61,0xf5,0x2d,0xb6,0xe1,0x18,0x24,0x80,0x9,0x27,0x47,0xb1,0x5a, - 0x2e,0x4b,0x1,0x4c,0xe3,0x9e,0xac,0xac,0xe,0x99,0xa8,0xd1,0xd3,0xc4,0x84,0x78, - 0xf6,0x3a,0xf2,0x52,0x4a,0xc2,0x89,0xe3,0x3e,0x6d,0x9d,0x8d,0x58,0x27,0xd,0x75, - 0x4f,0x78,0xf1,0x45,0xcc,0xf1,0xd1,0xcb,0x95,0x3b,0x5c,0xde,0x33,0xd9,0x20,0xbe, - 0x4f,0x9f,0x62,0x3,0x30,0xfe,0x9f,0xc7,0x6,0x58,0x1f,0xe3,0xfa,0xbf,0xc2,0x6, - 0xb,0x43,0xda,0xf9,0xeb,0xb2,0x17,0x5c,0x65,0x22,0x81,0x39,0xf1,0x6c,0xc7,0xf, - 0xe5,0x53,0x74,0x81,0x91,0xef,0xa0,0xab,0x5e,0xec,0xa5,0x15,0x29,0x38,0x45,0x64, - 0x75,0x98,0x91,0xcb,0xa7,0xe9,0x3,0x6f,0xa3,0xf4,0x3d,0xdf,0x1b,0xbe,0x7c,0x39, - 0x1a,0x3,0xfc,0x2,0x34,0x6,0xf4,0xf9,0x34,0x2e,0xed,0xef,0x7b,0x68,0xc,0xc6, - 0x82,0xf6,0x4,0x8d,0x63,0xde,0x9e,0xa6,0xd1,0xbc,0xf1,0xec,0x8c,0xc6,0x87,0x78, - 0x6a,0x1,0xf6,0xce,0x9c,0xad,0xb5,0x80,0x3b,0xfe,0xf5,0x63,0x79,0xb,0x4b,0x1a, - 0xba,0x18,0x6c,0xe0,0x55,0x23,0xfc,0x9c,0xcb,0xa,0x2e,0xf3,0x6d,0x29,0xf4,0xad, - 0xb9,0xb5,0xfe,0x9e,0x7f,0x2e,0xc5,0x19,0xea,0x93,0xe6,0x79,0x9,0xb7,0xef,0x66, - 0x3e,0xd9,0xf0,0x4a,0xcb,0xfd,0x1b,0x8c,0xe2,0x20,0xf2,0xb1,0xc7,0x2e,0xb0,0xf9, - 0x87,0x68,0x40,0x62,0x9f,0x91,0x8b,0x69,0x84,0x18,0xc6,0x8c,0x46,0xd1,0x5,0x81, - 0x47,0x46,0x71,0x1c,0xbe,0xed,0xec,0x25,0xfb,0xf9,0x84,0xfa,0x88,0x79,0x11,0xa1, - 0xc7,0x7c,0x4d,0xe,0x70,0x61,0x85,0xc8,0xa7,0x84,0xd0,0xa8,0x93,0x2e,0x47,0xb1, - 0xcb,0x51,0xac,0x86,0x18,0x5,0x28,0xf4,0xfd,0xc8,0x8b,0x8e,0xbc,0xff,0x19,0xc, - 0xf7,0x53,0xfa,0x8c,0x61,0x1a,0x93,0xf0,0xe5,0x18,0xbe,0x98,0x12,0x14,0x7a,0x71, - 0x40,0xc8,0x5,0x41,0xd4,0x8f,0x22,0x1c,0x79,0xc0,0x35,0x94,0x3b,0x11,0x63,0x11, - 0x9,0xa3,0x8b,0x0,0xa3,0x80,0x62,0x2f,0x8a,0xce,0x18,0xe,0x3c,0xc0,0xc,0x8, - 0x86,0xf2,0x2,0x63,0x82,0x19,0xf1,0x4e,0x19,0x1e,0x62,0x97,0xe3,0x58,0xc3,0x70, - 0x84,0x48,0x44,0x7c,0x12,0x34,0xc,0x5f,0xb9,0xe6,0xe6,0xb5,0x4f,0x5d,0xc1,0x62, - 0x8a,0x8b,0xf4,0x5e,0x8a,0xdd,0xab,0x21,0xd7,0x3b,0x99,0xa7,0x6a,0x37,0x5,0xdb, - 0x5d,0x2c,0x4f,0x75,0x30,0x19,0x2f,0x7a,0x40,0xd7,0x16,0x39,0x4,0x7b,0xf1,0x3, - 0x90,0xa6,0xf0,0x21,0x7e,0x14,0x9c,0x22,0xca,0xb5,0xda,0x15,0x7c,0x25,0xca,0x35, - 0x7,0xe4,0x7c,0x52,0xe9,0xad,0x38,0xc5,0x40,0x3d,0xb7,0x35,0x65,0xf7,0x74,0x5b, - 0x87,0xab,0xd8,0x9f,0x22,0x56,0x5a,0xa6,0xd3,0xc5,0x42,0xed,0x7,0x6,0x8c,0x6d, - 0xa3,0x19,0xb7,0x9a,0x6c,0xb5,0x36,0x46,0x33,0x7e,0x10,0xc0,0xa0,0xfd,0x43,0xce, - 0x40,0x7,0x33,0x6d,0xc4,0x28,0xf1,0xcf,0x16,0x67,0xc2,0x49,0x3c,0xe4,0x47,0x61, - 0x1c,0xd3,0x53,0xe5,0x57,0xa5,0x20,0x5d,0x7c,0x1f,0xc2,0x12,0x61,0xec,0x9f,0xaa, - 0xfb,0x4b,0x3e,0x1b,0x6b,0x94,0xcd,0x59,0x65,0xe3,0xdd,0xe8,0x17,0x4a,0xa7,0x42, - 0x77,0xa,0x32,0x10,0xdb,0xe3,0xe,0xf6,0x44,0x68,0x7f,0x8d,0xca,0x18,0x6a,0x15, - 0xe6,0x18,0x5c,0xb4,0x39,0x63,0x38,0x31,0x25,0x72,0xf3,0xa,0xa5,0x67,0x6,0x90, - 0xe6,0xa6,0x6e,0xc8,0xab,0xb4,0xba,0x13,0xa7,0xd2,0xae,0x84,0xed,0x62,0x70,0xac, - 0x71,0x3b,0x51,0x3d,0xa3,0x86,0xd7,0xd3,0x78,0x6c,0x65,0x2a,0xca,0xf1,0x88,0x58, - 0x5d,0x3f,0x8c,0xcd,0x59,0xd1,0x65,0xb0,0x5,0xb4,0x59,0xaf,0xb4,0xd9,0x9b,0xbc, - 0xb2,0xe5,0x27,0xd4,0xa1,0x95,0x4c,0x78,0xd6,0xed,0x89,0x42,0x95,0xb2,0x56,0x91, - 0x10,0xea,0x14,0x8f,0xe1,0xe3,0x45,0x61,0x56,0x6f,0x4d,0xd1,0xd0,0xf,0xbb,0xd, - 0x73,0xbe,0x4f,0xac,0x7c,0x23,0x2a,0x9e,0xf2,0x8a,0x1f,0x89,0x6b,0x25,0x6d,0x8d, - 0x7a,0x5,0x1d,0xdb,0xec,0xf7,0x9b,0x9f,0xba,0xfb,0x2b,0x49,0x66,0xff,0x84,0x4e, - 0xe3,0x78,0x2f,0x19,0x0,0x5f,0x40,0xd,0x3d,0x9f,0x74,0x77,0xaa,0x29,0x95,0x93, - 0x99,0x39,0x55,0x78,0x75,0x2d,0x37,0x10,0x29,0xd3,0x9e,0xfd,0x0,0x5d,0x12,0xec, - 0xdd,0x4e,0x31,0x0,0x57,0x87,0x42,0x1c,0x8d,0xd6,0x66,0xdb,0x56,0x73,0xb4,0x5d, - 0x4d,0x93,0x8d,0x34,0x83,0xdc,0xdb,0xa,0x22,0xfc,0xb3,0x71,0xd2,0xbb,0x67,0x6b, - 0xa3,0x89,0x69,0x96,0x95,0xbe,0xee,0x19,0x36,0xb,0x78,0xb7,0xea,0x6e,0xc3,0xc1, - 0x14,0x64,0x95,0x89,0xeb,0x5f,0xf8,0xdd,0x76,0xe1,0xdc,0x56,0x2,0xe,0x60,0x6d, - 0xa7,0x5b,0xcb,0xfb,0x36,0xdc,0x73,0x23,0x16,0x79,0xe6,0xcf,0x98,0xad,0xd7,0x70, - 0xdd,0x2c,0xa1,0xee,0x7c,0xd0,0x66,0x5b,0xca,0x64,0xcd,0xb3,0xc,0x25,0x5f,0xed, - 0xd0,0x6,0x75,0x1c,0x9,0x2e,0x32,0x99,0x40,0xc3,0xf2,0x34,0x2d,0xd6,0xad,0xbc, - 0x87,0xed,0xb0,0xd9,0xa8,0xbc,0xb4,0xc,0x35,0x63,0x4b,0x77,0x71,0x98,0x96,0xdc, - 0xa5,0x8,0xbb,0x67,0xf4,0xd4,0xb,0xfb,0xa0,0x9c,0x1b,0xb5,0xcb,0xc7,0x96,0x6a, - 0xa7,0xbf,0x5d,0x7c,0x81,0xdb,0x6a,0xb0,0x7e,0x33,0x8b,0xbf,0xf1,0xd5,0x9,0x85, - 0x46,0x9a,0xc9,0xeb,0x95,0xba,0x72,0x9b,0xc7,0x51,0x7d,0xa6,0x76,0x86,0xd8,0xc7, - 0x20,0xa9,0x9d,0xcf,0x63,0x8,0xae,0xb5,0xda,0x3d,0xe,0x29,0x94,0xcc,0xab,0xa7, - 0x3c,0xfd,0x75,0x55,0x5d,0x8e,0x21,0x6a,0xd9,0x60,0x8d,0x75,0x98,0x4e,0xd9,0xb0, - 0x69,0xa6,0x72,0xb8,0x39,0x17,0xdb,0xe7,0xa6,0xda,0xbb,0x3c,0x85,0xc8,0x95,0xce, - 0x6f,0x32,0x2b,0x4b,0x35,0x1a,0x81,0xc7,0x92,0xed,0xdc,0xab,0xc5,0x9a,0xed,0xd9, - 0xdf,0xae,0x1f,0x4f,0xb3,0xa8,0xb7,0x63,0x9f,0x99,0x40,0xc3,0xf4,0x2c,0x84,0x86, - 0x2d,0x58,0x3e,0x99,0x9e,0x63,0x5f,0x8d,0x7e,0x17,0x85,0x56,0xe9,0x36,0x31,0xc7, - 0xd8,0x30,0x2f,0xff,0xa0,0xe1,0x1b,0x59,0xd6,0xac,0x8c,0x19,0xd6,0xe2,0xdf,0x5b, - 0x9,0x23,0xbe,0xcb,0xf2,0x6f,0xa,0x4e,0x61,0xf1,0xb2,0x36,0xdf,0x55,0xf,0x4f, - 0xf6,0xf,0xb1,0x20,0xb4,0xbc,0xb7,0x21,0x35,0xd9,0x50,0xbe,0xec,0xa4,0x6f,0xd7, - 0x5c,0x8b,0x77,0x99,0xbc,0xeb,0x93,0x61,0x53,0xaf,0x49,0xb5,0xb6,0xfd,0xe8,0xdd, - 0x1d,0x57,0x6e,0x7b,0xb3,0xd8,0xb7,0xd5,0x59,0x8d,0xa3,0xb6,0xc5,0x46,0xa5,0xa2, - 0xa9,0x55,0x4e,0x6f,0xcf,0x8c,0x2f,0x4,0xdc,0xe2,0x1f,0x8d,0xce,0x21,0xbd,0x8b, - 0xbe,0xa9,0x6c,0x1a,0x8f,0x5,0xaf,0xd6,0xed,0x92,0x9a,0x7e,0xa9,0xeb,0x8b,0x10, - 0xc5,0x7e,0x0,0xff,0xfc,0xcb,0x61,0x13,0x6a,0xea,0x83,0x19,0xdc,0x2b,0x6f,0x5e, - 0x9f,0x77,0x2d,0x6f,0xad,0xb6,0xd7,0xc9,0xd9,0x57,0xbd,0xcd,0xc4,0x4c,0xdc,0x8b, - 0x5c,0xa5,0xe9,0x65,0x5d,0x4a,0xcc,0x72,0x95,0x8b,0xe6,0xb9,0xae,0x8,0x1,0xdc, - 0xbc,0x9a,0x4a,0x1e,0x16,0x31,0x83,0x30,0x57,0x7d,0xd9,0x17,0x38,0x9f,0x66,0x10, - 0x61,0xa1,0x2f,0x37,0x5c,0xdf,0x9,0x5d,0x1b,0xa9,0x9f,0xa7,0x65,0xc5,0x75,0x35, - 0x90,0x6c,0x64,0x3a,0x78,0x17,0x79,0x3a,0x70,0x6b,0x4d,0x65,0x12,0xfe,0xcc,0x8, - 0x6e,0x85,0x29,0x87,0x4a,0x4c,0x6b,0x7e,0x18,0x40,0x8d,0xb4,0xee,0x31,0x67,0x1d, - 0xf2,0xb8,0xc8,0x7b,0x59,0xca,0x85,0xcc,0xcc,0x8b,0x7d,0xcc,0xc4,0x65,0x2a,0xcb, - 0x2,0xa8,0x9e,0xc9,0xdc,0xcc,0xfc,0x52,0x41,0x49,0xb2,0x84,0x73,0xbc,0xd5,0x77, - 0xd5,0x7,0x44,0xe4,0x57,0x87,0x39,0xd4,0x43,0x11,0x61,0x51,0xe0,0xbc,0x77,0x3c, - 0xd3,0x96,0x45,0x7e,0x48,0x1d,0xa8,0xf8,0x7d,0x12,0x51,0x16,0x38,0xc4,0xa1,0xd0, - 0x34,0x5,0xb1,0x17,0x87,0xe6,0x39,0x42,0x38,0xa4,0x6,0xb,0xcf,0x31,0xa2,0x1e, - 0xa3,0x31,0x73,0x22,0x4,0xa5,0x65,0x44,0x48,0xe8,0x78,0xc4,0x81,0x1e,0x2b,0xe, - 0x8d,0x3d,0x78,0x7e,0x6f,0xc,0x51,0x2f,0x8c,0x58,0x6c,0x5e,0x3d,0x5c,0xab,0xfa, - 0x63,0x5b,0x59,0xcf,0xf4,0x51,0x4,0x9e,0xc3,0x18,0xba,0x43,0x87,0x32,0x44,0x18, - 0x9,0x30,0xb1,0x33,0xb,0x8,0xe,0xcc,0x3,0xf6,0x8,0xc,0x30,0xb,0x8,0x9c, - 0x8f,0x56,0x60,0xc,0x80,0xa1,0xa0,0x36,0x54,0x4b,0xfc,0x88,0x1a,0x19,0xf3,0x58, - 0x8,0x73,0x0,0x74,0xfb,0xc4,0x3a,0xad,0x57,0x8f,0xa8,0x25,0xc6,0x16,0x43,0xf5, - 0x9b,0x75,0xf0,0x1e,0x5e,0x29,0x4c,0x37,0x8c,0x49,0x2b,0xa4,0x14,0x64,0x26,0x25, - 0xa1,0x87,0xb5,0xc6,0xa1,0xed,0x62,0xc4,0xb0,0x9,0xce,0xed,0xa0,0x8f,0x7d,0x6a, - 0xbf,0x3a,0x83,0x9a,0xcf,0xa4,0x3e,0xf4,0xe1,0xf8,0xd8,0x85,0x3e,0xba,0x19,0xa0, - 0x65,0xa6,0xcc,0xf3,0xe2,0xb1,0xcd,0x60,0x33,0xe5,0x5b,0x13,0xff,0xf8,0x11,0xa2, - 0x9f,0xfb,0xcd,0xd7,0x33,0x2f,0xfc,0xbf,0xdd,0x4,0x94,0x42,0xfc,0xe3,0x80,0x5, - 0x17,0x34,0x44,0x41,0x4,0x31,0xa5,0x10,0xbf,0x18,0x5,0x98,0xfa,0x94,0x12,0x2b, - 0xd,0x3c,0x4a,0x2,0x2b,0xf5,0xa3,0x38,0x62,0x41,0x7c,0x1,0xf5,0x7c,0xe0,0x85, - 0xc,0x7b,0x20,0xf5,0x51,0x48,0xa1,0xed,0xc7,0xc4,0x4a,0xa9,0xef,0x33,0x83,0xb5, - 0x15,0x3f,0x33,0x52,0x8a,0x98,0xf9,0x1a,0x4f,0x99,0xc9,0xd3,0x8,0x79,0x71,0x14, - 0x13,0x66,0xb1,0x1,0xe,0x82,0xd0,0x48,0x61,0xe,0xd0,0x6,0x78,0xb5,0xd0,0xf, - 0x63,0xaf,0x11,0x9e,0x4e,0x6c,0x34,0x97,0x82,0x63,0x6f,0x7e,0x6c,0x1f,0xe0,0x88, - 0x36,0x45,0x37,0x34,0x39,0x49,0xf3,0x7b,0x20,0xe1,0xc6,0x47,0x94,0x80,0x3f,0xf5, - 0x44,0x59,0xc4,0x86,0xdc,0xc1,0xd6,0x31,0x3b,0x99,0xc5,0xe6,0x53,0xe,0x2c,0x35, - 0x26,0x9e,0x65,0x9,0xe,0x4,0xec,0x87,0x66,0x35,0x71,0x10,0x86,0x3e,0xa9,0x85, - 0x21,0xf4,0xe6,0x21,0xd0,0x41,0x11,0x25,0x34,0x36,0x7,0x4,0x34,0xae,0x41,0x8c, - 0xa3,0x30,0xb8,0x30,0x2d,0x2c,0x26,0x76,0x6b,0x13,0xc4,0x22,0x68,0x74,0x81,0xa1, - 0x0,0x41,0xee,0xc3,0x1e,0x32,0x54,0x78,0x66,0x67,0xf9,0x17,0x31,0xa,0x63,0x3f, - 0xf0,0x7c,0xdf,0xec,0xf0,0x11,0xa9,0x39,0x80,0x98,0x6f,0x3e,0x2e,0x51,0x38,0x34, - 0x7c,0x70,0x1e,0x8d,0xca,0x3e,0x8e,0xce,0xbd,0x47,0xef,0xd9,0x46,0xc,0x20,0x98, - 0xd0,0x80,0x7f,0xe3,0xa5,0x64,0x3e,0xf4,0xbc,0xe8,0xa5,0x4,0xf7,0x6e,0x9e,0x9e, - 0x6d,0xc8,0x5a,0xfa,0x3f,0xbf,0x21,0xdb,0xee,0x17,0x8a,0xf8,0x2b,0xd3,0x80,0x5e, - 0xbf,0xfa,0xf,0x6c,0x4,0x7c,0x9d, - // /home/lixiang/work/kylin-assistant/plugins/systemmonitor/res/wave-front.png - 0x0,0x0,0xc,0x80, - 0x89, - 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0, - 0x0,0x2,0x58,0x0,0x0,0x0,0x64,0x8,0x6,0x0,0x0,0x0,0x5a,0x41,0x4e,0x23, - 0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65, - 0x0,0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67,0x65,0x52,0x65,0x61,0x64, - 0x79,0x71,0xc9,0x65,0x3c,0x0,0x0,0x3,0x26,0x69,0x54,0x58,0x74,0x58,0x4d,0x4c, - 0x3a,0x63,0x6f,0x6d,0x2e,0x61,0x64,0x6f,0x62,0x65,0x2e,0x78,0x6d,0x70,0x0,0x0, - 0x0,0x0,0x0,0x3c,0x3f,0x78,0x70,0x61,0x63,0x6b,0x65,0x74,0x20,0x62,0x65,0x67, - 0x69,0x6e,0x3d,0x22,0xef,0xbb,0xbf,0x22,0x20,0x69,0x64,0x3d,0x22,0x57,0x35,0x4d, - 0x30,0x4d,0x70,0x43,0x65,0x68,0x69,0x48,0x7a,0x72,0x65,0x53,0x7a,0x4e,0x54,0x63, - 0x7a,0x6b,0x63,0x39,0x64,0x22,0x3f,0x3e,0x20,0x3c,0x78,0x3a,0x78,0x6d,0x70,0x6d, - 0x65,0x74,0x61,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78,0x3d,0x22,0x61,0x64,0x6f, - 0x62,0x65,0x3a,0x6e,0x73,0x3a,0x6d,0x65,0x74,0x61,0x2f,0x22,0x20,0x78,0x3a,0x78, - 0x6d,0x70,0x74,0x6b,0x3d,0x22,0x41,0x64,0x6f,0x62,0x65,0x20,0x58,0x4d,0x50,0x20, - 0x43,0x6f,0x72,0x65,0x20,0x35,0x2e,0x36,0x2d,0x63,0x31,0x33,0x38,0x20,0x37,0x39, - 0x2e,0x31,0x35,0x39,0x38,0x32,0x34,0x2c,0x20,0x32,0x30,0x31,0x36,0x2f,0x30,0x39, - 0x2f,0x31,0x34,0x2d,0x30,0x31,0x3a,0x30,0x39,0x3a,0x30,0x31,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x22,0x3e,0x20,0x3c,0x72,0x64,0x66,0x3a,0x52,0x44,0x46,0x20, - 0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x72,0x64,0x66,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a, - 0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x31,0x39,0x39, - 0x39,0x2f,0x30,0x32,0x2f,0x32,0x32,0x2d,0x72,0x64,0x66,0x2d,0x73,0x79,0x6e,0x74, - 0x61,0x78,0x2d,0x6e,0x73,0x23,0x22,0x3e,0x20,0x3c,0x72,0x64,0x66,0x3a,0x44,0x65, - 0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x72,0x64,0x66,0x3a,0x61,0x62, - 0x6f,0x75,0x74,0x3d,0x22,0x22,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78,0x6d,0x70, - 0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x6e,0x73,0x2e,0x61,0x64,0x6f,0x62, - 0x65,0x2e,0x63,0x6f,0x6d,0x2f,0x78,0x61,0x70,0x2f,0x31,0x2e,0x30,0x2f,0x22,0x20, - 0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78,0x6d,0x70,0x4d,0x4d,0x3d,0x22,0x68,0x74,0x74, - 0x70,0x3a,0x2f,0x2f,0x6e,0x73,0x2e,0x61,0x64,0x6f,0x62,0x65,0x2e,0x63,0x6f,0x6d, - 0x2f,0x78,0x61,0x70,0x2f,0x31,0x2e,0x30,0x2f,0x6d,0x6d,0x2f,0x22,0x20,0x78,0x6d, - 0x6c,0x6e,0x73,0x3a,0x73,0x74,0x52,0x65,0x66,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a, - 0x2f,0x2f,0x6e,0x73,0x2e,0x61,0x64,0x6f,0x62,0x65,0x2e,0x63,0x6f,0x6d,0x2f,0x78, - 0x61,0x70,0x2f,0x31,0x2e,0x30,0x2f,0x73,0x54,0x79,0x70,0x65,0x2f,0x52,0x65,0x73, - 0x6f,0x75,0x72,0x63,0x65,0x52,0x65,0x66,0x23,0x22,0x20,0x78,0x6d,0x70,0x3a,0x43, - 0x72,0x65,0x61,0x74,0x6f,0x72,0x54,0x6f,0x6f,0x6c,0x3d,0x22,0x41,0x64,0x6f,0x62, - 0x65,0x20,0x50,0x68,0x6f,0x74,0x6f,0x73,0x68,0x6f,0x70,0x20,0x43,0x43,0x20,0x32, - 0x30,0x31,0x37,0x20,0x28,0x57,0x69,0x6e,0x64,0x6f,0x77,0x73,0x29,0x22,0x20,0x78, - 0x6d,0x70,0x4d,0x4d,0x3a,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x49,0x44,0x3d, - 0x22,0x78,0x6d,0x70,0x2e,0x69,0x69,0x64,0x3a,0x32,0x44,0x32,0x37,0x32,0x44,0x36, - 0x46,0x46,0x37,0x36,0x41,0x31,0x31,0x45,0x37,0x41,0x39,0x44,0x31,0x41,0x34,0x32, - 0x46,0x33,0x42,0x41,0x45,0x42,0x31,0x30,0x34,0x22,0x20,0x78,0x6d,0x70,0x4d,0x4d, - 0x3a,0x44,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x49,0x44,0x3d,0x22,0x78,0x6d,0x70, - 0x2e,0x64,0x69,0x64,0x3a,0x32,0x44,0x32,0x37,0x32,0x44,0x37,0x30,0x46,0x37,0x36, - 0x41,0x31,0x31,0x45,0x37,0x41,0x39,0x44,0x31,0x41,0x34,0x32,0x46,0x33,0x42,0x41, - 0x45,0x42,0x31,0x30,0x34,0x22,0x3e,0x20,0x3c,0x78,0x6d,0x70,0x4d,0x4d,0x3a,0x44, - 0x65,0x72,0x69,0x76,0x65,0x64,0x46,0x72,0x6f,0x6d,0x20,0x73,0x74,0x52,0x65,0x66, - 0x3a,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x49,0x44,0x3d,0x22,0x78,0x6d,0x70, - 0x2e,0x69,0x69,0x64,0x3a,0x32,0x44,0x32,0x37,0x32,0x44,0x36,0x44,0x46,0x37,0x36, - 0x41,0x31,0x31,0x45,0x37,0x41,0x39,0x44,0x31,0x41,0x34,0x32,0x46,0x33,0x42,0x41, - 0x45,0x42,0x31,0x30,0x34,0x22,0x20,0x73,0x74,0x52,0x65,0x66,0x3a,0x64,0x6f,0x63, - 0x75,0x6d,0x65,0x6e,0x74,0x49,0x44,0x3d,0x22,0x78,0x6d,0x70,0x2e,0x64,0x69,0x64, - 0x3a,0x32,0x44,0x32,0x37,0x32,0x44,0x36,0x45,0x46,0x37,0x36,0x41,0x31,0x31,0x45, - 0x37,0x41,0x39,0x44,0x31,0x41,0x34,0x32,0x46,0x33,0x42,0x41,0x45,0x42,0x31,0x30, - 0x34,0x22,0x2f,0x3e,0x20,0x3c,0x2f,0x72,0x64,0x66,0x3a,0x44,0x65,0x73,0x63,0x72, - 0x69,0x70,0x74,0x69,0x6f,0x6e,0x3e,0x20,0x3c,0x2f,0x72,0x64,0x66,0x3a,0x52,0x44, - 0x46,0x3e,0x20,0x3c,0x2f,0x78,0x3a,0x78,0x6d,0x70,0x6d,0x65,0x74,0x61,0x3e,0x20, - 0x3c,0x3f,0x78,0x70,0x61,0x63,0x6b,0x65,0x74,0x20,0x65,0x6e,0x64,0x3d,0x22,0x72, - 0x22,0x3f,0x3e,0x29,0xf9,0xc8,0xa,0x0,0x0,0x8,0xf0,0x49,0x44,0x41,0x54,0x78, - 0xda,0xec,0xdd,0xfd,0xb3,0x55,0x55,0x19,0x7,0xf0,0x7d,0x10,0x44,0x40,0x2a,0x4, - 0x12,0x11,0x84,0x31,0x29,0x40,0xd,0x35,0x40,0xd2,0x7c,0x89,0xb4,0xa4,0xfe,0x83, - 0x7e,0xef,0x1f,0x68,0xb2,0x3f,0xa0,0xdf,0xa2,0xfe,0x9d,0xac,0x14,0xd2,0x12,0x14, - 0xc8,0xc0,0x17,0x92,0x37,0x1,0x51,0x40,0x25,0xc4,0x4,0x31,0x5e,0xd2,0xdb,0x7a, - 0x66,0xaf,0x13,0xdb,0xcd,0xf5,0x12,0xcd,0xe2,0xb2,0xcf,0x39,0x9f,0xcf,0xcc,0x33, - 0xc,0xc8,0xc,0xdc,0xe7,0x1e,0x1e,0xbf,0x7b,0xed,0xb5,0xd7,0xee,0x8d,0x8d,0x8d, - 0x55,0x0,0x0,0x94,0x33,0x45,0xb,0x0,0x0,0xca,0x9a,0x3a,0x77,0xe3,0x76,0x5d, - 0x80,0x6b,0x73,0xf1,0xf2,0xd5,0x54,0x5f,0x49,0x35,0x2b,0xd5,0xcc,0x54,0x33,0x52, - 0xdd,0x98,0x6a,0x5a,0xaa,0x1b,0xf2,0xef,0x89,0x25,0xe4,0xcf,0x53,0xfd,0x3b,0xd5, - 0xc5,0x54,0xe7,0x52,0xfd,0x2b,0xd5,0xd9,0x54,0x67,0x52,0x9d,0x4e,0xf5,0xa9,0x76, - 0xc2,0xd0,0xea,0xcf,0x89,0x9b,0x1b,0x73,0x62,0x7a,0x9e,0x13,0x53,0x53,0xf5,0xf2, - 0xef,0x8b,0x39,0xf1,0x59,0xaa,0xb,0xa9,0xce,0xe7,0x59,0x11,0x73,0xe2,0x93,0x3c, - 0x27,0x4e,0x6b,0xe5,0xe4,0xfa,0xf0,0x97,0xf,0x4e,0x1c,0xb0,0xb4,0x8,0xae,0xca, - 0xec,0x54,0x4b,0x53,0xdd,0x91,0x6a,0x51,0xae,0xdb,0x52,0x2d,0x48,0xf5,0xf5,0x54, - 0xf3,0x52,0xcd,0xcd,0x3,0xb3,0x94,0x8,0x5e,0xa7,0xe2,0xdf,0x73,0xaa,0x7f,0xa4, - 0xfa,0x20,0xd5,0x7b,0xa9,0x8e,0xa7,0x3a,0x9a,0xea,0xdd,0x54,0x47,0x52,0xbd,0xe3, - 0xdb,0x3,0x9d,0x30,0x3d,0xcf,0x89,0x25,0xa9,0x16,0xa7,0xba,0x3d,0xd5,0xc2,0xc6, - 0x9c,0x98,0x9f,0xe7,0xc4,0x9c,0x82,0x7f,0xe6,0x58,0x6b,0x4e,0x9c,0x48,0xf5,0x7e, - 0x6b,0x4e,0xc4,0x8c,0x38,0x9c,0x2f,0xe8,0xb8,0xc6,0x4,0x2c,0xb8,0x5c,0xac,0x2e, - 0xad,0x4c,0xb5,0x22,0xd5,0xf2,0x54,0xdf,0x4c,0x75,0x57,0xaa,0x6f,0xe4,0x0,0x35, - 0xd9,0xe2,0x4a,0xf6,0xd6,0x5c,0x13,0x89,0x2b,0xdc,0x43,0xa9,0xde,0x4a,0x75,0x20, - 0xd5,0xbe,0x54,0x7b,0x53,0xbd,0x99,0x3,0x19,0x50,0xd6,0xb2,0x3c,0x2b,0xfa,0x73, - 0x62,0x59,0x9e,0x13,0xb,0xaf,0xc3,0xdf,0xa5,0x97,0x43,0xdb,0xdc,0xfc,0x77,0x99, - 0x48,0x84,0xad,0x83,0x8d,0x39,0xb1,0x2f,0xcf,0x89,0x43,0xbe,0xa5,0x2,0x16,0x94, - 0x12,0xab,0x4f,0xf,0xa4,0xba,0x2f,0xd5,0xb7,0x73,0x2d,0x1f,0xd0,0xaf,0x65,0x4a, - 0xe,0x82,0x51,0x4f,0xb5,0xfe,0xdb,0x47,0xa9,0x76,0xa7,0x7a,0x3d,0xd5,0xab,0xb9, - 0x76,0xe6,0x50,0x6,0x4c,0xec,0x6b,0x8d,0x39,0xb1,0x2a,0xd5,0xbd,0xb9,0x6,0xf5, - 0xff,0xa1,0x8b,0x73,0x3d,0xde,0xfa,0xf5,0x73,0x8d,0x39,0xf1,0x5a,0x63,0x4e,0x7c, - 0xe2,0x23,0x20,0x60,0xc1,0x44,0x62,0xaf,0xc3,0xba,0x54,0x6b,0x73,0xad,0xae,0xea, - 0x25,0xfb,0x51,0x10,0xb7,0x22,0x1e,0xc9,0xd5,0xb4,0x2b,0xd5,0x2b,0xa9,0x76,0xa4, - 0x8a,0xd,0x99,0x6f,0xf8,0x98,0x30,0xe2,0xa6,0x8d,0x33,0x27,0xee,0x1c,0x91,0xaf, - 0xfd,0xa6,0xfc,0xf5,0xae,0x6e,0xfd,0xfa,0xfe,0xd6,0x9c,0xd8,0xe6,0x63,0x22,0x60, - 0x31,0xda,0x62,0x99,0xfc,0x7b,0xa9,0x1e,0x4e,0xf5,0x50,0x35,0xb8,0x2b,0x53,0xd7, - 0xd2,0xfd,0xb9,0x7e,0x96,0x7f,0x1e,0x1b,0xea,0x5f,0x4e,0xf5,0x52,0xaa,0x2d,0xb9, - 0x6c,0xb2,0x67,0x98,0xdd,0xde,0x9a,0x13,0xdf,0xd1,0x92,0x71,0x67,0x69,0xd4,0x4f, - 0x1b,0xbf,0xb6,0x2d,0xcf,0x89,0xad,0x79,0x4e,0x9c,0xd0,0xa6,0xcb,0x3,0xd6,0xaf, - 0x52,0xbd,0x90,0xcb,0xed,0x2,0x6,0xd9,0x3d,0x55,0xbd,0xe4,0xfd,0x58,0xaa,0x47, - 0xab,0x7a,0x33,0x29,0x57,0x27,0x9e,0x62,0xfa,0x41,0xae,0xbe,0xbf,0xa5,0xfa,0x4b, - 0x63,0x4e,0x78,0x5a,0x89,0x41,0xb6,0xb4,0x35,0x27,0xee,0xd4,0x92,0xff,0xcb,0xba, - 0x5c,0x3f,0xcf,0x3f,0xdf,0x97,0xe7,0xc4,0x9f,0xf3,0x9c,0x38,0x36,0xea,0xd,0xea, - 0xdd,0xf2,0xeb,0x6d,0xcd,0x93,0x46,0xa3,0x31,0x7f,0xca,0xb5,0xc5,0xe7,0x87,0x8e, - 0x8b,0xbd,0x46,0x4f,0xa4,0x5a,0x9f,0xea,0xfb,0xd5,0xf5,0xd9,0x80,0x3e,0x8a,0x76, - 0xe6,0x19,0xb1,0x39,0xd7,0x45,0x2d,0xa1,0xc3,0x16,0xe4,0xb,0x86,0xf5,0xb9,0x96, - 0x6a,0xc9,0xa4,0x38,0xd0,0x9a,0x13,0xa7,0x86,0xed,0xb,0xbc,0xd2,0x31,0xd,0xed, - 0x80,0xd5,0x14,0xe7,0x6c,0x3c,0xd7,0xa8,0x3d,0x3e,0x2f,0x5c,0x67,0xb1,0x8f,0xe8, - 0x87,0xa9,0x9e,0xcc,0xc1,0x6a,0x89,0x96,0x74,0x42,0x5c,0x98,0x6d,0x4a,0xf5,0x6c, - 0x55,0xef,0xd1,0x80,0xeb,0xe9,0x86,0x3c,0x27,0xfa,0xb3,0xe2,0x6e,0x2d,0xe9,0x84, - 0x5d,0x8d,0x3c,0xb1,0x69,0xd4,0x3,0x56,0x5b,0x9c,0xa3,0xf1,0xc7,0x54,0x7f,0xc8, - 0x3f,0x9e,0xf1,0x79,0x61,0x12,0xc4,0xde,0x88,0x1f,0xe5,0x5a,0xa3,0x1d,0x9d,0xf7, - 0x71,0x9e,0xf,0xfd,0x59,0x71,0x5c,0x4b,0x98,0x4,0xf1,0xf4,0xef,0x53,0x79,0x4e, - 0xac,0xd7,0x8e,0xce,0x1b,0x6b,0xcd,0x89,0xbd,0xa3,0x1e,0xb0,0xda,0xb6,0xe6,0xc6, - 0xfc,0xbe,0xaa,0xf7,0x68,0x40,0x9,0x71,0x7e,0xcc,0x86,0x3c,0x2c,0xe3,0xc7,0x59, - 0x5a,0x32,0xd0,0xde,0x68,0xcc,0x89,0xe7,0xb5,0x83,0x42,0x6e,0xce,0xf3,0xa1,0x3f, - 0x2b,0x6e,0xd3,0x92,0x81,0x76,0xa4,0x31,0x27,0xa2,0x2e,0x8c,0x7a,0xc0,0x6a,0x3a, - 0x91,0x9b,0xf2,0x4c,0x2e,0x67,0x66,0x70,0x35,0xe2,0xe8,0x80,0x1f,0xe7,0x61,0xb9, - 0x4a,0x3b,0x86,0xd6,0xb9,0xd6,0x9c,0xb0,0xba,0xc5,0xd5,0x58,0xd5,0x98,0x13,0x8f, - 0x68,0xc7,0x50,0xdb,0xdc,0x98,0x13,0x9d,0x5d,0xdd,0x9a,0xac,0x80,0xd5,0xf6,0x62, - 0x6e,0xcc,0xef,0x2a,0xe7,0xea,0x70,0xb9,0x79,0x79,0x50,0x46,0xfd,0x24,0x5f,0x8d, - 0x32,0x7a,0x5e,0x6b,0xcc,0x89,0xad,0xda,0x41,0xcb,0x8d,0xad,0x39,0xb1,0x50,0x4b, - 0x46,0xd2,0xe1,0x46,0xd8,0x7a,0x46,0xc0,0xfa,0xa2,0xa3,0x8d,0x21,0x1a,0x3f,0x7a, - 0x7,0xd2,0x68,0x5a,0xd3,0x18,0x94,0xf6,0x52,0xd1,0x76,0xba,0x31,0x40,0x63,0x56, - 0x9c,0xd2,0x92,0x91,0xf4,0xad,0x46,0xa8,0x7a,0x42,0x3b,0x18,0x47,0x73,0x4e,0xbc, - 0x3d,0xea,0x1,0xab,0xed,0xb9,0xdc,0x9c,0xb8,0x55,0xb0,0xcf,0x67,0x65,0x68,0xc5, - 0xcb,0x8e,0x37,0x34,0x86,0xa5,0x23,0x14,0xb8,0x1a,0xdb,0x1b,0x73,0xe2,0xaf,0xda, - 0x31,0xd4,0x9a,0x73,0xc2,0x99,0x54,0x5c,0x8d,0x3d,0x8d,0x39,0xb1,0x59,0xc0,0xfa, - 0xa2,0x43,0xd5,0xa5,0x4d,0x6d,0xb1,0xc1,0xed,0x33,0x9f,0x97,0x81,0x16,0x27,0x20, - 0xf7,0x37,0xa7,0x3f,0xac,0x1d,0x14,0x72,0xb2,0x35,0x27,0x3e,0xd2,0x92,0x81,0xb6, - 0xac,0x31,0x27,0x36,0x68,0x7,0x85,0x5c,0x68,0xcc,0x89,0xa8,0x77,0x46,0x3d,0x60, - 0xb5,0xc5,0xd9,0x18,0xfd,0x47,0x37,0xed,0xdd,0xea,0xbe,0xf9,0x55,0x7d,0xd6,0x4c, - 0xff,0xf1,0xe8,0xf9,0x5a,0xc2,0x24,0xd8,0x51,0x5d,0x3a,0x2e,0xe6,0x25,0xed,0xe8, - 0xbc,0xe9,0xd5,0xa5,0xa3,0x56,0x62,0x56,0x58,0xa5,0x62,0x32,0xec,0x69,0xe4,0x89, - 0xa8,0xe2,0x59,0x67,0xd0,0x2,0x56,0xd3,0x7b,0x55,0x7d,0x3b,0xf1,0xd9,0x1c,0xbc, - 0x3e,0xf0,0x79,0xe9,0x84,0xd8,0x17,0xf1,0x64,0xae,0xfb,0xb5,0x83,0xeb,0xec,0x6c, - 0x9e,0x11,0xfd,0x3,0xc,0xdf,0xd2,0x92,0x4e,0x78,0xb0,0x31,0x27,0x1e,0xd5,0xe, - 0x3a,0x60,0x53,0x23,0x4f,0xec,0x1a,0xf5,0x80,0xd5,0xb6,0xbb,0xaa,0xef,0xb1,0xf6, - 0x5f,0xe5,0xe3,0x28,0x88,0xc9,0x1b,0x94,0x71,0x70,0x5f,0xfb,0xfd,0x74,0xd0,0x45, - 0x47,0xaa,0x4b,0xaf,0xe6,0x78,0x3e,0x5f,0xa8,0x71,0xed,0xad,0x6c,0xcc,0x89,0xb8, - 0x8,0xf3,0x64,0x30,0x5d,0xf6,0x61,0x6b,0x4e,0x1c,0x18,0xf5,0x80,0xd5,0xf6,0x4a, - 0x55,0xbf,0xa2,0x23,0x2a,0x5e,0x30,0xf9,0xb1,0xcf,0x4c,0x11,0xeb,0xf2,0x15,0xe7, - 0xe3,0xb9,0x66,0x68,0x9,0x3,0x2c,0x1e,0xa4,0x79,0xa1,0x31,0x27,0x8e,0x69,0x49, - 0x11,0xf7,0xe4,0x39,0xf1,0x58,0x9e,0x13,0x5e,0xac,0xce,0x20,0x3b,0x96,0x83,0x56, - 0x7f,0x4e,0xec,0x2f,0x13,0xb0,0x36,0xe,0x6c,0xc0,0x6a,0x8b,0x3d,0x5b,0xf1,0x82, - 0xea,0x38,0x4f,0xe7,0xe5,0xaa,0xde,0x40,0xcf,0xc4,0xe2,0x49,0xbf,0x87,0x72,0xc5, - 0xa6,0xf4,0x38,0xbc,0x6f,0x9a,0xb6,0x30,0xc4,0xe,0xe7,0x39,0xb1,0x25,0xcf,0x9, - 0x7b,0x3d,0xaf,0x2c,0xde,0xed,0xf7,0xdd,0x3c,0x23,0xa2,0xe2,0xf5,0x55,0x73,0xb4, - 0x85,0x21,0x16,0x87,0xa7,0xbf,0x98,0xf3,0x44,0xec,0xf3,0xdc,0x3e,0x6e,0xc0,0x7a, - 0xfa,0xa,0x1,0x6b,0xee,0xc6,0xed,0x63,0x43,0xdc,0xa0,0x6d,0x55,0xbd,0x21,0x36, - 0x1e,0xf3,0x8e,0x15,0xaf,0x51,0x3e,0x5b,0xa7,0x57,0xd5,0x4f,0xf9,0xc5,0x19,0x54, - 0x6b,0xab,0xfa,0xd6,0xdf,0xa,0xff,0x8e,0x18,0x71,0x67,0xf3,0x9c,0xd8,0xde,0x98, - 0x13,0x47,0x47,0xbc,0x27,0x2b,0xf3,0x9c,0x58,0x93,0xe7,0xc4,0x6a,0x1f,0x13,0x46, - 0xdc,0x58,0x6b,0x4e,0x44,0x1d,0x38,0xf9,0xf4,0xda,0x2b,0x4,0xac,0xdf,0xc,0x6d, - 0xc0,0x1a,0x4f,0xec,0xcf,0x88,0xcd,0x6d,0xaf,0x56,0xf5,0x29,0xd2,0x71,0xf5,0x7a, - 0x70,0x8,0xbf,0xce,0x38,0x73,0xea,0xde,0xaa,0x7e,0x1,0x6a,0xbc,0x5e,0x22,0x36, - 0xa3,0xdf,0xe7,0xdf,0x8,0xfc,0xcf,0x17,0x67,0xcd,0x39,0xf1,0x7a,0xaa,0xbf,0xf, - 0xe1,0xd7,0x39,0xab,0x35,0x27,0x62,0x46,0x3c,0x90,0xea,0x26,0x1f,0x1,0xb8,0xa2, - 0x33,0xa9,0x76,0xb6,0xe6,0xc4,0xee,0x93,0xbf,0x58,0x7b,0xfe,0xbf,0x1,0x6b,0xde, - 0x68,0x5,0xac,0xf1,0xc4,0xfb,0xd1,0xde,0xac,0xea,0x47,0x3a,0xe3,0x9d,0x47,0x7, - 0x72,0x45,0xf0,0xea,0xf2,0xbe,0xae,0xa9,0x55,0xfd,0xb8,0xf3,0x5d,0x55,0x7d,0xae, - 0x4c,0x9c,0x80,0xbc,0x22,0x5f,0x7d,0xda,0xf,0x1,0xe5,0x35,0xe7,0xc4,0xfe,0xc6, - 0x9c,0x38,0xd1,0xf1,0xbf,0xf7,0x92,0xd6,0x9c,0x58,0x9e,0x67,0xc5,0x12,0xdf,0x52, - 0x28,0xee,0x60,0x9e,0x15,0x7b,0x7b,0xf3,0x7e,0xbb,0x63,0x4c,0x3f,0xbe,0x54,0x1c, - 0x68,0xf8,0x76,0x55,0x1f,0x58,0x16,0xb7,0xd,0x62,0x23,0x5c,0x3c,0x95,0xf4,0x7e, - 0x1e,0xaa,0x71,0x0,0x62,0x3c,0x8d,0x70,0xb6,0xe0,0x9f,0x19,0x7b,0xa0,0x6e,0xa9, - 0xea,0x55,0xa8,0x38,0x57,0xea,0xd6,0xaa,0x7e,0x53,0x7c,0xbc,0x87,0x6b,0x51,0xaa, - 0x3b,0xf2,0x60,0x5c,0xe4,0xdb,0x3,0x9d,0x70,0xb6,0x31,0x27,0xde,0xcd,0x73,0xe2, - 0xf8,0x38,0x73,0xa2,0xe4,0x5,0xdb,0x94,0x3c,0x27,0xe6,0x36,0xe6,0xc4,0x82,0xc6, - 0x9c,0x58,0x9c,0xe7,0xc4,0xd2,0xfc,0x7b,0x81,0x49,0x36,0xb5,0xa7,0x7,0x13,0x99, - 0x93,0xeb,0x4a,0xe7,0x3d,0x5d,0xcc,0xc3,0x33,0x96,0xc,0xe3,0xf8,0x88,0x4f,0xab, - 0x7a,0x65,0xec,0x42,0xfe,0x6f,0x71,0x42,0x7d,0x4,0xd9,0x5e,0x1e,0x76,0xb1,0xfa, - 0x14,0x2f,0x32,0x8d,0x3,0xf8,0x66,0x56,0xf5,0x52,0xfd,0xec,0xaa,0xde,0x74,0x3e, - 0x53,0xdb,0x61,0xa0,0xc4,0xbf,0xdf,0xbb,0x73,0x4d,0x24,0x66,0xc0,0x3f,0xab,0xfa, - 0xbd,0x8b,0xcd,0x39,0x71,0xbe,0x31,0x27,0x3e,0x6f,0x4,0xa8,0xa9,0xf9,0x82,0x2b, - 0x6e,0xd9,0xcd,0xc8,0xb3,0xa1,0x3f,0x27,0x66,0x6b,0x3b,0x74,0x3c,0x60,0x55,0x12, - 0x56,0x9,0x31,0x4,0xe7,0x55,0xde,0xb7,0x7,0x7c,0xb9,0x5e,0xe3,0xa2,0xd,0x18, - 0xf6,0x80,0xd5,0x93,0xb0,0x0,0x0,0xca,0x6,0x2c,0xf9,0xa,0x0,0xa0,0x70,0xc0, - 0xea,0xf5,0x24,0x2c,0x0,0x80,0xa2,0x1,0xcb,0xa,0x16,0x0,0x40,0xe1,0x80,0x65, - 0xf,0x16,0x0,0x40,0xe1,0x80,0x25,0x5f,0x1,0x0,0x14,0xe,0x58,0xf6,0x60,0x1, - 0x0,0x14,0xf,0x58,0x9a,0x0,0x0,0x50,0x34,0x60,0x55,0xee,0x11,0x2,0x0,0x94, - 0xd,0x58,0x56,0xb0,0x0,0x0,0x8a,0x7,0x2c,0x9,0xb,0x0,0xa0,0x68,0xc0,0x72, - 0x87,0x10,0x0,0xa0,0x70,0xc0,0xb2,0x82,0x5,0x0,0x20,0x60,0x1,0x0,0x74,0x3b, - 0x60,0xb9,0x45,0x8,0x0,0x50,0x38,0x60,0x59,0xc1,0x2,0x0,0x28,0x1e,0xb0,0x34, - 0x1,0x0,0xa0,0x70,0xc0,0x92,0xb0,0x0,0x0,0x4,0x2c,0x0,0x80,0x2e,0x7,0x2c, - 0x9b,0xdc,0x1,0x0,0xa,0x7,0x2c,0x2b,0x58,0x0,0x0,0x2,0x16,0x0,0x40,0xd7, - 0x3,0x96,0x26,0x0,0x0,0x14,0xe,0x58,0x12,0x16,0x0,0x40,0xd1,0x80,0x65,0x93, - 0x3b,0x0,0x40,0xe1,0x80,0x65,0x5,0xb,0x0,0x40,0xc0,0x2,0x0,0x10,0xb0,0x0, - 0x0,0x46,0x2c,0x60,0x69,0x2,0x0,0x40,0xd1,0x80,0x55,0x49,0x58,0x0,0x0,0x65, - 0x3,0x96,0x5b,0x84,0x0,0x0,0xc5,0x3,0x96,0x26,0x0,0x0,0x14,0xe,0x58,0x12, - 0x16,0x0,0x80,0x80,0x5,0x0,0xd0,0xed,0x80,0xa5,0x9,0x0,0x0,0x85,0x3,0x96, - 0x84,0x5,0x0,0x50,0x34,0x60,0x39,0xa6,0x1,0x0,0xa0,0x70,0xc0,0x92,0xaf,0x0, - 0x0,0x8a,0x7,0x2c,0x9,0xb,0x0,0x40,0xc0,0x2,0x0,0xe8,0x74,0xc0,0x9a,0xa2, - 0x9,0x0,0x0,0x45,0x3,0x96,0x4d,0xee,0x0,0x0,0x85,0x3,0x96,0x5b,0x84,0x0, - 0x0,0xc5,0x3,0x96,0x26,0x0,0x0,0x14,0xe,0x58,0x12,0x16,0x0,0x80,0x80,0x5, - 0x0,0xd0,0xe5,0x80,0x55,0xc9,0x57,0x0,0x0,0x65,0x3,0x56,0x4f,0xc2,0x2,0x0, - 0x28,0x1c,0xb0,0xe4,0x2b,0x0,0x80,0xd2,0x1,0x4b,0xc2,0x2,0x0,0x28,0x1a,0xb0, - 0x1c,0x34,0xa,0x0,0x50,0x38,0x60,0xc9,0x57,0x0,0x0,0xc5,0x3,0x96,0x84,0x5, - 0x0,0x50,0x34,0x60,0x79,0x88,0x10,0x0,0xa0,0x70,0xc0,0xb2,0x82,0x5,0x0,0x50, - 0x3c,0x60,0x69,0x2,0x0,0x40,0xd1,0x80,0xe5,0x29,0x42,0x0,0x80,0xc2,0x1,0x4b, - 0xbc,0x2,0x0,0x28,0x1d,0xb0,0xac,0x60,0x1,0x0,0x94,0xd,0x58,0x9e,0x22,0x4, - 0x0,0x28,0x1c,0xb0,0xac,0x60,0x1,0x0,0x94,0x35,0x45,0xb,0x0,0x0,0xca,0xb2, - 0x82,0x5,0x0,0x50,0x3e,0x60,0x69,0x2,0x0,0x40,0xd1,0x80,0x55,0xd9,0xe5,0xe, - 0x0,0x50,0x36,0x60,0x59,0xc1,0x2,0x0,0x28,0xcb,0x26,0x77,0x0,0x80,0xc2,0xbc, - 0x2a,0x7,0x0,0xa0,0x74,0xc0,0x92,0xaf,0x0,0x0,0xca,0x72,0x8b,0x10,0x0,0xa0, - 0x30,0xe7,0x60,0x1,0x0,0x14,0xf6,0x1f,0x1,0x6,0x0,0xfa,0xba,0xce,0x8d,0x53, - 0x30,0x89,0xdd,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82, - -}; - -static const unsigned char qt_resource_name[] = { - // res - 0x0,0x3, - 0x0,0x0,0x78,0xc3, - 0x0,0x72, - 0x0,0x65,0x0,0x73, - // src - 0x0,0x3, - 0x0,0x0,0x7a,0x83, - 0x0,0x73, - 0x0,0x72,0x0,0x63, - // kylin-assistant.png - 0x0,0x13, - 0xd,0x37,0x45,0x67, - 0x0,0x6b, - 0x0,0x79,0x0,0x6c,0x0,0x69,0x0,0x6e,0x0,0x2d,0x0,0x61,0x0,0x73,0x0,0x73,0x0,0x69,0x0,0x73,0x0,0x74,0x0,0x61,0x0,0x6e,0x0,0x74,0x0,0x2e,0x0,0x70, - 0x0,0x6e,0x0,0x67, - // download.svg - 0x0,0xc, - 0x8,0x1a,0x90,0xa7, - 0x0,0x64, - 0x0,0x6f,0x0,0x77,0x0,0x6e,0x0,0x6c,0x0,0x6f,0x0,0x61,0x0,0x64,0x0,0x2e,0x0,0x73,0x0,0x76,0x0,0x67, - // wave-back.png - 0x0,0xd, - 0xc,0x87,0x51,0xa7, - 0x0,0x77, - 0x0,0x61,0x0,0x76,0x0,0x65,0x0,0x2d,0x0,0x62,0x0,0x61,0x0,0x63,0x0,0x6b,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67, - // upload.svg - 0x0,0xa, - 0x5,0x78,0xd4,0xa7, - 0x0,0x75, - 0x0,0x70,0x0,0x6c,0x0,0x6f,0x0,0x61,0x0,0x64,0x0,0x2e,0x0,0x73,0x0,0x76,0x0,0x67, - // wave-front.png - 0x0,0xe, - 0x7,0xc7,0x33,0x7, - 0x0,0x77, - 0x0,0x61,0x0,0x76,0x0,0x65,0x0,0x2d,0x0,0x66,0x0,0x72,0x0,0x6f,0x0,0x6e,0x0,0x74,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67, - -}; - -static const unsigned char qt_resource_struct[] = { - // : - 0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x1, - // :/res - 0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x5, - // :/src - 0x0,0x0,0x0,0xc,0x0,0x2,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x3, - // :/src/res - 0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x4, - // :/src/res/kylin-assistant.png - 0x0,0x0,0x0,0x18,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0, - // :/res/upload.svg - 0x0,0x0,0x0,0x82,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x3a,0xf2, - // :/res/wave-front.png - 0x0,0x0,0x0,0x9c,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x43,0x9e, - // :/res/download.svg - 0x0,0x0,0x0,0x44,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x25,0x57, - // :/res/wave-back.png - 0x0,0x0,0x0,0x62,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x2e,0x6b, - -}; - -#ifdef QT_NAMESPACE -# define QT_RCC_PREPEND_NAMESPACE(name) ::QT_NAMESPACE::name -# define QT_RCC_MANGLE_NAMESPACE0(x) x -# define QT_RCC_MANGLE_NAMESPACE1(a, b) a##_##b -# define QT_RCC_MANGLE_NAMESPACE2(a, b) QT_RCC_MANGLE_NAMESPACE1(a,b) -# define QT_RCC_MANGLE_NAMESPACE(name) QT_RCC_MANGLE_NAMESPACE2( \ - QT_RCC_MANGLE_NAMESPACE0(name), QT_RCC_MANGLE_NAMESPACE0(QT_NAMESPACE)) -#else -# define QT_RCC_PREPEND_NAMESPACE(name) name -# define QT_RCC_MANGLE_NAMESPACE(name) name -#endif - -#ifdef QT_NAMESPACE -namespace QT_NAMESPACE { -#endif - -bool qRegisterResourceData(int, const unsigned char *, const unsigned char *, const unsigned char *); - -bool qUnregisterResourceData(int, const unsigned char *, const unsigned char *, const unsigned char *); - -#ifdef QT_NAMESPACE -} -#endif - -int QT_RCC_MANGLE_NAMESPACE(qInitResources_res)(); -int QT_RCC_MANGLE_NAMESPACE(qInitResources_res)() -{ - QT_RCC_PREPEND_NAMESPACE(qRegisterResourceData) - (0x01, qt_resource_struct, qt_resource_name, qt_resource_data); - return 1; -} - -int QT_RCC_MANGLE_NAMESPACE(qCleanupResources_res)(); -int QT_RCC_MANGLE_NAMESPACE(qCleanupResources_res)() -{ - QT_RCC_PREPEND_NAMESPACE(qUnregisterResourceData) - (0x01, qt_resource_struct, qt_resource_name, qt_resource_data); - return 1; -} - -namespace { - struct initializer { - initializer() { QT_RCC_MANGLE_NAMESPACE(qInitResources_res)(); } - ~initializer() { QT_RCC_MANGLE_NAMESPACE(qCleanupResources_res)(); } - } dummy; -} diff --git a/plugins/systemmonitor/res.qrc b/plugins/systemmonitor/res.qrc deleted file mode 100644 index c2668bf..0000000 --- a/plugins/systemmonitor/res.qrc +++ /dev/null @@ -1,9 +0,0 @@ - - - res/wave-front.png - res/wave-back.png - ../../src/res/kylin-assistant.png - res/upload.svg - res/download.svg - - diff --git a/plugins/systemmonitor/resourcesdialog.cpp b/plugins/systemmonitor/resourcesdialog.cpp index c0ac251..8de27d8 100644 --- a/plugins/systemmonitor/resourcesdialog.cpp +++ b/plugins/systemmonitor/resourcesdialog.cpp @@ -18,9 +18,9 @@ */ #include "resourcesdialog.h" -#include "cpuoccupancyrate.h" +#include "cpuratewidget.h" #include "memorywidget.h" -#include "networkflow.h" +#include "networkwidget.h" #include "resourcescategory.h" #include @@ -141,10 +141,10 @@ ResouresDialog::ResouresDialog(QWidget *parent) m_hlayout = new QHBoxLayout(this); m_hlayout->setContentsMargins(0, 0, 0, 0); -// splitter = new QSplitter(this); -// splitter->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); -// splitter->setOrientation(Qt::Horizontal); -// splitter->setHandleWidth(1); + splitter = new QSplitter(this); + splitter->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + splitter->setOrientation(Qt::Horizontal); + splitter->setHandleWidth(1); m_stack = new QStackedWidget(this); m_stack->setStyleSheet("QStackedWidget{background: rgb(255, 255, 255);}"); @@ -154,9 +154,9 @@ ResouresDialog::ResouresDialog(QWidget *parent) connect(m_resourcesCategory, SIGNAL(switchResoucesPage(int)), this, SLOT(onSwitchResoucesPage(int))); // m_vlayout = new QVBoxLayout; - m_cpuWidget = new CpuOccupancyRate(); + m_cpuWidget = new CpuRateWidget(); m_memoryWidget = new MemoryWidget(); - m_networkWidget = new NetworkFlow(); + m_networkWidget = new NetworkWidget(); // m_vlayout->addWidget(m_cpuWidget, 0, Qt::AlignHCenter); // m_vlayout->addWidget(m_memoryWidget, 0, Qt::AlignHCenter); // m_vlayout->addWidget(m_networkWidget, 0, Qt::AlignHCenter); @@ -165,13 +165,12 @@ ResouresDialog::ResouresDialog(QWidget *parent) m_stack->addWidget(m_networkWidget); m_stack->setCurrentWidget(m_cpuWidget); - m_hlayout->addWidget(m_resourcesCategory); + /*m_hlayout->addWidget(m_resourcesCategory); // m_hlayout->addLayout(m_vlayout); - m_hlayout->addWidget(m_stack); -// splitter->addWidget(m_resourcesCategory); -// splitter->addWidget(m_stack); - -// m_hlayout->addWidget(splitter); + m_hlayout->addWidget(m_stack);*/ + splitter->addWidget(m_resourcesCategory); + splitter->addWidget(m_stack); + m_hlayout->addWidget(splitter); connect(this, SIGNAL(updateNetworkStatus(long,long,long,long)), m_networkWidget, SLOT(onUpdateNetworkStatus(long,long,long,long)), Qt::QueuedConnection); connect(this, SIGNAL(updateMemoryStatus()), m_memoryWidget, SLOT(onUpdateMemoryStatus())); @@ -183,9 +182,6 @@ ResouresDialog::ResouresDialog(QWidget *parent) connect(this, SIGNAL(updateCpuStatus(double)), m_resourcesCategory, SLOT(onUpdateCpuPercent(double)), Qt::QueuedConnection); connect(this, SIGNAL(updateNetworkStatus(long,long,long,long)), m_resourcesCategory, SLOT(onUpdateNetworkStatus(long,long,long,long)), Qt::QueuedConnection); -// connect(m_networkWidget, &NetworkFlow::rebackNetworkPainterPath, this, [=] (QPainterPath downloadPath, QPainterPath uploadPath) { -// m_resourcesCategory->onUpdateNetworkPainterPath(downloadPath, uploadPath); -// }); updateStatusTimer = new QTimer(this); connect(updateStatusTimer, SIGNAL(timeout()), this, SLOT(updateResourceStatus())); diff --git a/plugins/systemmonitor/resourcesdialog.h b/plugins/systemmonitor/resourcesdialog.h index 2e76ef7..a3d7a9a 100644 --- a/plugins/systemmonitor/resourcesdialog.h +++ b/plugins/systemmonitor/resourcesdialog.h @@ -24,9 +24,9 @@ #include class ResourcesCategory; -class CpuOccupancyRate; +class CpuRateWidget; class MemoryWidget; -class NetworkFlow; +class NetworkWidget; class ResouresDialog : public QWidget { @@ -65,10 +65,10 @@ private: QHBoxLayout *m_hlayout = nullptr; // QVBoxLayout *m_vlayout = nullptr; ResourcesCategory * m_resourcesCategory = nullptr; - CpuOccupancyRate *m_cpuWidget = nullptr; + CpuRateWidget *m_cpuWidget = nullptr; MemoryWidget *m_memoryWidget = nullptr; - NetworkFlow *m_networkWidget = nullptr; + NetworkWidget *m_networkWidget = nullptr; -// QSplitter *splitter = nullptr; + QSplitter *splitter = nullptr; QStackedWidget *m_stack = nullptr; }; diff --git a/plugins/systemmonitor/resourcesindicator.cpp b/plugins/systemmonitor/resourcesindicator.cpp index 69c5ca9..1e9421c 100644 --- a/plugins/systemmonitor/resourcesindicator.cpp +++ b/plugins/systemmonitor/resourcesindicator.cpp @@ -30,6 +30,7 @@ ResourcesIndicator::ResourcesIndicator(int flag, QWidget *parent) else { m_borderColor = Qt::transparent; } + setResourcesState(Normal); /*m_layout = new QHBoxLayout(this); m_layout->setContentsMargins(5,5,5,5); diff --git a/plugins/systemmonitor/systemmonitor.pro b/plugins/systemmonitor/systemmonitor.pro index 41de568..318925a 100644 --- a/plugins/systemmonitor/systemmonitor.pro +++ b/plugins/systemmonitor/systemmonitor.pro @@ -54,11 +54,13 @@ HEADERS += \ diskmodel.h \ diskinfo.h \ ../widgets/mysearchedit.h \ + networkwidget.h \ networkflow.h \ - cpuoccupancyrate.h \ + cpuratewidget.h \ cpuballwidget.h \ smoothcurvegenerator.h \ memorywidget.h \ + memorycircle.h \ networkindicator.h \ resourcesindicator.h \ resourcescategory.h @@ -89,11 +91,13 @@ SOURCES += \ diskmodel.cpp \ diskinfo.cpp \ ../widgets/mysearchedit.cpp \ + networkwidget.cpp \ networkflow.cpp \ - cpuoccupancyrate.cpp \ + cpuratewidget.cpp \ cpuballwidget.cpp \ smoothcurvegenerator.cpp \ memorywidget.cpp \ + memorycircle.cpp \ networkindicator.cpp \ resourcesindicator.cpp \ resourcescategory.cpp diff --git a/src/img.qrc b/src/img.qrc index ac0c9c9..44b6014 100644 --- a/src/img.qrc +++ b/src/img.qrc @@ -214,8 +214,6 @@ res/menu_selected.png res/download.svg res/upload.svg - res/wave-back.png - res/wave-front.png res/disk.png res/sub_logo.png res/user_proc.png @@ -223,6 +221,10 @@ res/all_proc.png res/arrow_down.png res/arrow_up.png + res/wave_front.png + res/wave_front_small.png + res/wave_back.png + res/wave_back_small.png res/sysBtn/close_button.png diff --git a/src/res/wave-back.png b/src/res/wave-back.png deleted file mode 100644 index 7f08667..0000000 Binary files a/src/res/wave-back.png and /dev/null differ diff --git a/src/res/wave-front.png b/src/res/wave-front.png deleted file mode 100644 index ec6e1a8..0000000 Binary files a/src/res/wave-front.png and /dev/null differ diff --git a/src/res/wave_back.png b/src/res/wave_back.png new file mode 100644 index 0000000..38abf8c Binary files /dev/null and b/src/res/wave_back.png differ diff --git a/src/res/wave_back_small.png b/src/res/wave_back_small.png new file mode 100644 index 0000000..311af1a Binary files /dev/null and b/src/res/wave_back_small.png differ diff --git a/src/res/wave_front.png b/src/res/wave_front.png new file mode 100644 index 0000000..8820475 Binary files /dev/null and b/src/res/wave_front.png differ diff --git a/src/res/wave_front_small.png b/src/res/wave_front_small.png new file mode 100644 index 0000000..ca1c487 Binary files /dev/null and b/src/res/wave_front_small.png differ diff --git a/src/translation/kylin-assistant_de.ts b/src/translation/kylin-assistant_de.ts index 7fe2806..9249177 100644 --- a/src/translation/kylin-assistant_de.ts +++ b/src/translation/kylin-assistant_de.ts @@ -532,9 +532,9 @@ Kylin Team <ubuntukylin-members@list.launchpad.net> - CpuOccupancyRate + CpuRateWidget - + CPU @@ -1346,16 +1346,41 @@ Kylin Team <ubuntukylin-members@list.launchpad.net> - MemoryWidget + MemoryCircle - + Memory - - - Used %1(%2), Total %3 + + Swap + + + + + + Used(Percent) + + + + + + Total + + + + + + %1(%2%) + + + + + MemoryWidget + + + Memory @@ -1415,10 +1440,35 @@ Kylin Team <ubuntukylin-members@list.launchpad.net> MonitorTitleWidget - + Kylin System Monitor + + + Processes + + + + + Resources + + + + + File Systems + + + + + Cancel + + + + + Enter the relevant info of process + + MouseWidget @@ -1446,31 +1496,44 @@ Kylin Team <ubuntukylin-members@list.launchpad.net> NetworkFlow - - Network - - - - + Receiving - + Total Received - + Sending - + + Receive + + + + + Send + + + + Total Sent + + NetworkWidget + + + Network + + + NormalCard @@ -1565,49 +1628,49 @@ Kylin Team <ubuntukylin-members@list.launchpad.net> ProcessDialog - - - + + + End process - + Ending a process may destroy data, break the session or introduce a security risk. Only unresponsive processes should be ended. Are you sure to continue? - - + + Cancel - - + + Kill process - + Killing a process may destroy data, break the session or introduce a security risk. Only unresponsive processes should be killed. Are you sure to continue? - + Stop process - + Continue process - + Properties @@ -1615,28 +1678,28 @@ Are you sure to continue? ProcessListItem - + Stopped - + Suspend - + Zombie - + No response - - + + Uninterruptible @@ -1644,47 +1707,50 @@ Are you sure to continue? ProcessListWidget - + + Process Name - + User - + Status - + CPU - + ID - + + Command Line - + Memory - + + Priority - + No search result @@ -1705,27 +1771,27 @@ Are you sure to continue? PropertiesDialog - + User name - + Process name - + Command line - + CPU Time - + Started Time @@ -2472,6 +2538,7 @@ Are you sure to continue? + byte @@ -2482,6 +2549,7 @@ Are you sure to continue? + bytes @@ -2492,6 +2560,7 @@ Are you sure to continue? + KiB @@ -2502,6 +2571,7 @@ Are you sure to continue? + MiB @@ -2512,6 +2582,7 @@ Are you sure to continue? + GiB @@ -2522,6 +2593,7 @@ Are you sure to continue? + TiB @@ -2540,6 +2612,24 @@ Are you sure to continue? + + ResourcesCategory + + + CPU + + + + + Memory + + + + + Network + + + SettingAction @@ -2688,29 +2778,6 @@ Are you sure to continue? - - ToolBar - - - Processes - - - - - Resources - - - - - File Systems - - - - - Cancel - - - ToolWidget diff --git a/src/translation/kylin-assistant_es.ts b/src/translation/kylin-assistant_es.ts index 8939a9e..a83edb9 100644 --- a/src/translation/kylin-assistant_es.ts +++ b/src/translation/kylin-assistant_es.ts @@ -532,9 +532,9 @@ Kylin Team <ubuntukylin-members@list.launchpad.net> - CpuOccupancyRate + CpuRateWidget - + CPU @@ -1346,16 +1346,41 @@ Kylin Team <ubuntukylin-members@list.launchpad.net> - MemoryWidget + MemoryCircle - + Memory - - - Used %1(%2), Total %3 + + Swap + + + + + + Used(Percent) + + + + + + Total + + + + + + %1(%2%) + + + + + MemoryWidget + + + Memory @@ -1415,10 +1440,35 @@ Kylin Team <ubuntukylin-members@list.launchpad.net> MonitorTitleWidget - + Kylin System Monitor + + + Processes + + + + + Resources + + + + + File Systems + + + + + Cancel + + + + + Enter the relevant info of process + + MouseWidget @@ -1446,31 +1496,44 @@ Kylin Team <ubuntukylin-members@list.launchpad.net> NetworkFlow - - Network - - - - + Receiving - + Total Received - + Sending - + + Receive + + + + + Send + + + + Total Sent + + NetworkWidget + + + Network + + + NormalCard @@ -1565,49 +1628,49 @@ Kylin Team <ubuntukylin-members@list.launchpad.net> ProcessDialog - - - + + + End process - + Ending a process may destroy data, break the session or introduce a security risk. Only unresponsive processes should be ended. Are you sure to continue? - - + + Cancel - - + + Kill process - + Killing a process may destroy data, break the session or introduce a security risk. Only unresponsive processes should be killed. Are you sure to continue? - + Stop process - + Continue process - + Properties @@ -1615,28 +1678,28 @@ Are you sure to continue? ProcessListItem - + Stopped - + Suspend - + Zombie - + No response - - + + Uninterruptible @@ -1644,47 +1707,50 @@ Are you sure to continue? ProcessListWidget - + + Process Name - + User - + Status - + CPU - + ID - + + Command Line - + Memory - + + Priority - + No search result @@ -1705,27 +1771,27 @@ Are you sure to continue? PropertiesDialog - + User name - + Process name - + Command line - + CPU Time - + Started Time @@ -2472,6 +2538,7 @@ Are you sure to continue? + byte @@ -2482,6 +2549,7 @@ Are you sure to continue? + bytes @@ -2492,6 +2560,7 @@ Are you sure to continue? + KiB @@ -2502,6 +2571,7 @@ Are you sure to continue? + MiB @@ -2512,6 +2582,7 @@ Are you sure to continue? + GiB @@ -2522,6 +2593,7 @@ Are you sure to continue? + TiB @@ -2540,6 +2612,24 @@ Are you sure to continue? + + ResourcesCategory + + + CPU + + + + + Memory + + + + + Network + + + SettingAction @@ -2688,29 +2778,6 @@ Are you sure to continue? - - ToolBar - - - Processes - - - - - Resources - - - - - File Systems - - - - - Cancel - - - ToolWidget diff --git a/src/translation/kylin-assistant_fr.ts b/src/translation/kylin-assistant_fr.ts index efa2a2c..d1ac505 100644 --- a/src/translation/kylin-assistant_fr.ts +++ b/src/translation/kylin-assistant_fr.ts @@ -532,9 +532,9 @@ Kylin Team <ubuntukylin-members@list.launchpad.net> - CpuOccupancyRate + CpuRateWidget - + CPU @@ -1346,16 +1346,41 @@ Kylin Team <ubuntukylin-members@list.launchpad.net> - MemoryWidget + MemoryCircle - + Memory - - - Used %1(%2), Total %3 + + Swap + + + + + + Used(Percent) + + + + + + Total + + + + + + %1(%2%) + + + + + MemoryWidget + + + Memory @@ -1415,10 +1440,35 @@ Kylin Team <ubuntukylin-members@list.launchpad.net> MonitorTitleWidget - + Kylin System Monitor + + + Processes + + + + + Resources + + + + + File Systems + + + + + Cancel + + + + + Enter the relevant info of process + + MouseWidget @@ -1446,31 +1496,44 @@ Kylin Team <ubuntukylin-members@list.launchpad.net> NetworkFlow - - Network - - - - + Receiving - + Total Received - + Sending - + + Receive + + + + + Send + + + + Total Sent + + NetworkWidget + + + Network + + + NormalCard @@ -1565,49 +1628,49 @@ Kylin Team <ubuntukylin-members@list.launchpad.net> ProcessDialog - - - + + + End process - + Ending a process may destroy data, break the session or introduce a security risk. Only unresponsive processes should be ended. Are you sure to continue? - - + + Cancel - - + + Kill process - + Killing a process may destroy data, break the session or introduce a security risk. Only unresponsive processes should be killed. Are you sure to continue? - + Stop process - + Continue process - + Properties @@ -1615,28 +1678,28 @@ Are you sure to continue? ProcessListItem - + Stopped - + Suspend - + Zombie - + No response - - + + Uninterruptible @@ -1644,47 +1707,50 @@ Are you sure to continue? ProcessListWidget - + + Process Name - + User - + Status - + CPU - + ID - + + Command Line - + Memory - + + Priority - + No search result @@ -1705,27 +1771,27 @@ Are you sure to continue? PropertiesDialog - + User name - + Process name - + Command line - + CPU Time - + Started Time @@ -2472,6 +2538,7 @@ Are you sure to continue? + byte @@ -2482,6 +2549,7 @@ Are you sure to continue? + bytes @@ -2492,6 +2560,7 @@ Are you sure to continue? + KiB @@ -2502,6 +2571,7 @@ Are you sure to continue? + MiB @@ -2512,6 +2582,7 @@ Are you sure to continue? + GiB @@ -2522,6 +2593,7 @@ Are you sure to continue? + TiB @@ -2540,6 +2612,24 @@ Are you sure to continue? + + ResourcesCategory + + + CPU + + + + + Memory + + + + + Network + + + SettingAction @@ -2688,29 +2778,6 @@ Are you sure to continue? - - ToolBar - - - Processes - - - - - Resources - - - - - File Systems - - - - - Cancel - - - ToolWidget diff --git a/src/translation/kylin-assistant_ru.ts b/src/translation/kylin-assistant_ru.ts index b3eaf49..d3f3ef4 100644 --- a/src/translation/kylin-assistant_ru.ts +++ b/src/translation/kylin-assistant_ru.ts @@ -532,9 +532,9 @@ Kylin Team <ubuntukylin-members@list.launchpad.net> - CpuOccupancyRate + CpuRateWidget - + CPU @@ -1346,16 +1346,41 @@ Kylin Team <ubuntukylin-members@list.launchpad.net> - MemoryWidget + MemoryCircle - + Memory - - - Used %1(%2), Total %3 + + Swap + + + + + + Used(Percent) + + + + + + Total + + + + + + %1(%2%) + + + + + MemoryWidget + + + Memory @@ -1415,10 +1440,35 @@ Kylin Team <ubuntukylin-members@list.launchpad.net> MonitorTitleWidget - + Kylin System Monitor + + + Processes + + + + + Resources + + + + + File Systems + + + + + Cancel + + + + + Enter the relevant info of process + + MouseWidget @@ -1446,31 +1496,44 @@ Kylin Team <ubuntukylin-members@list.launchpad.net> NetworkFlow - - Network - - - - + Receiving - + Total Received - + Sending - + + Receive + + + + + Send + + + + Total Sent + + NetworkWidget + + + Network + + + NormalCard @@ -1565,49 +1628,49 @@ Kylin Team <ubuntukylin-members@list.launchpad.net> ProcessDialog - - - + + + End process - + Ending a process may destroy data, break the session or introduce a security risk. Only unresponsive processes should be ended. Are you sure to continue? - - + + Cancel - - + + Kill process - + Killing a process may destroy data, break the session or introduce a security risk. Only unresponsive processes should be killed. Are you sure to continue? - + Stop process - + Continue process - + Properties @@ -1615,28 +1678,28 @@ Are you sure to continue? ProcessListItem - + Stopped - + Suspend - + Zombie - + No response - - + + Uninterruptible @@ -1644,47 +1707,50 @@ Are you sure to continue? ProcessListWidget - + + Process Name - + User - + Status - + CPU - + ID - + + Command Line - + Memory - + + Priority - + No search result @@ -1705,27 +1771,27 @@ Are you sure to continue? PropertiesDialog - + User name - + Process name - + Command line - + CPU Time - + Started Time @@ -2472,6 +2538,7 @@ Are you sure to continue? + byte @@ -2482,6 +2549,7 @@ Are you sure to continue? + bytes @@ -2492,6 +2560,7 @@ Are you sure to continue? + KiB @@ -2502,6 +2571,7 @@ Are you sure to continue? + MiB @@ -2512,6 +2582,7 @@ Are you sure to continue? + GiB @@ -2522,6 +2593,7 @@ Are you sure to continue? + TiB @@ -2540,6 +2612,24 @@ Are you sure to continue? + + ResourcesCategory + + + CPU + + + + + Memory + + + + + Network + + + SettingAction @@ -2688,29 +2778,6 @@ Are you sure to continue? - - ToolBar - - - Processes - - - - - Resources - - - - - File Systems - - - - - Cancel - - - ToolWidget diff --git a/src/translation/kylin-assistant_zh_CN.qm b/src/translation/kylin-assistant_zh_CN.qm index 608c8d1..11c727d 100644 Binary files a/src/translation/kylin-assistant_zh_CN.qm and b/src/translation/kylin-assistant_zh_CN.qm differ diff --git a/src/translation/kylin-assistant_zh_CN.ts b/src/translation/kylin-assistant_zh_CN.ts index a0fb50a..75bad28 100644 --- a/src/translation/kylin-assistant_zh_CN.ts +++ b/src/translation/kylin-assistant_zh_CN.ts @@ -1191,7 +1191,14 @@ Kylin Team <ubuntukylin-members@list.launchpad.net> CpuOccupancyRate - + CPU + 处理器 + + + + CpuRateWidget + + CPU 处理器 @@ -2098,6 +2105,38 @@ Kylin Team <ubuntukylin-members@list.launchpad.net> 优客助手 + + MemoryCircle + + + Memory + 内存 + + + + Swap + 交换 + + + + + Used(Percent) + 已使用(百分比) + + + + + Total + 总量 + + + + + %1(%2%) + %1(%2%) + + + MemoryWidget @@ -2109,15 +2148,13 @@ Kylin Team <ubuntukylin-members@list.launchpad.net> 内存信息 %1 - + Memory 内存 - - Used %1(%2), Total %3 - 已使用 %1(%2), 共 %3 + 已使用 %1(%2), 共 %3 @@ -2176,10 +2213,35 @@ Kylin Team <ubuntukylin-members@list.launchpad.net> MonitorTitleWidget - + Kylin System Monitor 麒麟系统监视器 + + + Processes + 进程 + + + + Resources + 资源 + + + + File Systems + 文件系统 + + + + Cancel + 取消 + + + + Enter the relevant info of process + 输入进程相关信息 + MonitorWidget @@ -2249,31 +2311,48 @@ Kylin Team <ubuntukylin-members@list.launchpad.net> NetworkFlow - Network - 网络 + 网络 - + Receiving 正在接收 - + Total Received 总计已接收 - + Sending 正在发送 - + + Receive + 接收 + + + + Send + 发送 + + + Total Sent 总计已发送 + + NetworkWidget + + + Network + 网络 + + NicWidget @@ -2379,46 +2458,46 @@ Kylin Team <ubuntukylin-members@list.launchpad.net> ProcessDialog - - - + + + End process 结束进程 - + Ending a process may destroy data, break the session or introduce a security risk. Only unresponsive processes should be ended. Are you sure to continue? 结束进程可能导致数据损坏,中断会话或带来安全风险。您应该只结束无响应的进程。 您确定要继续该操作? - - + + Cancel 取消 - - + + Kill process 杀死进程 - + Killing a process may destroy data, break the session or introduce a security risk. Only unresponsive processes should be killed. Are you sure to continue? 杀死进程可能导致数据损坏,中断会话或带来安全风险。您应该只杀死无响应的进程。 您确定要继续该操作? - + Stop process 停止进程 - + Continue process 继续进程 @@ -2451,7 +2530,7 @@ Are you sure to continue? 改变优先级 - + Properties 属性 @@ -2459,28 +2538,28 @@ Are you sure to continue? ProcessListItem - + Stopped 已停止 - + Suspend 停止 - + Zombie 僵死 - + No response 无反应 - - + + Uninterruptible 不可中断 @@ -2488,47 +2567,50 @@ Are you sure to continue? ProcessListWidget - + + Process Name 进程名 - + User 用户 - + Status 状态 - + CPU 处理器 - + ID ID - + + Command Line 命令行 - + Memory 内存 - + + Priority 优先级 - + No search result 无搜索结果 @@ -2549,27 +2631,27 @@ Are you sure to continue? PropertiesDialog - + User name 用户 - + Process name 进程名 - + Command line 命令行 - + CPU Time CPU 时间 - + Started Time 开始于 @@ -3336,6 +3418,7 @@ Are you sure to continue? 位/秒 + byte 字节 @@ -3346,6 +3429,7 @@ Are you sure to continue? 字节/秒 + bytes 字节 @@ -3356,6 +3440,7 @@ Are you sure to continue? 字节/秒 + KiB KB @@ -3366,6 +3451,7 @@ Are you sure to continue? KB/秒 + MiB MiB @@ -3376,6 +3462,7 @@ Are you sure to continue? MiB/秒 + GiB GiB @@ -3386,6 +3473,7 @@ Are you sure to continue? GiB/秒 + TiB TiB @@ -3404,6 +3492,24 @@ Are you sure to continue? + + ResourcesCategory + + + CPU + 处理器 + + + + Memory + 内存 + + + + Network + 网络 + + SensorWieget @@ -3727,24 +3833,20 @@ Are you sure to continue? ToolBar - Processes - 进程 + 进程 - Resources - 资源 + 资源 - File Systems - 文件系统 + 文件系统 - Cancel - 取消 + 取消