summaryrefslogtreecommitdiff
path: root/net/unifi
diff options
context:
space:
mode:
authortnn <tnn>2017-06-24 14:16:37 +0000
committertnn <tnn>2017-06-24 14:16:37 +0000
commit8d0023c3556bf5ab1fb41b660a8dab6804328449 (patch)
tree37e661c008c8730f9ab6e6a80824d73ceeb0462f /net/unifi
parent48550a6fc87c5fbe1476507c4ad5bfe6f94b042c (diff)
downloadpkgsrc-8d0023c3556bf5ab1fb41b660a8dab6804328449.tar.gz
Import unifi-5.4.16 as net/unifi.
UniFi is a web portal for setting up and provisioning network products made by Ubiquiti Networks, inc.
Diffstat (limited to 'net/unifi')
-rw-r--r--net/unifi/DESCR2
-rw-r--r--net/unifi/Makefile82
-rw-r--r--net/unifi/PLIST817
-rw-r--r--net/unifi/distinfo16
-rw-r--r--net/unifi/files/unifi.sh23
-rw-r--r--net/unifi/patches/patch-snappy-java_Makefile17
-rw-r--r--net/unifi/patches/patch-snappy-java_Makefile.common15
7 files changed, 972 insertions, 0 deletions
diff --git a/net/unifi/DESCR b/net/unifi/DESCR
new file mode 100644
index 00000000000..770d2ba1c05
--- /dev/null
+++ b/net/unifi/DESCR
@@ -0,0 +1,2 @@
+UniFi is a web portal for setting up and provisioning network products
+made by Ubiquiti Networks, inc.
diff --git a/net/unifi/Makefile b/net/unifi/Makefile
new file mode 100644
index 00000000000..c85c1d397b3
--- /dev/null
+++ b/net/unifi/Makefile
@@ -0,0 +1,82 @@
+# $NetBSD: Makefile,v 1.1 2017/06/24 14:16:37 tnn Exp $
+
+DISTNAME= unifi-5.4.16
+CATEGORIES= net
+MASTER_SITES= -http://dl.ubnt.com/unifi/${PKGVERSION}/UniFi.unix.zip
+EXTRACT_SUFX= .zip
+
+MAINTAINER= pkgsrc-users@NetBSD.org
+HOMEPAGE= https://www.ubnt.com/download/unifi/
+COMMENT= Provisioning software for network products made by Ubiquiti
+LICENSE= ubiquiti-license
+
+# Bundled firmware images cannot be redistributed
+RESTRICTED= No redistribution allowed
+NO_BIN_ON_CDROM= ${RESTRICTED}
+NO_BIN_ON_FTP= ${RESTRICTED}
+NO_SRC_ON_CDROM= ${RESTRICTED}
+NO_SRC_ON_FTP= ${RESTRICTED}
+
+DISTFILES= ${DEFAULT_DISTFILES}
+EXTRACT_ONLY= ${DEFAULT_DISTFILES}
+
+# Unifi bundles snappy-java-1.0.5.jar, which contains native code.
+# We can use the bundled snappy-java but we must recompile the native portion
+# because it only ship linux binaries. The rcd script takes care of loading the
+# correct library.
+SNAPPY_JAVA= snappy-java-1.0.5.4
+SITES.${SNAPPY_JAVA}.tar.gz= -https://github.com/xerial/snappy-java/archive/${SNAPPY_JAVA:S/snappy-java-//}.tar.gz
+DISTFILES+= ${SNAPPY_JAVA}.tar.gz
+EXTRACT_ONLY+= ${SNAPPY_JAVA}.tar.gz
+
+SNAPPY= snappy-1.0.5
+SITES.${SNAPPY}.tar.gz= http://download.openpkg.org/components/cache/snappy/ \
+ http://ftp.NetBSD.org/pub/pkgsrc/distfiles/snappy-java10/
+DISTFILES+= ${SNAPPY}.tar.gz
+EXTRACT_ONLY+= ${SNAPPY}.tar.gz
+
+CHECK_SHLIBS_SKIP= unifi/lib/native/*
+INSTALLATION_DIRS= unifi
+# emulated JDK doesn't work; epoll issues. Also needs native libraries.
+PKG_JVMS_ACCEPTED= openjdk8
+PKGSRC_MAKE_ENV+= JAVA_HOME=${PKG_JAVA_HOME}
+USE_LANGUAGES= c c++ # for snappy JNI library
+USE_TOOLS+= gmake pax
+WRKSRC= ${WRKDIR}/UniFi
+
+DEPENDS+= mongodb>=2.4.14:../../databases/mongodb
+
+FILES_SUBST+= UNIFI_USER=${UNIFI_USER:Q} UNIFI_GROUP=${UNIFI_GROUP:Q}
+FILES_SUBST+= JAVA=${PKG_JAVA_HOME}/bin/java
+RCD_SCRIPTS= unifi
+UNIFI_USER?= unifi
+UNIFI_GROUP?= unifi
+PKG_USERS_VARS= UNIFI_USER
+PKG_GROUPS_VARS= UNIFI_GROUP
+PKG_GROUPS= ${UNIFI_GROUP}
+PKG_USERS= ${UNIFI_USER}:${UNIFI_GROUP}
+
+.for d in data logs run work
+OWN_DIRS_PERMS+= ${PREFIX}/unifi/${d} ${UNIFI_USER} ${UNIFI_GROUP} 0700
+.endfor
+
+.include "../../mk/bsd.prefs.mk"
+
+post-extract:
+# drop executable bit
+ find ${WRKSRC} -type f -print | xargs chmod -x
+ mkdir ${WRKDIR}/${SNAPPY_JAVA}/target
+ ln -s ${WRKDIR}/${SNAPPY} ${WRKDIR}/${SNAPPY_JAVA}/target
+
+do-build:
+# bundled mongod is a linux binary, replace with symlink to native binary
+ rm -f ${WRKSRC}/bin/mongod
+ ln -s ${PREFIX}/bin/mongod ${WRKSRC}/bin/mongod
+ cd ${WRKDIR}/${SNAPPY_JAVA} && ${BUILD_MAKE_CMD} native
+
+do-install:
+ cd ${WRKSRC} && pax -rw . ${DESTDIR}${PREFIX}/unifi
+ ${INSTALL_LIB} ${WRKDIR}/${SNAPPY_JAVA}/target/snappy-1.0.5-Default/libsnappyjava.so ${DESTDIR}${PREFIX}/unifi/lib
+
+.include "../../mk/java-vm.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/net/unifi/PLIST b/net/unifi/PLIST
new file mode 100644
index 00000000000..e2eb0c50264
--- /dev/null
+++ b/net/unifi/PLIST
@@ -0,0 +1,817 @@
+@comment $NetBSD: PLIST,v 1.1 2017/06/24 14:16:37 tnn Exp $
+unifi/bin/mongod
+unifi/dl/firmware/BZ2/3.7.51.6230/firmware.bin
+unifi/dl/firmware/U2HSR/3.7.51.6230/firmware.bin
+unifi/dl/firmware/U2IW/3.7.51.6230/firmware.bin
+unifi/dl/firmware/U2Sv2/3.7.51.6230/firmware.bin
+unifi/dl/firmware/U7E/3.7.51.6230/firmware.bin
+unifi/dl/firmware/U7HD/3.7.51.6230/firmware.bin
+unifi/dl/firmware/U7P/3.7.51.6230/firmware.bin
+unifi/dl/firmware/U7PG2/3.7.51.6230/firmware.bin
+unifi/dl/firmware/US24P250/3.7.51.6230/firmware.bin
+unifi/dl/firmware/USXG/3.7.51.6230/firmware.bin
+unifi/dl/firmware/bundles.json
+unifi/dl/firmware/p2N/3.3.22.4024/firmware.bin
+unifi/lib/Java-WebSocket-1.3.0-44-gbf2af15.jar
+unifi/lib/ace.jar
+unifi/lib/annotations-2.0.0.jar
+unifi/lib/aws-java-sdk-cloudwatch-1.9.3.jar
+unifi/lib/aws-java-sdk-core-1.9.3.jar
+unifi/lib/aws-java-sdk-s3-1.9.3.jar
+unifi/lib/commons-beanutils-1.9.1.jar
+unifi/lib/commons-codec-1.7.jar
+unifi/lib/commons-httpclient-3.1-atlassian-2.jar
+unifi/lib/commons-httpclient-contrib-3.1.jar
+unifi/lib/commons-io-2.4.jar
+unifi/lib/commons-lang-2.6.jar
+unifi/lib/commons-logging-1.1.3.jar
+unifi/lib/commons-net-3.3.jar
+unifi/lib/commons-pool2-2.2.jar
+unifi/lib/commons-validator-1.5.0.jar
+unifi/lib/compiler-0.8.18.jar
+unifi/lib/cron4j-2.2.5.jar
+unifi/lib/dom4j-1.3.jar
+unifi/lib/ecj-4.3.1.jar
+unifi/lib/gson-2.2.4.jar
+unifi/lib/guava-14.0.1.jar
+unifi/lib/httpclient-4.2.jar
+unifi/lib/httpcore-4.2.jar
+unifi/lib/jackson-annotations-2.1.1.jar
+unifi/lib/jackson-core-2.1.1.jar
+unifi/lib/jackson-databind-2.1.1.jar
+unifi/lib/jedis-2.8.1.jar
+unifi/lib/jmdns-3.4.1.jar
+unifi/lib/joda-time-2.9.4.jar
+unifi/lib/jorbis-0.0.17.jar
+unifi/lib/jsch-0.1.51.jar
+unifi/lib/jstl-1.2.jar
+unifi/lib/jstun-0.7.3.jar
+unifi/lib/jul-to-slf4j-1.7.6.jar
+unifi/lib/libsnappyjava.so
+unifi/lib/log4j-1.2.17.jar
+unifi/lib/mail-1.4.7.jar
+unifi/lib/mongo-java-driver-2.14.3.jar
+unifi/lib/native/Linux/amd64/libubnt_webrtc_jni.so
+unifi/lib/native/Linux/armhf/libubnt_webrtc_jni.so
+unifi/lib/native/Mac/x86_64/libubnt_webrtc_jni.jnilib
+unifi/lib/native/Windows/amd64/ubnt_webrtc_jni.dll
+unifi/lib/servo-core-0.9.4.jar
+unifi/lib/servo-graphite-0.9.4.jar
+unifi/lib/slf4j-api-1.7.6.jar
+unifi/lib/slf4j-log4j12-1.7.6.jar
+unifi/lib/snappy-java-1.0.5.jar
+unifi/lib/spring-beans-3.2.8.RELEASE.jar
+unifi/lib/spring-context-3.2.8.RELEASE.jar
+unifi/lib/spring-core-3.2.8.RELEASE.jar
+unifi/lib/spring-expression-3.2.8.RELEASE.jar
+unifi/lib/spring-test-3.2.8.RELEASE.jar
+unifi/lib/sshj-0.9.0.jar
+unifi/lib/tomcat-embed-core-7.0.77.jar
+unifi/lib/tomcat-embed-el-7.0.77.jar
+unifi/lib/tomcat-embed-jasper-7.0.77.jar
+unifi/lib/tomcat-embed-logging-juli-7.0.77.jar
+unifi/lib/tomcat-embed-logging-log4j-7.0.77.jar
+unifi/lib/urlrewritefilter-4.0.4.jar
+unifi/readme.txt
+unifi/webapps/ROOT/WEB-INF/resourcerewrite.xml
+unifi/webapps/ROOT/WEB-INF/urlrewrite.xml
+unifi/webapps/ROOT/WEB-INF/web.xml
+unifi/webapps/ROOT/app-unifi/.version
+unifi/webapps/ROOT/app-unifi/config/config.js
+unifi/webapps/ROOT/app-unifi/css/app.css
+unifi/webapps/ROOT/app-unifi/find_controller.html
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/css/lato.css
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/css/lato.min.css
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Black.eot
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Black.ttf
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Black.woff
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Black.woff2
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-BlackItalic.eot
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-BlackItalic.ttf
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-BlackItalic.woff
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-BlackItalic.woff2
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Bold.eot
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Bold.ttf
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Bold.woff
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Bold.woff2
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-BoldItalic.eot
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-BoldItalic.ttf
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-BoldItalic.woff
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-BoldItalic.woff2
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Hairline.eot
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Hairline.ttf
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Hairline.woff
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Hairline.woff2
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-HairlineItalic.eot
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-HairlineItalic.ttf
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-HairlineItalic.woff
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-HairlineItalic.woff2
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Heavy.eot
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Heavy.ttf
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Heavy.woff
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Heavy.woff2
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-HeavyItalic.eot
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-HeavyItalic.ttf
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-HeavyItalic.woff
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-HeavyItalic.woff2
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Italic.eot
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Italic.ttf
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Italic.woff
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Italic.woff2
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Light.eot
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Light.ttf
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Light.woff
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Light.woff2
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-LightItalic.eot
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-LightItalic.ttf
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-LightItalic.woff
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-LightItalic.woff2
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Medium.eot
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Medium.ttf
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Medium.woff
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Medium.woff2
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-MediumItalic.eot
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-MediumItalic.ttf
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-MediumItalic.woff
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-MediumItalic.woff2
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Regular.eot
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Regular.ttf
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Regular.woff
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Regular.woff2
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Semibold.eot
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Semibold.ttf
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Semibold.woff
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Semibold.woff2
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-SemiboldItalic.eot
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-SemiboldItalic.ttf
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-SemiboldItalic.woff
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-SemiboldItalic.woff2
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Thin.eot
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Thin.ttf
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Thin.woff
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-Thin.woff2
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-ThinItalic.eot
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-ThinItalic.ttf
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-ThinItalic.woff
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/lato/fonts/Lato-ThinItalic.woff2
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/ubnt-icon/fonts/ubnt.eot
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/ubnt-icon/fonts/ubnt.svg
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/ubnt-icon/fonts/ubnt.ttf
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/ubnt-icon/fonts/ubnt.woff
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/ubnt-icon/fonts/ubnt.woff2
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/ubnt-icon/style.css
+unifi/webapps/ROOT/app-unifi/fonts/${PKGVERSION}.0/ubnt-lato/style.css
+unifi/webapps/ROOT/app-unifi/fonts/FontAwesome.otf
+unifi/webapps/ROOT/app-unifi/fonts/fontawesome-webfont.eot
+unifi/webapps/ROOT/app-unifi/fonts/fontawesome-webfont.svg
+unifi/webapps/ROOT/app-unifi/fonts/fontawesome-webfont.ttf
+unifi/webapps/ROOT/app-unifi/fonts/fontawesome-webfont.woff
+unifi/webapps/ROOT/app-unifi/fonts/fontawesome-webfont.woff2
+unifi/webapps/ROOT/app-unifi/images/devices/uap/BZ2/danger.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/BZ2/danger@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/BZ2/static.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/BZ2/static@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/BZ2/success.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/BZ2/success@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U2HSR/danger.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U2HSR/danger@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U2HSR/static.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U2HSR/static@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U2HSR/success.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U2HSR/success@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U2IW/danger.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U2IW/danger@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U2IW/static.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U2IW/static@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U2IW/success.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U2IW/success@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U2O/danger.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U2O/danger@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U2O/static.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U2O/static@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U2O/success.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U2O/success@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U7E/danger.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U7E/danger@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U7E/static.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U7E/static@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U7E/success.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U7E/success@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U7EDU/danger.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U7EDU/danger@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U7EDU/static.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U7EDU/static@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U7EDU/success.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U7EDU/success@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U7IW/danger.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U7IW/danger@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U7IW/static.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U7IW/static@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U7IW/success.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U7IW/success@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U7MSH/danger.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U7MSH/danger@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U7MSH/static.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U7MSH/static@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U7MSH/success.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U7MSH/success@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U7O/danger.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U7O/danger@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U7O/static.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U7O/static@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U7O/success.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/U7O/success@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/default/danger.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/default/danger@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/default/static.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/default/static@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/default/success.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/default/success@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/missing/danger.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/missing/danger@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/missing/static.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/missing/static@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/missing/success.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/missing/success@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/p2N/danger.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/p2N/danger@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/p2N/static.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/p2N/static@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/p2N/success.png
+unifi/webapps/ROOT/app-unifi/images/devices/uap/p2N/success@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uas/UAS/static.png
+unifi/webapps/ROOT/app-unifi/images/devices/uas/UAS/static@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uas/UCK/static.png
+unifi/webapps/ROOT/app-unifi/images/devices/uas/UCK/static@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/ugw/UGW3/danger.png
+unifi/webapps/ROOT/app-unifi/images/devices/ugw/UGW3/danger@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/ugw/UGW3/static.png
+unifi/webapps/ROOT/app-unifi/images/devices/ugw/UGW3/static@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/ugw/UGW3/success.png
+unifi/webapps/ROOT/app-unifi/images/devices/ugw/UGW3/success@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/ugw/UGW4/danger.png
+unifi/webapps/ROOT/app-unifi/images/devices/ugw/UGW4/danger@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/ugw/UGW4/static.png
+unifi/webapps/ROOT/app-unifi/images/devices/ugw/UGW4/static@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/ugw/UGW4/success.png
+unifi/webapps/ROOT/app-unifi/images/devices/ugw/UGW4/success@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/ugw/UGW8/danger.png
+unifi/webapps/ROOT/app-unifi/images/devices/ugw/UGW8/danger@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/ugw/UGW8/static.png
+unifi/webapps/ROOT/app-unifi/images/devices/ugw/UGW8/static@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/ugw/UGW8/success.png
+unifi/webapps/ROOT/app-unifi/images/devices/ugw/UGW8/success@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uph/UP5/static.png
+unifi/webapps/ROOT/app-unifi/images/devices/uph/UP5/static@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uph/UP5c/static.png
+unifi/webapps/ROOT/app-unifi/images/devices/uph/UP5c/static@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uph/UP5t/static.png
+unifi/webapps/ROOT/app-unifi/images/devices/uph/UP5t/static@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uph/UP5tc/static.png
+unifi/webapps/ROOT/app-unifi/images/devices/uph/UP5tc/static@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uph/UP7/static.png
+unifi/webapps/ROOT/app-unifi/images/devices/uph/UP7/static@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/uph/UP7c/static.png
+unifi/webapps/ROOT/app-unifi/images/devices/uph/UP7c/static@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/usw/US16/danger.png
+unifi/webapps/ROOT/app-unifi/images/devices/usw/US16/danger@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/usw/US16/static.png
+unifi/webapps/ROOT/app-unifi/images/devices/usw/US16/static@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/usw/US16/success.png
+unifi/webapps/ROOT/app-unifi/images/devices/usw/US16/success@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/usw/US24/danger.png
+unifi/webapps/ROOT/app-unifi/images/devices/usw/US24/danger@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/usw/US24/static.png
+unifi/webapps/ROOT/app-unifi/images/devices/usw/US24/static@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/usw/US24/success.png
+unifi/webapps/ROOT/app-unifi/images/devices/usw/US24/success@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/usw/US48/danger.png
+unifi/webapps/ROOT/app-unifi/images/devices/usw/US48/danger@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/usw/US48/static.png
+unifi/webapps/ROOT/app-unifi/images/devices/usw/US48/static@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/usw/US48/success.png
+unifi/webapps/ROOT/app-unifi/images/devices/usw/US48/success@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/usw/US8/danger.png
+unifi/webapps/ROOT/app-unifi/images/devices/usw/US8/danger@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/usw/US8/static.png
+unifi/webapps/ROOT/app-unifi/images/devices/usw/US8/static@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/usw/US8/success.png
+unifi/webapps/ROOT/app-unifi/images/devices/usw/US8/success@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/usw/USXG/danger.png
+unifi/webapps/ROOT/app-unifi/images/devices/usw/USXG/danger@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/usw/USXG/static.png
+unifi/webapps/ROOT/app-unifi/images/devices/usw/USXG/static@2x.png
+unifi/webapps/ROOT/app-unifi/images/devices/usw/USXG/success.png
+unifi/webapps/ROOT/app-unifi/images/devices/usw/USXG/success@2x.png
+unifi/webapps/ROOT/app-unifi/images/diagrams/port-discarding.svg
+unifi/webapps/ROOT/app-unifi/images/diagrams/port-mirror.svg
+unifi/webapps/ROOT/app-unifi/images/diagrams/port-poe-plus.svg
+unifi/webapps/ROOT/app-unifi/images/diagrams/port-poe.svg
+unifi/webapps/ROOT/app-unifi/images/diagrams/port-spacer.png
+unifi/webapps/ROOT/app-unifi/images/dpi/amazon.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/aol.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/apple.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/bankofamerica.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/bing.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/chase.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/cnn.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/comcast.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/craigslist.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/ebay.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/espn.go.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/facebook.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/google.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/huffingtonpost.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/imdb.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/imgur.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/instagram.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/linkedin.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/microsoft.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/msdn.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/msn.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/netflix.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/paypal.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/pinterest.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/reddit.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/target.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/tumblr.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/twitter.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/wellsfargo.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/wikia.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/wikipedia.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/wordpress.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/yahoo.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/yelp.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/youtube.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/dpi/zillow.com/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/favicons/favicon-120.png
+unifi/webapps/ROOT/app-unifi/images/favicons/favicon-144.png
+unifi/webapps/ROOT/app-unifi/images/favicons/favicon-152.png
+unifi/webapps/ROOT/app-unifi/images/favicons/favicon-32.png
+unifi/webapps/ROOT/app-unifi/images/favicons/favicon-57.png
+unifi/webapps/ROOT/app-unifi/images/favicons/favicon-72.png
+unifi/webapps/ROOT/app-unifi/images/favicons/favicon.ico
+unifi/webapps/ROOT/app-unifi/images/install-discovery.png
+unifi/webapps/ROOT/app-unifi/index.hotspot.html
+unifi/webapps/ROOT/app-unifi/index.html
+unifi/webapps/ROOT/app-unifi/index.overview.html
+unifi/webapps/ROOT/app-unifi/index.wizard.html
+unifi/webapps/ROOT/app-unifi/js/app.hotspot.js
+unifi/webapps/ROOT/app-unifi/js/app.manage.js
+unifi/webapps/ROOT/app-unifi/js/app.overview.js
+unifi/webapps/ROOT/app-unifi/js/app.wizard.js
+unifi/webapps/ROOT/app-unifi/js/components.hotspot.js
+unifi/webapps/ROOT/app-unifi/js/components.manage.js
+unifi/webapps/ROOT/app-unifi/js/components.overview.js
+unifi/webapps/ROOT/app-unifi/js/components.wizard.js
+unifi/webapps/ROOT/app-unifi/js/main.hotspot.js
+unifi/webapps/ROOT/app-unifi/js/main.manage.js
+unifi/webapps/ROOT/app-unifi/js/main.overview.js
+unifi/webapps/ROOT/app-unifi/js/main.wizard.js
+unifi/webapps/ROOT/app-unifi/js/vendor.hotspot.js
+unifi/webapps/ROOT/app-unifi/js/vendor.manage.js
+unifi/webapps/ROOT/app-unifi/js/vendor.overview.js
+unifi/webapps/ROOT/app-unifi/js/vendor.wizard.js
+unifi/webapps/ROOT/app-unifi/locales/ca/account.json
+unifi/webapps/ROOT/app-unifi/locales/ca/alerts.json
+unifi/webapps/ROOT/app-unifi/locales/ca/clients.json
+unifi/webapps/ROOT/app-unifi/locales/ca/common.json
+unifi/webapps/ROOT/app-unifi/locales/ca/countries.json
+unifi/webapps/ROOT/app-unifi/locales/ca/dashboard.json
+unifi/webapps/ROOT/app-unifi/locales/ca/devices.json
+unifi/webapps/ROOT/app-unifi/locales/ca/dpiApplicationStatistics.json
+unifi/webapps/ROOT/app-unifi/locales/ca/dpiApps.json
+unifi/webapps/ROOT/app-unifi/locales/ca/dpiOverview.json
+unifi/webapps/ROOT/app-unifi/locales/ca/dpiRestrictions.json
+unifi/webapps/ROOT/app-unifi/locales/ca/dpiUsers.json
+unifi/webapps/ROOT/app-unifi/locales/ca/dynamicDns.json
+unifi/webapps/ROOT/app-unifi/locales/ca/eventStrings.json
+unifi/webapps/ROOT/app-unifi/locales/ca/events.json
+unifi/webapps/ROOT/app-unifi/locales/ca/fatal.json
+unifi/webapps/ROOT/app-unifi/locales/ca/firewall.json
+unifi/webapps/ROOT/app-unifi/locales/ca/guests.json
+unifi/webapps/ROOT/app-unifi/locales/ca/hotspot.json
+unifi/webapps/ROOT/app-unifi/locales/ca/hotspotAnalytics.json
+unifi/webapps/ROOT/app-unifi/locales/ca/insights.json
+unifi/webapps/ROOT/app-unifi/locales/ca/knownClients.json
+unifi/webapps/ROOT/app-unifi/locales/ca/languages.json
+unifi/webapps/ROOT/app-unifi/locales/ca/maps.json
+unifi/webapps/ROOT/app-unifi/locales/ca/modules.json
+unifi/webapps/ROOT/app-unifi/locales/ca/neighboringAccessPoints.json
+unifi/webapps/ROOT/app-unifi/locales/ca/operators.json
+unifi/webapps/ROOT/app-unifi/locales/ca/overview.json
+unifi/webapps/ROOT/app-unifi/locales/ca/pastConnections.json
+unifi/webapps/ROOT/app-unifi/locales/ca/pastGuestAuthorizations.json
+unifi/webapps/ROOT/app-unifi/locales/ca/portForwardStats.json
+unifi/webapps/ROOT/app-unifi/locales/ca/remoteUserVpn.json
+unifi/webapps/ROOT/app-unifi/locales/ca/routing.json
+unifi/webapps/ROOT/app-unifi/locales/ca/settings.json
+unifi/webapps/ROOT/app-unifi/locales/ca/statistics.json
+unifi/webapps/ROOT/app-unifi/locales/ca/streams.json
+unifi/webapps/ROOT/app-unifi/locales/ca/switchStats.json
+unifi/webapps/ROOT/app-unifi/locales/ca/transactions.json
+unifi/webapps/ROOT/app-unifi/locales/ca/vouchers.json
+unifi/webapps/ROOT/app-unifi/locales/ca/wizard.json
+unifi/webapps/ROOT/app-unifi/locales/cs/account.json
+unifi/webapps/ROOT/app-unifi/locales/cs/alerts.json
+unifi/webapps/ROOT/app-unifi/locales/cs/clients.json
+unifi/webapps/ROOT/app-unifi/locales/cs/common.json
+unifi/webapps/ROOT/app-unifi/locales/cs/countries.json
+unifi/webapps/ROOT/app-unifi/locales/cs/dashboard.json
+unifi/webapps/ROOT/app-unifi/locales/cs/devices.json
+unifi/webapps/ROOT/app-unifi/locales/cs/dpiApplicationStatistics.json
+unifi/webapps/ROOT/app-unifi/locales/cs/dpiApps.json
+unifi/webapps/ROOT/app-unifi/locales/cs/dpiOverview.json
+unifi/webapps/ROOT/app-unifi/locales/cs/dpiRestrictions.json
+unifi/webapps/ROOT/app-unifi/locales/cs/dpiUsers.json
+unifi/webapps/ROOT/app-unifi/locales/cs/dynamicDns.json
+unifi/webapps/ROOT/app-unifi/locales/cs/eventStrings.json
+unifi/webapps/ROOT/app-unifi/locales/cs/events.json
+unifi/webapps/ROOT/app-unifi/locales/cs/fatal.json
+unifi/webapps/ROOT/app-unifi/locales/cs/firewall.json
+unifi/webapps/ROOT/app-unifi/locales/cs/guests.json
+unifi/webapps/ROOT/app-unifi/locales/cs/hotspot.json
+unifi/webapps/ROOT/app-unifi/locales/cs/hotspotAnalytics.json
+unifi/webapps/ROOT/app-unifi/locales/cs/insights.json
+unifi/webapps/ROOT/app-unifi/locales/cs/knownClients.json
+unifi/webapps/ROOT/app-unifi/locales/cs/languages.json
+unifi/webapps/ROOT/app-unifi/locales/cs/maps.json
+unifi/webapps/ROOT/app-unifi/locales/cs/modules.json
+unifi/webapps/ROOT/app-unifi/locales/cs/neighboringAccessPoints.json
+unifi/webapps/ROOT/app-unifi/locales/cs/operators.json
+unifi/webapps/ROOT/app-unifi/locales/cs/overview.json
+unifi/webapps/ROOT/app-unifi/locales/cs/pastConnections.json
+unifi/webapps/ROOT/app-unifi/locales/cs/pastGuestAuthorizations.json
+unifi/webapps/ROOT/app-unifi/locales/cs/portForwardStats.json
+unifi/webapps/ROOT/app-unifi/locales/cs/remoteUserVpn.json
+unifi/webapps/ROOT/app-unifi/locales/cs/routing.json
+unifi/webapps/ROOT/app-unifi/locales/cs/settings.json
+unifi/webapps/ROOT/app-unifi/locales/cs/statistics.json
+unifi/webapps/ROOT/app-unifi/locales/cs/streams.json
+unifi/webapps/ROOT/app-unifi/locales/cs/switchStats.json
+unifi/webapps/ROOT/app-unifi/locales/cs/transactions.json
+unifi/webapps/ROOT/app-unifi/locales/cs/vouchers.json
+unifi/webapps/ROOT/app-unifi/locales/cs/wizard.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/account.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/alerts.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/clients.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/common.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/countries.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/dashboard.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/devices.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/dpiApplicationStatistics.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/dpiApps.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/dpiOverview.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/dpiRestrictions.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/dpiUsers.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/dynamicDns.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/eventStrings.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/events.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/fatal.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/firewall.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/guests.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/hotspot.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/hotspotAnalytics.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/insights.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/knownClients.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/languages.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/maps.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/modules.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/neighboringAccessPoints.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/operators.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/overview.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/pastConnections.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/pastGuestAuthorizations.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/portForwardStats.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/remoteUserVpn.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/routing.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/settings.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/statistics.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/streams.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/switchStats.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/transactions.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/vouchers.json
+unifi/webapps/ROOT/app-unifi/locales/de_DE/wizard.json
+unifi/webapps/ROOT/app-unifi/locales/debug.json
+unifi/webapps/ROOT/app-unifi/locales/en/account.json
+unifi/webapps/ROOT/app-unifi/locales/en/alerts.json
+unifi/webapps/ROOT/app-unifi/locales/en/clients.json
+unifi/webapps/ROOT/app-unifi/locales/en/common.json
+unifi/webapps/ROOT/app-unifi/locales/en/countries.json
+unifi/webapps/ROOT/app-unifi/locales/en/dashboard.json
+unifi/webapps/ROOT/app-unifi/locales/en/devices.json
+unifi/webapps/ROOT/app-unifi/locales/en/dpiApplicationStatistics.json
+unifi/webapps/ROOT/app-unifi/locales/en/dpiApps.json
+unifi/webapps/ROOT/app-unifi/locales/en/dpiOverview.json
+unifi/webapps/ROOT/app-unifi/locales/en/dpiRestrictions.json
+unifi/webapps/ROOT/app-unifi/locales/en/dpiUsers.json
+unifi/webapps/ROOT/app-unifi/locales/en/dynamicDns.json
+unifi/webapps/ROOT/app-unifi/locales/en/eventStrings.json
+unifi/webapps/ROOT/app-unifi/locales/en/events.json
+unifi/webapps/ROOT/app-unifi/locales/en/fatal.json
+unifi/webapps/ROOT/app-unifi/locales/en/firewall.json
+unifi/webapps/ROOT/app-unifi/locales/en/guests.json
+unifi/webapps/ROOT/app-unifi/locales/en/hotspot.json
+unifi/webapps/ROOT/app-unifi/locales/en/hotspotAnalytics.json
+unifi/webapps/ROOT/app-unifi/locales/en/insights.json
+unifi/webapps/ROOT/app-unifi/locales/en/knownClients.json
+unifi/webapps/ROOT/app-unifi/locales/en/languages.json
+unifi/webapps/ROOT/app-unifi/locales/en/maps.json
+unifi/webapps/ROOT/app-unifi/locales/en/modules.json
+unifi/webapps/ROOT/app-unifi/locales/en/neighboringAccessPoints.json
+unifi/webapps/ROOT/app-unifi/locales/en/operators.json
+unifi/webapps/ROOT/app-unifi/locales/en/overview.json
+unifi/webapps/ROOT/app-unifi/locales/en/pastConnections.json
+unifi/webapps/ROOT/app-unifi/locales/en/pastGuestAuthorizations.json
+unifi/webapps/ROOT/app-unifi/locales/en/portForwardStats.json
+unifi/webapps/ROOT/app-unifi/locales/en/remoteUserVpn.json
+unifi/webapps/ROOT/app-unifi/locales/en/routing.json
+unifi/webapps/ROOT/app-unifi/locales/en/settings.json
+unifi/webapps/ROOT/app-unifi/locales/en/statistics.json
+unifi/webapps/ROOT/app-unifi/locales/en/streams.json
+unifi/webapps/ROOT/app-unifi/locales/en/switchStats.json
+unifi/webapps/ROOT/app-unifi/locales/en/transactions.json
+unifi/webapps/ROOT/app-unifi/locales/en/vouchers.json
+unifi/webapps/ROOT/app-unifi/locales/en/wizard.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/account.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/alerts.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/clients.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/common.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/countries.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/dashboard.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/devices.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/dpiApplicationStatistics.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/dpiApps.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/dpiOverview.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/dpiRestrictions.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/dpiUsers.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/dynamicDns.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/eventStrings.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/events.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/fatal.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/firewall.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/guests.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/hotspot.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/hotspotAnalytics.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/insights.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/knownClients.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/languages.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/maps.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/modules.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/neighboringAccessPoints.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/operators.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/overview.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/pastConnections.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/pastGuestAuthorizations.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/portForwardStats.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/remoteUserVpn.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/routing.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/settings.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/statistics.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/streams.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/switchStats.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/transactions.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/vouchers.json
+unifi/webapps/ROOT/app-unifi/locales/es_ES/wizard.json
+unifi/webapps/ROOT/app-unifi/locales/nl/account.json
+unifi/webapps/ROOT/app-unifi/locales/nl/alerts.json
+unifi/webapps/ROOT/app-unifi/locales/nl/clients.json
+unifi/webapps/ROOT/app-unifi/locales/nl/common.json
+unifi/webapps/ROOT/app-unifi/locales/nl/countries.json
+unifi/webapps/ROOT/app-unifi/locales/nl/dashboard.json
+unifi/webapps/ROOT/app-unifi/locales/nl/devices.json
+unifi/webapps/ROOT/app-unifi/locales/nl/dpiApplicationStatistics.json
+unifi/webapps/ROOT/app-unifi/locales/nl/dpiApps.json
+unifi/webapps/ROOT/app-unifi/locales/nl/dpiOverview.json
+unifi/webapps/ROOT/app-unifi/locales/nl/dpiRestrictions.json
+unifi/webapps/ROOT/app-unifi/locales/nl/dpiUsers.json
+unifi/webapps/ROOT/app-unifi/locales/nl/dynamicDns.json
+unifi/webapps/ROOT/app-unifi/locales/nl/eventStrings.json
+unifi/webapps/ROOT/app-unifi/locales/nl/events.json
+unifi/webapps/ROOT/app-unifi/locales/nl/fatal.json
+unifi/webapps/ROOT/app-unifi/locales/nl/firewall.json
+unifi/webapps/ROOT/app-unifi/locales/nl/guests.json
+unifi/webapps/ROOT/app-unifi/locales/nl/hotspot.json
+unifi/webapps/ROOT/app-unifi/locales/nl/hotspotAnalytics.json
+unifi/webapps/ROOT/app-unifi/locales/nl/insights.json
+unifi/webapps/ROOT/app-unifi/locales/nl/knownClients.json
+unifi/webapps/ROOT/app-unifi/locales/nl/languages.json
+unifi/webapps/ROOT/app-unifi/locales/nl/maps.json
+unifi/webapps/ROOT/app-unifi/locales/nl/modules.json
+unifi/webapps/ROOT/app-unifi/locales/nl/neighboringAccessPoints.json
+unifi/webapps/ROOT/app-unifi/locales/nl/operators.json
+unifi/webapps/ROOT/app-unifi/locales/nl/overview.json
+unifi/webapps/ROOT/app-unifi/locales/nl/pastConnections.json
+unifi/webapps/ROOT/app-unifi/locales/nl/pastGuestAuthorizations.json
+unifi/webapps/ROOT/app-unifi/locales/nl/portForwardStats.json
+unifi/webapps/ROOT/app-unifi/locales/nl/remoteUserVpn.json
+unifi/webapps/ROOT/app-unifi/locales/nl/routing.json
+unifi/webapps/ROOT/app-unifi/locales/nl/settings.json
+unifi/webapps/ROOT/app-unifi/locales/nl/statistics.json
+unifi/webapps/ROOT/app-unifi/locales/nl/streams.json
+unifi/webapps/ROOT/app-unifi/locales/nl/switchStats.json
+unifi/webapps/ROOT/app-unifi/locales/nl/transactions.json
+unifi/webapps/ROOT/app-unifi/locales/nl/vouchers.json
+unifi/webapps/ROOT/app-unifi/locales/nl/wizard.json
+unifi/webapps/ROOT/app-unifi/locales/pl/account.json
+unifi/webapps/ROOT/app-unifi/locales/pl/alerts.json
+unifi/webapps/ROOT/app-unifi/locales/pl/clients.json
+unifi/webapps/ROOT/app-unifi/locales/pl/common.json
+unifi/webapps/ROOT/app-unifi/locales/pl/countries.json
+unifi/webapps/ROOT/app-unifi/locales/pl/dashboard.json
+unifi/webapps/ROOT/app-unifi/locales/pl/devices.json
+unifi/webapps/ROOT/app-unifi/locales/pl/dpiApplicationStatistics.json
+unifi/webapps/ROOT/app-unifi/locales/pl/dpiApps.json
+unifi/webapps/ROOT/app-unifi/locales/pl/dpiOverview.json
+unifi/webapps/ROOT/app-unifi/locales/pl/dpiRestrictions.json
+unifi/webapps/ROOT/app-unifi/locales/pl/dpiUsers.json
+unifi/webapps/ROOT/app-unifi/locales/pl/dynamicDns.json
+unifi/webapps/ROOT/app-unifi/locales/pl/eventStrings.json
+unifi/webapps/ROOT/app-unifi/locales/pl/events.json
+unifi/webapps/ROOT/app-unifi/locales/pl/fatal.json
+unifi/webapps/ROOT/app-unifi/locales/pl/firewall.json
+unifi/webapps/ROOT/app-unifi/locales/pl/guests.json
+unifi/webapps/ROOT/app-unifi/locales/pl/hotspot.json
+unifi/webapps/ROOT/app-unifi/locales/pl/hotspotAnalytics.json
+unifi/webapps/ROOT/app-unifi/locales/pl/insights.json
+unifi/webapps/ROOT/app-unifi/locales/pl/knownClients.json
+unifi/webapps/ROOT/app-unifi/locales/pl/languages.json
+unifi/webapps/ROOT/app-unifi/locales/pl/maps.json
+unifi/webapps/ROOT/app-unifi/locales/pl/modules.json
+unifi/webapps/ROOT/app-unifi/locales/pl/neighboringAccessPoints.json
+unifi/webapps/ROOT/app-unifi/locales/pl/operators.json
+unifi/webapps/ROOT/app-unifi/locales/pl/overview.json
+unifi/webapps/ROOT/app-unifi/locales/pl/pastConnections.json
+unifi/webapps/ROOT/app-unifi/locales/pl/pastGuestAuthorizations.json
+unifi/webapps/ROOT/app-unifi/locales/pl/portForwardStats.json
+unifi/webapps/ROOT/app-unifi/locales/pl/remoteUserVpn.json
+unifi/webapps/ROOT/app-unifi/locales/pl/routing.json
+unifi/webapps/ROOT/app-unifi/locales/pl/settings.json
+unifi/webapps/ROOT/app-unifi/locales/pl/statistics.json
+unifi/webapps/ROOT/app-unifi/locales/pl/streams.json
+unifi/webapps/ROOT/app-unifi/locales/pl/switchStats.json
+unifi/webapps/ROOT/app-unifi/locales/pl/transactions.json
+unifi/webapps/ROOT/app-unifi/locales/pl/vouchers.json
+unifi/webapps/ROOT/app-unifi/locales/pl/wizard.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/account.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/alerts.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/clients.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/common.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/countries.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/dashboard.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/devices.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/dpiApplicationStatistics.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/dpiApps.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/dpiOverview.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/dpiRestrictions.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/dpiUsers.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/dynamicDns.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/eventStrings.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/events.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/fatal.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/firewall.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/guests.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/hotspot.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/hotspotAnalytics.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/insights.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/knownClients.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/languages.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/maps.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/modules.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/neighboringAccessPoints.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/operators.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/overview.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/pastConnections.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/pastGuestAuthorizations.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/portForwardStats.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/remoteUserVpn.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/routing.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/settings.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/statistics.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/streams.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/switchStats.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/transactions.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/vouchers.json
+unifi/webapps/ROOT/app-unifi/locales/pt_PT/wizard.json
+unifi/webapps/ROOT/app-unifi/locales/sv/account.json
+unifi/webapps/ROOT/app-unifi/locales/sv/alerts.json
+unifi/webapps/ROOT/app-unifi/locales/sv/clients.json
+unifi/webapps/ROOT/app-unifi/locales/sv/common.json
+unifi/webapps/ROOT/app-unifi/locales/sv/countries.json
+unifi/webapps/ROOT/app-unifi/locales/sv/dashboard.json
+unifi/webapps/ROOT/app-unifi/locales/sv/devices.json
+unifi/webapps/ROOT/app-unifi/locales/sv/dpiApplicationStatistics.json
+unifi/webapps/ROOT/app-unifi/locales/sv/dpiApps.json
+unifi/webapps/ROOT/app-unifi/locales/sv/dpiOverview.json
+unifi/webapps/ROOT/app-unifi/locales/sv/dpiRestrictions.json
+unifi/webapps/ROOT/app-unifi/locales/sv/dpiUsers.json
+unifi/webapps/ROOT/app-unifi/locales/sv/dynamicDns.json
+unifi/webapps/ROOT/app-unifi/locales/sv/eventStrings.json
+unifi/webapps/ROOT/app-unifi/locales/sv/events.json
+unifi/webapps/ROOT/app-unifi/locales/sv/fatal.json
+unifi/webapps/ROOT/app-unifi/locales/sv/firewall.json
+unifi/webapps/ROOT/app-unifi/locales/sv/guests.json
+unifi/webapps/ROOT/app-unifi/locales/sv/hotspot.json
+unifi/webapps/ROOT/app-unifi/locales/sv/hotspotAnalytics.json
+unifi/webapps/ROOT/app-unifi/locales/sv/insights.json
+unifi/webapps/ROOT/app-unifi/locales/sv/knownClients.json
+unifi/webapps/ROOT/app-unifi/locales/sv/languages.json
+unifi/webapps/ROOT/app-unifi/locales/sv/maps.json
+unifi/webapps/ROOT/app-unifi/locales/sv/modules.json
+unifi/webapps/ROOT/app-unifi/locales/sv/neighboringAccessPoints.json
+unifi/webapps/ROOT/app-unifi/locales/sv/operators.json
+unifi/webapps/ROOT/app-unifi/locales/sv/overview.json
+unifi/webapps/ROOT/app-unifi/locales/sv/pastConnections.json
+unifi/webapps/ROOT/app-unifi/locales/sv/pastGuestAuthorizations.json
+unifi/webapps/ROOT/app-unifi/locales/sv/portForwardStats.json
+unifi/webapps/ROOT/app-unifi/locales/sv/remoteUserVpn.json
+unifi/webapps/ROOT/app-unifi/locales/sv/routing.json
+unifi/webapps/ROOT/app-unifi/locales/sv/settings.json
+unifi/webapps/ROOT/app-unifi/locales/sv/statistics.json
+unifi/webapps/ROOT/app-unifi/locales/sv/streams.json
+unifi/webapps/ROOT/app-unifi/locales/sv/switchStats.json
+unifi/webapps/ROOT/app-unifi/locales/sv/transactions.json
+unifi/webapps/ROOT/app-unifi/locales/sv/vouchers.json
+unifi/webapps/ROOT/app-unifi/locales/sv/wizard.json
+unifi/webapps/ROOT/app-unifi/locales/tr/account.json
+unifi/webapps/ROOT/app-unifi/locales/tr/alerts.json
+unifi/webapps/ROOT/app-unifi/locales/tr/clients.json
+unifi/webapps/ROOT/app-unifi/locales/tr/common.json
+unifi/webapps/ROOT/app-unifi/locales/tr/countries.json
+unifi/webapps/ROOT/app-unifi/locales/tr/dashboard.json
+unifi/webapps/ROOT/app-unifi/locales/tr/devices.json
+unifi/webapps/ROOT/app-unifi/locales/tr/dpiApplicationStatistics.json
+unifi/webapps/ROOT/app-unifi/locales/tr/dpiApps.json
+unifi/webapps/ROOT/app-unifi/locales/tr/dpiOverview.json
+unifi/webapps/ROOT/app-unifi/locales/tr/dpiRestrictions.json
+unifi/webapps/ROOT/app-unifi/locales/tr/dpiUsers.json
+unifi/webapps/ROOT/app-unifi/locales/tr/dynamicDns.json
+unifi/webapps/ROOT/app-unifi/locales/tr/eventStrings.json
+unifi/webapps/ROOT/app-unifi/locales/tr/events.json
+unifi/webapps/ROOT/app-unifi/locales/tr/fatal.json
+unifi/webapps/ROOT/app-unifi/locales/tr/firewall.json
+unifi/webapps/ROOT/app-unifi/locales/tr/guests.json
+unifi/webapps/ROOT/app-unifi/locales/tr/hotspot.json
+unifi/webapps/ROOT/app-unifi/locales/tr/hotspotAnalytics.json
+unifi/webapps/ROOT/app-unifi/locales/tr/insights.json
+unifi/webapps/ROOT/app-unifi/locales/tr/knownClients.json
+unifi/webapps/ROOT/app-unifi/locales/tr/languages.json
+unifi/webapps/ROOT/app-unifi/locales/tr/maps.json
+unifi/webapps/ROOT/app-unifi/locales/tr/modules.json
+unifi/webapps/ROOT/app-unifi/locales/tr/neighboringAccessPoints.json
+unifi/webapps/ROOT/app-unifi/locales/tr/operators.json
+unifi/webapps/ROOT/app-unifi/locales/tr/overview.json
+unifi/webapps/ROOT/app-unifi/locales/tr/pastConnections.json
+unifi/webapps/ROOT/app-unifi/locales/tr/pastGuestAuthorizations.json
+unifi/webapps/ROOT/app-unifi/locales/tr/portForwardStats.json
+unifi/webapps/ROOT/app-unifi/locales/tr/remoteUserVpn.json
+unifi/webapps/ROOT/app-unifi/locales/tr/routing.json
+unifi/webapps/ROOT/app-unifi/locales/tr/settings.json
+unifi/webapps/ROOT/app-unifi/locales/tr/statistics.json
+unifi/webapps/ROOT/app-unifi/locales/tr/streams.json
+unifi/webapps/ROOT/app-unifi/locales/tr/switchStats.json
+unifi/webapps/ROOT/app-unifi/locales/tr/transactions.json
+unifi/webapps/ROOT/app-unifi/locales/tr/vouchers.json
+unifi/webapps/ROOT/app-unifi/locales/tr/wizard.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/account.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/alerts.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/clients.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/common.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/countries.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/dashboard.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/devices.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/dpiApplicationStatistics.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/dpiApps.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/dpiOverview.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/dpiRestrictions.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/dpiUsers.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/dynamicDns.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/eventStrings.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/events.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/fatal.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/firewall.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/guests.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/hotspot.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/hotspotAnalytics.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/insights.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/knownClients.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/languages.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/maps.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/modules.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/neighboringAccessPoints.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/operators.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/overview.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/pastConnections.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/pastGuestAuthorizations.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/portForwardStats.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/remoteUserVpn.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/routing.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/settings.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/statistics.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/streams.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/switchStats.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/transactions.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/vouchers.json
+unifi/webapps/ROOT/app-unifi/locales/zh_CN/wizard.json
+unifi/webapps/ROOT/pages/voucher.jsp
+@pkgdir unifi/conf
diff --git a/net/unifi/distinfo b/net/unifi/distinfo
new file mode 100644
index 00000000000..dda079dca3c
--- /dev/null
+++ b/net/unifi/distinfo
@@ -0,0 +1,16 @@
+$NetBSD: distinfo,v 1.1 2017/06/24 14:16:37 tnn Exp $
+
+SHA1 (snappy-1.0.5.tar.gz) = 3a3df859cf33f78f8e945c3f67f28685f0f38bb1
+RMD160 (snappy-1.0.5.tar.gz) = c9dec9a8a2faac7bf85b79bcf82f8080713103aa
+SHA512 (snappy-1.0.5.tar.gz) = 4f772673dd1bf482f13db0f09299b46d0ee47b7052c43e69c2c5361d352031152f3132c25faf86ffcf1bfbe0e68625d7eef8fa669be873b568adfc160a82f25b
+Size (snappy-1.0.5.tar.gz) = 1731382 bytes
+SHA1 (snappy-java-1.0.5.4.tar.gz) = 2a67400be7e5967ee28c87f32ea4776f26494f2c
+RMD160 (snappy-java-1.0.5.4.tar.gz) = 30d12e9717b012bf5b214deecf59f3d02c36996b
+SHA512 (snappy-java-1.0.5.4.tar.gz) = 4fce5c0c0ce294ba789fd33dd8aeed92b6c58e004ac8e569ee1840fe4fbeb47b1f3edff75619aee0ebbda65476ec56b15a4aeead360d98dbc3d45d295ab028bd
+Size (snappy-java-1.0.5.4.tar.gz) = 6041905 bytes
+SHA1 (unifi-5.4.16.zip) = edac0bbae659bcb238240d3d3be8973515642d7a
+RMD160 (unifi-5.4.16.zip) = 474283d968f90542087d9fb7e9ca2058dd40a4e5
+SHA512 (unifi-5.4.16.zip) = d39b3daa369da1b8393c7e38bb39b0f2cd32fef21e531d9f5f6ceefd54e46e77ed932716de94f3f8e07f1f1852cce33b106e1cca1b7a93521b4f058d528ffc4c
+Size (unifi-5.4.16.zip) = 161185559 bytes
+SHA1 (patch-snappy-java_Makefile) = ce9e30d266787890e82675cfaa2603ae4709eaab
+SHA1 (patch-snappy-java_Makefile.common) = ba9e39d1bc6e34e2fa4704831ba51feccfbb0638
diff --git a/net/unifi/files/unifi.sh b/net/unifi/files/unifi.sh
new file mode 100644
index 00000000000..5847ec1c16c
--- /dev/null
+++ b/net/unifi/files/unifi.sh
@@ -0,0 +1,23 @@
+#!@RCD_SCRIPTS_SHELL@
+
+# PROVIDE: unifi
+# REQUIRE: DAEMON
+# KEYWORD: shutdown
+
+if [ -f /etc/rc.subr ]
+then
+ . /etc/rc.subr
+fi
+
+name="unifi"
+rcvar=$name
+unifi_user="@UNIFI_USER@"
+unifi_group="@UNIFI_GROUP@"
+unifi_chdir="@PREFIX@/unifi"
+command="@JAVA@"
+java_args="-Djava.awt.headless=true -Xmx1024M -Djava.net.preferIPv4Stack=true -Dorg.xerial.snappy.lib.path=@PREFIX@/unifi/lib -Dorg.xerial.lib.name=libsnappyjava.so -jar lib/ace.jar"
+command_args="${java_args} start &"
+stop_cmd="cd ${unifi_chdir} && ${command} ${java_args} stop"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/net/unifi/patches/patch-snappy-java_Makefile b/net/unifi/patches/patch-snappy-java_Makefile
new file mode 100644
index 00000000000..6d97daa40e9
--- /dev/null
+++ b/net/unifi/patches/patch-snappy-java_Makefile
@@ -0,0 +1,17 @@
+$NetBSD: patch-snappy-java_Makefile,v 1.1 2017/06/24 14:16:37 tnn Exp $
+
+It tries to download a distfile with curl. We manage this manually.
+
+--- ../snappy-java-1.0.5.4/Makefile.orig 2014-07-04 05:20:00.000000000 +0000
++++ ../snappy-java-1.0.5.4/Makefile
+@@ -20,9 +20,7 @@ $(SNAPPY_ARCHIVE):
+ @mkdir -p $(@D)
+ curl -o$@ http://snappy.googlecode.com/files/snappy-$(VERSION).tar.gz
+
+-$(SNAPPY_UNPACKED): $(SNAPPY_ARCHIVE)
+- tar xvfz $< -C $(TARGET)
+- touch $@
++$(SNAPPY_UNPACKED):
+
+ jni-header: $(SRC)/org/xerial/snappy/SnappyNative.h
+
diff --git a/net/unifi/patches/patch-snappy-java_Makefile.common b/net/unifi/patches/patch-snappy-java_Makefile.common
new file mode 100644
index 00000000000..dc37d525bac
--- /dev/null
+++ b/net/unifi/patches/patch-snappy-java_Makefile.common
@@ -0,0 +1,15 @@
+$NetBSD: patch-snappy-java_Makefile.common,v 1.1 2017/06/24 14:16:37 tnn Exp $
+
+Don't produce a broken shared library.
+
+--- ../snappy-java-1.0.5.4/Makefile.common.orig 2014-07-04 05:20:00.000000000 +0000
++++ ../snappy-java-1.0.5.4/Makefile.common
+@@ -54,7 +54,7 @@ CROSS_PREFIX :=
+ Default_CXX := $(CROSS_PREFIX)g++
+ Default_STRIP := $(CROSS_PREFIX)strip
+ Default_CXXFLAGS := -I$(JAVA_HOME)/include -Ilib/inc_mac -O2 -fPIC -fvisibility=hidden
+-Default_LINKFLAGS := -shared -static
++Default_LINKFLAGS := -shared
+ Default_LIBNAME := libsnappyjava.so
+ Default_SNAPPY_FLAGS :=
+