From ee8dd96ddc4b27d919cd7465a43db826ffc1e327 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Tue, 22 Mar 2016 13:45:51 +0100 Subject: [PATCH 01/31] Some very initial and hugely experimental porting to QtWebEngine modules. --- CMakeLists.txt | 308 +++++------------- .../executable_properties/rssguard_os2.rc.in | 1 - resources/graphics/rssguard_os2.ico | Bin 5604 -> 0 bytes src/gui/feedmessageviewer.cpp | 5 +- src/miscellaneous/settings.cpp | 9 +- src/network-web/adblock/adblockicon.cpp | 4 +- src/network-web/adblock/adblockmanager.cpp | 4 +- src/network-web/adblock/adblockrule.cpp | 19 +- .../adblock/adblocksubscription.cpp | 2 +- src/network-web/downloadmanager.cpp | 6 +- src/network-web/webbrowser.cpp | 25 +- src/network-web/webbrowser.h | 5 +- src/network-web/webfactory.cpp | 18 +- src/network-web/webfactory.h | 4 +- src/network-web/webpage.cpp | 121 +------ src/network-web/webpage.h | 11 +- src/network-web/webview.cpp | 102 ++---- src/network-web/webview.h | 4 +- 18 files changed, 157 insertions(+), 491 deletions(-) delete mode 100644 resources/executable_properties/rssguard_os2.rc.in delete mode 100644 resources/graphics/rssguard_os2.ico diff --git a/CMakeLists.txt b/CMakeLists.txt index c1f1a7987..8734b354c 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ # # This file is part of RSS Guard. # -# Copyright (C) 2011-2015 by Martin Rotter +# Copyright (C) 2011-2016 by Martin Rotter # # RSS Guard is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,22 +25,15 @@ # # Usage: # a) DEBUG build for testing. -# cmake -DCMAKE_BUILD_TYPE=debug -DCMAKE_INSTALL_PREFIX=/usr -DUSE_QT_5=ON +# cmake -DCMAKE_BUILD_TYPE=debug -DCMAKE_INSTALL_PREFIX=/usr # # b) RELEASE build for production use. -# cmake -DCMAKE_BUILD_TYPE=release -DCMAKE_INSTALL_PREFIX=/usr -DUSE_QT_5=ON +# cmake -DCMAKE_BUILD_TYPE=release -DCMAKE_INSTALL_PREFIX=/usr # # Arguments: # -DCMAKE_INSTALL_PREFIX=/usr # Installation path, replace with something like "C:\rssguard" on Windows. # -# -DUSE_QT_5=OFF -# Specifies which major Qt version to use. Qt 4 and Qt 5 are supported. -# If "OFF" is passed as an argument, then Qt 4 is used. Default is "OFF". -# -# -DENABLE_OS2_RC=OFF -# If "ON" then icon is compiled into executable file on OS/2. Defaults to "OFF". -# # Refreshing translation sources: # make lupdate # @@ -52,7 +45,7 @@ # # Other information: # - supports Windows, Linux, OS/2 (eComStation), -# - Qt 4.7.3 and higher is required, +# - Qt 5.6 and higher is required, # - resource compiler (windres.exe) is needed on MinGW, # - resource compiler (rc.exe) is recommended on OS/2. # @@ -77,7 +70,7 @@ set(APP_URL_ISSUES_NEW_GITHUB "https://github.com/martinrotter/rssguard/issues/n set(APP_URL_ISSUES_NEW_BITBUCKET "http://bitbucket.org/skunkos/rssguard/issues/new") set(APP_URL_WIKI "https://bitbucket.org/skunkos/rssguard/wiki/Home") set(APP_EMAIL "rotter.martinos@gmail.com") -set(MINIMUM_QT_VERSION 4.7.3) +set(MINIMUM_QT_VERSION 5.6) set(EXE_NAME ${APP_LOW_NAME}) if(APPLE) @@ -85,13 +78,8 @@ if(APPLE) endif(APPLE) # Options declaration. -option(USE_QT_5 "Use Qt 5 for building" OFF) option(ENABLE_ADDITIONAL_ICONS "Install additional icons" ON) -if(OS2) - option(ENABLE_OS2_RC "Compile application icon on OS/2" OFF) -endif(OS2) - if(WIN32) option(USE_NSIS "Use NSIS generator to produce installer" OFF) endif(WIN32) @@ -101,27 +89,16 @@ if(POLICY CMP0012) cmake_policy(SET CMP0012 NEW) endif() -if(USE_QT_5) - cmake_minimum_required(VERSION 2.8.10) -else(USE_QT_5) - cmake_minimum_required(VERSION 2.6.0) -endif(USE_QT_5) +if(POLICY CMP0054) + cmake_policy(SET CMP0054 NEW) +endif() -if(${APPLE}) - if(NOT USE_QT_5) - message(FATAL_ERROR "[${APP_LOW_NAME}] Only Qt 5.x.x is supported on Mac OS X.") - endif(NOT USE_QT_5) -endif(${APPLE}) +cmake_minimum_required(VERSION 2.8.10) message(STATUS "") message(STATUS "[${APP_LOW_NAME}] ==== Options summary ====") -message(STATUS "[${APP_LOW_NAME}] Use Qt 5 for building -> ${USE_QT_5}") message(STATUS "[${APP_LOW_NAME}] Install additional icons -> ${ENABLE_ADDITIONAL_ICONS}") -if(OS2) - message(STATUS "[${APP_LOW_NAME}] Compile application icon on OS/2 -> ${ENABLE_OS2_RC}") -endif(OS2) - if(WIN32) message(STATUS "[${APP_LOW_NAME}] Use NSIS generator to produce installer -> ${USE_NSIS}") endif(WIN32) @@ -148,15 +125,10 @@ if(POLICY CMP0020) cmake_policy(SET CMP0020 NEW) endif(POLICY CMP0020) -# Select which Qt version to use. -if(USE_QT_5) - message(STATUS "[${APP_LOW_NAME}] Using Qt 5 library for building.") - - # Instruct CMake to run moc automatically when needed. - set(CMAKE_AUTOMOC ON) -else(USE_QT_5) - message(STATUS "[${APP_LOW_NAME}] Using Qt 4 library for building.") -endif(USE_QT_5) +message(STATUS "[${APP_LOW_NAME}] Using Qt 5 library for building.") + +# Instruct CMake to run moc automatically when needed. +set(CMAKE_AUTOMOC ON) # Obtain revision number if available. message(STATUS "[${APP_LOW_NAME}] Obtaining revision number.") @@ -230,61 +202,37 @@ add_definitions(-DUNICODE -D_UNICODE) # Check for C++ 11 features availability. # See http://stackoverflow.com/questions/10984442/how-to-detect-c11-support-of-a-compiler-with-cmake -if(USE_QT_5) - if("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") - execute_process( - COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION - ) - - if(${GCC_VERSION} VERSION_GREATER 4.7 OR ${GCC_VERSION} VERSION_EQUAL 4.7) - add_definitions(-std=c++11) - elseif(GCC_VERSION VERSION_GREATER 4.3 OR GCC_VERSION VERSION_EQUAL 4.3) - add_definitions(-std=gnu++0x) - else(${GCC_VERSION} VERSION_GREATER 4.7 OR ${GCC_VERSION} VERSION_EQUAL 4.7) - message(FATAL_ERROR "[${APP_LOW_NAME}] Your C++ compiler does not support C++ 11.") - endif(${GCC_VERSION} VERSION_GREATER 4.7 OR ${GCC_VERSION} VERSION_EQUAL 4.7) - - elseif("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") - add_definitions(-std=c++11 -stdlib=libc++) - elseif(${MSVC_VERSION} VERSION_LESS 1600) +if(${CMAKE_CXX_COMPILER_ID} MATCHES "GNU") + execute_process( + COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION + ) + if(${GCC_VERSION} VERSION_GREATER 4.7 OR ${GCC_VERSION} VERSION_EQUAL 4.7) + add_definitions(-std=c++11) + elseif(GCC_VERSION VERSION_GREATER 4.3 OR GCC_VERSION VERSION_EQUAL 4.3) + add_definitions(-std=gnu++0x) + else(${GCC_VERSION} VERSION_GREATER 4.7 OR ${GCC_VERSION} VERSION_EQUAL 4.7) message(FATAL_ERROR "[${APP_LOW_NAME}] Your C++ compiler does not support C++ 11.") - endif("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") -endif(USE_QT_5) + endif(${GCC_VERSION} VERSION_GREATER 4.7 OR ${GCC_VERSION} VERSION_EQUAL 4.7) + +elseif(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") + add_definitions(-std=c++11 -stdlib=libc++) +elseif(${MSVC_VERSION} VERSION_LESS 1600) + message(FATAL_ERROR "[${APP_LOW_NAME}] Your C++ compiler does not support C++ 11.") +endif(${CMAKE_CXX_COMPILER_ID} MATCHES "GNU") # Setup libraries. if(UNIX) # On Unices, enable D-Bus support. - if(USE_QT_5) - find_package(Qt5 REQUIRED DBus Sql WebKit WebKitWidgets Widgets Xml XmlPatterns Network LinguistTools PrintSupport) - else(USE_QT_5) - set(QT_MIN_VERSION ${MINIMUM_QT_VERSION}) - find_package(Qt4 REQUIRED QtDBus QtCore QtGui QtSql QtNetwork QtWebkit QtXml QtXmlPatterns) - include(${QT_USE_FILE}) - endif(USE_QT_5) + find_package(Qt5 REQUIRED DBus Sql WebEngineWidgets Widgets Xml XmlPatterns Network LinguistTools PrintSupport) else(UNIX) - if(USE_QT_5) - find_package(Qt5 REQUIRED Sql WebKit WebKitWidgets Widgets Xml XmlPatterns Network LinguistTools PrintSupport) - else(USE_QT_5) - set(QT_MIN_VERSION ${MINIMUM_QT_VERSION}) - find_package(Qt4 REQUIRED QtCore QtGui QtSql QtNetwork QtWebkit QtXml QtXmlPatterns) - include(${QT_USE_FILE}) - endif(USE_QT_5) + find_package(Qt5 REQUIRED Sql WebEngineWidgets Widgets Xml XmlPatterns Network LinguistTools PrintSupport) endif(UNIX) # Configure QStringBuilder behavior. -if(USE_QT_5) - message(STATUS "[${APP_LOW_NAME}] Enabling fast QString concatenation.") +message(STATUS "[${APP_LOW_NAME}] Enabling fast QString concatenation.") - add_definitions(-DQT_USE_FAST_CONCATENATION) - add_definitions(-DQT_USE_FAST_OPERATOR_PLUS) -elseif(NOT ${QTVERSION} VERSION_LESS 4.8.0) - message(STATUS "[${APP_LOW_NAME}] Enabling fast QString concatenation.") - - add_definitions(-DQT_USE_FAST_CONCATENATION) - add_definitions(-DQT_USE_FAST_OPERATOR_PLUS) -else(NOT ${QTVERSION} VERSION_LESS 4.8.0) - message(STATUS "[${APP_LOW_NAME}] Disabling fast QString concatenation.") -endif(USE_QT_5) +add_definitions(-DQT_USE_FAST_CONCATENATION) +add_definitions(-DQT_USE_FAST_OPERATOR_PLUS) # Configure executable "properties" for Windows or OS2. if(WIN32) @@ -293,12 +241,6 @@ if(WIN32) ${PROJECT_SOURCE_DIR}/resources/executable_properties/rssguard_win.rc.in ${CMAKE_BINARY_DIR}/resources/executable_properties/rssguard_win.rc ) -elseif(OS2 AND ENABLE_OS2_RC) - message(STATUS "[${APP_LOW_NAME}] Generating executable file properties for OS2.") - configure_file ( - ${PROJECT_SOURCE_DIR}/resources/executable_properties/rssguard_os2.rc.in - ${CMAKE_BINARY_DIR}/resources/executable_properties/rssguard_os2.rc - ) endif(WIN32) # Set special linker flag for Windows XP & MSVC++ 2013 support. @@ -318,21 +260,6 @@ if(WIN32 AND MINGW) set(APP_SOURCES ${APP_SOURCES} ${CMAKE_BINARY_DIR}/resources/executable_properties/rssguard_win.rc) -elseif(OS2) - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Zstack 0x2000 -Zlinker \"DISABLE 1121\" -s -Zlinker /PM:PM -Zno-fork -Zhigh-mem -Zmap") - - if(${ENABLE_OS2_RC}) - enable_language(RC) - set(CMAKE_RC_COMPILER_INIT rc) - message(STATUS "[${APP_LOW_NAME}] Icon file binary will be builded for OS2.") - message(STATUS "[${APP_LOW_NAME}] Used tool is: ${CMAKE_RC_COMPILER}") - set(CMAKE_RC_COMPILE_OBJECT - " -n -r ") - - set(APP_SOURCES - ${APP_SOURCES} - ${CMAKE_BINARY_DIR}/resources/executable_properties/rssguard_os2.rc) - endif(${ENABLE_OS2_RC}) elseif(WIN32 AND MSVC) # MSVC takes care of this automatically - no need to use windres.exe # for MSVC compilers. @@ -419,15 +346,6 @@ file( GLOB APP_TEXT "resources/text/C*") if(WIN32) - file( GLOB APP_DLLS_QT4_MSVC2013 - "resources/binaries/windows/qt4-msvc2013/*.dll") - - file( GLOB APP_DLLS_QT4_MSVC2013_IMAGEFORMATS - "resources/binaries/windows/qt4-msvc2013/imageformats/*.dll") - - file( GLOB APP_DLLS_QT4_MSVC2013_SQLDRIVERS - "resources/binaries/windows/qt4-msvc2013/sqldrivers/*.dll") - file( GLOB APP_DLLS_QT5_MSVC2013 "resources/binaries/windows/qt5-msvc2013/*.dll") @@ -450,23 +368,15 @@ if(APPLE) endif(APPLE) # Wrap files, create moc files. -if(USE_QT_5) - qt5_wrap_ui(APP_UI ${APP_FORMS}) - - # Load translations. - if(${Qt5LinguistTools_FOUND}) - message(STATUS "[${APP_LOW_NAME}] Qt Linguist Tools found. Translations will get compiled.") - qt5_add_translation(APP_QM ${APP_TRANSLATIONS}) - else(${Qt5LinguistTools_FOUND}) - message(STATUS "[${APP_LOW_NAME}] Qt Linguist Tools NOT found. No compilation for translations.") - endif(${Qt5LinguistTools_FOUND}) -else(USE_QT_5) - qt4_wrap_cpp(APP_MOC ${APP_HEADERS}) - qt4_wrap_ui(APP_UI ${APP_FORMS}) - - # Load translations. - qt4_add_translation(APP_QM ${APP_TRANSLATIONS}) -endif(USE_QT_5) +qt5_wrap_ui(APP_UI ${APP_FORMS}) + +# Load translations. +if(${Qt5LinguistTools_FOUND}) + message(STATUS "[${APP_LOW_NAME}] Qt Linguist Tools found. Translations will get compiled.") + qt5_add_translation(APP_QM ${APP_TRANSLATIONS}) +else(${Qt5LinguistTools_FOUND}) + message(STATUS "[${APP_LOW_NAME}] Qt Linguist Tools NOT found. No compilation for translations.") +endif(${Qt5LinguistTools_FOUND}) # Include additional directory paths. include_directories ( @@ -481,99 +391,55 @@ include_directories ( ) # Compile "rssguard" -if(USE_QT_5) - add_executable(${EXE_NAME} WIN32 MACOSX_BUNDLE - ${APP_SOURCES} - ${APP_FORMS} - ${APP_RCC} - ${APP_QM} - ) +add_executable(${EXE_NAME} WIN32 MACOSX_BUNDLE + ${APP_SOURCES} + ${APP_FORMS} + ${APP_RCC} + ${APP_QM} +) - if(WIN32) - target_link_libraries(${EXE_NAME} Qt5::WinMain) - endif(WIN32) +if(WIN32) + target_link_libraries(${EXE_NAME} Qt5::WinMain) +endif(WIN32) - if(UNIX) - # Use modules from Qt. - qt5_use_modules(${EXE_NAME} - DBus - Core - Widgets - Sql - Network - Xml - WebKit - WebKitWidgets - PrintSupport - ) - else(UNIX) +if(UNIX) # Use modules from Qt. - qt5_use_modules(${EXE_NAME} - Core - Widgets - Sql - Network - Xml - WebKit - WebKitWidgets - PrintSupport - ) - endif(UNIX) -# Setup compilation for Qt 4. -else(USE_QT_5) - add_executable(${EXE_NAME} WIN32 MACOSX_BUNDLE - ${APP_SOURCES} - ${APP_FORMS} - ${APP_MOC} - ${APP_RCC} - ${APP_QM} + qt5_use_modules(${EXE_NAME} + DBus + Core + Widgets + Sql + Network + Xml + WebEngineWidgets + PrintSupport ) - - if(UNIX) - # Link modules from Qt. - target_link_libraries(${EXE_NAME} - ${QT_QTDBUS_LIBRARY} - ${QT_QTCORE_LIBRARY} - ${QT_QTGUI_LIBRARY} - ${QT_QTNETWORK_LIBRARY} - ${QT_QTSQL_LIBRARY} - ${QT_QTXML_LIBRARY} - ${QT_QTMAIN_LIBRARY} - ${QT_QTWEBKIT_LIBRARY} - ) - else(UNIX) - # Link modules from Qt. - target_link_libraries(${EXE_NAME} - ${QT_QTCORE_LIBRARY} - ${QT_QTGUI_LIBRARY} - ${QT_QTNETWORK_LIBRARY} - ${QT_QTSQL_LIBRARY} - ${QT_QTXML_LIBRARY} - ${QT_QTMAIN_LIBRARY} - ${QT_QTWEBKIT_LIBRARY} - ) - endif(UNIX) -endif(USE_QT_5) +else(UNIX) +# Use modules from Qt. + qt5_use_modules(${EXE_NAME} + Core + Widgets + Sql + Network + Xml + WebEngineWidgets + PrintSupport + ) +endif(UNIX) # Installation stage. -if(WIN32 OR OS2) +if(WIN32) message(STATUS "[${APP_LOW_NAME}] You will probably install on Windows or OS/2.") install(TARGETS ${EXE_NAME} RUNTIME DESTINATION ./) # Copy DLLs and other binary files for main installation. - if(WIN32 AND USE_QT_5) + if(WIN32) install(FILES ${APP_DLLS_QT5_MSVC2013} DESTINATION ./) install(FILES ${APP_DLLS_QT5_MSVC2013_IMAGEFORMATS} DESTINATION ./imageformats) install(FILES ${APP_DLLS_QT5_MSVC2013_SQLDRIVERS} DESTINATION ./sqldrivers) install(FILES ${APP_DLLS_QT5_MSVC2013_PLATFORMS} DESTINATION ./platforms) install(FILES ${APP_DLLS_QT5_MSVC2013_PRINTSUPPORT} DESTINATION ./printsupport) - endif(WIN32 AND USE_QT_5) - - if(WIN32 AND NOT USE_QT_5) - install(FILES ${APP_DLLS_QT4_MSVC2013} DESTINATION ./) - install(FILES ${APP_DLLS_QT4_MSVC2013_IMAGEFORMATS} DESTINATION ./imageformats) - install(FILES ${APP_DLLS_QT4_MSVC2013_SQLDRIVERS} DESTINATION ./sqldrivers) - endif(WIN32 AND NOT USE_QT_5) + endif(WIN32) install(DIRECTORY resources/graphics/icons/mini-kfaenza DESTINATION ./icons) @@ -661,7 +527,7 @@ elseif(UNIX) install(FILES resources/graphics/${APP_LOW_NAME}_plain_128.png DESTINATION share/rssguard/icons RENAME ${APP_LOW_NAME}_plain.png) install(FILES ${APP_QM} DESTINATION share/${APP_LOW_NAME}/l10n) install(FILES ${APP_TEXT} DESTINATION share/${APP_LOW_NAME}/information) -endif(WIN32 OR OS2) +endif(WIN32) # Custom target for packaging. if(WIN32) @@ -702,16 +568,8 @@ configure_file( add_custom_target(dist COMMAND ${CMAKE_MAKE_PROGRAM} package_source) # make lupdate implementation. -if(USE_QT_5) - add_custom_target(lupdate - ${Qt5Core_QMAKE_EXECUTABLE} -project -o ${CMAKE_BINARY_DIR}/${APP_LOW_NAME}.pro - COMMAND ${Qt5_LUPDATE_EXECUTABLE} -no-obsolete -ts ${APP_TRANSLATIONS_WO_QT} -pro ${CMAKE_BINARY_DIR}/${APP_LOW_NAME}.pro - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} - ) -else(USE_QT_5) - add_custom_target(lupdate - ${QT_QMAKE_EXECUTABLE} -project -o ${CMAKE_BINARY_DIR}/${APP_LOW_NAME}.pro - COMMAND ${QT_LUPDATE_EXECUTABLE} -no-obsolete -ts ${APP_TRANSLATIONS_WO_QT} -pro ${CMAKE_BINARY_DIR}/${APP_LOW_NAME}.pro - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} - ) -endif(USE_QT_5) +add_custom_target(lupdate + ${Qt5Core_QMAKE_EXECUTABLE} -project -o ${CMAKE_BINARY_DIR}/${APP_LOW_NAME}.pro + COMMAND ${Qt5_LUPDATE_EXECUTABLE} -no-obsolete -ts ${APP_TRANSLATIONS_WO_QT} -pro ${CMAKE_BINARY_DIR}/${APP_LOW_NAME}.pro + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} +) diff --git a/resources/executable_properties/rssguard_os2.rc.in b/resources/executable_properties/rssguard_os2.rc.in deleted file mode 100644 index 4a8cf3ef1..000000000 --- a/resources/executable_properties/rssguard_os2.rc.in +++ /dev/null @@ -1 +0,0 @@ -ICON 1 DISCARDABLE "@PROJECT_SOURCE_DIR@/resources/graphics/rssguard_os2.ico" \ No newline at end of file diff --git a/resources/graphics/rssguard_os2.ico b/resources/graphics/rssguard_os2.ico deleted file mode 100644 index 3b017e99b5dd820954bce8568c09d82cfadd7932..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5604 zcmeH}cUTnX7RJA2=?jV#D@BbOBWtgSqBtU`%M1wE6MGVkB}R=cioGE!3aB8Why@E4 z6i`8|sFXzk7ZF6HZlAJPX!p$QvWtn{nbxUX!>F&jV@z*VOlg$xH=*nv6G9iu|jPZzY;s zfxLlRhVW8^mmvHt!rvgg2;r|0UV!j?gug_19uLnk!k_c;Y-2pj1kW(V)6MXw=J*o} zJk1h+B)}gE@CR1-eQW%lHJ)mX-(`ci2MVzIw{o(Wnqxj&X*x@8JVRzQP0E`hMSdLJ zM@t9vJC0t=(F-~HD}+mc&ckzg_zR9MZlpis=xG-CV=W!fRyuU5p386TWHmEKus~%o zM`8AZ++?PVKV4=tRmy|J{UGs5IwTHsNF3;pxRwry=NjQJxWvUKcqW(l zGi~A=U6(jZCqQR5U*k4THnVeW7OAWkDg^Ts=5yqx-*fb7GUN~24P40jE3%6UkSHIC zBuJEpydZI%?0m0Gz9`*T^vp!`#8i}K?xjndm7RE?-CvWoPOTT@wO*!fu~^ysC#BT_ zh2>l}akKAbgV&V*8u4!R@i(q(3QYaqaSy;18zk;k;xH$FO}J#!$=92r3O1gQxGhiS zdA&fK?4Ik=x17w|9F+^P{%Cri+3{vxjj|JupxU9XOl_UoFUo7bifsFLBWC-mec%LZTdQ({n?w z7HR+A&`?jQZ*Nm z`GL4{NJsk}r9w7g#VsU)UMsZn%fFLeslWH_+mb;G5_n#Xy+&k!$$-(BcMx`8E9tp| z`eqB+Wuw}Dy}I3M^^DMWoQC?l8>%(b{2h1r)2pD`(G;oeys~tOQh)iSq@dRi50Dq^ zd$Il8f>&=<`b$~QUpmf6MqW9(YA3|tZ@{(aDD1gG(t8ipYbV)b8`*6$>F@_RcuU!n z9D`P{NJdunz$K5&W-FlDdDCRm_m{u_pckY*Choqq4-{1y5|v=L*#ARoqvyXJzO9H*uF0$u#NL)2!^K1V-&-`~j8n`;sc3G9S+ME9<4>(_0 zQ=_XWSo}$P_BV6VkgpV~z4`QaDOoc8BdL^fVpReXY2B4G8Sr-O25>Dq358oF1A^&( z`>DP`q%e@BL*gKN_ia>{0Mc#)*=a3X?Y6(ES}#-1J65G24KivNYDHjz$c(C2F~Sw@U^crUwL5{SQ!m_fwEK(3{HMH9&2*UTwct zx#(n7g+ilGr=h++AvvwuNs*Mcy`LCkPm9qqoCcgOMt* z6Lc2#-zgaqMh`kn4Ln2*I7syadJs$3%Kj~zxY{{T9(+rtrVY6Oy`Z3A(%RdW^JErt z6~?pVp4-cnO{AzOFLPghn=Q7c-VP%b20F(bxLY#pC_OZc8XQ8g^k5b(45FL@)&2J= zJwj!huS>Iw)pd2XhD;k8VA)>+6WS~)ZT_aEi+(!@+du{G4!#l)rBOnJdtT+@*X z zgF>k_SIR%W*LtrWrTe44t}gGTWZA*Q9_!xPttUJE&eq$kBULgrd|&sft@(89Y;wz4 z68>~~<4CRIyqz0uaE=15y>R$}eAg&uWF+NsoN^AQh8&^RU9YV9^r>+f!zZayUb*$a zZ`a-LwpRAoPJzkTZ&3S$NDC`y!awvan3^OL09(|H_jiN>zr`BF8RV(F6g&bV{ z;WP2EODT&&?vB};(?3Yj_W%vm?i5J&*{fO}D}5_vnnE=Uy)P=sVQE3jCF&Nsk*a`d zXHPP-WX5oknI`8=NMpGU!ciglq*8ZqF`m@{hyCLnii7oelTx% zaM|Dxa!@GSYtZJ<<8Gmfu+%@d)yEI-qpzg&`#rnEYLXqP%T+CZQQG{h)ShH4=D=A3 z=nB5*32>V^2wlVS$De1$ou#oe^w`t18=E*a@&x4)3AxiFjx)~TY_$&wqXvdhqr#Lc z;c8Koe8Uaty?mwSy?zquG=|Y|DlXY|YbKaX&mAN? zQa7<9wbL4P`;{v8B(qedlYN28-1nK5J2pIj!X?J@0__n?yPs##<6=mU)2fN5m6OlN z=UuRetOlfK9-N)&HXYb4kd+c`PEmXUU z)?LFXsP3#Cf{UyZZbgEChm1jBf6%UbX7Cy z3N!Jtq1yFrZZH|JxJGYh6aR|ru<7hcW*^;sbrWuq#y5ePoWP=ew23#$uHAHfwQJkl zK-VVT=q9 z&V44GdF^-mz2B{BHj=7+xtN?-JvpJ;=VrC{jcOtuLIb_ViVw=iX(nFQOt_@+yr}WG zpcx;laX+WQ&T7V<(YVEE#zbpIpVF`c{RHC@$&83#hKDo5jxs}!FoQ#xL7~;XH)aF3 znO)D(`)+weKKF>sHpKDl@m#n^WV?rFk2}T&b~JnJ5wTmC*ez5%CR98+MC^K4JnE2m zWU$!fpm@XqvGabh^FHzLK=H7>;-P!QLw1V??aCUsBWu9+tp3}w`fbhXyCtj7=IkCz zu9~*&Y-D0;X=`WIzRMRw(7wy(;V5YDC}^h(%XW^2uywTL!ot>(jkbm`Z|i8@#t;DI H@lE~%!Ix_b diff --git a/src/gui/feedmessageviewer.cpp b/src/gui/feedmessageviewer.cpp index 6d8b807d9..90285b22a 100755 --- a/src/gui/feedmessageviewer.cpp +++ b/src/gui/feedmessageviewer.cpp @@ -53,6 +53,7 @@ #include #include #include +#include #include @@ -118,9 +119,9 @@ void FeedMessageViewer::loadSize() { void FeedMessageViewer::loadMessageViewerFonts() { const Settings *settings = qApp->settings(); - QWebSettings *view_settings = m_messagesBrowser->view()->settings(); + QWebEngineSettings *view_settings = m_messagesBrowser->view()->settings(); - view_settings->setFontFamily(QWebSettings::StandardFont, settings->value(GROUP(Messages), + view_settings->setFontFamily(QWebEngineSettings::StandardFont, settings->value(GROUP(Messages), SETTING(Messages::PreviewerFontStandard)).toString()); } diff --git a/src/miscellaneous/settings.cpp b/src/miscellaneous/settings.cpp index 5649dd6dd..e901730c0 100755 --- a/src/miscellaneous/settings.cpp +++ b/src/miscellaneous/settings.cpp @@ -23,7 +23,7 @@ #include #include #include -#include +#include #include @@ -304,7 +304,7 @@ DKEY CategoriesExpandStates::ID = "categories_expand_sta Settings::Settings(const QString &file_name, Format format, const SettingsProperties::SettingsType &status, QObject *parent) : QSettings(file_name, format, parent), m_initializationStatus(status) { // Perform last-minute initializations. - Messages::PreviewerFontStandardDef = QWebSettings::globalSettings()->fontFamily(QWebSettings::StandardFont); + Messages::PreviewerFontStandardDef = QWebEngineSettings::globalSettings()->fontFamily(QWebEngineSettings::StandardFont); } Settings::~Settings() { @@ -357,11 +357,6 @@ Settings *Settings::setupSettings(QObject *parent) { // Portable settings are available, use them. new_settings = new Settings(properties.m_absoluteSettingsFileName, QSettings::IniFormat, properties.m_type, parent); - // Construct icon cache in the same path. - const QString web_path = properties.m_baseDirectory + QDir::separator() + QString(APP_DB_WEB_PATH); - QDir(web_path).mkpath(web_path); - QWebSettings::setIconDatabasePath(web_path); - // Check if portable settings are available. if (properties.m_type == SettingsProperties::Portable) { qDebug("Initializing settings in '%s' (portable way).", qPrintable(QDir::toNativeSeparators(properties.m_absoluteSettingsFileName))); diff --git a/src/network-web/adblock/adblockicon.cpp b/src/network-web/adblock/adblockicon.cpp index 4d281c823..d138eea51 100755 --- a/src/network-web/adblock/adblockicon.cpp +++ b/src/network-web/adblock/adblockicon.cpp @@ -30,7 +30,7 @@ #include #include -#include +#include AdBlockIcon::AdBlockIcon(QWidget *window, QWidget *parent) @@ -71,7 +71,7 @@ void AdBlockIcon::createMenu(QMenu *menu) { AdBlockCustomList *custom_list = manager->customList(); WebPage *page = qApp->mainForm()->tabWidget()->currentWidget()->webBrowser()->view()->page(); - const QUrl page_url = page->mainFrame()->url(); + const QUrl page_url = page->url(); menu->addAction(tr("Show Adblock &settings"), manager, SLOT(showDialog())); menu->addSeparator(); diff --git a/src/network-web/adblock/adblockmanager.cpp b/src/network-web/adblock/adblockmanager.cpp index fcbe85c98..9cdea163f 100755 --- a/src/network-web/adblock/adblockmanager.cpp +++ b/src/network-web/adblock/adblockmanager.cpp @@ -34,7 +34,7 @@ #include #include #include -#include +#include AdBlockManager *AdBlockManager::s_adBlockManager = NULL; @@ -90,7 +90,7 @@ QNetworkReply *AdBlockManager::block(const QNetworkRequest &request) { WebPage *web_page = static_cast(v.value()); if (WebPage::isPointerSafeToUse(web_page)) { - if (!canBeBlocked(web_page->mainFrame()->url())) { + if (!canBeBlocked(web_page->url())) { return NULL; } diff --git a/src/network-web/adblock/adblockrule.cpp b/src/network-web/adblock/adblockrule.cpp index 5eaea3e98..e364c959e 100755 --- a/src/network-web/adblock/adblockrule.cpp +++ b/src/network-web/adblock/adblockrule.cpp @@ -56,8 +56,7 @@ #include #include #include -#include -#include +#include AdBlockRule::AdBlockRule(const QString &filter, AdBlockSubscription* subscription) @@ -289,21 +288,7 @@ bool AdBlockRule::matchObject(const QNetworkRequest &request) const { } bool AdBlockRule::matchSubdocument(const QNetworkRequest &request) const { - QWebFrame *originatingFrame = static_cast(request.originatingObject()); - - if (originatingFrame == NULL) { - return false; - } - - QWebPage *page = originatingFrame->page(); - - if (page == NULL) { - return false; - } - - bool match = !(originatingFrame == page->mainFrame()); - - return hasException(SubdocumentOption) ? !match : match; + return false; } bool AdBlockRule::matchXmlHttpRequest(const QNetworkRequest &request) const { diff --git a/src/network-web/adblock/adblocksubscription.cpp b/src/network-web/adblock/adblocksubscription.cpp index 2006a5a9f..fa92b473d 100755 --- a/src/network-web/adblock/adblocksubscription.cpp +++ b/src/network-web/adblock/adblocksubscription.cpp @@ -57,7 +57,7 @@ #include #include #include -#include +#include AdBlockSubscription::AdBlockSubscription(const QString &title, QObject *parent) diff --git a/src/network-web/downloadmanager.cpp b/src/network-web/downloadmanager.cpp index caac56e75..8f35a3047 100755 --- a/src/network-web/downloadmanager.cpp +++ b/src/network-web/downloadmanager.cpp @@ -38,7 +38,7 @@ #include #include #include -#include +#include DownloadItem::DownloadItem(bool is_direct_download, QNetworkReply *reply, QWidget *parent) : QWidget(parent), @@ -603,14 +603,12 @@ void DownloadManager::updateRow(DownloadItem *item) { int old_height = m_ui->m_viewDownloads->rowHeight(row); m_ui->m_viewDownloads->setRowHeight(row, qMax(old_height, item->minimumSizeHint().height())); - QWebSettings *globalSettings = QWebSettings::globalSettings(); // Remove the item if: // a) It is not downloading and private browsing is enabled. // OR // b) Item is already downloaded and it should be remove from downloader list. - bool remove = (!item->downloading() && globalSettings->testAttribute(QWebSettings::PrivateBrowsingEnabled)) || - (item->downloadedSuccessfully() && removePolicy() == DownloadManager::OnSuccessfullDownload); + bool remove = item->downloadedSuccessfully() && removePolicy() == DownloadManager::OnSuccessfullDownload; if (remove) { m_model->removeRow(row); diff --git a/src/network-web/webbrowser.cpp b/src/network-web/webbrowser.cpp index ad6443737..89f1695da 100755 --- a/src/network-web/webbrowser.cpp +++ b/src/network-web/webbrowser.cpp @@ -18,7 +18,6 @@ #include "network-web/webbrowser.h" #include "definitions/definitions.h" -#include "network-web/webbrowsernetworkaccessmanager.h" #include "network-web/webpage.h" #include "network-web/webview.h" #include "network-web/networkfactory.h" @@ -33,7 +32,7 @@ #include #include #include -#include +#include #include #include #include @@ -50,10 +49,10 @@ WebBrowser::WebBrowser(QWidget *parent) m_toolBar(new QToolBar(tr("Navigation panel"), this)), m_webView(new WebView(this)), m_txtLocation(new LocationLineEdit(this)), - m_actionBack(m_webView->pageAction(QWebPage::Back)), - m_actionForward(m_webView->pageAction(QWebPage::Forward)), - m_actionReload(m_webView->pageAction(QWebPage::Reload)), - m_actionStop(m_webView->pageAction(QWebPage::Stop)) { + m_actionBack(m_webView->pageAction(QWebEnginePage::Back)), + m_actionForward(m_webView->pageAction(QWebEnginePage::Forward)), + m_actionReload(m_webView->pageAction(QWebEnginePage::Reload)), + m_actionStop(m_webView->pageAction(QWebEnginePage::Stop)) { // Add this new instance to the global list of web browsers. // NOTE: This is used primarily for dynamic icon theme switching. m_runningWebBrowsers.append(this); @@ -168,7 +167,8 @@ void WebBrowser::onLoadingStarted() { void WebBrowser::onLoadingProgress(int progress) { m_loadingProgress->setValue(progress); - m_lblProgress->setText(QString(QSL(" %1 kB / %2 kB")).arg(m_webView->page()->bytesReceived() / 1000).arg(m_webView->page()->totalBytes() / 1000)); + // TODO: TODO + //m_lblProgress->setText(QString(QSL(" %1 kB / %2 kB")).arg(m_webView->page()-> / 1000).arg(m_webView->page()->totalBytes() / 1000)); } void WebBrowser::onLoadingFinished(bool success) { @@ -209,7 +209,8 @@ void WebBrowser::createConnections() { } void WebBrowser::onIconChanged() { - emit iconChanged(m_index, m_webView->icon()); + // TODO: todo + //emit iconChanged(m_index, m_webView->icon()); } void WebBrowser::onTitleChanged(const QString &new_title) { @@ -319,3 +320,11 @@ void WebBrowser::setupIcons() { m_actionStop->setIcon(qApp->icons()->fromTheme(QSL("go-stop"))); m_webView->setupIcons(); } + +QIcon WebBrowser::icon() const { + + return QIcon(); + + // TODO: TODO. + //return m_webView->iconUrl(); +} diff --git a/src/network-web/webbrowser.h b/src/network-web/webbrowser.h index 6d3c143f8..603b80c2a 100755 --- a/src/network-web/webbrowser.h +++ b/src/network-web/webbrowser.h @@ -37,7 +37,6 @@ class QHBoxLayout; class QProgressBar; class QMenu; class QLabel; -class WebBrowserNetworkAccessManager; class TabWidget; class WebBrowser : public TabContent { @@ -52,9 +51,7 @@ class WebBrowser : public TabContent { void setupIcons(); // Returns icon associated with currently loaded website. - inline QIcon icon() const { - return m_webView->icon(); - } + QIcon icon() const; inline WebView *view() const { return m_webView; diff --git a/src/network-web/webfactory.cpp b/src/network-web/webfactory.cpp index ecd6ebc2b..8e876f8bc 100755 --- a/src/network-web/webfactory.cpp +++ b/src/network-web/webfactory.cpp @@ -3,7 +3,7 @@ #include "miscellaneous/application.h" #include -#include +#include #include #include #include @@ -14,7 +14,7 @@ QPointer WebFactory::s_instance; WebFactory::WebFactory(QObject *parent) : QObject(parent), m_escapes(QMap()), m_deEscapes(QMap()), - m_globalSettings(QWebSettings::globalSettings()) { + m_globalSettings(QWebEngineSettings::globalSettings()) { } WebFactory::~WebFactory() { @@ -34,7 +34,7 @@ bool WebFactory::sendMessageViaEmail(const Message &message) { const QString arguments = qApp->settings()->value(GROUP(Browser), SETTING(Browser::CustomExternalEmailArguments)).toString(); return QProcess::startDetached(QString("\"") + browser + QSL("\" ") + arguments.arg(message.m_title, - stripTags(message.m_contents))); + stripTags(message.m_contents))); } else { // Send it via mailto protocol. @@ -71,7 +71,7 @@ void WebFactory::switchJavascript(bool enable, bool save_settings) { qApp->settings()->setValue(GROUP(Browser), Browser::JavascriptEnabled, enable); } - m_globalSettings->setAttribute(QWebSettings::JavascriptEnabled, enable); + m_globalSettings->setAttribute(QWebEngineSettings::JavascriptEnabled, enable); emit javascriptSwitched(enable); } @@ -80,7 +80,7 @@ void WebFactory::switchPlugins(bool enable, bool save_settings) { qApp->settings()->setValue(GROUP(Browser), Browser::PluginsEnabled, enable); } - m_globalSettings->setAttribute(QWebSettings::PluginsEnabled, enable); + m_globalSettings->setAttribute(QWebEngineSettings::PluginsEnabled, enable); emit pluginsSwitched(enable); } @@ -89,7 +89,7 @@ void WebFactory::switchImages(bool enable, bool save_settings) { qApp->settings()->setValue(GROUP(Browser), Browser::ImagesEnabled, enable); } - m_globalSettings->setAttribute(QWebSettings::AutoLoadImages, enable); + m_globalSettings->setAttribute(QWebEngineSettings::AutoLoadImages, enable); emit imagesLoadingSwitched(enable); } @@ -102,15 +102,15 @@ WebFactory *WebFactory::instance() { } bool WebFactory::javascriptEnabled() const { - return m_globalSettings->testAttribute(QWebSettings::JavascriptEnabled); + return m_globalSettings->testAttribute(QWebEngineSettings::JavascriptEnabled); } bool WebFactory::pluginsEnabled() const { - return m_globalSettings->testAttribute(QWebSettings::PluginsEnabled); + return m_globalSettings->testAttribute(QWebEngineSettings::PluginsEnabled); } bool WebFactory::autoloadImages() const { - return m_globalSettings->testAttribute(QWebSettings::AutoLoadImages); + return m_globalSettings->testAttribute(QWebEngineSettings::AutoLoadImages); } QString WebFactory::stripTags(QString text) { diff --git a/src/network-web/webfactory.h b/src/network-web/webfactory.h index b7a24dda0..922eb6ddc 100755 --- a/src/network-web/webfactory.h +++ b/src/network-web/webfactory.h @@ -9,7 +9,7 @@ #include -class QWebSettings; +class QWebEngineSettings; class WebFactory : public QObject { Q_OBJECT @@ -67,7 +67,7 @@ class WebFactory : public QObject { QMap m_escapes; QMap m_deEscapes; - QWebSettings *m_globalSettings; + QWebEngineSettings *m_globalSettings; // Singleton. static QPointer s_instance; diff --git a/src/network-web/webpage.cpp b/src/network-web/webpage.cpp index 378239375..74063dc1c 100755 --- a/src/network-web/webpage.cpp +++ b/src/network-web/webpage.cpp @@ -17,29 +17,21 @@ #include "network-web/webpage.h" -#include "network-web/webbrowsernetworkaccessmanager.h" #include "network-web/webbrowser.h" #include "miscellaneous/application.h" #include "network-web/adblock/adblockmanager.h" #include -#include -#include QList WebPage::s_livingPages; WebPage::WebPage(QObject *parent) - : QWebPage(parent), m_loadProgress(-1) { - // Setup global network access manager. - // NOTE: This makes network settings easy for all web browsers. - setNetworkAccessManager(new WebBrowserNetworkAccessManager(this, this)); - setForwardUnsupportedContent(true); - connect(this, SIGNAL(unsupportedContent(QNetworkReply*)), this, SLOT(handleUnsupportedContent(QNetworkReply*))); - + : QWebEnginePage(parent), m_loadProgress(-1) { connect(this, SIGNAL(loadProgress(int)), this, SLOT(progress(int))); connect(this, SIGNAL(loadFinished(bool)), this, SLOT(finished())); + connect(this, SIGNAL(urlChanged(QUrl)), this, SLOT(urlChanged(QUrl))); s_livingPages.append(this); } @@ -58,65 +50,6 @@ void WebPage::progress(int prog) { void WebPage::finished() { progress(100); - cleanBlockedObjects(); -} - -void WebPage::cleanBlockedObjects() { - AdBlockManager *manager = AdBlockManager::instance(); - - if (!manager->isEnabled()) { - return; - } - - const QWebElement doc_element = mainFrame()->documentElement(); - - foreach (const AdBlockedEntry &entry, m_adBlockedEntries) { - const QString url_string = entry.url.toString(); - if (url_string.endsWith(QL1S(".js")) || url_string.endsWith(QL1S(".css"))) { - continue; - } - - QString url_end; - - int pos = url_string.lastIndexOf(QL1C('/')); - if (pos > 8) { - url_end = url_string.mid(pos + 1); - } - - if (url_string.endsWith(QL1C('/'))) { - url_end = url_string.left(url_string.size() - 1); - } - - QString selector(QSL("img[src$=\"%1\"], iframe[src$=\"%1\"],embed[src$=\"%1\"]")); - QWebElementCollection elements = doc_element.findAll(selector.arg(url_end)); - - foreach (QWebElement element, elements) { - QString src = element.attribute(QSL("src")); - src.remove(QL1S("../")); - - if (url_string.contains(src)) { - element.setStyleProperty(QSL("display"), QSL("none")); - } - } - } - - // Apply domain-specific element hiding rules - QString element_hiding = manager->elementHidingRulesForDomain(mainFrame()->url()); - - if (element_hiding.isEmpty()) { - return; - } - - element_hiding.append(QL1S("\n")); - - QWebElement body_element = doc_element.findFirst(QSL("body")); - body_element.appendInside(QSL(" - PGh0bWw+DQogIDxoZWFkPg0KICAgIDxzdHlsZT4NCiAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXIgew0KICAgICAgICB3aWR0aDogMjBweDsNCiAgICAgICAgaGVpZ2h0OiAyMHB4Ow0KICAgICAgfQ0KICAgICAgDQogICAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsNCiAgICAgICAgaGVpZ2h0OiAxNHB4Ow0KICAgICAgICBib3JkZXI6IDRweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDApOw0KICAgICAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94Ow0KICAgICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDFweDsNCiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzhiYmYwYTsNCiAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAtMXB4IC0xcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4wNSksIGluc2V0IDFweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7DQogICAgICB9DQogICAgICANCiAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXItYnV0dG9uIHsNCiAgICAgICAgd2lkdGg6IDA7DQogICAgICAgIGhlaWdodDogMDsNCiAgICAgICAgZGlzcGxheTogbm9uZTsNCiAgICAgIH0NCiAgICAgIA0KICAgICAgOjotd2Via2l0LXNjcm9sbGJhci1jb3JuZXIgew0KICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgICAgIH0NCiAgICANCiAgICAgIGJvZHkgew0KICAgICAgICBtYXJnaW46IDBweDsNCiAgICAgICAgcGFkZGluZzogMHB4Ow0KICAgICAgfQ0KICAgIA0KICAgICAgcHJlIHsNCiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOw0KICAgICAgfQ0KDQogICAgICAuaGVhZGVydGV4dCB7DQogICAgICAgIGZvbnQtc2l6ZTogMjBweDsNCiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsNCiAgICAgIH0NCg0KICAgICAgLmhlYWRlciB7DQogICAgICAgIGZvbnQtc2l6ZTogMTdweDsNCiAgICAgICAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgwJSwgIzhiYmYwYSksIGNvbG9yLXN0b3AoMTAwJSwgIzk4ZDEwYikpOw0KICAgICAgICBwYWRkaW5nOiA2cHg7DQogICAgICAgIG1hcmdpbjogMHB4IGF1dG87DQogICAgICAgIGNvbG9yOiBibGFjazsNCiAgICAgICAgYm9yZGVyOiAwLjVweCBzb2xpZCBibGFjazsNCiAgICAgIH0NCg0KICAgICAgLmhlYWRlciBhIHsNCiAgICAgICAgY29sb3I6IHdoaXRlOw0KICAgICAgfQ0KDQogICAgICAuY29udGVudCB7DQogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBncmF5Ow0KICAgICAgICBmb250LXNpemU6IDE2cHg7DQogICAgICAgIGNvbG9yOiAjZWVlZWVlOw0KICAgICAgICBtYXJnaW46IDBweCBhdXRvOw0KICAgICAgICBwYWRkaW5nOiA2cHg7DQogICAgICAgIHBhZGRpbmctdG9wOiAxMnB4Ow0KICAgICAgfQ0KICAgICAgDQogICAgICAuY29udGFpbmVyIHsNCiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgZ3JheTsNCiAgICAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAycHg7DQogICAgICAgIG1hcmdpbjogMTBweDsNCiAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAycHggMnB4IDE2cHggMHB4IHJnYmEoNTAsIDUwLCA1MCwgMC42Mik7DQogICAgICB9DQogICAgPC9zdHlsZT4NCiAgICA8dGl0bGU+DQogICAgICAlMQ0KICAgIDwvdGl0bGU+DQogIDwvaGVhZD4NCiAgPGJvZHk+DQogICAgJTINCiAgPC9ib2R5Pg0KPC9odG1sPg== - PGRpdiBjbGFzcz0iY29udGFpbmVyIj4NCiAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+DQogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlcnRleHQiPg0KICAgICAgICAgICUxDQogICAgICAgIDwvZGl2Pg0KICAgICAgICAlMiAoJTUpDQogICAgICAgIDxicj4NCiAgICAgICAgPGEgaHJlZj0iJTMiPiUzPC9hPg0KICAgICAgICAlNg0KICAgICAgPC9kaXY+DQogICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4NCiAgICAgICAgJTQgDQogICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4= - PGEgY2xhc3M9ImVuY2xvc3VyZSIgaHJlZj0iJTMiPiUzPC9hPg== LyogUVdpZGdldCAqLw0KUVdpZGdldCB7DQogIGNvbG9yOiAjY2NjY2NjOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzIzMjMyOw0KfQ0KDQpRV2lkZ2V0OjppdGVtOmhvdmVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogUUxpbmVhckdyYWRpZW50KCB4MTogMCwgeTE6IDAsIHgyOiAwLCB5MjogMSwgc3RvcDogMCAjOThkMTBiLCBzdG9wOiAxICM4YmJmMGEpOw0KICBjb2xvcjogIzAwMDAwMDsNCn0NCg0KUVdpZGdldDpkaXNhYmxlZCB7DQogIGNvbG9yOiAjNzc3Nzc3Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzIzMjMyOw0KfQ0KDQovKiBRVG9vbEJ1dHRvbiAqLw0KICBRVG9vbEJ1dHRvbiAsIFFUb29sQnV0dG9uOmRpc2FibGVkIHsNCiAgYm9yZGVyOiBub25lOw0KICBwYWRkaW5nOiAwcHg7DQogIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50Ow0KfQ0KDQpRVG9vbEJ1dHRvbjpob3ZlciwgUVRvb2xCdXR0b246cHJlc3NlZCB7DQogIGJvcmRlci1yYWRpdXM6IDJweDsNCiAgYm9yZGVyOiAxcHggc29saWQgZ3JheTsNCn0NCg0KUVRvb2xCdXR0b25bcG9wdXBNb2RlPSIxIl0gew0KICBwYWRkaW5nLXJpZ2h0OiAxNnB4Ow0KfQ0KDQpRVG9vbEJ1dHRvbjo6bWVudS1idXR0b24gew0KICBib3JkZXI6IDFweCBzb2xpZCBncmF5Ow0KICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMnB4Ow0KICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMnB4Ow0KICB3aWR0aDogMTRweDsNCn0NCg0KUVRvb2xCdXR0b246Om1lbnUtYXJyb3cgew0KICBpbWFnZTogdXJsKCMjL2ltYWdlcy9kb3duX2Fycm93LnBuZyk7DQp9DQoNClFUb29sQnV0dG9uOjptZW51LWFycm93Om9wZW4gew0KICB0b3A6IDFweDsgbGVmdDogMXB4Ow0KfQ0KDQovKiBRU3RhdHVzQmFyICovDQpRU3RhdHVzQmFyIFFUb29sQnV0dG9uIHsNCiAgbWFyZ2luLWxlZnQ6IDVweDsNCiAgbWFyZ2luLXJpZ2h0OiA1cHg7DQp9DQoNClFTdGF0dXNCYXI6Oml0ZW0gew0KICBib3JkZXI6IHRyYW5zcGFyZW50Ow0KfQ0KDQovKiBRVG9vbEJhciAqLw0KUVRvb2xCYXI6OnNlcGFyYXRvciB7DQogIHdpZHRoOiAxcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICM1OTU5NTk7DQoNCiAgbWFyZ2luLWxlZnQ6IDVweDsNCiAgbWFyZ2luLXJpZ2h0OiA1cHg7DQp9DQoNClFUb29sQmFyIHsNCiAgcGFkZGluZy1sZWZ0OiA1cHg7DQogIHBhZGRpbmctcmlnaHQ6IDVweDsNCn0NCg0KLyogUVRvb2xUaXAgKi8NClFUb29sVGlwIHsNCiAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7DQogIGJhY2tncm91bmQtY29sb3I6ICM5OGQxMGI7DQogIGNvbG9yOiBibGFjazsNCiAgYm9yZGVyLXJhZGl1czogMXB4Ow0KICBvcGFjaXR5OiAyMjA7DQp9DQoNCi8qIFFNZW51QmFyICovDQpRTWVudUJhcjo6aXRlbSB7DQogIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50DQp9DQoNClFNZW51QmFyOjppdGVtOnNlbGVjdGVkIHsNCiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7DQogIGJvcmRlcjogMXB4IHNvbGlkICM4YmJmMGE7DQp9DQoNClFNZW51QmFyOjppdGVtOnByZXNzZWQgew0KICBiYWNrZ3JvdW5kOiAjNDQ0Ow0KICBjb2xvcjogYmxhY2s7DQogIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7DQogIGJhY2tncm91bmQtY29sb3I6IFFMaW5lYXJHcmFkaWVudCggeDE6MCwgeTE6MCwgeDI6MCwgeTI6MSwgc3RvcDoxICM5OGQxMGIsIHN0b3A6MC40ICM4YmJmMGEgKTsNCiAgbWFyZ2luLWJvdHRvbTogLTFweDsNCiAgcGFkZGluZy1ib3R0b206IDFweDsNCn0NCg0KLyogUU1lbnUgKi8NClFNZW51IHsNCiAgYm9yZGVyOiAxcHggc29saWQgIzAwMDsNCn0NCg0KUU1lbnU6Oml0ZW0gew0KICBwYWRkaW5nOiAycHggMTBweCAycHggMjNweDsNCn0NCg0KUU1lbnU6Omljb24gew0KICBwYWRkaW5nLWxlZnQ6IDRweDsNCn0NCg0KUU1lbnU6Oml0ZW06c2VsZWN0ZWQgew0KICBjb2xvcjogYmxhY2s7DQogIGJhY2tncm91bmQtY29sb3I6IFFMaW5lYXJHcmFkaWVudCggeDE6IDAsIHkxOiAwLCB4MjogMCwgeTI6IDEsIHN0b3A6IDAgIzk4ZDEwYiwgc3RvcDogMSAjOGJiZjBhKTsNCn0NCg0KUU1lbnU6OnNlcGFyYXRvciB7DQogIGhlaWdodDogMXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTk1OTU5Ow0KICBjb2xvcjogd2hpdGU7DQogIG1hcmdpbi10b3A6IDNweDsNCiAgbWFyZ2luLWJvdHRvbTogM3B4Ow0KICBtYXJnaW4tbGVmdDogNXB4Ow0KICBtYXJnaW4tcmlnaHQ6IDVweDsNCn0NCg0KLyogUVB1c2hCdXR0b24gKi8NClFQdXNoQnV0dG9uIHsNCiAgY29sb3I6ICNiMWIxYjE7DQogIGJhY2tncm91bmQtY29sb3I6IFFMaW5lYXJHcmFkaWVudCggeDE6IDAsIHkxOiAwLCB4MjogMCwgeTI6IDEsIHN0b3A6IDAgIzU2NTY1Niwgc3RvcDogMC4xICM1MjUyNTIsIHN0b3A6IDAuNSAjNGU0ZTRlLCBzdG9wOiAwLjkgIzRhNGE0YSwgc3RvcDogMSAjNDY0NjQ2KTsNCiAgYm9yZGVyOiAxcHggc29saWQgIzFlMWUxZTsNCiAgYm9yZGVyLXJhZGl1czogMXB4Ow0KICBwYWRkaW5nOiAzcHg7DQogIGZvbnQtc2l6ZTogMTJweDsNCiAgcGFkZGluZy1sZWZ0OiA2cHg7DQogIHBhZGRpbmctcmlnaHQ6IDZweDsNCiAgbWluLXdpZHRoOiAzMHB4Ow0KfQ0KDQpRUHVzaEJ1dHRvbjpwcmVzc2VkIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogUUxpbmVhckdyYWRpZW50KCB4MTogMCwgeTE6IDAsIHgyOiAwLCB5MjogMSwgc3RvcDogMCAjMmQyZDJkLCBzdG9wOiAwLjEgIzJiMmIyYiwgc3RvcDogMC41ICMyOTI5MjksIHN0b3A6IDAuOSAjMjgyODI4LCBzdG9wOiAxICMyNTI1MjUpDQp9DQoNClFQdXNoQnV0dG9uI21fYnRuSW5zZXJ0U2VwYXJhdG9yLCBRUHVzaEJ1dHRvbiNtX2J0bkluc2VydFNwYWNlciB7DQogIG1pbi13aWR0aDogMTMwcHg7DQp9DQoNCi8qIFFDb21ib0JveCAqLw0KUUNvbWJvQm94IHsNCiAgc2VsZWN0aW9uLWJhY2tncm91bmQtY29sb3I6ICM4YmJmMGE7DQogIGJhY2tncm91bmQtY29sb3I6IFFMaW5lYXJHcmFkaWVudCggeDE6IDAsIHkxOiAwLCB4MjogMCwgeTI6IDEsIHN0b3A6IDAgIzU2NTY1Niwgc3RvcDogMC4xICM1MjUyNTIsIHN0b3A6IDAuNSAjNGU0ZTRlLCBzdG9wOiAwLjkgIzRhNGE0YSwgc3RvcDogMSAjNDY0NjQ2KTsNCiAgYm9yZGVyOiAxcHggc29saWQgIzFlMWUxZTsNCiAgYm9yZGVyLXJhZGl1czogMXB4Ow0KICBwYWRkaW5nOiAycHg7DQogIHBhZGRpbmctdG9wOiAxcHg7DQogIHBhZGRpbmctYm90dG9tOiAxcHg7DQogIHBhZGRpbmctbGVmdDogNHB4Ow0KfQ0KDQpRQ29tYm9Cb3g6aG92ZXIsIFFQdXNoQnV0dG9uOmhvdmVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogUUxpbmVhckdyYWRpZW50KCB4MTogMCwgeTE6IDAsIHgyOiAwLCB5MjogMSwgc3RvcDogMCAjOThkMTBiLCBzdG9wOiAxICM4YmJmMGEpOw0KICBjb2xvcjogYmxhY2s7DQp9DQoNClFDb21ib0JveDpvbiB7DQogIHBhZGRpbmc6IDFweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogUUxpbmVhckdyYWRpZW50KCB4MTogMCwgeTE6IDAsIHgyOiAwLCB5MjogMSwgc3RvcDogMCAjMmQyZDJkLCBzdG9wOiAwLjEgIzJiMmIyYiwgc3RvcDogMC41ICMyOTI5MjksIHN0b3A6IDAuOSAjMjgyODI4LCBzdG9wOiAxICMyNTI1MjUpOw0KfQ0KDQpRQ29tYm9Cb3ggUUFic3RyYWN0SXRlbVZpZXcgew0KICBib3JkZXI6IDFweCBzb2xpZCBRTGluZWFyR3JhZGllbnQoIHgxOiAwLCB5MTogMCwgeDI6IDAsIHkyOiAxLCBzdG9wOiAwICM5OGQxMGIsIHN0b3A6IDEgIzhiYmYwYSk7DQogIHNlbGVjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOiBRTGluZWFyR3JhZGllbnQoIHgxOiAwLCB5MTogMCwgeDI6IDAsIHkyOiAxLCBzdG9wOiAwICM5OGQxMGIsIHN0b3A6IDEgIzhiYmYwYSk7DQp9DQoNClFDb21ib0JveDo6ZHJvcC1kb3duIHsNCiAgc3ViY29udHJvbC1vcmlnaW46IHBhZGRpbmc7DQogIHN1YmNvbnRyb2wtcG9zaXRpb246IHRvcCByaWdodDsNCiAgd2lkdGg6IDE1cHg7DQogIGJvcmRlci1sZWZ0LXdpZHRoOiAwcHg7DQogIGJvcmRlci1sZWZ0LWNvbG9yOiBkYXJrZ3JheTsNCiAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkOw0KICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMXB4Ow0KICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMXB4Ow0KfQ0KDQpRQ29tYm9Cb3g6OmRvd24tYXJyb3cgew0KICBpbWFnZTogdXJsKCMjL2ltYWdlcy9kb3duX2Fycm93LnBuZykNCn0NCg0KLyogUVNjcm9sbEJhciAqLw0KUVNjcm9sbEJhcjpob3Jpem9udGFsIHsNCiAgYm9yZGVyOiAxcHggc29saWQgIzIyMjIyMjsNCiAgYmFja2dyb3VuZDogUUxpbmVhckdyYWRpZW50KCB4MTogMCwgeTE6IDAsIHgyOiAwLCB5MjogMSwgc3RvcDogMC4wICMxMjEyMTIsIHN0b3A6IDAuMiAjMjgyODI4LCBzdG9wOiAxICM0ODQ4NDgpOw0KICBoZWlnaHQ6IDEzcHg7DQogIG1hcmdpbjogMHB4IDE2cHggMCAxNnB4Ow0KfQ0KDQpRU2Nyb2xsQmFyOjpoYW5kbGU6aG9yaXpvbnRhbCB7DQogIGJhY2tncm91bmQ6IFFMaW5lYXJHcmFkaWVudCggeDE6IDAsIHkxOiAwLCB4MjogMSwgeTI6IDAsIHN0b3A6IDAgIzk4ZDEwYiwgc3RvcDogMC41ICM4YmJmMGEsIHN0b3A6IDEgIzk4ZDEwYik7DQogIG1pbi1oZWlnaHQ6IDIwcHg7DQogIGJvcmRlci1yYWRpdXM6IDFweDsNCn0NCg0KUVNjcm9sbEJhcjo6YWRkLWxpbmU6aG9yaXpvbnRhbCB7DQogIGJvcmRlcjogMXB4IHNvbGlkICMxYjFiMTk7DQogIGJvcmRlci1yYWRpdXM6IDFweDsNCiAgYmFja2dyb3VuZDogUUxpbmVhckdyYWRpZW50KCB4MTogMCwgeTE6IDAsIHgyOiAxLCB5MjogMCwgc3RvcDogMCAjOThkMTBiLCBzdG9wOiAxICM4YmJmMGEpOw0KICB3aWR0aDogMTNweDsNCiAgc3ViY29udHJvbC1wb3NpdGlvbjogcmlnaHQ7DQogIHN1YmNvbnRyb2wtb3JpZ2luOiBtYXJnaW47DQp9DQoNClFTY3JvbGxCYXI6OnN1Yi1saW5lOmhvcml6b250YWwgew0KICBib3JkZXI6IDFweCBzb2xpZCAjMWIxYjE5Ow0KICBib3JkZXItcmFkaXVzOiAxcHg7DQogIGJhY2tncm91bmQ6IFFMaW5lYXJHcmFkaWVudCggeDE6IDAsIHkxOiAwLCB4MjogMSwgeTI6IDAsIHN0b3A6IDAgIzk4ZDEwYiwgc3RvcDogMSAjOGJiZjBhKTsNCiAgd2lkdGg6IDEzcHg7DQogIHN1YmNvbnRyb2wtcG9zaXRpb246IGxlZnQ7DQogIHN1YmNvbnRyb2wtb3JpZ2luOiBtYXJnaW47DQp9DQoNClFTY3JvbGxCYXI6OnJpZ2h0LWFycm93Omhvcml6b250YWwsIFFTY3JvbGxCYXI6OmxlZnQtYXJyb3c6aG9yaXpvbnRhbCB7DQogIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOw0KICB3aWR0aDogMXB4Ow0KICBoZWlnaHQ6IDFweDsNCiAgYmFja2dyb3VuZDogd2hpdGU7DQp9DQoNClFTY3JvbGxCYXI6OmFkZC1wYWdlOmhvcml6b250YWwsIFFTY3JvbGxCYXI6OnN1Yi1wYWdlOmhvcml6b250YWwgew0KICBiYWNrZ3JvdW5kOiBub25lDQp9DQoNClFTY3JvbGxCYXI6dmVydGljYWwgew0KICBiYWNrZ3JvdW5kOiBRTGluZWFyR3JhZGllbnQoIHgxOiAwLCB5MTogMCwgeDI6IDEsIHkyOiAwLCBzdG9wOiAwLjAgIzEyMTIxMiwgc3RvcDogMC4yICMyODI4MjgsIHN0b3A6IDEgIzQ4NDg0OCk7DQogIHdpZHRoOiAxM3B4Ow0KICBtYXJnaW46IDE2cHggMCAxNnB4IDA7DQogIGJvcmRlcjogMXB4IHNvbGlkICMyMjIyMjI7DQp9DQoNClFTY3JvbGxCYXI6OmhhbmRsZTp2ZXJ0aWNhbCB7DQogIGJhY2tncm91bmQ6IFFMaW5lYXJHcmFkaWVudCggeDE6IDAsIHkxOiAwLCB4MjogMCwgeTI6IDEsIHN0b3A6IDAgIzk4ZDEwYiwgc3RvcDogMC41ICM4YmJmMGEsIHN0b3A6IDEgIzk4ZDEwYik7DQogIG1pbi1oZWlnaHQ6IDIwcHg7DQogIGJvcmRlci1yYWRpdXM6IDFweDsNCn0NClFTY3JvbGxCYXI6OmFkZC1saW5lOnZlcnRpY2FsIHsNCiAgYm9yZGVyOiAxcHggc29saWQgIzFiMWIxOTsNCiAgYm9yZGVyLXJhZGl1czogMXB4Ow0KICBiYWNrZ3JvdW5kOiBRTGluZWFyR3JhZGllbnQoIHgxOiAwLCB5MTogMCwgeDI6IDAsIHkyOiAxLCBzdG9wOiAwICM5OGQxMGIsIHN0b3A6IDEgIzhiYmYwYSk7DQogIGhlaWdodDogMTNweDsNCiAgc3ViY29udHJvbC1wb3NpdGlvbjogYm90dG9tOw0KICBzdWJjb250cm9sLW9yaWdpbjogbWFyZ2luOw0KfQ0KDQpRU2Nyb2xsQmFyOjpzdWItbGluZTp2ZXJ0aWNhbCB7DQogIGJvcmRlcjogMXB4IHNvbGlkICMxYjFiMTk7DQogIGJvcmRlci1yYWRpdXM6IDFweDsNCiAgYmFja2dyb3VuZDogUUxpbmVhckdyYWRpZW50KCB4MTogMCwgeTE6IDAsIHgyOiAwLCB5MjogMSwgc3RvcDogMCAjOThkMTBiLCBzdG9wOiAxICM4YmJmMGEpOw0KICBoZWlnaHQ6IDEzcHg7DQogIHN1YmNvbnRyb2wtcG9zaXRpb246IHRvcDsNCiAgc3ViY29udHJvbC1vcmlnaW46IG1hcmdpbjsNCn0NCg0KUVNjcm9sbEJhcjo6dXAtYXJyb3c6dmVydGljYWwsIFFTY3JvbGxCYXI6OmRvd24tYXJyb3c6dmVydGljYWwgew0KICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsNCiAgd2lkdGg6IDFweDsNCiAgaGVpZ2h0OiAxcHg7DQogIGJhY2tncm91bmQ6IHdoaXRlOw0KfQ0KDQpRU2Nyb2xsQmFyOjphZGQtcGFnZTp2ZXJ0aWNhbCwgUVNjcm9sbEJhcjo6c3ViLXBhZ2U6dmVydGljYWwgew0KICBiYWNrZ3JvdW5kOiBub25lOw0KfQ0KDQovKiBRU3BsaXR0ZXIgKi8NClFTcGxpdHRlcjo6aGFuZGxlIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzRlNGU0ZTsNCn0NCg0KLyogUUhlYWRlclZpZXcgKi8NClFIZWFkZXJWaWV3IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7DQogIGNvbG9yOiAjY2NjY2NjOw0KfQ0KDQpRSGVhZGVyVmlldzo6c2VjdGlvbiB7DQogIG1pbi1oZWlnaHQ6IDIwcHg7DQogIGJvcmRlcjogMC41IHB4IHNvbGlkICM1OTU5NTk7DQogIGJvcmRlci1yaWdodDogMC41IHNvbGlkICM3MDcwNzA7DQogIGJhY2tncm91bmQtY29sb3I6IFFMaW5lYXJHcmFkaWVudCggeDE6IDAsIHkxOiAwLCB4MjogMCwgeTI6IDEsIHN0b3A6IDAgIzU2NTY1Niwgc3RvcDogMC4xICM1MjUyNTIsIHN0b3A6IDAuNSAjNGU0ZTRlLCBzdG9wOiAwLjkgIzRhNGE0YSwgc3RvcDogMSAjNDY0NjQ2KTsNCn0NCg0KUUhlYWRlclZpZXc6OnNlY3Rpb246Zmlyc3Qgew0KICBwYWRkaW5nLWxlZnQ6IDRweDsNCiAgcGFkZGluZy1yaWdodDogMnB4Ow0KfQ0KDQpRSGVhZGVyVmlldzo6c2VjdGlvbjohZmlyc3Qgew0KICBwYWRkaW5nLWxlZnQ6IDJweDsNCiAgcGFkZGluZy1yaWdodDogMnB4Ow0KfQ0KDQpRSGVhZGVyVmlldzo6c2VjdGlvbjpob3ZlciB7DQogIGJhY2tncm91bmQtY29sb3I6IFFMaW5lYXJHcmFkaWVudCggeDE6IDAsIHkxOiAwLCB4MjogMCwgeTI6IDEsIHN0b3A6IDAgIzU2NTY1Niwgc3RvcDogMC4xICM1MDUwNTAsIHN0b3A6IDAuNSAjNGU0ZTRlLCBzdG9wOiAwLjkgIzQwNDA0MCwgc3RvcDogMSAjNDA0MDQwKTsNCn0NCg0KLyogUVRyZWVWaWV3ICovDQpRVHJlZVZpZXc6OmJyYW5jaDpoYXMtc2libGluZ3M6IWFkam9pbnMtaXRlbSAgew0KICBib3JkZXItaW1hZ2U6IHVybChxc3MvZHVtbXkucG5nKSAwOw0KfQ0KDQpRVHJlZVZpZXc6OmJyYW5jaDpoYXMtc2libGluZ3M6YWRqb2lucy1pdGVtIHsNCiAgYm9yZGVyLWltYWdlOiB1cmwocXNzL2R1bW15LnBuZykgMDsNCn0NCg0KUVRyZWVWaWV3OjpicmFuY2g6IWhhcy1jaGlsZHJlbjohaGFzLXNpYmxpbmdzOmFkam9pbnMtaXRlbSAgew0KICBib3JkZXItaW1hZ2U6IHVybChxc3MvZHVtbXkucG5nKSAwOw0KfQ0KDQpRVHJlZVZpZXc6OmJyYW5jaDpoYXMtY2hpbGRyZW46IWhhcy1zaWJsaW5nczpjbG9zZWQsDQpRVHJlZVZpZXc6OmJyYW5jaDpjbG9zZWQ6aGFzLWNoaWxkcmVuOmhhcy1zaWJsaW5ncyAgew0KICBib3JkZXItaW1hZ2U6IG5vbmU7DQogIGltYWdlOiB1cmwocXNzL2JyYW5jaC1jbG9zZWQucG5nKTsNCn0NCg0KUVRyZWVWaWV3OjpicmFuY2g6b3BlbjpoYXMtY2hpbGRyZW46IWhhcy1zaWJsaW5ncywNClFUcmVlVmlldzo6YnJhbmNoOm9wZW46aGFzLWNoaWxkcmVuOmhhcy1zaWJsaW5ncyAgew0KICBib3JkZXItaW1hZ2U6IG5vbmU7DQogIGltYWdlOiB1cmwocXNzL2JyYW5jaC1vcGVuLnBuZyk7DQp9DQoNClFUcmVlVmlldzo6aXRlbSB7DQogIHBhZGRpbmc6IDFweDsNCn0gDQoNClFUcmVlVmlld1toaWRlVHJlZT0idHJ1ZSJdOjpicmFuY2g6IWhhcy1jaGxpZHJlbjpoYXNTaWJsaW5ncyB7DQogIGJvcmRlci1pbWFnZTogbm9uZTsNCiAgaW1hZ2U6IG5vbmU7DQp9DQoNClFUcmVlVmlldzo6aXRlbTpzZWxlY3RlZCwgUVRyZWVWaWV3OjpicmFuY2g6c2VsZWN0ZWQsIFFUcmVlVmlldzo6aXRlbTpzZWxlY3RlZDphY3RpdmUsIFFUcmVlVmlldzo6aXRlbTpzZWxlY3RlZDohYWN0aXZlLCBRVHJlZVZpZXc6Oml0ZW06aG92ZXIgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiBRTGluZWFyR3JhZGllbnQoIHgxOiAwLCB5MTogMCwgeDI6IDAsIHkyOiAxLCBzdG9wOiAwICM5OGQxMGIsIHN0b3A6IDEgIzhiYmYwYSk7DQogIGNvbG9yOiAjMDAwMDAwOw0KfQ0KDQovKiBRTGlzdFZpZXcgKi8NClFMaXN0VmlldyAgew0KICBzaG93LWRlY29yYXRpb24tc2VsZWN0ZWQ6IDE7DQp9DQogDQpRTGlzdFZpZXc6Oml0ZW06c2VsZWN0ZWQsIFFMaXN0Vmlldzo6aXRlbTpzZWxlY3RlZDohYWN0aXZlLCBRTGlzdFZpZXc6Oml0ZW06c2VsZWN0ZWQ6YWN0aXZlLCBRTGlzdFZpZXc6Oml0ZW06aG92ZXIgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiBRTGluZWFyR3JhZGllbnQoIHgxOiAwLCB5MTogMCwgeDI6IDAsIHkyOiAxLCBzdG9wOiAwICM5OGQxMGIsIHN0b3A6IDEgIzhiYmYwYSk7DQogIGNvbG9yOiAjMDAwMDAwOw0KfQ0KDQovKiBRVGV4dEVkaXQsIFFQbGFpblRleHRFZGl0ICovDQpRVGV4dEVkaXQ6Zm9jdXMsIFFQbGFpblRleHRFZGl0OmZvY3VzLCBRTGluZUVkaXQ6Zm9jdXMgew0KICBib3JkZXI6IDFweCBzb2xpZCBRTGluZWFyR3JhZGllbnQoIHgxOiAwLCB5MTogMCwgeDI6IDAsIHkyOiAxLCBzdG9wOiAwICM5OGQxMGIsIHN0b3A6IDEgIzhiYmYwYSkNCn0NCg0KUVRleHRFZGl0LCBRUGxhaW5UZXh0RWRpdCB7DQogIGJhY2tncm91bmQtY29sb3I6IFFMaW5lYXJHcmFkaWVudCggeDE6IDAsIHkxOiAwLCB4MjogMCwgeTI6IDEsIHN0b3A6IDAgIzRkNGQ0ZCwgc3RvcDogMCAjNjQ2NDY0LCBzdG9wOiAxICM1ZDVkNWQpDQp9DQoNCi8qIFFMaW5lRWRpdCAqLw0KUUxpbmVFZGl0IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogUUxpbmVhckdyYWRpZW50KCB4MTogMCwgeTE6IDAsIHgyOiAwLCB5MjogMSwgc3RvcDogMCAjNGQ0ZDRkLCBzdG9wOiAwICM2NDY0NjQsIHN0b3A6IDEgIzVkNWQ1ZCk7DQogIHBhZGRpbmc6IDFweDsNCiAgYm9yZGVyLXN0eWxlOiBzb2xpZDsNCiAgYm9yZGVyOiAxcHggc29saWQgIzU5NTk1OTsNCiAgYm9yZGVyLXJhZGl1czogMHB4Ow0KfQ0KDQovKiBRUHJvZ3Jlc3NCYXIgKi8NClFQcm9ncmVzc0JhciB7DQogIGJvcmRlcjogdHJhbnNwYXJlbnQ7DQogIGJvcmRlci1yYWRpdXM6IDFweDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KUVByb2dyZXNzQmFyOjpjaHVuayB7DQogIGJhY2tncm91bmQtY29sb3I6IFFMaW5lYXJHcmFkaWVudCggeDE6IDAsIHkxOiAwLCB4MjogMCwgeTI6IDEsIHN0b3A6IDAgIzk4ZDEwYiwgc3RvcDogMSAjOGJiZjBhKTsNCiAgd2lkdGg6IDNweDsNCiAgbWFyZ2luOiAwLjVweDsNCn0NCg0KLyogUUNoZWNrQm94ICovDQpRQ2hlY2tCb3g6OmluZGljYXRvciB7DQogIGNvbG9yOiAjYjFiMWIxOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzIzMjMyOw0KICBib3JkZXI6IDFweCBzb2xpZCAjYjFiMWIxOw0KICB3aWR0aDogOXB4Ow0KICBoZWlnaHQ6IDlweDsNCn0NCg0KUUNoZWNrQm94OjppbmRpY2F0b3I6Y2hlY2tlZCB7DQogIGltYWdlOiB1cmwoIyMvaW1hZ2VzL2NoZWNrYm94LnBuZykNCn0NCg0KUUNoZWNrQm94OjppbmRpY2F0b3I6ZGlzYWJsZWQgew0KICBib3JkZXI6IDFweCBzb2xpZCAjNDQ0DQp9DQoNCi8qIFFSYWRpb0J1dHRvbiAqLw0KUVJhZGlvQnV0dG9uOjppbmRpY2F0b3I6ZGlzYWJsZWQgew0KICBib3JkZXI6IDFweCBzb2xpZCAjNDQ0DQp9DQoNClFSYWRpb0J1dHRvbjo6aW5kaWNhdG9yIHsNCiAgYm9yZGVyLXJhZGl1czogNnB4DQp9DQoNClFSYWRpb0J1dHRvbjo6aW5kaWNhdG9yOmNoZWNrZWQsIFFSYWRpb0J1dHRvbjo6aW5kaWNhdG9yOnVuY2hlY2tlZCB7DQogIGNvbG9yOiAjYjFiMWIxOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzIzMjMyOw0KICBib3JkZXI6IDFweCBzb2xpZCAjYjFiMWIxOw0KfQ0KDQpRUmFkaW9CdXR0b246OmluZGljYXRvcjpjaGVja2VkIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcXJhZGlhbGdyYWRpZW50KCBjeDogMC41LCBjeTogMC41LCBmeDogMC41LCBmeTogMC41LCByYWRpdXM6IDEuMCwgc3RvcDogMC4yNSAjOThkMTBiLCBzdG9wOiAwLjMgIzMyMzIzMiApDQp9DQoNClFSYWRpb0J1dHRvbjo6aW5kaWNhdG9yOmhvdmVyLCBRQ2hlY2tCb3g6OmluZGljYXRvcjpob3ZlciB7DQogIGJvcmRlcjogMXB4IHNvbGlkICM5OGQxMGI7DQp9 \ No newline at end of file diff --git a/resources/skins/base/blau-yellow.xml b/resources/skins/base/blau-yellow.xml index 3adc64177..086fb94a3 100644 --- a/resources/skins/base/blau-yellow.xml +++ b/resources/skins/base/blau-yellow.xml @@ -6,8 +6,5 @@ rotter.martinos@gmail.com - PGh0bWw+DQogIDxoZWFkPg0KICAgIDxzdHlsZT4NCiAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXIgew0KICAgICAgICB3aWR0aDogMjBweDsNCiAgICAgICAgaGVpZ2h0OiAyMHB4Ow0KICAgICAgfQ0KICAgICAgDQogICAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsNCiAgICAgICAgaGVpZ2h0OiAxNHB4Ow0KICAgICAgICBib3JkZXI6IDRweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDApOw0KICAgICAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94Ow0KICAgICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDFweDsNCiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0Y1RjEwNTsNCiAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAtMXB4IC0xcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4wNSksIGluc2V0IDFweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7DQogICAgICB9DQogICAgICANCiAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXItYnV0dG9uIHsNCiAgICAgICAgd2lkdGg6IDA7DQogICAgICAgIGhlaWdodDogMDsNCiAgICAgICAgZGlzcGxheTogbm9uZTsNCiAgICAgIH0NCiAgICAgIA0KICAgICAgOjotd2Via2l0LXNjcm9sbGJhci1jb3JuZXIgew0KICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgICAgIH0NCiAgICANCiAgICAgIGJvZHkgew0KICAgICAgICBtYXJnaW46IDBweDsNCiAgICAgICAgcGFkZGluZzogMHB4Ow0KICAgICAgfQ0KICAgIA0KICAgICAgcHJlIHsNCiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOw0KICAgICAgfQ0KDQogICAgICAuaGVhZGVydGV4dCB7DQogICAgICAgIGZvbnQtc2l6ZTogMjBweDsNCiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsNCiAgICAgIH0NCg0KICAgICAgLmhlYWRlciB7DQogICAgICAgIGZvbnQtc2l6ZTogMTdweDsNCiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7DQogICAgICAgIHBhZGRpbmc6IDZweDsNCiAgICAgICAgbWFyZ2luOiAwcHggYXV0bzsNCiAgICAgICAgY29sb3I6ICNGNUYxMDU7DQogICAgICAgIGJvcmRlcjogMC41cHggc29saWQgI0Y1RjEwNTsNCiAgICAgIH0NCg0KICAgICAgLmhlYWRlciBhIHsNCiAgICAgICAgY29sb3I6IHdoaXRlOw0KICAgICAgfQ0KDQogICAgICAuY29udGVudCB7DQogICAgICAgIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGNvbG9yLXN0b3AoMCUsICNGNUYxMDUpLCBjb2xvci1zdG9wKDEwMCUsICNGMkVBMDUpKTsNCiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIGdyYXk7DQogICAgICAgIGZvbnQtc2l6ZTogMTZweDsNCiAgICAgICAgY29sb3I6IGJsYWNrOw0KICAgICAgICBtYXJnaW46IDBweCBhdXRvOw0KICAgICAgICBwYWRkaW5nOiA2cHg7DQogICAgICAgIHBhZGRpbmctdG9wOiAxMnB4Ow0KICAgICAgfQ0KICAgICAgDQogICAgICAuY29udGFpbmVyIHsNCiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7DQogICAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMnB4Ow0KICAgICAgICBtYXJnaW46IDEwcHg7DQogICAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMnB4IDJweCAxNnB4IDBweCByZ2JhKDUwLCA1MCwgNTAsIDAuNjIpOw0KICAgICAgfQ0KICAgIDwvc3R5bGU+DQogICAgPHRpdGxlPg0KICAgICAgJTENCiAgICA8L3RpdGxlPg0KICA8L2hlYWQ+DQogIDxib2R5Pg0KICAgICUyDQogIDwvYm9keT4NCjwvaHRtbD4= - PGRpdiBjbGFzcz0iY29udGFpbmVyIj4NCiAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+DQogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlcnRleHQiPg0KICAgICAgICAgICUxDQogICAgICAgIDwvZGl2Pg0KICAgICAgICAlMiAoJTUpDQogICAgICAgIDxicj4NCiAgICAgICAgPGEgaHJlZj0iJTMiPiUzPC9hPg0KICAgICAgICAlNg0KICAgICAgPC9kaXY+DQogICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4NCiAgICAgICAgJTQgDQogICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4= - PGEgY2xhc3M9ImVuY2xvc3VyZSIgaHJlZj0iJTMiPiUzPC9hPg== LyogUVdpZGdldCAqLw0KUVdpZGdldCB7DQogIGNvbG9yOiAjY2NjY2NjOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzIzMjMyOw0KfQ0KDQpRV2lkZ2V0OjppdGVtOmhvdmVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogUUxpbmVhckdyYWRpZW50KCB4MTogMCwgeTE6IDAsIHgyOiAwLCB5MjogMSwgc3RvcDogMCAjRjVGMTA1LCBzdG9wOiAxICNGMkVBMDUpOw0KICBjb2xvcjogIzAwMDAwMDsNCn0NCg0KUVdpZGdldDpkaXNhYmxlZCB7DQogIGNvbG9yOiAjNzc3Nzc3Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzIzMjMyOw0KfQ0KDQovKiBRVG9vbEJ1dHRvbiAqLw0KUVRvb2xCdXR0b24gLCBRVG9vbEJ1dHRvbjpkaXNhYmxlZCB7DQogIGJvcmRlcjogbm9uZTsNCiAgcGFkZGluZzogMHB4Ow0KICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsNCn0NCg0KUVRvb2xCdXR0b246aG92ZXIsIFFUb29sQnV0dG9uOnByZXNzZWQgew0KICBib3JkZXItcmFkaXVzOiAycHg7DQogIGJvcmRlcjogMXB4IHNvbGlkIGdyYXk7DQp9DQoNClFUb29sQnV0dG9uW3BvcHVwTW9kZT0iMSJdIHsNCiAgcGFkZGluZy1yaWdodDogMTZweDsNCn0NCg0KUVRvb2xCdXR0b246Om1lbnUtYnV0dG9uIHsNCiAgYm9yZGVyOiAxcHggc29saWQgZ3JheTsNCiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDJweDsNCiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDJweDsNCiAgd2lkdGg6IDE0cHg7DQp9DQoNClFUb29sQnV0dG9uOjptZW51LWFycm93IHsNCiAgaW1hZ2U6IHVybCgjIy9pbWFnZXMvZG93bl9hcnJvdy5wbmcpOw0KfQ0KDQpRVG9vbEJ1dHRvbjo6bWVudS1hcnJvdzpvcGVuIHsNCiAgdG9wOiAxcHg7IGxlZnQ6IDFweDsNCn0NCg0KLyogUVN0YXR1c0JhciAqLw0KUVN0YXR1c0JhciBRVG9vbEJ1dHRvbiB7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQogIG1hcmdpbi1yaWdodDogNXB4Ow0KfQ0KDQpRU3RhdHVzQmFyOjppdGVtIHsNCiAgYm9yZGVyOiB0cmFuc3BhcmVudDsNCn0NCg0KLyogUVRvb2xCYXIgKi8NClFUb29sQmFyOjpzZXBhcmF0b3Igew0KICB3aWR0aDogMXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjJFQTA1Ow0KDQogIG1hcmdpbi1sZWZ0OiA1cHg7DQogIG1hcmdpbi1yaWdodDogNXB4Ow0KfQ0KDQpRVG9vbEJhciB7DQogIHBhZGRpbmctbGVmdDogNXB4Ow0KICBwYWRkaW5nLXJpZ2h0OiA1cHg7DQp9DQoNCi8qIFFUb29sVGlwICovDQpRVG9vbFRpcCB7DQogIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjVGMTA1Ow0KICBjb2xvcjogYmxhY2s7DQogIGJvcmRlci1yYWRpdXM6IDFweDsNCiAgb3BhY2l0eTogMjIwOw0KfQ0KDQovKiBRTWVudUJhciAqLw0KUU1lbnVCYXI6Oml0ZW0gew0KICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudA0KfQ0KDQpRTWVudUJhcjo6aXRlbTpzZWxlY3RlZCB7DQogIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50Ow0KICBib3JkZXI6IDFweCBzb2xpZCAjRjJFQTA1Ow0KfQ0KDQpRTWVudUJhcjo6aXRlbTpwcmVzc2VkIHsNCiAgYmFja2dyb3VuZDogIzQ0NDsNCiAgY29sb3I6IGJsYWNrOw0KICBib3JkZXI6IDFweCBzb2xpZCAjMDAwOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiBRTGluZWFyR3JhZGllbnQoIHgxOjAsIHkxOjAsIHgyOjAsIHkyOjEsIHN0b3A6MSAjRjVGMTA1LCBzdG9wOjAuNCAjRjJFQTA1ICk7DQogIG1hcmdpbi1ib3R0b206IC0xcHg7DQogIHBhZGRpbmctYm90dG9tOiAxcHg7DQp9DQoNCi8qIFFNZW51ICovDQpRTWVudSB7DQogIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7DQp9DQoNClFNZW51OjppdGVtIHsNCiAgcGFkZGluZzogMnB4IDEwcHggMnB4IDIzcHg7DQp9DQoNClFNZW51OjppY29uIHsNCiAgcGFkZGluZy1sZWZ0OiA0cHg7DQp9DQoNClFNZW51OjppdGVtOnNlbGVjdGVkIHsNCiAgY29sb3I6IGJsYWNrOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiBRTGluZWFyR3JhZGllbnQoIHgxOiAwLCB5MTogMCwgeDI6IDAsIHkyOiAxLCBzdG9wOiAwICNGNUYxMDUsIHN0b3A6IDEgI0YyRUEwNSk7DQp9DQoNClFNZW51OjpzZXBhcmF0b3Igew0KICBoZWlnaHQ6IDFweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzU5NTk1OTsNCiAgY29sb3I6ICNGMkVBMDU7DQogIG1hcmdpbi10b3A6IDNweDsNCiAgbWFyZ2luLWJvdHRvbTogM3B4Ow0KICBtYXJnaW4tbGVmdDogNXB4Ow0KICBtYXJnaW4tcmlnaHQ6IDVweDsNCn0NCg0KLyogUVB1c2hCdXR0b24gKi8NClFQdXNoQnV0dG9uIHsNCiAgY29sb3I6ICNiMWIxYjE7DQogIGJhY2tncm91bmQtY29sb3I6IFFMaW5lYXJHcmFkaWVudCggeDE6IDAsIHkxOiAwLCB4MjogMCwgeTI6IDEsIHN0b3A6IDAgIzU2NTY1Niwgc3RvcDogMC4xICM1MjUyNTIsIHN0b3A6IDAuNSAjNGU0ZTRlLCBzdG9wOiAwLjkgIzRhNGE0YSwgc3RvcDogMSAjNDY0NjQ2KTsNCiAgYm9yZGVyOiAxcHggc29saWQgIzFlMWUxZTsNCiAgYm9yZGVyLXJhZGl1czogMXB4Ow0KICBwYWRkaW5nOiAzcHg7DQogIGZvbnQtc2l6ZTogMTJweDsNCiAgcGFkZGluZy1sZWZ0OiA2cHg7DQogIHBhZGRpbmctcmlnaHQ6IDZweDsNCiAgbWluLXdpZHRoOiAzMHB4Ow0KfQ0KDQpRUHVzaEJ1dHRvbjpwcmVzc2VkIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogUUxpbmVhckdyYWRpZW50KCB4MTogMCwgeTE6IDAsIHgyOiAwLCB5MjogMSwgc3RvcDogMCAjMmQyZDJkLCBzdG9wOiAwLjEgIzJiMmIyYiwgc3RvcDogMC41ICMyOTI5MjksIHN0b3A6IDAuOSAjMjgyODI4LCBzdG9wOiAxICMyNTI1MjUpDQp9DQoNClFQdXNoQnV0dG9uI21fYnRuSW5zZXJ0U2VwYXJhdG9yLCBRUHVzaEJ1dHRvbiNtX2J0bkluc2VydFNwYWNlciB7DQogIG1pbi13aWR0aDogMTMwcHg7DQp9DQoNCi8qIFFDb21ib0JveCAqLw0KUUNvbWJvQm94IHsNCiAgc2VsZWN0aW9uLWJhY2tncm91bmQtY29sb3I6ICNGMkVBMDU7DQogIGJhY2tncm91bmQtY29sb3I6IFFMaW5lYXJHcmFkaWVudCggeDE6IDAsIHkxOiAwLCB4MjogMCwgeTI6IDEsIHN0b3A6IDAgIzU2NTY1Niwgc3RvcDogMC4xICM1MjUyNTIsIHN0b3A6IDAuNSAjNGU0ZTRlLCBzdG9wOiAwLjkgIzRhNGE0YSwgc3RvcDogMSAjNDY0NjQ2KTsNCiAgYm9yZGVyOiAxcHggc29saWQgIzFlMWUxZTsNCiAgYm9yZGVyLXJhZGl1czogMXB4Ow0KICBwYWRkaW5nOiAycHg7DQogIHBhZGRpbmctdG9wOiAxcHg7DQogIHBhZGRpbmctYm90dG9tOiAxcHg7DQogIHBhZGRpbmctbGVmdDogNHB4Ow0KfQ0KDQpRQ29tYm9Cb3g6aG92ZXIsIFFQdXNoQnV0dG9uOmhvdmVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogUUxpbmVhckdyYWRpZW50KCB4MTogMCwgeTE6IDAsIHgyOiAwLCB5MjogMSwgc3RvcDogMCAjRjVGMTA1LCBzdG9wOiAxICNGMkVBMDUpOw0KICBjb2xvcjogYmxhY2s7DQp9DQoNClFDb21ib0JveDpvbiB7DQogIHBhZGRpbmc6IDFweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogUUxpbmVhckdyYWRpZW50KCB4MTogMCwgeTE6IDAsIHgyOiAwLCB5MjogMSwgc3RvcDogMCAjMmQyZDJkLCBzdG9wOiAwLjEgIzJiMmIyYiwgc3RvcDogMC41ICMyOTI5MjksIHN0b3A6IDAuOSAjMjgyODI4LCBzdG9wOiAxICMyNTI1MjUpOw0KfQ0KDQpRQ29tYm9Cb3ggUUFic3RyYWN0SXRlbVZpZXcgew0KICBib3JkZXI6IDFweCBzb2xpZCBRTGluZWFyR3JhZGllbnQoIHgxOiAwLCB5MTogMCwgeDI6IDAsIHkyOiAxLCBzdG9wOiAwICNGNUYxMDUsIHN0b3A6IDEgI0YyRUEwNSk7DQogIHNlbGVjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOiBRTGluZWFyR3JhZGllbnQoIHgxOiAwLCB5MTogMCwgeDI6IDAsIHkyOiAxLCBzdG9wOiAwICNGNUYxMDUsIHN0b3A6IDEgI0YyRUEwNSk7DQp9DQoNClFDb21ib0JveDo6ZHJvcC1kb3duIHsNCiAgc3ViY29udHJvbC1vcmlnaW46IHBhZGRpbmc7DQogIHN1YmNvbnRyb2wtcG9zaXRpb246IHRvcCByaWdodDsNCiAgd2lkdGg6IDE1cHg7DQogIGJvcmRlci1sZWZ0LXdpZHRoOiAwcHg7DQogIGJvcmRlci1sZWZ0LWNvbG9yOiBkYXJrZ3JheTsNCiAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkOw0KICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMXB4Ow0KICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMXB4Ow0KfQ0KDQpRQ29tYm9Cb3g6OmRvd24tYXJyb3cgew0KICBpbWFnZTogdXJsKCMjL2ltYWdlcy9kb3duX2Fycm93LnBuZykNCn0NCg0KLyogUVNjcm9sbEJhciAqLw0KUVNjcm9sbEJhcjpob3Jpem9udGFsIHsNCiAgYm9yZGVyOiAxcHggc29saWQgIzIyMjIyMjsNCiAgYmFja2dyb3VuZDogUUxpbmVhckdyYWRpZW50KCB4MTogMCwgeTE6IDAsIHgyOiAwLCB5MjogMSwgc3RvcDogMC4wICMxMjEyMTIsIHN0b3A6IDAuMiAjMjgyODI4LCBzdG9wOiAxICM0ODQ4NDgpOw0KICBoZWlnaHQ6IDEzcHg7DQogIG1hcmdpbjogMHB4IDE2cHggMCAxNnB4Ow0KfQ0KDQpRU2Nyb2xsQmFyOjpoYW5kbGU6aG9yaXpvbnRhbCB7DQogIGJhY2tncm91bmQ6IFFMaW5lYXJHcmFkaWVudCggeDE6IDAsIHkxOiAwLCB4MjogMSwgeTI6IDAsIHN0b3A6IDAgI0Y1RjEwNSwgc3RvcDogMC41ICNGMkVBMDUsIHN0b3A6IDEgI0Y1RjEwNSk7DQogIG1pbi1oZWlnaHQ6IDIwcHg7DQogIGJvcmRlci1yYWRpdXM6IDFweDsNCn0NCg0KUVNjcm9sbEJhcjo6YWRkLWxpbmU6aG9yaXpvbnRhbCB7DQogIGJvcmRlcjogMXB4IHNvbGlkICMxYjFiMTk7DQogIGJvcmRlci1yYWRpdXM6IDFweDsNCiAgYmFja2dyb3VuZDogUUxpbmVhckdyYWRpZW50KCB4MTogMCwgeTE6IDAsIHgyOiAxLCB5MjogMCwgc3RvcDogMCAjRjVGMTA1LCBzdG9wOiAxICNGMkVBMDUpOw0KICB3aWR0aDogMTNweDsNCiAgc3ViY29udHJvbC1wb3NpdGlvbjogcmlnaHQ7DQogIHN1YmNvbnRyb2wtb3JpZ2luOiBtYXJnaW47DQp9DQoNClFTY3JvbGxCYXI6OnN1Yi1saW5lOmhvcml6b250YWwgew0KICBib3JkZXI6IDFweCBzb2xpZCAjMWIxYjE5Ow0KICBib3JkZXItcmFkaXVzOiAxcHg7DQogIGJhY2tncm91bmQ6IFFMaW5lYXJHcmFkaWVudCggeDE6IDAsIHkxOiAwLCB4MjogMSwgeTI6IDAsIHN0b3A6IDAgI0Y1RjEwNSwgc3RvcDogMSAjRjJFQTA1KTsNCiAgd2lkdGg6IDEzcHg7DQogIHN1YmNvbnRyb2wtcG9zaXRpb246IGxlZnQ7DQogIHN1YmNvbnRyb2wtb3JpZ2luOiBtYXJnaW47DQp9DQoNClFTY3JvbGxCYXI6OnJpZ2h0LWFycm93Omhvcml6b250YWwsIFFTY3JvbGxCYXI6OmxlZnQtYXJyb3c6aG9yaXpvbnRhbCB7DQogIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOw0KICB3aWR0aDogMXB4Ow0KICBoZWlnaHQ6IDFweDsNCiAgYmFja2dyb3VuZDogd2hpdGU7DQp9DQoNClFTY3JvbGxCYXI6OmFkZC1wYWdlOmhvcml6b250YWwsIFFTY3JvbGxCYXI6OnN1Yi1wYWdlOmhvcml6b250YWwgew0KICBiYWNrZ3JvdW5kOiBub25lDQp9DQoNClFTY3JvbGxCYXI6dmVydGljYWwgew0KICBiYWNrZ3JvdW5kOiBRTGluZWFyR3JhZGllbnQoIHgxOiAwLCB5MTogMCwgeDI6IDEsIHkyOiAwLCBzdG9wOiAwLjAgIzEyMTIxMiwgc3RvcDogMC4yICMyODI4MjgsIHN0b3A6IDEgIzQ4NDg0OCk7DQogIHdpZHRoOiAxM3B4Ow0KICBtYXJnaW46IDE2cHggMCAxNnB4IDA7DQogIGJvcmRlcjogMXB4IHNvbGlkICMyMjIyMjI7DQp9DQoNClFTY3JvbGxCYXI6OmhhbmRsZTp2ZXJ0aWNhbCB7DQogIGJhY2tncm91bmQ6IFFMaW5lYXJHcmFkaWVudCggeDE6IDAsIHkxOiAwLCB4MjogMCwgeTI6IDEsIHN0b3A6IDAgI0Y1RjEwNSwgc3RvcDogMC41ICNGMkVBMDUsIHN0b3A6IDEgI0Y1RjEwNSk7DQogIG1pbi1oZWlnaHQ6IDIwcHg7DQogIGJvcmRlci1yYWRpdXM6IDFweDsNCn0NClFTY3JvbGxCYXI6OmFkZC1saW5lOnZlcnRpY2FsIHsNCiAgYm9yZGVyOiAxcHggc29saWQgIzFiMWIxOTsNCiAgYm9yZGVyLXJhZGl1czogMXB4Ow0KICBiYWNrZ3JvdW5kOiBRTGluZWFyR3JhZGllbnQoIHgxOiAwLCB5MTogMCwgeDI6IDAsIHkyOiAxLCBzdG9wOiAwICNGNUYxMDUsIHN0b3A6IDEgI0YyRUEwNSk7DQogIGhlaWdodDogMTNweDsNCiAgc3ViY29udHJvbC1wb3NpdGlvbjogYm90dG9tOw0KICBzdWJjb250cm9sLW9yaWdpbjogbWFyZ2luOw0KfQ0KDQpRU2Nyb2xsQmFyOjpzdWItbGluZTp2ZXJ0aWNhbCB7DQogIGJvcmRlcjogMXB4IHNvbGlkICMxYjFiMTk7DQogIGJvcmRlci1yYWRpdXM6IDFweDsNCiAgYmFja2dyb3VuZDogUUxpbmVhckdyYWRpZW50KCB4MTogMCwgeTE6IDAsIHgyOiAwLCB5MjogMSwgc3RvcDogMCAjRjVGMTA1LCBzdG9wOiAxICNGMkVBMDUpOw0KICBoZWlnaHQ6IDEzcHg7DQogIHN1YmNvbnRyb2wtcG9zaXRpb246IHRvcDsNCiAgc3ViY29udHJvbC1vcmlnaW46IG1hcmdpbjsNCn0NCg0KUVNjcm9sbEJhcjo6dXAtYXJyb3c6dmVydGljYWwsIFFTY3JvbGxCYXI6OmRvd24tYXJyb3c6dmVydGljYWwgew0KICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsNCiAgd2lkdGg6IDFweDsNCiAgaGVpZ2h0OiAxcHg7DQogIGJhY2tncm91bmQ6IHdoaXRlOw0KfQ0KDQpRU2Nyb2xsQmFyOjphZGQtcGFnZTp2ZXJ0aWNhbCwgUVNjcm9sbEJhcjo6c3ViLXBhZ2U6dmVydGljYWwgew0KICBiYWNrZ3JvdW5kOiBub25lOw0KfQ0KDQovKiBRU3BsaXR0ZXIgKi8NClFTcGxpdHRlcjo6aGFuZGxlIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzRlNGU0ZTsNCn0NCg0KLyogUUhlYWRlclZpZXcgKi8NClFIZWFkZXJWaWV3IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7DQogIGNvbG9yOiAjY2NjY2NjOw0KfQ0KDQpRSGVhZGVyVmlldzo6c2VjdGlvbiB7DQogIG1pbi1oZWlnaHQ6IDIwcHg7DQogIGJvcmRlcjogMC41IHB4IHNvbGlkICM1OTU5NTk7DQogIGJvcmRlci1yaWdodDogMC41IHNvbGlkICM3MDcwNzA7DQogIGJhY2tncm91bmQtY29sb3I6IFFMaW5lYXJHcmFkaWVudCggeDE6IDAsIHkxOiAwLCB4MjogMCwgeTI6IDEsIHN0b3A6IDAgIzU2NTY1Niwgc3RvcDogMC4xICM1MjUyNTIsIHN0b3A6IDAuNSAjNGU0ZTRlLCBzdG9wOiAwLjkgIzRhNGE0YSwgc3RvcDogMSAjNDY0NjQ2KTsNCn0NCg0KUUhlYWRlclZpZXc6OnNlY3Rpb246Zmlyc3Qgew0KICBwYWRkaW5nLWxlZnQ6IDRweDsNCiAgcGFkZGluZy1yaWdodDogMnB4Ow0KfQ0KDQpRSGVhZGVyVmlldzo6c2VjdGlvbjohZmlyc3Qgew0KICBwYWRkaW5nLWxlZnQ6IDJweDsNCiAgcGFkZGluZy1yaWdodDogMnB4Ow0KfQ0KDQpRSGVhZGVyVmlldzo6c2VjdGlvbjpob3ZlciB7DQogIGJhY2tncm91bmQtY29sb3I6IFFMaW5lYXJHcmFkaWVudCggeDE6IDAsIHkxOiAwLCB4MjogMCwgeTI6IDEsIHN0b3A6IDAgIzU2NTY1Niwgc3RvcDogMC4xICM1MDUwNTAsIHN0b3A6IDAuNSAjNGU0ZTRlLCBzdG9wOiAwLjkgIzQwNDA0MCwgc3RvcDogMSAjNDA0MDQwKTsNCn0NCg0KLyogUVRyZWVWaWV3ICovDQpRVHJlZVZpZXc6OmJyYW5jaDpoYXMtc2libGluZ3M6IWFkam9pbnMtaXRlbSAgew0KICBib3JkZXItaW1hZ2U6IHVybChxc3MvZHVtbXkucG5nKSAwOw0KfQ0KDQpRVHJlZVZpZXc6OmJyYW5jaDpoYXMtc2libGluZ3M6YWRqb2lucy1pdGVtIHsNCiAgYm9yZGVyLWltYWdlOiB1cmwocXNzL2R1bW15LnBuZykgMDsNCn0NCg0KUVRyZWVWaWV3OjpicmFuY2g6IWhhcy1jaGlsZHJlbjohaGFzLXNpYmxpbmdzOmFkam9pbnMtaXRlbSAgew0KICBib3JkZXItaW1hZ2U6IHVybChxc3MvZHVtbXkucG5nKSAwOw0KfQ0KDQpRVHJlZVZpZXc6OmJyYW5jaDpoYXMtY2hpbGRyZW46IWhhcy1zaWJsaW5nczpjbG9zZWQsDQpRVHJlZVZpZXc6OmJyYW5jaDpjbG9zZWQ6aGFzLWNoaWxkcmVuOmhhcy1zaWJsaW5ncyAgew0KICBib3JkZXItaW1hZ2U6IG5vbmU7DQogIGltYWdlOiB1cmwocXNzL2JyYW5jaC1jbG9zZWQucG5nKTsNCn0NCg0KUVRyZWVWaWV3OjpicmFuY2g6b3BlbjpoYXMtY2hpbGRyZW46IWhhcy1zaWJsaW5ncywNClFUcmVlVmlldzo6YnJhbmNoOm9wZW46aGFzLWNoaWxkcmVuOmhhcy1zaWJsaW5ncyAgew0KICBib3JkZXItaW1hZ2U6IG5vbmU7DQogIGltYWdlOiB1cmwocXNzL2JyYW5jaC1vcGVuLnBuZyk7DQp9DQoNClFUcmVlVmlldzo6aXRlbSB7DQogIHBhZGRpbmc6IDFweDsNCn0gDQoNClFUcmVlVmlld1toaWRlVHJlZT0idHJ1ZSJdOjpicmFuY2g6IWhhcy1jaGxpZHJlbjpoYXNTaWJsaW5ncyB7DQogIGJvcmRlci1pbWFnZTogbm9uZTsNCiAgaW1hZ2U6IG5vbmU7DQp9DQoNClFUcmVlVmlldzo6aXRlbTpzZWxlY3RlZCwgUVRyZWVWaWV3OjpicmFuY2g6c2VsZWN0ZWQsIFFUcmVlVmlldzo6aXRlbTpzZWxlY3RlZDphY3RpdmUsIFFUcmVlVmlldzo6aXRlbTpzZWxlY3RlZDohYWN0aXZlLCBRVHJlZVZpZXc6Oml0ZW06aG92ZXIgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiBRTGluZWFyR3JhZGllbnQoIHgxOiAwLCB5MTogMCwgeDI6IDAsIHkyOiAxLCBzdG9wOiAwICNGNUYxMDUsIHN0b3A6IDEgI0YyRUEwNSk7DQogIGNvbG9yOiAjMDAwMDAwOw0KfQ0KDQovKiBRTGlzdFZpZXcgKi8NClFMaXN0VmlldyAgew0KICBzaG93LWRlY29yYXRpb24tc2VsZWN0ZWQ6IDE7DQp9DQogDQpRTGlzdFZpZXc6Oml0ZW06c2VsZWN0ZWQsIFFMaXN0Vmlldzo6aXRlbTpzZWxlY3RlZDohYWN0aXZlLCBRTGlzdFZpZXc6Oml0ZW06c2VsZWN0ZWQ6YWN0aXZlLCBRTGlzdFZpZXc6Oml0ZW06aG92ZXIgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiBRTGluZWFyR3JhZGllbnQoIHgxOiAwLCB5MTogMCwgeDI6IDAsIHkyOiAxLCBzdG9wOiAwICNGNUYxMDUsIHN0b3A6IDEgI0YyRUEwNSk7DQogIGNvbG9yOiAjMDAwMDAwOw0KfQ0KDQovKiBRVGV4dEVkaXQsIFFQbGFpblRleHRFZGl0ICovDQpRVGV4dEVkaXQ6Zm9jdXMsIFFQbGFpblRleHRFZGl0OmZvY3VzLCBRTGluZUVkaXQ6Zm9jdXMgew0KICBib3JkZXI6IDFweCBzb2xpZCBRTGluZWFyR3JhZGllbnQoIHgxOiAwLCB5MTogMCwgeDI6IDAsIHkyOiAxLCBzdG9wOiAwICNGNUYxMDUsIHN0b3A6IDEgI0YyRUEwNSkNCn0NCg0KUVRleHRFZGl0LCBRUGxhaW5UZXh0RWRpdCB7DQogIGJhY2tncm91bmQtY29sb3I6IFFMaW5lYXJHcmFkaWVudCggeDE6IDAsIHkxOiAwLCB4MjogMCwgeTI6IDEsIHN0b3A6IDAgIzRkNGQ0ZCwgc3RvcDogMCAjNjQ2NDY0LCBzdG9wOiAxICM1ZDVkNWQpDQp9DQoNCi8qIFFMaW5lRWRpdCAqLw0KUUxpbmVFZGl0IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogUUxpbmVhckdyYWRpZW50KCB4MTogMCwgeTE6IDAsIHgyOiAwLCB5MjogMSwgc3RvcDogMCAjNGQ0ZDRkLCBzdG9wOiAwICM2NDY0NjQsIHN0b3A6IDEgIzVkNWQ1ZCk7DQogIHBhZGRpbmc6IDFweDsNCiAgYm9yZGVyLXN0eWxlOiBzb2xpZDsNCiAgYm9yZGVyOiAxcHggc29saWQgIzU5NTk1OTsNCiAgYm9yZGVyLXJhZGl1czogMHB4Ow0KfQ0KDQovKiBRUHJvZ3Jlc3NCYXIgKi8NClFQcm9ncmVzc0JhciB7DQogIGJvcmRlcjogdHJhbnNwYXJlbnQ7DQogIGJvcmRlci1yYWRpdXM6IDFweDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KUVByb2dyZXNzQmFyOjpjaHVuayB7DQogIGJhY2tncm91bmQtY29sb3I6IFFMaW5lYXJHcmFkaWVudCggeDE6IDAsIHkxOiAwLCB4MjogMCwgeTI6IDEsIHN0b3A6IDAgI0Y1RjEwNSwgc3RvcDogMSAjRjJFQTA1KTsNCiAgd2lkdGg6IDNweDsNCiAgbWFyZ2luOiAwLjVweDsNCn0NCg0KLyogUUNoZWNrQm94ICovDQpRQ2hlY2tCb3g6OmluZGljYXRvciB7DQogIGNvbG9yOiAjYjFiMWIxOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzIzMjMyOw0KICBib3JkZXI6IDFweCBzb2xpZCAjYjFiMWIxOw0KICB3aWR0aDogOXB4Ow0KICBoZWlnaHQ6IDlweDsNCn0NCg0KUUNoZWNrQm94OjppbmRpY2F0b3I6Y2hlY2tlZCB7DQogIGltYWdlOiB1cmwoIyMvaW1hZ2VzL2NoZWNrYm94LnBuZykNCn0NCg0KUUNoZWNrQm94OjppbmRpY2F0b3I6ZGlzYWJsZWQgew0KICBib3JkZXI6IDFweCBzb2xpZCAjNDQ0DQp9DQoNCi8qIFFSYWRpb0J1dHRvbiAqLw0KUVJhZGlvQnV0dG9uOjppbmRpY2F0b3I6ZGlzYWJsZWQgew0KICBib3JkZXI6IDFweCBzb2xpZCAjNDQ0DQp9DQoNClFSYWRpb0J1dHRvbjo6aW5kaWNhdG9yIHsNCiAgYm9yZGVyLXJhZGl1czogNnB4DQp9DQoNClFSYWRpb0J1dHRvbjo6aW5kaWNhdG9yOmNoZWNrZWQsIFFSYWRpb0J1dHRvbjo6aW5kaWNhdG9yOnVuY2hlY2tlZCB7DQogIGNvbG9yOiAjYjFiMWIxOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzIzMjMyOw0KICBib3JkZXI6IDFweCBzb2xpZCAjYjFiMWIxOw0KfQ0KDQpRUmFkaW9CdXR0b246OmluZGljYXRvcjpjaGVja2VkIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcXJhZGlhbGdyYWRpZW50KCBjeDogMC41LCBjeTogMC41LCBmeDogMC41LCBmeTogMC41LCByYWRpdXM6IDEuMCwgc3RvcDogMC4yNSAjRjVGMTA1LCBzdG9wOiAwLjMgIzMyMzIzMiApDQp9DQoNClFSYWRpb0J1dHRvbjo6aW5kaWNhdG9yOmhvdmVyLCBRQ2hlY2tCb3g6OmluZGljYXRvcjpob3ZlciB7DQogIGJvcmRlcjogMXB4IHNvbGlkICNGNUYxMDU7DQp9 \ No newline at end of file diff --git a/resources/skins/base/blau.xml b/resources/skins/base/blau.xml index 7c87c6c3a..6c0d24560 100644 --- a/resources/skins/base/blau.xml +++ b/resources/skins/base/blau.xml @@ -6,8 +6,5 @@ rotter.martinos@gmail.com - PGh0bWw+DQogIDxoZWFkPg0KICAgIDxzdHlsZT4NCiAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXIgew0KICAgICAgICB3aWR0aDogMjBweDsNCiAgICAgICAgaGVpZ2h0OiAyMHB4Ow0KICAgICAgfQ0KICAgICAgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7DQogICAgICAgIGhlaWdodDogMTRweDsNCiAgICAgICAgYm9yZGVyOiA0cHggc29saWQgcmdiYSgwLCAwLCAwLCAwKTsNCiAgICAgICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDsNCiAgICAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxcHg7DQogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1NjlkZTU7DQogICAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgLTFweCAtMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMDUpLCBpbnNldCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMDUpOw0KICAgICAgfQ0KICAgICAgDQogICAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyLWJ1dHRvbiB7DQogICAgICAgIHdpZHRoOiAwOw0KICAgICAgICBoZWlnaHQ6IDA7DQogICAgICAgIGRpc3BsYXk6IG5vbmU7DQogICAgICB9DQogICAgICANCiAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXItY29ybmVyIHsNCiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7DQogICAgICB9DQogICAgDQogICAgICBib2R5IHsNCiAgICAgICAgbWFyZ2luOiAwcHg7DQogICAgICAgIHBhZGRpbmc6IDBweDsNCiAgICAgIH0NCiAgICANCiAgICAgIHByZSB7DQogICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsNCiAgICAgIH0NCg0KICAgICAgLmhlYWRlcnRleHQgew0KICAgICAgICBmb250LXNpemU6IDIwcHg7DQogICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7DQogICAgICB9DQoNCiAgICAgIC5oZWFkZXIgew0KICAgICAgICBmb250LXNpemU6IDE3cHg7DQogICAgICAgIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGNvbG9yLXN0b3AoMCUscmdiYSg5OSwxMzUsMjI5LDEpKSwgY29sb3Itc3RvcCgxMDAlLHJnYmEoNjQsMTA5LDIzNiwxKSkpOw0KICAgICAgICBwYWRkaW5nOiA2cHg7DQogICAgICAgIG1hcmdpbjogMHB4IGF1dG87DQogICAgICAgIGNvbG9yOiB3aGl0ZTsNCiAgICAgICAgYm9yZGVyOiAwLjVweCBzb2xpZCBibGFjazsNCiAgICAgIH0NCg0KICAgICAgLmhlYWRlciBhIHsNCiAgICAgICAgY29sb3I6IHdoaXRlOw0KICAgICAgfQ0KDQogICAgICAuY29udGVudCB7DQogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBncmF5Ow0KICAgICAgICBmb250LXNpemU6IDE2cHg7DQogICAgICAgIGNvbG9yOiAjZWVlZWVlOw0KICAgICAgICBtYXJnaW46IDBweCBhdXRvOw0KICAgICAgICBwYWRkaW5nOiA2cHg7DQogICAgICAgIHBhZGRpbmctdG9wOiAxMnB4Ow0KICAgICAgfQ0KICAgICAgDQogICAgICAuY29udGFpbmVyIHsNCiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgZ3JheTsNCiAgICAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAycHg7DQogICAgICAgIG1hcmdpbjogMTBweDsNCiAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAycHggMnB4IDE2cHggMHB4IHJnYmEoNTAsIDUwLCA1MCwgMC42Mik7DQogICAgICB9DQogICAgPC9zdHlsZT4NCiAgICA8dGl0bGU+DQogICAgICAlMQ0KICAgIDwvdGl0bGU+DQogIDwvaGVhZD4NCiAgPGJvZHk+DQogICAgJTINCiAgPC9ib2R5Pg0KPC9odG1sPg== - PGRpdiBjbGFzcz0iY29udGFpbmVyIj4NCiAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+DQogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlcnRleHQiPg0KICAgICAgICAgICUxDQogICAgICAgIDwvZGl2Pg0KICAgICAgICAlMiAoJTUpDQogICAgICAgIDxicj4NCiAgICAgICAgPGEgaHJlZj0iJTMiPiUzPC9hPg0KICAgICAgICAlNg0KICAgICAgPC9kaXY+DQogICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4NCiAgICAgICAgJTQgDQogICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4= - PGEgY2xhc3M9ImVuY2xvc3VyZSIgaHJlZj0iJTMiPiUzPC9hPg== LyogUVdpZGdldCAqLw0KUVdpZGdldCB7DQogIGNvbG9yOiAjY2NjY2NjOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzIzMjMyOw0KfQ0KDQpRV2lkZ2V0OjppdGVtOmhvdmVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogUUxpbmVhckdyYWRpZW50KCB4MTogMCwgeTE6IDAsIHgyOiAwLCB5MjogMSwgc3RvcDogMCAjNTY5ZGU1LCBzdG9wOiAxICM0YjhhYzkpOw0KICBjb2xvcjogIzAwMDAwMDsNCn0NCg0KUVdpZGdldDpkaXNhYmxlZCB7DQogIGNvbG9yOiAjNzc3Nzc3Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzIzMjMyOw0KfQ0KDQovKiBRVG9vbEJ1dHRvbiAqLw0KUVRvb2xCdXR0b24gLCBRVG9vbEJ1dHRvbjpkaXNhYmxlZCB7DQogIGJvcmRlcjogbm9uZTsNCiAgcGFkZGluZzogMHB4Ow0KICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsNCn0NCg0KUVRvb2xCdXR0b246aG92ZXIsIFFUb29sQnV0dG9uOnByZXNzZWQgew0KICBib3JkZXItcmFkaXVzOiAycHg7DQogIGJvcmRlcjogMXB4IHNvbGlkIGdyYXk7DQp9DQoNClFUb29sQnV0dG9uW3BvcHVwTW9kZT0iMSJdIHsNCiAgcGFkZGluZy1yaWdodDogMTZweDsNCn0NCg0KUVRvb2xCdXR0b246Om1lbnUtYnV0dG9uIHsNCiAgYm9yZGVyOiAxcHggc29saWQgZ3JheTsNCiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDJweDsNCiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDJweDsNCiAgd2lkdGg6IDE0cHg7DQp9DQoNClFUb29sQnV0dG9uOjptZW51LWFycm93IHsNCiAgaW1hZ2U6IHVybCgjIy9pbWFnZXMvZG93bl9hcnJvdy5wbmcpOw0KfQ0KDQpRVG9vbEJ1dHRvbjo6bWVudS1hcnJvdzpvcGVuIHsNCiAgdG9wOiAxcHg7IGxlZnQ6IDFweDsNCn0NCg0KLyogUVN0YXR1c0JhciAqLw0KUVN0YXR1c0JhciBRVG9vbEJ1dHRvbiB7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQogIG1hcmdpbi1yaWdodDogNXB4Ow0KfQ0KDQpRU3RhdHVzQmFyOjppdGVtIHsNCiAgYm9yZGVyOiB0cmFuc3BhcmVudDsNCn0NCg0KLyogUVRvb2xCYXIgKi8NClFUb29sQmFyOjpzZXBhcmF0b3Igew0KICB3aWR0aDogMXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTk1OTU5Ow0KDQogIG1hcmdpbi1sZWZ0OiA1cHg7DQogIG1hcmdpbi1yaWdodDogNXB4Ow0KfQ0KDQpRVG9vbEJhciB7DQogIHBhZGRpbmctbGVmdDogNXB4Ow0KICBwYWRkaW5nLXJpZ2h0OiA1cHg7DQp9DQoNCi8qIFFUb29sVGlwICovDQpRVG9vbFRpcCB7DQogIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTY5ZGU1Ow0KICBjb2xvcjogYmxhY2s7DQogIGJvcmRlci1yYWRpdXM6IDFweDsNCiAgb3BhY2l0eTogMjIwOw0KfQ0KDQovKiBRTWVudUJhciAqLw0KUU1lbnVCYXI6Oml0ZW0gew0KICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudA0KfQ0KDQpRTWVudUJhcjo6aXRlbTpzZWxlY3RlZCB7DQogIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50Ow0KICBib3JkZXI6IDFweCBzb2xpZCAjNTY5ZGU1Ow0KfQ0KDQpRTWVudUJhcjo6aXRlbTpwcmVzc2VkIHsNCiAgYmFja2dyb3VuZDogIzQ0NDsNCiAgYm9yZGVyOiAxcHggc29saWQgIzAwMDsNCiAgYmFja2dyb3VuZC1jb2xvcjogUUxpbmVhckdyYWRpZW50KCB4MTowLCB5MTowLCB4MjowLCB5MjoxLCBzdG9wOjEgIzIxMjEyMSwgc3RvcDowLjQgIzM0MzQzNCApOw0KICBtYXJnaW4tYm90dG9tOiAtMXB4Ow0KICBwYWRkaW5nLWJvdHRvbTogMXB4Ow0KfQ0KDQovKiBRTWVudSAqLw0KUU1lbnUgew0KICBib3JkZXI6IDFweCBzb2xpZCAjMDAwOw0KfQ0KDQpRTWVudTo6aXRlbSB7DQogIHBhZGRpbmc6IDJweCAxMHB4IDJweCAyM3B4Ow0KfQ0KDQpRTWVudTo6aWNvbiB7DQogIHBhZGRpbmctbGVmdDogNHB4Ow0KfQ0KDQpRTWVudTo6aXRlbTpzZWxlY3RlZCB7DQogIGNvbG9yOiAjMDAwMDAwOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiBRTGluZWFyR3JhZGllbnQoIHgxOiAwLCB5MTogMCwgeDI6IDAsIHkyOiAxLCBzdG9wOiAwICM1NjlkZTUsIHN0b3A6IDEgIzQ0N2NiNSk7DQp9DQoNClFNZW51OjpzZXBhcmF0b3Igew0KICBoZWlnaHQ6IDFweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzU5NTk1OTsNCiAgY29sb3I6IHdoaXRlOw0KICBtYXJnaW4tdG9wOiAzcHg7DQogIG1hcmdpbi1ib3R0b206IDNweDsNCiAgbWFyZ2luLWxlZnQ6IDVweDsNCiAgbWFyZ2luLXJpZ2h0OiA1cHg7DQp9DQoNCi8qIFFQdXNoQnV0dG9uICovDQpRUHVzaEJ1dHRvbiB7DQogIGNvbG9yOiAjYjFiMWIxOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiBRTGluZWFyR3JhZGllbnQoIHgxOiAwLCB5MTogMCwgeDI6IDAsIHkyOiAxLCBzdG9wOiAwICM1NjU2NTYsIHN0b3A6IDAuMSAjNTI1MjUyLCBzdG9wOiAwLjUgIzRlNGU0ZSwgc3RvcDogMC45ICM0YTRhNGEsIHN0b3A6IDEgIzQ2NDY0Nik7DQogIGJvcmRlcjogMXB4IHNvbGlkICMxZTFlMWU7DQogIGJvcmRlci1yYWRpdXM6IDFweDsNCiAgcGFkZGluZzogM3B4Ow0KICBmb250LXNpemU6IDEycHg7DQogIHBhZGRpbmctbGVmdDogNnB4Ow0KICBwYWRkaW5nLXJpZ2h0OiA2cHg7DQogIG1pbi13aWR0aDogMzBweDsNCn0NCg0KUVB1c2hCdXR0b246cHJlc3NlZCB7DQogIGJhY2tncm91bmQtY29sb3I6IFFMaW5lYXJHcmFkaWVudCggeDE6IDAsIHkxOiAwLCB4MjogMCwgeTI6IDEsIHN0b3A6IDAgIzJkMmQyZCwgc3RvcDogMC4xICMyYjJiMmIsIHN0b3A6IDAuNSAjMjkyOTI5LCBzdG9wOiAwLjkgIzI4MjgyOCwgc3RvcDogMSAjMjUyNTI1KQ0KfQ0KDQpRUHVzaEJ1dHRvbiNtX2J0bkluc2VydFNlcGFyYXRvciwgUVB1c2hCdXR0b24jbV9idG5JbnNlcnRTcGFjZXIgew0KICBtaW4td2lkdGg6IDEzMHB4Ow0KfQ0KDQovKiBRQ29tYm9Cb3ggKi8NClFDb21ib0JveCB7DQogIHNlbGVjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOiAjNTY5ZGU1Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiBRTGluZWFyR3JhZGllbnQoIHgxOiAwLCB5MTogMCwgeDI6IDAsIHkyOiAxLCBzdG9wOiAwICM1NjU2NTYsIHN0b3A6IDAuMSAjNTI1MjUyLCBzdG9wOiAwLjUgIzRlNGU0ZSwgc3RvcDogMC45ICM0YTRhNGEsIHN0b3A6IDEgIzQ2NDY0Nik7DQogIGJvcmRlcjogMXB4IHNvbGlkICMxZTFlMWU7DQogIGJvcmRlci1yYWRpdXM6IDFweDsNCiAgcGFkZGluZzogMnB4Ow0KICBwYWRkaW5nLXRvcDogMXB4Ow0KICBwYWRkaW5nLWJvdHRvbTogMXB4Ow0KICBwYWRkaW5nLWxlZnQ6IDRweDsNCn0NCg0KUUNvbWJvQm94OmhvdmVyLCBRUHVzaEJ1dHRvbjpob3ZlciB7DQogIGJhY2tncm91bmQtY29sb3I6IFFMaW5lYXJHcmFkaWVudCggeDE6IDAsIHkxOiAwLCB4MjogMCwgeTI6IDEsIHN0b3A6IDAgIzU2OWRlNSwgc3RvcDogMSAjNDQ3Y2I1KTsNCiAgY29sb3I6IGJsYWNrOw0KfQ0KDQpRQ29tYm9Cb3g6b24gew0KICBwYWRkaW5nOiAxcHg7DQogIGJhY2tncm91bmQtY29sb3I6IFFMaW5lYXJHcmFkaWVudCggeDE6IDAsIHkxOiAwLCB4MjogMCwgeTI6IDEsIHN0b3A6IDAgIzJkMmQyZCwgc3RvcDogMC4xICMyYjJiMmIsIHN0b3A6IDAuNSAjMjkyOTI5LCBzdG9wOiAwLjkgIzI4MjgyOCwgc3RvcDogMSAjMjUyNTI1KTsNCn0NCg0KUUNvbWJvQm94IFFBYnN0cmFjdEl0ZW1WaWV3IHsNCiAgYm9yZGVyOiAxcHggc29saWQgUUxpbmVhckdyYWRpZW50KCB4MTogMCwgeTE6IDAsIHgyOiAwLCB5MjogMSwgc3RvcDogMCAjNTY5ZGU1LCBzdG9wOiAxICM0NDdjYjUpOw0KICBzZWxlY3Rpb24tYmFja2dyb3VuZC1jb2xvcjogUUxpbmVhckdyYWRpZW50KCB4MTogMCwgeTE6IDAsIHgyOiAwLCB5MjogMSwgc3RvcDogMCAjNTY5ZGU1LCBzdG9wOiAxICM0NDdjYjUpOw0KfQ0KDQpRQ29tYm9Cb3g6OmRyb3AtZG93biB7DQogIHN1YmNvbnRyb2wtb3JpZ2luOiBwYWRkaW5nOw0KICBzdWJjb250cm9sLXBvc2l0aW9uOiB0b3AgcmlnaHQ7DQogIHdpZHRoOiAxNXB4Ow0KICBib3JkZXItbGVmdC13aWR0aDogMHB4Ow0KICBib3JkZXItbGVmdC1jb2xvcjogZGFya2dyYXk7DQogIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDsNCiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDFweDsNCiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDFweDsNCn0NCg0KUUNvbWJvQm94Ojpkb3duLWFycm93IHsNCiAgaW1hZ2U6IHVybCgjIy9pbWFnZXMvZG93bl9hcnJvdy5wbmcpDQp9DQoNCi8qIFFTY3JvbGxCYXIgKi8NClFTY3JvbGxCYXI6aG9yaXpvbnRhbCB7DQogIGJvcmRlcjogMXB4IHNvbGlkICMyMjIyMjI7DQogIGJhY2tncm91bmQ6IFFMaW5lYXJHcmFkaWVudCggeDE6IDAsIHkxOiAwLCB4MjogMCwgeTI6IDEsIHN0b3A6IDAuMCAjMTIxMjEyLCBzdG9wOiAwLjIgIzI4MjgyOCwgc3RvcDogMSAjNDg0ODQ4KTsNCiAgaGVpZ2h0OiAxM3B4Ow0KICBtYXJnaW46IDBweCAxNnB4IDAgMTZweDsNCn0NCg0KUVNjcm9sbEJhcjo6aGFuZGxlOmhvcml6b250YWwgew0KICBiYWNrZ3JvdW5kOiBRTGluZWFyR3JhZGllbnQoIHgxOiAwLCB5MTogMCwgeDI6IDEsIHkyOiAwLCBzdG9wOiAwICM1NjlkZTUsIHN0b3A6IDAuNSAjNDQ3Y2I1LCBzdG9wOiAxICM1NjlkZTUpOw0KICBtaW4taGVpZ2h0OiAyMHB4Ow0KICBib3JkZXItcmFkaXVzOiAxcHg7DQp9DQoNClFTY3JvbGxCYXI6OmFkZC1saW5lOmhvcml6b250YWwgew0KICBib3JkZXI6IDFweCBzb2xpZCAjMWIxYjE5Ow0KICBib3JkZXItcmFkaXVzOiAxcHg7DQogIGJhY2tncm91bmQ6IFFMaW5lYXJHcmFkaWVudCggeDE6IDAsIHkxOiAwLCB4MjogMSwgeTI6IDAsIHN0b3A6IDAgIzU2OWRlNSwgc3RvcDogMSAjNDQ3Y2I1KTsNCiAgd2lkdGg6IDEzcHg7DQogIHN1YmNvbnRyb2wtcG9zaXRpb246IHJpZ2h0Ow0KICBzdWJjb250cm9sLW9yaWdpbjogbWFyZ2luOw0KfQ0KDQpRU2Nyb2xsQmFyOjpzdWItbGluZTpob3Jpem9udGFsIHsNCiAgYm9yZGVyOiAxcHggc29saWQgIzFiMWIxOTsNCiAgYm9yZGVyLXJhZGl1czogMXB4Ow0KICBiYWNrZ3JvdW5kOiBRTGluZWFyR3JhZGllbnQoIHgxOiAwLCB5MTogMCwgeDI6IDEsIHkyOiAwLCBzdG9wOiAwICM1NjlkZTUsIHN0b3A6IDEgIzQ0N2NiNSk7DQogIHdpZHRoOiAxM3B4Ow0KICBzdWJjb250cm9sLXBvc2l0aW9uOiBsZWZ0Ow0KICBzdWJjb250cm9sLW9yaWdpbjogbWFyZ2luOw0KfQ0KDQpRU2Nyb2xsQmFyOjpyaWdodC1hcnJvdzpob3Jpem9udGFsLCBRU2Nyb2xsQmFyOjpsZWZ0LWFycm93Omhvcml6b250YWwgew0KICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsNCiAgd2lkdGg6IDFweDsNCiAgaGVpZ2h0OiAxcHg7DQogIGJhY2tncm91bmQ6IHdoaXRlOw0KfQ0KDQpRU2Nyb2xsQmFyOjphZGQtcGFnZTpob3Jpem9udGFsLCBRU2Nyb2xsQmFyOjpzdWItcGFnZTpob3Jpem9udGFsIHsNCiAgYmFja2dyb3VuZDogbm9uZQ0KfQ0KDQpRU2Nyb2xsQmFyOnZlcnRpY2FsIHsNCiAgYmFja2dyb3VuZDogUUxpbmVhckdyYWRpZW50KCB4MTogMCwgeTE6IDAsIHgyOiAxLCB5MjogMCwgc3RvcDogMC4wICMxMjEyMTIsIHN0b3A6IDAuMiAjMjgyODI4LCBzdG9wOiAxICM0ODQ4NDgpOw0KICB3aWR0aDogMTNweDsNCiAgbWFyZ2luOiAxNnB4IDAgMTZweCAwOw0KICBib3JkZXI6IDFweCBzb2xpZCAjMjIyMjIyOw0KfQ0KDQpRU2Nyb2xsQmFyOjpoYW5kbGU6dmVydGljYWwgew0KICBiYWNrZ3JvdW5kOiBRTGluZWFyR3JhZGllbnQoIHgxOiAwLCB5MTogMCwgeDI6IDAsIHkyOiAxLCBzdG9wOiAwICM1NjlkZTUsIHN0b3A6IDAuNSAjNDQ3Y2I1LCBzdG9wOiAxICM1NjlkZTUpOw0KICBtaW4taGVpZ2h0OiAyMHB4Ow0KICBib3JkZXItcmFkaXVzOiAxcHg7DQp9DQpRU2Nyb2xsQmFyOjphZGQtbGluZTp2ZXJ0aWNhbCB7DQogIGJvcmRlcjogMXB4IHNvbGlkICMxYjFiMTk7DQogIGJvcmRlci1yYWRpdXM6IDFweDsNCiAgYmFja2dyb3VuZDogUUxpbmVhckdyYWRpZW50KCB4MTogMCwgeTE6IDAsIHgyOiAwLCB5MjogMSwgc3RvcDogMCAjNTY5ZGU1LCBzdG9wOiAxICM0NDdjYjUpOw0KICBoZWlnaHQ6IDEzcHg7DQogIHN1YmNvbnRyb2wtcG9zaXRpb246IGJvdHRvbTsNCiAgc3ViY29udHJvbC1vcmlnaW46IG1hcmdpbjsNCn0NCg0KUVNjcm9sbEJhcjo6c3ViLWxpbmU6dmVydGljYWwgew0KICBib3JkZXI6IDFweCBzb2xpZCAjMWIxYjE5Ow0KICBib3JkZXItcmFkaXVzOiAxcHg7DQogIGJhY2tncm91bmQ6IFFMaW5lYXJHcmFkaWVudCggeDE6IDAsIHkxOiAwLCB4MjogMCwgeTI6IDEsIHN0b3A6IDAgIzU2OWRlNSwgc3RvcDogMSAjNDQ3Y2I1KTsNCiAgaGVpZ2h0OiAxM3B4Ow0KICBzdWJjb250cm9sLXBvc2l0aW9uOiB0b3A7DQogIHN1YmNvbnRyb2wtb3JpZ2luOiBtYXJnaW47DQp9DQoNClFTY3JvbGxCYXI6OnVwLWFycm93OnZlcnRpY2FsLCBRU2Nyb2xsQmFyOjpkb3duLWFycm93OnZlcnRpY2FsIHsNCiAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7DQogIHdpZHRoOiAxcHg7DQogIGhlaWdodDogMXB4Ow0KICBiYWNrZ3JvdW5kOiB3aGl0ZTsNCn0NCg0KUVNjcm9sbEJhcjo6YWRkLXBhZ2U6dmVydGljYWwsIFFTY3JvbGxCYXI6OnN1Yi1wYWdlOnZlcnRpY2FsIHsNCiAgYmFja2dyb3VuZDogbm9uZTsNCn0NCg0KLyogUVNwbGl0dGVyICovDQpRU3BsaXR0ZXI6OmhhbmRsZSB7DQogIGJhY2tncm91bmQtY29sb3I6ICM0ZTRlNGU7DQp9DQoNCi8qIFFIZWFkZXJWaWV3ICovDQpRSGVhZGVyVmlldyB7DQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBjb2xvcjogI2NjY2NjYzsNCn0NCg0KUUhlYWRlclZpZXc6OnNlY3Rpb24gew0KICBtaW4taGVpZ2h0OiAyMHB4Ow0KICBib3JkZXI6IDAuNSBweCBzb2xpZCAjNTk1OTU5Ow0KICBib3JkZXItcmlnaHQ6IDAuNSBzb2xpZCAjNzA3MDcwOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiBRTGluZWFyR3JhZGllbnQoIHgxOiAwLCB5MTogMCwgeDI6IDAsIHkyOiAxLCBzdG9wOiAwICM1NjU2NTYsIHN0b3A6IDAuMSAjNTI1MjUyLCBzdG9wOiAwLjUgIzRlNGU0ZSwgc3RvcDogMC45ICM0YTRhNGEsIHN0b3A6IDEgIzQ2NDY0Nik7DQp9DQoNClFIZWFkZXJWaWV3OjpzZWN0aW9uOmZpcnN0IHsNCiAgcGFkZGluZy1sZWZ0OiA0cHg7DQogIHBhZGRpbmctcmlnaHQ6IDJweDsNCn0NCg0KUUhlYWRlclZpZXc6OnNlY3Rpb246IWZpcnN0IHsNCiAgcGFkZGluZy1sZWZ0OiAycHg7DQogIHBhZGRpbmctcmlnaHQ6IDJweDsNCn0NCg0KUUhlYWRlclZpZXc6OnNlY3Rpb246aG92ZXIgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiBRTGluZWFyR3JhZGllbnQoIHgxOiAwLCB5MTogMCwgeDI6IDAsIHkyOiAxLCBzdG9wOiAwICM1NjU2NTYsIHN0b3A6IDAuMSAjNTA1MDUwLCBzdG9wOiAwLjUgIzRlNGU0ZSwgc3RvcDogMC45ICM0MDQwNDAsIHN0b3A6IDEgIzQwNDA0MCk7DQp9DQoNCi8qIFFUcmVlVmlldyAqLw0KUVRyZWVWaWV3OjpicmFuY2g6aGFzLXNpYmxpbmdzOiFhZGpvaW5zLWl0ZW0gIHsNCiAgYm9yZGVyLWltYWdlOiB1cmwocXNzL2R1bW15LnBuZykgMDsNCn0NCg0KUVRyZWVWaWV3OjpicmFuY2g6aGFzLXNpYmxpbmdzOmFkam9pbnMtaXRlbSB7DQogIGJvcmRlci1pbWFnZTogdXJsKHFzcy9kdW1teS5wbmcpIDA7DQp9DQoNClFUcmVlVmlldzo6YnJhbmNoOiFoYXMtY2hpbGRyZW46IWhhcy1zaWJsaW5nczphZGpvaW5zLWl0ZW0gIHsNCiAgYm9yZGVyLWltYWdlOiB1cmwocXNzL2R1bW15LnBuZykgMDsNCn0NCg0KUVRyZWVWaWV3OjpicmFuY2g6aGFzLWNoaWxkcmVuOiFoYXMtc2libGluZ3M6Y2xvc2VkLA0KUVRyZWVWaWV3OjpicmFuY2g6Y2xvc2VkOmhhcy1jaGlsZHJlbjpoYXMtc2libGluZ3MgIHsNCiAgYm9yZGVyLWltYWdlOiBub25lOw0KICBpbWFnZTogdXJsKHFzcy9icmFuY2gtY2xvc2VkLnBuZyk7DQp9DQoNClFUcmVlVmlldzo6YnJhbmNoOm9wZW46aGFzLWNoaWxkcmVuOiFoYXMtc2libGluZ3MsDQpRVHJlZVZpZXc6OmJyYW5jaDpvcGVuOmhhcy1jaGlsZHJlbjpoYXMtc2libGluZ3MgIHsNCiAgYm9yZGVyLWltYWdlOiBub25lOw0KICBpbWFnZTogdXJsKHFzcy9icmFuY2gtb3Blbi5wbmcpOw0KfQ0KDQpRVHJlZVZpZXc6Oml0ZW0gew0KICBwYWRkaW5nOiAxcHg7DQp9IA0KDQpRVHJlZVZpZXdbaGlkZVRyZWU9InRydWUiXTo6YnJhbmNoOiFoYXMtY2hsaWRyZW46aGFzU2libGluZ3Mgew0KICBib3JkZXItaW1hZ2U6IG5vbmU7DQogIGltYWdlOiBub25lOw0KfQ0KDQpRVHJlZVZpZXc6Oml0ZW06c2VsZWN0ZWQsIFFUcmVlVmlldzo6YnJhbmNoOnNlbGVjdGVkLCBRVHJlZVZpZXc6Oml0ZW06c2VsZWN0ZWQ6YWN0aXZlLCBRVHJlZVZpZXc6Oml0ZW06c2VsZWN0ZWQ6IWFjdGl2ZSwgUVRyZWVWaWV3OjppdGVtOmhvdmVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogUUxpbmVhckdyYWRpZW50KCB4MTogMCwgeTE6IDAsIHgyOiAwLCB5MjogMSwgc3RvcDogMCAjNTY5ZGU1LCBzdG9wOiAxICM0YjhhYzkpOw0KICBjb2xvcjogIzAwMDAwMDsNCn0NCg0KLyogUUxpc3RWaWV3ICovDQpRTGlzdFZpZXcgIHsNCiAgc2hvdy1kZWNvcmF0aW9uLXNlbGVjdGVkOiAxOw0KfQ0KIA0KUUxpc3RWaWV3OjppdGVtOnNlbGVjdGVkLCBRTGlzdFZpZXc6Oml0ZW06c2VsZWN0ZWQ6IWFjdGl2ZSwgUUxpc3RWaWV3OjppdGVtOnNlbGVjdGVkOmFjdGl2ZSwgUUxpc3RWaWV3OjppdGVtOmhvdmVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogUUxpbmVhckdyYWRpZW50KCB4MTogMCwgeTE6IDAsIHgyOiAwLCB5MjogMSwgc3RvcDogMCAjNTY5ZGU1LCBzdG9wOiAxICM0YjhhYzkpOw0KICBjb2xvcjogIzAwMDAwMDsNCn0NCg0KLyogUVRleHRFZGl0LCBRUGxhaW5UZXh0RWRpdCAqLw0KUVRleHRFZGl0OmZvY3VzLCBRUGxhaW5UZXh0RWRpdDpmb2N1cywgUUxpbmVFZGl0OmZvY3VzIHsNCiAgYm9yZGVyOiAxcHggc29saWQgUUxpbmVhckdyYWRpZW50KCB4MTogMCwgeTE6IDAsIHgyOiAwLCB5MjogMSwgc3RvcDogMCAjNTY5ZGU1LCBzdG9wOiAxICM0NDdjYjUpDQp9DQoNClFUZXh0RWRpdCwgUVBsYWluVGV4dEVkaXQgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiBRTGluZWFyR3JhZGllbnQoIHgxOiAwLCB5MTogMCwgeDI6IDAsIHkyOiAxLCBzdG9wOiAwICM0ZDRkNGQsIHN0b3A6IDAgIzY0NjQ2NCwgc3RvcDogMSAjNWQ1ZDVkKQ0KfQ0KDQovKiBRTGluZUVkaXQgKi8NClFMaW5lRWRpdCB7DQogIGJhY2tncm91bmQtY29sb3I6IFFMaW5lYXJHcmFkaWVudCggeDE6IDAsIHkxOiAwLCB4MjogMCwgeTI6IDEsIHN0b3A6IDAgIzRkNGQ0ZCwgc3RvcDogMCAjNjQ2NDY0LCBzdG9wOiAxICM1ZDVkNWQpOw0KICBwYWRkaW5nOiAxcHg7DQogIGJvcmRlci1zdHlsZTogc29saWQ7DQogIGJvcmRlcjogMXB4IHNvbGlkICM1OTU5NTk7DQogIGJvcmRlci1yYWRpdXM6IDBweDsNCn0NCg0KLyogUVByb2dyZXNzQmFyICovDQpRUHJvZ3Jlc3NCYXIgew0KICBib3JkZXI6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItcmFkaXVzOiAxcHg7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCn0NClFQcm9ncmVzc0Jhcjo6Y2h1bmsgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiBRTGluZWFyR3JhZGllbnQoIHgxOiAwLCB5MTogMCwgeDI6IDAsIHkyOiAxLCBzdG9wOiAwICM1NjlkZTUsIHN0b3A6IDEgIzRiOGFjOSk7DQogIHdpZHRoOiAzcHg7DQogIG1hcmdpbjogMC41cHg7DQp9DQoNCi8qIFFDaGVja0JveCAqLw0KUUNoZWNrQm94OjppbmRpY2F0b3Igew0KICBjb2xvcjogI2IxYjFiMTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMyMzIzMjsNCiAgYm9yZGVyOiAxcHggc29saWQgI2IxYjFiMTsNCiAgd2lkdGg6IDlweDsNCiAgaGVpZ2h0OiA5cHg7DQp9DQoNClFDaGVja0JveDo6aW5kaWNhdG9yOmNoZWNrZWQgew0KICBpbWFnZTogdXJsKCMjL2ltYWdlcy9jaGVja2JveC5wbmcpDQp9DQoNClFDaGVja0JveDo6aW5kaWNhdG9yOmRpc2FibGVkIHsNCiAgYm9yZGVyOiAxcHggc29saWQgIzQ0NA0KfQ0KDQovKiBRUmFkaW9CdXR0b24gKi8NClFSYWRpb0J1dHRvbjo6aW5kaWNhdG9yOmRpc2FibGVkIHsNCiAgYm9yZGVyOiAxcHggc29saWQgIzQ0NA0KfQ0KDQpRUmFkaW9CdXR0b246OmluZGljYXRvciB7DQogIGJvcmRlci1yYWRpdXM6IDZweA0KfQ0KDQpRUmFkaW9CdXR0b246OmluZGljYXRvcjpjaGVja2VkLCBRUmFkaW9CdXR0b246OmluZGljYXRvcjp1bmNoZWNrZWQgew0KICBjb2xvcjogI2IxYjFiMTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMyMzIzMjsNCiAgYm9yZGVyOiAxcHggc29saWQgI2IxYjFiMTsNCn0NCg0KUVJhZGlvQnV0dG9uOjppbmRpY2F0b3I6Y2hlY2tlZCB7DQogIGJhY2tncm91bmQtY29sb3I6IHFyYWRpYWxncmFkaWVudCggY3g6IDAuNSwgY3k6IDAuNSwgZng6IDAuNSwgZnk6IDAuNSwgcmFkaXVzOiAxLjAsIHN0b3A6IDAuMjUgIzU2OWRlNSwgc3RvcDogMC4zICMzMjMyMzIgKQ0KfQ0KDQpRUmFkaW9CdXR0b246OmluZGljYXRvcjpob3ZlciwgUUNoZWNrQm94OjppbmRpY2F0b3I6aG92ZXIgew0KICBib3JkZXI6IDFweCBzb2xpZCAjNTY5ZGU1DQp9 \ No newline at end of file diff --git a/resources/skins/base/greeen.xml b/resources/skins/base/greeen.xml index 0f7371563..9973ac7f3 100644 --- a/resources/skins/base/greeen.xml +++ b/resources/skins/base/greeen.xml @@ -6,8 +6,5 @@ rotter.martinos@gmail.com - PGh0bWw+DQogIDxoZWFkPg0KICAgIDxzdHlsZT4gICANCiAgICAgIGJvZHkgeyAgICAgDQogICAgICAgIG1hcmdpbjogMHB4Ow0KICAgICAgICBwYWRkaW5nOiAwcHg7DQogICAgICB9DQogICAgDQogICAgICBwcmUgew0KICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7DQogICAgICB9DQoNCiAgICAgIC5oZWFkZXJ0ZXh0IHsNCiAgICAgICAgZm9udC1zaXplOiAyMHB4Ow0KICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4Ow0KICAgICAgfQ0KDQogICAgICAuaGVhZGVyIHsNCiAgICAgICAgZm9udC1zaXplOiAxN3B4Ow0KICAgICAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBjb2xvci1zdG9wKDAlLHJnYmEoODQsIDEzMiwgNTMsIDEpKSwgY29sb3Itc3RvcCgxMDAlLHJnYmEoODQsIDE0MCwgNTMsIDEpKSk7DQogICAgICAgIHBhZGRpbmc6IDZweDsNCiAgICAgICAgbWFyZ2luOiAwcHggYXV0bzsNCiAgICAgICAgY29sb3I6IHdoaXRlOw0KICAgICAgICBib3JkZXI6IDAuNXB4IHNvbGlkIGJsYWNrOw0KICAgICAgfQ0KDQogICAgICAuaGVhZGVyIGEgew0KICAgICAgICBjb2xvcjogd2hpdGU7DQogICAgICB9DQogICAgICANCiAgICAgIC5oZWFkZXIgLmVuY2xvc3VyZSB7DQogICAgICAgIGNvbG9yOiBibGFjazsNCiAgICAgIH0NCg0KICAgICAgLmNvbnRlbnQgew0KICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgZ3JheTsNCiAgICAgICAgZm9udC1zaXplOiAxNnB4Ow0KICAgICAgICBtYXJnaW46IDBweCBhdXRvOw0KICAgICAgICBwYWRkaW5nOiA2cHg7DQogICAgICAgIHBhZGRpbmctdG9wOiAxMnB4Ow0KICAgICAgfQ0KICAgICAgDQogICAgICAuY29udGFpbmVyIHsNCiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgZ3JheTsNCiAgICAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAycHg7DQogICAgICAgIG1hcmdpbjogMTBweDsNCiAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAycHggMnB4IDhweCAwcHggcmdiYSg1MCwgNTAsIDUwLCAwLjYyKTsNCiAgICAgIH0NCiAgICA8L3N0eWxlPg0KICAgIDx0aXRsZT4NCiAgICAgICUxDQogICAgPC90aXRsZT4NCiAgPC9oZWFkPg0KICA8Ym9keT4NCiAgICAlMg0KICA8L2JvZHk+DQo8L2h0bWw+ - PGRpdiBjbGFzcz0iY29udGFpbmVyIj4NCiAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+DQogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlcnRleHQiPg0KICAgICAgICAgICUxDQogICAgICAgIDwvZGl2Pg0KICAgICAgICAlMiAoJTUpDQogICAgICAgIDxicj4NCiAgICAgICAgPGEgaHJlZj0iJTMiPiUzPC9hPg0KICAgICAgICAlNg0KICAgICAgPC9kaXY+DQogICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4NCiAgICAgICAgJTQgDQogICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4= - PGEgY2xhc3M9ImVuY2xvc3VyZSIgaHJlZj0iJTMiPiUzPC9hPg== LyoNCiAqIEluc3BpcmVkIGJ5IFF1aXRlUlNTICJncmVlbiIgc2tpbi4NCiAqIENvcHlyaWdodCAoQykgPD0gMjAxMyBieSBRdWl0ZVJTUyB0ZWFtDQogKiBDb3B5cmlnaHQgKEMpIDIwMTQgYnkgTWFydGluIFJvdHRlciA8cm90dGVyLm1hcnRpbm9zQGdtYWlsLmNvbT4NCiAqLw0KICANClFUcmVlVmlldzo6YnJhbmNoOmhhcy1zaWJsaW5nczohYWRqb2lucy1pdGVtICB7DQogIGJvcmRlci1pbWFnZTogdXJsKHFzcy9kdW1teS5wbmcpIDA7DQp9DQoNClFUcmVlVmlldzo6YnJhbmNoOmhhcy1zaWJsaW5nczphZGpvaW5zLWl0ZW0gew0KICBib3JkZXItaW1hZ2U6IHVybChxc3MvZHVtbXkucG5nKSAwOw0KfQ0KDQpRVHJlZVZpZXc6OmJyYW5jaDohaGFzLWNoaWxkcmVuOiFoYXMtc2libGluZ3M6YWRqb2lucy1pdGVtICB7DQogIGJvcmRlci1pbWFnZTogdXJsKHFzcy9kdW1teS5wbmcpIDA7DQp9DQoNClFUcmVlVmlldzo6YnJhbmNoOmhhcy1jaGlsZHJlbjohaGFzLXNpYmxpbmdzOmNsb3NlZCwNClFUcmVlVmlldzo6YnJhbmNoOmNsb3NlZDpoYXMtY2hpbGRyZW46aGFzLXNpYmxpbmdzICB7DQogIGJvcmRlci1pbWFnZTogbm9uZTsNCiAgaW1hZ2U6IHVybChxc3MvYnJhbmNoLWNsb3NlZC5wbmcpOw0KfQ0KDQpRVHJlZVZpZXc6OmJyYW5jaDpvcGVuOmhhcy1jaGlsZHJlbjohaGFzLXNpYmxpbmdzLA0KUVRyZWVWaWV3OjpicmFuY2g6b3BlbjpoYXMtY2hpbGRyZW46aGFzLXNpYmxpbmdzICB7DQogIGJvcmRlci1pbWFnZTogbm9uZTsNCiAgaW1hZ2U6IHVybChxc3MvYnJhbmNoLW9wZW4ucG5nKTsNCn0NCg0KUVRyZWVWaWV3OjppdGVtIHsNCiAgcGFkZGluZzogMXB4IDFweCAxcHggMXB4Ow0KfSANCg0KUVRyZWVWaWV3W2hpZGVUcmVlPSJ0cnVlIl06OmJyYW5jaDohaGFzLWNobGlkcmVuOmhhc1NpYmxpbmdzIHsNCiAgYm9yZGVyLWltYWdlOiBub25lOw0KICBpbWFnZTogbm9uZTsNCn0NCg0KUVN0YXR1c0Jhcjo6aXRlbSB7DQogIGJvcmRlcjogbm9uZTsNCn0NCg0KV2ViQnJvd3NlciBRUHJvZ3Jlc3NCYXIgew0KICBib3JkZXI6IDFweCBzb2xpZCAjQTVBNUE1Ow0KICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogIGJvcmRlci1sZWZ0OiBub25lOw0KICBib3JkZXItcmlnaHQ6IG5vbmU7DQogIGJhY2tncm91bmQ6IHFsaW5lYXJncmFkaWVudCh4MTowLCB5MTowLCB4MjowLCB5MjoxLCBzdG9wOjAgI2Y0ZjRmNCwgc3RvcDowLjQgI0VDRUNFQyBzdG9wOjAuNSAjREVERURFLCBzdG9wOjEgI2Y0ZjRmNCk7DQp9DQoNCldlYkJyb3dzZXIgUVByb2dyZXNzQmFyOjpjaHVuayB7DQogIGJhY2tncm91bmQ6IHFsaW5lYXJncmFkaWVudCh4MTowLCB5MTowLCB4MjowLCB5MjoxLCBzdG9wOjAgIzkwRTg5MCwgc3RvcDowLjQgIzdDRDA3Qywgc3RvcDowLjUgIzYwQzA2MCwgc3RvcDoxICM2MEQwNjApOw0KICB3aWR0aDogMXB4Ow0KfQ0KDQpRTWVudUJhciB7DQogIGJhY2tncm91bmQ6IHFsaW5lYXJncmFkaWVudCh4MTowLCB5MTowLCB4MjowLCB5MjoxLCBzdG9wOjAgI2UwZWVlMCwgc3RvcDowLjQgI2Q4ZWVkOCwgc3RvcDowLjUgI2NjZWVjYywgc3RvcDoxICNlMGVlZTApOw0KICBjb2xvcjogIzAwMDAwMDsNCiAgcGFkZGluZzogMXB4Ow0KfQ0KDQpRTWVudUJhcjo6aXRlbSB7DQogIHBhZGRpbmc6IDNweCA2cHg7DQogIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50Ow0KfQ0KDQpRTWVudUJhcjo6aXRlbTpzZWxlY3RlZCB7DQogIGJvcmRlcjogMXB4IHNvbGlkICM4NGNjODQ7DQogIGJhY2tncm91bmQ6IHFsaW5lYXJncmFkaWVudCh4MTowLCB5MTowLCB4MjowLCB5MjoxLCBzdG9wOjAgI2U5ZmZlOSwgc3RvcDowLjQgI2UxZWVlMSwgc3RvcDowLjUgI2Q5ZWVkOSwgc3RvcDoxICNlOWZmZTkpOw0KfQ0KDQpRTWVudUJhcjo6aXRlbTpwcmVzc2VkIHsNCiAgYm9yZGVyOiAxcHggc29saWQgIzM0YWEzNDsNCiAgYm9yZGVyLWJvdHRvbTogbm9uZTsNCiAgYmFja2dyb3VuZDogcWxpbmVhcmdyYWRpZW50KHgxOjAsIHkxOjAsIHgyOjAsIHkyOjEsIHN0b3A6MCAjN2FjYzdhLCBzdG9wOjAuNCAjNzBjODcwLCBzdG9wOjAuNSAjNjBjNDYwLCBzdG9wOjEgIzdhY2M3YSk7DQogIGNvbG9yOiB3aGl0ZTsNCn0= \ No newline at end of file diff --git a/resources/skins/base/solarized.xml b/resources/skins/base/solarized.xml index 6df800ed7..6310db878 100644 --- a/resources/skins/base/solarized.xml +++ b/resources/skins/base/solarized.xml @@ -6,8 +6,5 @@ rotter.martinos@gmail.com - PGh0bWw+DQogIDxoZWFkPg0KICAgIDxzdHlsZT4gICANCiAgICAgIGJvZHkgeyAgDQogICAgICAgIG1hcmdpbjogMHB4Ow0KICAgICAgICBwYWRkaW5nOiAwcHg7DQogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZGY2ZTM7DQogICAgICB9DQogICAgDQogICAgICBwcmUgew0KICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7DQogICAgICB9DQogICAgICANCiAgICAgIC5jb250YWluZXIgew0KICAgICAgICBjb2xvcjogIzY1N2I4MzsNCiAgICAgIH0NCg0KICAgICAgLmhlYWRlcnRleHQgew0KICAgICAgICBmb250LXNpemU6IDIwcHg7DQogICAgICB9DQoNCiAgICAgIC5oZWFkZXIgew0KICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAyYjM2OyAvKiBSZW1vdmUgdG8gZ2V0IHJpZCBvZiBzcGVjaWFsIGNvbG9yIGZvciBoZWFkZXIuICovDQogICAgICAgIGNvbG9yOiAjODM5NDk2OyAvKiBSZW1vdmUgdG8gZ2V0IHJpZCBvZiBzcGVjaWFsIGNvbG9yIGZvciBoZWFkZXIuICovDQogICAgICAgIGJvcmRlcjogMC41cHggc29saWQgYmxhY2s7DQogICAgICAgIGZvbnQtc2l6ZTogMTZweDsNCiAgICAgICAgcGFkZGluZzogNnB4Ow0KICAgICAgfQ0KDQogICAgICBhLCBhOmFjdGl2ZSwgYTp2aXNpdGVkIHsNCiAgICAgICAgY29sb3I6ICMyNjhiZDI7DQogICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsNCiAgICAgIH0NCiAgICAgIA0KICAgICAgYTpob3ZlciB7DQogICAgICAgIGNvbG9yOiAjODM5NDk2Ow0KICAgICAgfQ0KICAgICAgDQogICAgICA6OnNlbGVjdGlvbiB7DQogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwNzM2NDI7DQogICAgICB9DQoNCiAgICAgIC5jb250ZW50IHsNCiAgICAgICAgYm9yZGVyOiAwLjVweCBzb2xpZCBibGFjazsNCiAgICAgICAgcGFkZGluZzogMTJweDsNCiAgICAgICAgZm9udC1zaXplOiAxMnB4Ow0KICAgICAgfQ0KICAgIDwvc3R5bGU+DQogICAgPHRpdGxlPg0KICAgICAgJTENCiAgICA8L3RpdGxlPg0KICA8L2hlYWQ+DQogIDxib2R5Pg0KICAgICUyDQogIDwvYm9keT4NCjwvaHRtbD4= - PGRpdiBjbGFzcz0iY29udGFpbmVyIj4NCiAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+DQogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlcnRleHQiPiUxPC9kaXY+DQogICAgICAgICUyLCAlNQ0KICAgICAgICA8YnIvPg0KICAgICAgICA8YSBocmVmPSIlMyI+JTM8L2E+DQogICAgICAgICU2DQogICAgICA8L2Rpdj4NCiAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiPiU0PC9kaXY+DQogICAgPC9kaXY+ - PGEgY2xhc3M9ImVuY2xvc3VyZSIgaHJlZj0iJTMiPiUzPC9hPg== UVdpZGdldCB7DQogIGNvbG9yOiAjNjU3YjgzOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmRmNmUzOw0KfQ0KDQpRV2lkZ2V0OjppdGVtOmhvdmVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZThkNTsNCiAgY29sb3I6ICM2NTdiODM7DQp9DQoNClFXaWRnZXQ6ZGlzYWJsZWQgew0KICBjb2xvcjogZ3JheTsNCiAgYmFja2dyb3VuZC1jb2xvcjogI2ZkZjZlMzsNCn0NCg0KUUZyYW1lW2ZyYW1lU2hhcGU9IjYiXSB7DQogIGJvcmRlcjogMXB4IHNvbGlkICM4OGE2YjE7DQp9DQoNClFUcmVlVmlldzo6YnJhbmNoOmhhcy1zaWJsaW5nczohYWRqb2lucy1pdGVtICB7DQogIGJvcmRlci1pbWFnZTogdXJsKHFzcy9kdW1teS5wbmcpIDA7DQp9DQoNClFUcmVlVmlldzo6YnJhbmNoOmhhcy1zaWJsaW5nczphZGpvaW5zLWl0ZW0gew0KICBib3JkZXItaW1hZ2U6IHVybChxc3MvZHVtbXkucG5nKSAwOw0KfQ0KDQpRVHJlZVZpZXc6OmJyYW5jaDohaGFzLWNoaWxkcmVuOiFoYXMtc2libGluZ3M6YWRqb2lucy1pdGVtICB7DQogIGJvcmRlci1pbWFnZTogdXJsKHFzcy9kdW1teS5wbmcpIDA7DQp9DQoNClFUcmVlVmlldzo6YnJhbmNoOmhhcy1jaGlsZHJlbjohaGFzLXNpYmxpbmdzOmNsb3NlZCwNClFUcmVlVmlldzo6YnJhbmNoOmNsb3NlZDpoYXMtY2hpbGRyZW46aGFzLXNpYmxpbmdzICB7DQogIGJvcmRlci1pbWFnZTogbm9uZTsNCiAgaW1hZ2U6IHVybChxc3MvYnJhbmNoLWNsb3NlZC5wbmcpOw0KfQ0KDQpRVHJlZVZpZXc6OmJyYW5jaDpvcGVuOmhhcy1jaGlsZHJlbjohaGFzLXNpYmxpbmdzLA0KUVRyZWVWaWV3OjpicmFuY2g6b3BlbjpoYXMtY2hpbGRyZW46aGFzLXNpYmxpbmdzICB7DQogIGJvcmRlci1pbWFnZTogbm9uZTsNCiAgaW1hZ2U6IHVybChxc3MvYnJhbmNoLW9wZW4ucG5nKTsNCn0NCg0KUVRyZWVWaWV3OjppdGVtIHsNCiAgcGFkZGluZzogMXB4Ow0KfSANCg0KUVRyZWVWaWV3W2hpZGVUcmVlPSJ0cnVlIl06OmJyYW5jaDohaGFzLWNobGlkcmVuOmhhc1NpYmxpbmdzIHsNCiAgYm9yZGVyLWltYWdlOiBub25lOw0KICBpbWFnZTogbm9uZTsNCn0NCg0KUVRyZWVWaWV3OjppdGVtOnNlbGVjdGVkLCBRVHJlZVZpZXc6OmJyYW5jaDpzZWxlY3RlZCwgUVRyZWVWaWV3OjppdGVtOnNlbGVjdGVkOmFjdGl2ZSwgUVRyZWVWaWV3OjppdGVtOnNlbGVjdGVkOiFhY3RpdmUsIFFUcmVlVmlldzo6aXRlbTpob3ZlciwgUUxpc3RWaWV3OjppdGVtOnNlbGVjdGVkLCBRTGlzdFZpZXc6Oml0ZW06c2VsZWN0ZWQ6IWFjdGl2ZSwgUUxpc3RWaWV3OjppdGVtOnNlbGVjdGVkOmFjdGl2ZSwgUUxpc3RWaWV3OjppdGVtOmhvdmVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzA3MzY0MjsNCiAgY29sb3I6ICM4Mzk0OTY7DQp9DQoNClFUb29sVGlwIHsNCiAgYm9yZGVyOiAxcHggc29saWQgIzg4YTZiMTsNCiAgYmFja2dyb3VuZC1jb2xvcjogI2ZkZjZlMzsNCiAgY29sb3I6ICM2NTdiODM7DQogIGJvcmRlci1yYWRpdXM6IDFweDsNCiAgb3BhY2l0eTogMjIwOw0KICBwYWRkaW5nOiAycHg7DQp9DQogDQpRU3RhdHVzQmFyOjppdGVtIHsNCiAgYm9yZGVyOiBub25lOw0KfQ0KDQpRU3BsaXR0ZXI6OmhhbmRsZSB7DQogIHdpZHRoOiAxcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICM4OGE2YjE7DQp9DQoNClFTcGxpdHRlcjo6aGFuZGxlOnZlcnRpY2FsIHsNCiAgbWFyZ2luOiAxcHggMHB4IDBweCAwcHg7DQp9DQoNClFTcGxpdHRlcjo6aGFuZGxlOmhvcml6b250YWwgew0KICBtYXJnaW46IDBweCAxcHggMHB4IDFweDsNCn0NCg0KUVN0YXR1c0JhciBRVG9vbEJ1dHRvbiB7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQogIG1hcmdpbi1yaWdodDogNXB4Ow0KfQ0KDQpRU3RhdHVzQmFyOjppdGVtIHsNCiAgYm9yZGVyOiB0cmFuc3BhcmVudDsNCn0NCg0KUVByb2dyZXNzQmFyIHsNCiAgYm9yZGVyOiB0cmFuc3BhcmVudDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQpRUHJvZ3Jlc3NCYXI6OmNodW5rIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzgzOTQ5NjsNCiAgd2lkdGg6IDFweDsNCiAgbWFyZ2luOiAwcHg7DQp9DQoNClFQcm9ncmVzc0JhciBRTGFiZWwgew0KICBjb2xvcjogIzAwMmIzNjsNCiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7DQp9DQoNClFUb29sQnV0dG9uLCBRVG9vbEJ1dHRvbjpkaXNhYmxlZCB7DQogIGJvcmRlcjogbm9uZTsNCiAgcGFkZGluZzogMHB4Ow0KICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsNCn0NCg0KUVRvb2xCdXR0b246aG92ZXIsIFFUb29sQnV0dG9uOnByZXNzZWQgew0KICBib3JkZXI6IDFweCBzb2xpZCAjZWVlOGQ1Ow0KfQ0KDQpRVG9vbEJ1dHRvbltwb3B1cE1vZGU9IjEiXSB7DQogIHBhZGRpbmctcmlnaHQ6IDExcHg7DQp9DQoNClFUb29sQnV0dG9uOjptZW51LWJ1dHRvbiB7DQogIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwcHg7DQogIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwcHg7DQogIHdpZHRoOiAxMXB4Ow0KfQ0KDQpRVG9vbEJ1dHRvbjo6bWVudS1idXR0b246aG92ZXIsIFFUb29sQnV0dG9uOjptZW51LWJ1dHRvbjpwcmVzc2VkIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzA3MzY0MjsNCn0NCg0KUVRvb2xCdXR0b246Om1lbnUtYXJyb3cgew0KICBpbWFnZTogdXJsKCMjL2ltYWdlcy9kb3duX2Fycm93X2RhcmsucG5nKTsNCn0NCg0KUVRvb2xCYXI6OnNlcGFyYXRvciB7DQogIHdpZHRoOiAxcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICM4OGE2YjE7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQogIG1hcmdpbi1yaWdodDogNXB4Ow0KfQ0KDQpRVG9vbEJhciB7DQogIHBhZGRpbmctbGVmdDogNXB4Ow0KICBwYWRkaW5nLXJpZ2h0OiA1cHg7DQp9DQoNClFNZW51QmFyIHsNCiAgY29sb3I6ICM2NTdiODM7DQogIGJhY2tncm91bmQtY29sb3I6ICNmZGY2ZTM7DQogIHBhZGRpbmc6IDFweDsNCn0NCg0KUU1lbnVCYXI6Oml0ZW0gew0KICBwYWRkaW5nOiAzcHggNnB4Ow0KICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsNCn0NCg0KUU1lbnVCYXI6Oml0ZW06c2VsZWN0ZWQsIFFNZW51QmFyOjppdGVtOnByZXNzZWQgew0KICBib3JkZXI6IG5vbmU7DQogIGNvbG9yOiAjODM5NDk2Ow0KICBiYWNrZ3JvdW5kOiAjMDczNjQyOw0KfQ0KDQpRTWVudSB7DQogIGJvcmRlcjogMXB4IHNvbGlkICMwNzM2NDI7DQp9DQoNClFNZW51OjppdGVtIHsNCiAgcGFkZGluZzogMnB4IDEwcHggMnB4IDIzcHg7DQp9DQoNClFNZW51OjppY29uIHsNCiAgcGFkZGluZy1sZWZ0OiA0cHg7DQp9DQoNClFNZW51OjppdGVtOnNlbGVjdGVkIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzA3MzY0MjsNCiAgY29sb3I6ICM4Mzk0OTY7DQp9DQoNClFNZW51OjpzZXBhcmF0b3Igew0KICBoZWlnaHQ6IDFweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzY1N2I4MzsNCiAgY29sb3I6IHdoaXRlOw0KICBtYXJnaW4tdG9wOiAzcHg7DQogIG1hcmdpbi1ib3R0b206IDNweDsNCiAgbWFyZ2luLWxlZnQ6IDVweDsNCiAgbWFyZ2luLXJpZ2h0OiA1cHg7DQp9DQoNClFTY3JvbGxCYXI6dmVydGljYWwgew0KICBiYWNrZ3JvdW5kOiAjZmRmNmUzOw0KICB3aWR0aDogMTRweDsNCiAgbWFyZ2luOiAxNnB4IDBweCAxNnB4IDBweDsNCiAgYm9yZGVyOiAxcHggc29saWQgI2ZkZjZlMzsNCn0NCg0KUVNjcm9sbEJhcjpob3Jpem9udGFsIHsNCiAgYmFja2dyb3VuZDogI2ZkZjZlMzsNCiAgaGVpZ2h0OiAxNHB4Ow0KICBtYXJnaW46IDBweCAxNnB4IDBweCAxNnB4Ow0KICBib3JkZXI6IDFweCBzb2xpZCAjZmRmNmUzOw0KfQ0KDQpRU2Nyb2xsQmFyOjpoYW5kbGU6dmVydGljYWwsIFFTY3JvbGxCYXI6OmhhbmRsZTpob3Jpem9udGFsIHsNCiAgYmFja2dyb3VuZDogIzA3MzY0MjsNCiAgbWluLWhlaWdodDogMjBweDsNCiAgYm9yZGVyLXJhZGl1czogMHB4Ow0KfQ0KDQpRU2Nyb2xsQmFyOjpoYW5kbGU6aG9yaXpvbnRhbCB7DQogIGJhY2tncm91bmQ6ICMwNzM2NDI7DQogIG1pbi13aWR0aDogMjBweDsNCiAgYm9yZGVyLXJhZGl1czogMHB4Ow0KfQ0KDQpRU2Nyb2xsQmFyOjphZGQtbGluZTp2ZXJ0aWNhbCB7DQogIGJvcmRlcjogMXB4IHNvbGlkICNmZGY2ZTM7DQogIGJvcmRlci1yYWRpdXM6IDBweDsNCiAgYmFja2dyb3VuZDogIzA3MzY0MjsNCiAgaGVpZ2h0OiAxNHB4Ow0KICBzdWJjb250cm9sLXBvc2l0aW9uOiBib3R0b207DQogIHN1YmNvbnRyb2wtb3JpZ2luOiBtYXJnaW47DQp9DQoNClFTY3JvbGxCYXI6OnN1Yi1saW5lOnZlcnRpY2FsIHsNCiAgYm9yZGVyOiAxcHggc29saWQgI2ZkZjZlMzsNCiAgYm9yZGVyLXJhZGl1czogMHB4Ow0KICBiYWNrZ3JvdW5kOiAjMDczNjQyOw0KICBoZWlnaHQ6IDE0cHg7DQogIHN1YmNvbnRyb2wtcG9zaXRpb246IHRvcDsNCiAgc3ViY29udHJvbC1vcmlnaW46IG1hcmdpbjsNCn0NCg0KUVNjcm9sbEJhcjo6YWRkLWxpbmU6aG9yaXpvbnRhbCB7DQogIGJvcmRlcjogMXB4IHNvbGlkICNmZGY2ZTM7DQogIGJvcmRlci1yYWRpdXM6IDBweDsNCiAgYmFja2dyb3VuZDogIzA3MzY0MjsNCiAgd2lkdGg6IDE0cHg7DQogIHN1YmNvbnRyb2wtcG9zaXRpb246IHJpZ2h0Ow0KICBzdWJjb250cm9sLW9yaWdpbjogbWFyZ2luOw0KfQ0KDQpRU2Nyb2xsQmFyOjpzdWItbGluZTpob3Jpem9udGFsIHsNCiAgYm9yZGVyOiAxcHggc29saWQgI2ZkZjZlMzsNCiAgYm9yZGVyLXJhZGl1czogMHB4Ow0KICBiYWNrZ3JvdW5kOiAjMDczNjQyOw0KICB3aWR0aDogMTRweDsNCiAgc3ViY29udHJvbC1wb3NpdGlvbjogbGVmdDsNCiAgc3ViY29udHJvbC1vcmlnaW46IG1hcmdpbjsNCn0NCg0KUVNjcm9sbEJhcjo6dXAtYXJyb3c6dmVydGljYWwsIFFTY3JvbGxCYXI6OmRvd24tYXJyb3c6dmVydGljYWwsIFFTY3JvbGxCYXI6OnJpZ2h0LWFycm93Omhvcml6b250YWwsIFFTY3JvbGxCYXI6OmxlZnQtYXJyb3c6aG9yaXpvbnRhbCB7DQogIGJvcmRlcjogbm9uZTsNCiAgYmFja2dyb3VuZDogbm9uZTsNCiAgd2lkdGg6IDBweDsNCiAgaGVpZ2h0OiAwcHg7DQp9DQoNClFTY3JvbGxCYXI6OmFkZC1wYWdlOnZlcnRpY2FsLCBRU2Nyb2xsQmFyOjpzdWItcGFnZTp2ZXJ0aWNhbCwgUVNjcm9sbEJhcjo6YWRkLXBhZ2U6aG9yaXpvbnRhbCwgUVNjcm9sbEJhcjo6c3ViLXBhZ2U6aG9yaXpvbnRhbCB7DQogIGJhY2tncm91bmQ6IG5vbmU7DQp9DQoNClFIZWFkZXJWaWV3IHsNCiAgY29sb3I6ICM2NTdiODM7DQogIGJhY2tncm91bmQtY29sb3I6ICNmZGY2ZTM7DQp9DQoNClFIZWFkZXJWaWV3OjpzZWN0aW9uLCBRSGVhZGVyVmlldzo6c2VjdGlvbjpob3ZlciB7DQogIG1pbi1oZWlnaHQ6IDIwcHg7DQogIGJvcmRlcjogMC41cHggc29saWQgI2VlZThkNTsNCiAgYmFja2dyb3VuZC1jb2xvcjogI2ZkZjZlMzsNCn0NCg0KUUhlYWRlclZpZXc6OnNlY3Rpb246Zmlyc3Qgew0KICBwYWRkaW5nLWxlZnQ6IDRweDsNCiAgcGFkZGluZy1yaWdodDogMnB4Ow0KICBib3JkZXItbGVmdDogbm9uZTsNCn0NCg0KUUhlYWRlclZpZXc6OnNlY3Rpb246IWZpcnN0IHsNCiAgcGFkZGluZy1sZWZ0OiAycHg7DQogIHBhZGRpbmctcmlnaHQ6IDJweDsNCn0NCg0KUVB1c2hCdXR0b24gew0KICBjb2xvcjogIzY1N2I4MzsNCiAgYmFja2dyb3VuZC1jb2xvcjogI2ZkZjZlMzsNCiAgYm9yZGVyOiAxcHggc29saWQgIzY1N2I4MzsNCiAgYm9yZGVyLXJhZGl1czogMXB4Ow0KICBwYWRkaW5nOiAzcHg7DQogIGZvbnQtc2l6ZTogMTJweDsNCiAgcGFkZGluZy1sZWZ0OiA2cHg7DQogIHBhZGRpbmctcmlnaHQ6IDZweDsNCn0NCg0KUVB1c2hCdXR0b246cHJlc3NlZCwgUVB1c2hCdXR0b246aG92ZXIgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDczNjQyOw0KICBjb2xvcjogIzgzOTQ5NjsNCiAgYm9yZGVyOiAxcHggc29saWQgIzY1N2I4MzsNCn0NCg0KUUNoZWNrQm94OjppbmRpY2F0b3Igew0KICBjb2xvcjogIzA3MzY0MjsNCiAgYmFja2dyb3VuZC1jb2xvcjogI2ZkZjZlMzsNCiAgYm9yZGVyOiAxcHggc29saWQgIzA3MzY0MjsNCiAgd2lkdGg6IDEzcHg7DQogIGhlaWdodDogMTNweDsNCn0NCg0KUUNoZWNrQm94OjppbmRpY2F0b3I6Y2hlY2tlZCB7DQogIGltYWdlOiB1cmwoIyMvaW1hZ2VzL2NoZWNrYm94X2RhcmsucG5nKQ0KfQ0KDQpRQ2hlY2tCb3g6OmluZGljYXRvcjpkaXNhYmxlZCB7DQogIGJvcmRlcjogMXB4IHNvbGlkIGdyYXk7DQogIGJhY2tncm91bmQtY29sb3I6IGdyYXk7DQp9DQoNCgoNClFUZXh0RWRpdDpmb2N1cywgUVBsYWluVGV4dEVkaXQ6Zm9jdXMsIFFMaW5lRWRpdDpmb2N1cyB7DQogIGJvcmRlcjogMXB4IHNvbGlkICMwNzM2NDI7DQp9DQoNClFUZXh0RWRpdCwgUVBsYWluVGV4dEVkaXQgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmOWYwOw0KfQ0KDQpRTGluZUVkaXQgew0KICBjb2xvcjogIzY1N2I4MzsNCiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZjlmMDsNCiAgcGFkZGluZzogMXB4Ow0KICBib3JkZXI6IDFweCBzb2xpZCAjMDczNjQyOw0KICBib3JkZXItcmFkaXVzOiAwcHg7DQp9DQoNClFDb21ib0JveCB7DQogIGNvbG9yOiAjNjU3YjgzOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmOWYwOw0KICBzZWxlY3Rpb24tYmFja2dyb3VuZC1jb2xvcjogIzA3MzY0MjsNCiAgYm9yZGVyOiAxcHggc29saWQgIzA3MzY0MjsNCiAgYm9yZGVyLXJhZGl1czogMHB4Ow0KICBwYWRkaW5nOiAycHg7DQogIHBhZGRpbmctdG9wOiAxcHg7DQogIHBhZGRpbmctYm90dG9tOiAxcHg7DQogIHBhZGRpbmctbGVmdDogNHB4Ow0KfQ0KDQpRQ29tYm9Cb3g6OmRyb3AtZG93biB7DQogIHN1YmNvbnRyb2wtb3JpZ2luOiBwYWRkaW5nOw0KICBzdWJjb250cm9sLXBvc2l0aW9uOiB0b3AgcmlnaHQ7DQogIHdpZHRoOiAxNXB4Ow0KICBib3JkZXItbGVmdC13aWR0aDogMHB4Ow0KICBib3JkZXItbGVmdC1jb2xvcjogZGFya2dyYXk7DQogIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDsNCiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDFweDsNCiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDFweDsNCn0NCg0KUUNvbWJvQm94IFFBYnN0cmFjdEl0ZW1WaWV3IHsNCiAgY29sb3I6ICM2NTdiODM7DQogIGJhY2tncm91bmQtY29sb3I6ICNmY2Y5ZjA7DQogIGJvcmRlcjogMXB4IHNvbGlkICMwNzM2NDI7DQogIHNlbGVjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOiAjMDczNjQyOw0KfQ0KDQpRQ29tYm9Cb3g6OmRvd24tYXJyb3cgew0KICBpbWFnZTogdXJsKCMjL2ltYWdlcy9kb3duX2Fycm93X2RhcmsucG5nKQ0KfQ== \ No newline at end of file diff --git a/resources/skins/base/vergilius.xml b/resources/skins/base/vergilius.xml index 320ef2120..c11594588 100644 --- a/resources/skins/base/vergilius.xml +++ b/resources/skins/base/vergilius.xml @@ -6,8 +6,5 @@ rotter.martinos@gmail.com