Unverified Commit 22f28341 authored by Miroslav Kravec's avatar Miroslav Kravec Committed by GitHub

Merge pull request #58 from kravemir/cleanup

removed generated files from git, improved TravisCI configuration
parents e166f50b aafe7e26
......@@ -35,5 +35,11 @@ Makefile.in
/po/POTFILES
/po/stamp-it
# generated files
# autotools generated files
/po/Makefile.in.in
/po/Rules-quot
# build generated files
/db/options.xml
/db/options.xml.h
......@@ -14,14 +14,15 @@ addons:
- libgtk2.0-dev
install:
- mkdir -p ${TRAVIS_BUILD_DIR}/deps/
- git clone https://github.com/ddccontrol/ddccontrol.git ${TRAVIS_BUILD_DIR}/deps/ddccontrol
- bash -c "cd ${TRAVIS_BUILD_DIR}/deps/ddccontrol && ./autogen.sh && ./configure && make -j4"
- export PATH="${TRAVIS_BUILD_DIR}/deps/ddccontrol/src/ddccontrol:${PATH}"
- export DDCCONTROL_BUILD_DIR="$(mktemp -dt ddccontrol_build.XXX)"
- git clone --branch 0.4.3 https://github.com/ddccontrol/ddccontrol.git ${DDCCONTROL_BUILD_DIR}
- bash -c "cd ${DDCCONTROL_BUILD_DIR} && ./autogen.sh && ./configure && make -j4"
- export PATH="${DDCCONTROL_BUILD_DIR}/src/ddccontrol:${PATH}"
script:
- ./autogen.sh
- ./configure
- make -j4
- make check-db
- ./scripts/travis_ci_after_build_checks.sh
//Dummy header file used for translation generation...
#define DUMMY {
printf(_("Color settings"));
printf(_("Brightness and Contrast"));
printf(_("Brightness"));
printf(_("Contrast"));
printf(_("Magic Bright Mode"));
printf(_("Text"));
printf(_("Internet"));
printf(_("Game"));
printf(_("Sport"));
printf(_("Entertain"));
printf(_("Custom"));
printf(_("Dynamic Contrast"));
printf(_("Multimedia"));
printf(_("Movie"));
printf(_("Standard"));
printf(_("Super Bright Mode"));
printf(_("One"));
printf(_("Two"));
printf(_("Three"));
printf(_("Auto Level (Needs a blank line to work)"));
printf(_("Backlight"));
printf(_("ECO Mode"));
printf(_("High"));
printf(_("Middle"));
printf(_("Low"));
printf(_("Auto"));
printf(_("f-Engine"));
printf(_("Normal"));
printf(_("User"));
printf(_("Text"));
printf(_("Movie"));
printf(_("LG F-Engine"));
printf(_("F-Engine Mode"));
printf(_("Movie"));
printf(_("Text"));
printf(_("Normal"));
printf(_("User defined"));
printf(_("F-Engine Brightness (User defined mode only)"));
printf(_("F-Engine ACE Clarity Mode (User defined mode only)"));
printf(_("Dark"));
printf(_("Normal"));
printf(_("Light"));
printf(_("F-Engine RCM Color Mode (User defined mode only)"));
printf(_("Grey"));
printf(_("Green"));
printf(_("Red"));
printf(_("Colorful"));
printf(_("BenQ Strobe"));
printf(_("Force Strobe"));
printf(_("Off"));
printf(_("On"));
printf(_("Strobe Length"));
printf(_("Strobe Phase"));
printf(_("BenQ Picture"));
printf(_("Picture Mode"));
printf(_("Standard"));
printf(_("Mode 0x01"));
printf(_("Mode 0x02"));
printf(_("Movie"));
printf(_("Mode 0x04"));
printf(_("Mode 0x05"));
printf(_("Mode 0x06"));
printf(_("Mode 0x07"));
printf(_("Mode 0x08"));
printf(_("Mode 0x09"));
printf(_("Mode 0x0A"));
printf(_("Photo"));
printf(_("sRGB"));
printf(_("Mode 0x0D"));
printf(_("Eco"));
printf(_("Mode 0x0F"));
printf(_("Mode 0x10"));
printf(_("Mode 0x11"));
printf(_("Mode 0x12"));
printf(_("Mode 0x13"));
printf(_("Mode 0x14"));
printf(_("FPS1"));
printf(_("FPS2"));
printf(_("RTS"));
printf(_("Gamer 1"));
printf(_("Gamer 2"));
printf(_("Gamer 3"));
printf(_("Gamma"));
printf(_("Gamma"));
printf(_("-0.5"));
printf(_("-0.3"));
printf(_("-0.2"));
printf(_("-0.1"));
printf(_("0"));
printf(_("+0.1"));
printf(_("+0.2"));
printf(_("+0.3"));
printf(_("+0.4"));
printf(_("+0.5"));
printf(_("+0.6"));
printf(_("+0.7"));
printf(_("+0.9"));
printf(_("1.8"));
printf(_("2.0"));
printf(_("2.2"));
printf(_("2.4"));
printf(_("2.6"));
printf(_("Color maximum level"));
printf(_("Red maximum level"));
printf(_("Green maximum level"));
printf(_("Blue maximum level"));
printf(_("Color minimum level"));
printf(_("Red minimum level"));
printf(_("Green minimum level"));
printf(_("Blue minimum level"));
printf(_("Various color settings"));
printf(_("Hue"));
printf(_("Saturation"));
printf(_("Color curve adjust"));
printf(_("Color Preset"));
printf(_("Normal"));
printf(_("Custom"));
printf(_("Warm"));
printf(_("Cool"));
printf(_("Warm1"));
printf(_("Warm2"));
printf(_("Cool1"));
printf(_("Cool2"));
printf(_("Cool3"));
printf(_("Cool4"));
printf(_("Cool5"));
printf(_("Cool6"));
printf(_("Cool7"));
printf(_("sRGB"));
printf(_("Adobe RGB"));
printf(_("4000K"));
printf(_("5000K"));
printf(_("6500K"));
printf(_("7500K"));
printf(_("8200K"));
printf(_("9300K"));
printf(_("10000K"));
printf(_("11500K"));
printf(_("Native"));
printf(_("User"));
printf(_("User 1"));
printf(_("User 2"));
printf(_("User 3"));
printf(_("User 4"));
printf(_("Easy"));
printf(_("Expert"));
printf(_("MagicColor"));
printf(_("Off"));
printf(_("Demo"));
printf(_("Full"));
printf(_("Intelligent"));
printf(_("Color temperature"));
printf(_("Color Return"));
printf(_("Position and size"));
printf(_("Position"));
printf(_("Horizontal Position"));
printf(_("Vertical Position"));
printf(_("Size"));
printf(_("Horizontal Size"));
printf(_("Vertical Size"));
printf(_("Automatic adjustments"));
printf(_("Auto Size Center"));
printf(_("Enable"));
printf(_("Disable"));
printf(_("Automatically adjust"));
printf(_("H/V Position"));
printf(_("Clock and clock phase"));
printf(_("H/V Position (fast mode)"));
printf(_("Geometry"));
printf(_("Pincushion"));
printf(_("Horizontal Pincushion"));
printf(_("Horizontal Pincushion Balance"));
printf(_("Vertical Pincushion"));
printf(_("Vertical Pincushion Balance"));
printf(_("Center Pincushion"));
printf(_("Linearity"));
printf(_("Horizontal Linearity"));
printf(_("Horizontal Linearity Balance"));
printf(_("Vertical Linearity"));
printf(_("Vertical Linearity Balance"));
printf(_("Misconvergence"));
printf(_("Horizontal Misconvergence"));
printf(_("Vertical Misconvergence"));
printf(_("Vertical Top Misconvergence"));
printf(_("Vertical Bottom Misconvergence"));
printf(_("General distortion"));
printf(_("Parallelogram Distortion (Key Balance)"));
printf(_("Trapezoidal Distortion (Key)"));
printf(_("Corners distortion"));
printf(_("Top Corner Distortion Control"));
printf(_("Top Corner Distortion Balance"));
printf(_("Bottom Corner Distortion Control"));
printf(_("Bottom Corner Distortion Balance"));
printf(_("Rotation"));
printf(_("Rotation (Tilt)"));
printf(_("Screen purity"));
printf(_("Moire"));
printf(_("Horizontal Moire"));
printf(_("Vertical Moire"));
printf(_("Image setup"));
printf(_("Focus"));
printf(_("Image Lock Coarse (Clock)"));
printf(_("Image Lock Fine (Clock Phase)"));
printf(_("Corners purity"));
printf(_("Top left screen purity"));
printf(_("Top right screen purity"));
printf(_("Bottom left screen purity"));
printf(_("Bottom right screen purity"));
printf(_("Various"));
printf(_("Landing Adjust (RGB alignment)"));
printf(_("Sharpness"));
printf(_("Others"));
printf(_("Restore defaults"));
printf(_("Restore Factory Defaults"));
printf(_("Restore Brightness and Contrast"));
printf(_("Restore Factory Default Geometry"));
printf(_("Restore Factory Default Color"));
printf(_("Restore Factory Default Position"));
printf(_("Restore Factory Default Size"));
printf(_("Restore Factory Default Size and Position"));
printf(_("Settings"));
printf(_("Save Current Settings"));
printf(_("Restore Factory Settings"));
printf(_("Audio"));
printf(_("Audio Speaker Volume Adjust"));
printf(_("Audio Microphone Volume Adjust"));
printf(_("Mute"));
printf(_("Mute"));
printf(_("Normal"));
printf(_("Degauss"));
printf(_("Degauss"));
printf(_("Secondary Degauss"));
printf(_("OSD"));
printf(_("On Screen Display"));
printf(_("Disable"));
printf(_("Enable"));
printf(_("Enable only brightness/contrast settings"));
printf(_("On Screen Display (Samsung)"));
printf(_("Disable"));
printf(_("Enable"));
printf(_("OSD Orientation"));
printf(_("Landscape"));
printf(_("Portrait"));
printf(_("Language select"));
printf(_("English"));
printf(_("French"));
printf(_("German"));
printf(_("Italian"));
printf(_("Russian"));
printf(_("Spanish"));
printf(_("Swedish"));
printf(_("Chinese"));
printf(_("Dutch"));
printf(_("Japanese"));
printf(_("Input settings"));
printf(_("Input level Select"));
printf(_("Display Resolution Notifier"));
printf(_("On"));
printf(_("Off"));
printf(_("Input Source Select"));
printf(_("Analog"));
printf(_("Digital"));
printf(_("DisplayPort"));
printf(_("DVI"));
printf(_("DVI-1"));
printf(_("DVI-2"));
printf(_("HDMI"));
printf(_("HDMI-1"));
printf(_("HDMI-2"));
printf(_("VGA"));
printf(_("Component"));
printf(_("Autoselect Input Source"));
printf(_("Automatic"));
printf(_("Manual"));
printf(_("Power control"));
printf(_("DPMS Control"));
printf(_("On"));
printf(_("Standby"));
printf(_("Off"));
printf(_("Power control"));
printf(_("Off"));
printf(_("On"));
printf(_("Buttons and leds"));
printf(_("Custom key"));
printf(_("MagicBright"));
printf(_("MagicColor"));
printf(_("Automatic setup"));
printf(_("Input Source Select"));
printf(_("Color Tone"));
printf(_("Power LED"));
printf(_("Off"));
printf(_("On"));
}
# Makefile for program source directory in GNU NLS utilities package.
# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
# Copyright (C) 2004-2008 Rodney Dawes <dobey.pwns@gmail.com>
#
# This file may be copied and used freely without restrictions. It may
# be used in projects which are not available under a GNU Public License,
# but which still want to provide support for the GNU gettext functionality.
#
# - Modified by Owen Taylor <otaylor@redhat.com> to use GETTEXT_PACKAGE
# instead of PACKAGE and to look for po2tbl in ./ not in intl/
#
# - Modified by jacob berkman <jacob@ximian.com> to install
# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize
#
# - Modified by Rodney Dawes <dobey.pwns@gmail.com> for use with intltool
#
# We have the following line for use by intltoolize:
# INTLTOOL_MAKEFILE
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
PACKAGE = @PACKAGE@
VERSION = @VERSION@
SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
top_builddir = @top_builddir@
VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
datadir = @datadir@
datarootdir = @datarootdir@
libdir = @libdir@
DATADIRNAME = @DATADIRNAME@
itlocaledir = $(prefix)/$(DATADIRNAME)/locale
subdir = po
install_sh = @install_sh@
# Automake >= 1.8 provides @mkdir_p@.
# Until it can be supposed, use the safe fallback:
mkdir_p = $(install_sh) -d
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
GMSGFMT = @GMSGFMT@
MSGFMT = @MSGFMT@
XGETTEXT = @XGETTEXT@
INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
MSGMERGE = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist
GENPOT = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot
ALL_LINGUAS = @ALL_LINGUAS@
PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi)
USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep \^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep \^$$lang$$`"; then printf "$$lang "; fi; done; fi)
USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done)
POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done)
DISTFILES = Makefile.in.in POTFILES.in $(POFILES)
EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS
POTFILES = \
# This comment gets stripped out
CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done)
.SUFFIXES:
.SUFFIXES: .po .pox .gmo .mo .msg .cat
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
INTLTOOL_V_MSGFMT = $(INTLTOOL__v_MSGFMT_$(V))
INTLTOOL__v_MSGFMT_= $(INTLTOOL__v_MSGFMT_$(AM_DEFAULT_VERBOSITY))
INTLTOOL__v_MSGFMT_0 = @echo " MSGFMT" $@;
.po.pox:
$(MAKE) $(GETTEXT_PACKAGE).pot
$(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox
.po.mo:
$(INTLTOOL_V_MSGFMT)$(MSGFMT) -o $@ $<
.po.gmo:
$(INTLTOOL_V_MSGFMT)file=`echo $* | sed 's,.*/,,'`.gmo \
&& rm -f $$file && $(GMSGFMT) -o $$file $<
.po.cat:
sed -f ../intl/po2msg.sed < $< > $*.msg \
&& rm -f $@ && gencat $@ $*.msg
all: all-@USE_NLS@
all-yes: $(CATALOGS)
all-no:
$(GETTEXT_PACKAGE).pot: $(POTFILES)
$(GENPOT)
install: install-data
install-data: install-data-@USE_NLS@
install-data-no: all
install-data-yes: all
linguas="$(USE_LINGUAS)"; \
for lang in $$linguas; do \
dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \
$(mkdir_p) $$dir; \
if test -r $$lang.gmo; then \
$(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \
else \
$(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
echo "installing $(srcdir)/$$lang.gmo as" \
"$$dir/$(GETTEXT_PACKAGE).mo"; \
fi; \
if test -r $$lang.gmo.m; then \
$(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \
echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \
else \
if test -r $(srcdir)/$$lang.gmo.m ; then \
$(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \
$$dir/$(GETTEXT_PACKAGE).mo.m; \
echo "installing $(srcdir)/$$lang.gmo.m as" \
"$$dir/$(GETTEXT_PACKAGE).mo.m"; \
else \
true; \
fi; \
fi; \
done
# Empty stubs to satisfy archaic automake needs
dvi info ctags tags CTAGS TAGS ID:
# Define this as empty until I found a useful application.
install-exec installcheck:
uninstall:
linguas="$(USE_LINGUAS)"; \
for lang in $$linguas; do \
rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \
rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \
done
check: all $(GETTEXT_PACKAGE).pot
rm -f missing notexist
srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m
if [ -r missing -o -r notexist ]; then \
exit 1; \
fi
mostlyclean:
rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp
rm -f .intltool-merge-cache
clean: mostlyclean
distclean: clean
rm -f Makefile Makefile.in POTFILES stamp-it
rm -f *.mo *.msg *.cat *.cat.m *.gmo
maintainer-clean: distclean
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
rm -f Makefile.in.in
distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
dist distdir: $(DISTFILES)
dists="$(DISTFILES)"; \
extra_dists="$(EXTRA_DISTFILES)"; \
for file in $$extra_dists; do \
test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \
done; \
for file in $$dists; do \
test -f $$file || file="$(srcdir)/$$file"; \
ln $$file $(distdir) 2> /dev/null \
|| cp -p $$file $(distdir); \
done
update-po: Makefile
$(MAKE) $(GETTEXT_PACKAGE).pot
tmpdir=`pwd`; \
linguas="$(USE_LINGUAS)"; \
for lang in $$linguas; do \
echo "$$lang:"; \
result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \
if $$result; then \
if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
rm -f $$tmpdir/$$lang.new.po; \
else \
if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
:; \
else \
echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
rm -f $$tmpdir/$$lang.new.po; \
exit 1; \
fi; \
fi; \
else \
echo "msgmerge for $$lang.gmo failed!"; \
rm -f $$tmpdir/$$lang.new.po; \
fi; \
done
Makefile POTFILES: stamp-it
@if test ! -f $@; then \
rm -f stamp-it; \
$(MAKE) stamp-it; \
fi
stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \
$(SHELL) ./config.status
# Tell versions [3.59,3.63) of GNU make not to export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
# This file, Rules-quot, can be copied and used freely without restrictions.
# Special Makefile rules for English message catalogs with quotation marks.
DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot
.SUFFIXES: .insert-header .po-update-en
en@quot.po-create:
$(MAKE) en@quot.po-update
en@boldquot.po-create:
$(MAKE) en@boldquot.po-update
en@quot.po-update: en@quot.po-update-en
en@boldquot.po-update: en@boldquot.po-update-en
.insert-header.po-update-en:
@lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \
if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \
tmpdir=`pwd`; \
echo "$$lang:"; \
ll=`echo $$lang | sed -e 's/@.*//'`; \
LC_ALL=C; export LC_ALL; \
cd $(srcdir); \
if $(MSGINIT) $(MSGINIT_OPTIONS) -i $(DOMAIN).pot --no-translator -l $$lang -o - 2>/dev/null \
| $(SED) -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | \
{ case `$(MSGFILTER) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
'' | 0.[0-9] | 0.[0-9].* | 0.1[0-8] | 0.1[0-8].*) \
$(MSGFILTER) $(SED) -f `echo $$lang | sed -e 's/.*@//'`.sed \
;; \
*) \
$(MSGFILTER) `echo $$lang | sed -e 's/.*@//'` \
;; \
esac } 2>/dev/null > $$tmpdir/$$lang.new.po \
; then \
if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
rm -f $$tmpdir/$$lang.new.po; \
else \
if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
:; \
else \
echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
exit 1; \
fi; \
fi; \
else \
echo "creation of $$lang.po failed!" 1>&2; \
rm -f $$tmpdir/$$lang.new.po; \
fi
en@quot.insert-header: insert-header.sin
sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header
en@boldquot.insert-header: insert-header.sin
sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header
mostlyclean: mostlyclean-quot
mostlyclean-quot:
rm -f *.insert-header
#!/usr/bin/env bash
if [[ "$(git status -s)" == "" ]];
then
echo -e "\033[1;32mGOOD:\033[0;32m git files are unchanged after build.\033[0m"
else
echo -e "\033[1;31mERROR:\033[0;31m git files have changed.\033[0m"
git status
exit 1
fi
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment