merging with master
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/RenditionCleaner.java b/core/src/main/java/org/apache/sling/cms/core/internal/listeners/RenditionCleaner.java
similarity index 78%
rename from transformer/src/main/java/org/apache/sling/cms/transformer/internal/RenditionCleaner.java
rename to core/src/main/java/org/apache/sling/cms/core/internal/listeners/RenditionCleaner.java
index d1e75ee..a2b8cf9 100644
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/RenditionCleaner.java
+++ b/core/src/main/java/org/apache/sling/cms/core/internal/listeners/RenditionCleaner.java
@@ -16,12 +16,16 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.sling.cms.transformer.internal;
+package org.apache.sling.cms.core.internal.listeners;
+
+import java.util.Collections;
 
 import org.apache.sling.api.resource.LoginException;
 import org.apache.sling.api.resource.PersistenceException;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
+import org.apache.sling.api.resource.ResourceResolverFactory;
+import org.osgi.service.component.annotations.Activate;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.Reference;
 import org.osgi.service.event.Event;
@@ -36,13 +40,17 @@
 public class RenditionCleaner implements EventHandler {
 
     private static final Logger log = LoggerFactory.getLogger(RenditionCleaner.class);
+    private ResourceResolverFactory factory;
 
-    @Reference
-    private TransformationServiceUser transformationServiceUser;
+    @Activate
+    public RenditionCleaner(@Reference ResourceResolverFactory factory) {
+        this.factory = factory;
+    }
 
     @Override
     public void handleEvent(Event event) {
-        try (ResourceResolver resolver = transformationServiceUser.getTransformationServiceUser()) {
+        try (ResourceResolver resolver = factory.getServiceResourceResolver(
+                Collections.singletonMap(ResourceResolverFactory.SUBSERVICE, "sling-commons-thumbnails"))) {
             Resource renditions = resolver.getResource(event.getProperty("path") + "/renditions");
             if (renditions != null) {
                 resolver.delete(renditions);
diff --git a/core/src/test/resources/conf.json b/core/src/test/resources/conf.json
index 89e2b0b..3283cb6 100644
--- a/core/src/test/resources/conf.json
+++ b/core/src/test/resources/conf.json
@@ -107,57 +107,57 @@
                 "sling-cms-thumbnail": {
                     "jcr:primaryType": "nt:unstructured",
                     "name": "sling-cms-thumbnail",
-                    "sling:resourceType": "sling-cms/components/caconfig/transformation",
+                    "sling:resourceType": "sling/commons/thumbnails/transformation",
                     "handlers": {
                         "jcr:primaryType": "nt:unstructured",
                         "size": {
                             "jcr:primaryType": "nt:unstructured",
                             "height": "480",
                             "width": "600",
-                            "sling:resourceType": "sling-cms/components/caconfig/transformationhandlers/size"
+                            "sling:resourceType": "sling/commons/thumbnails/transformers/resize"
                         },
                         "crop": {
                             "jcr:primaryType": "nt:unstructured",
                             "position": "CENTER",
-                            "sling:resourceType": "sling-cms/components/caconfig/transformationhandlers/crop"
+                            "sling:resourceType": "sling/commons/thumbnails/transformers/crop"
                         }
                     }
                 },
                 "sling-cms-thumbnail128": {
                     "jcr:primaryType": "nt:unstructured",
                     "name": "sling-cms-thumbnail128",
-                    "sling:resourceType": "sling-cms/components/caconfig/transformation",
+                    "sling:resourceType": "sling/commons/thumbnails/transformation",
                     "handlers": {
                         "jcr:primaryType": "nt:unstructured",
                         "size": {
                             "jcr:primaryType": "nt:unstructured",
                             "height": "128",
                             "width": "128",
-                            "sling:resourceType": "sling-cms/components/caconfig/transformationhandlers/size"
+                            "sling:resourceType": "sling/commons/thumbnails/transformers/resize"
                         },
                         "crop": {
                             "jcr:primaryType": "nt:unstructured",
                             "position": "CENTER",
-                            "sling:resourceType": "sling-cms/components/caconfig/transformationhandlers/crop"
+                            "sling:resourceType": "sling/commons/thumbnails/transformers/crop"
                         }
                     }
                 },
                 "sling-cms-thumbnail32": {
                     "jcr:primaryType": "nt:unstructured",
                     "name": "sling-cms-thumbnail32",
-                    "sling:resourceType": "sling-cms/components/caconfig/transformation",
+                    "sling:resourceType": "sling/commons/thumbnails/transformation",
                     "handlers": {
                         "jcr:primaryType": "nt:unstructured",
                         "size": {
                             "jcr:primaryType": "nt:unstructured",
                             "height": "32",
                             "width": "32",
-                            "sling:resourceType": "sling-cms/components/caconfig/transformationhandlers/size"
+                            "sling:resourceType": "sling/commons/thumbnails/transformers/resize"
                         },
                         "crop": {
                             "jcr:primaryType": "nt:unstructured",
                             "position": "CENTER",
-                            "sling:resourceType": "sling-cms/components/caconfig/transformationhandlers/crop"
+                            "sling:resourceType": "sling/commons/thumbnails/transformers/crop"
                         }
                     }
                 }
diff --git a/feature/src/main/features/thumbnails.json b/feature/src/main/features/thumbnails.json
new file mode 100644
index 0000000..b5b0d67
--- /dev/null
+++ b/feature/src/main/features/thumbnails.json
@@ -0,0 +1,21 @@
+{
+  "prototype": {
+    "id": "org.apache.sling:org.apache.sling.thumbnails:slingosgifeature:default:1.0.0-SNAPSHOT"
+  },
+  "configurations": {
+    "org.apache.sling.thumbnails.internal.ThumbnailSupportImpl": {
+      "errorSuffix": "/sling-cms-thumbnail.png",
+      "errorResourcePath": "/static/sling-cms/thumbnails/file.png",
+      "persistableTypes": ["sling:File=jcr:content/renditions"],
+      "supportedTypes": [
+        "nt:file=jcr:content/jcr:mimeType",
+        "sling:File=jcr:content/jcr:mimeType"
+      ]
+    },
+    "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling-thumbnails":{
+        "user.mapping":[
+            "org.apache.sling.thumbnails:sling-thumbnails=[sling-thumbnails]"
+        ]
+    }
+  }
+}
diff --git a/i18n-helper/src/messages.json b/i18n-helper/src/messages.json
index a845b94..7f08fcd 100644
--- a/i18n-helper/src/messages.json
+++ b/i18n-helper/src/messages.json
@@ -97,6 +97,7 @@
   "Copy",
   "Core schema meta-schema",
   "Count",
+  "Create",
   "Create Authorizable Folder",
   "Create Config",
   "Create Folder",
@@ -127,6 +128,7 @@
   "Delete Group",
   "Delete Mapping",
   "Delete Page",
+  "Delete Rendition",
   "Delete Site Config",
   "Delete Site Group",
   "Delete Taxonomy Item",
@@ -148,6 +150,7 @@
   "Do you want to reorder:",
   "Do you want to unpublish:",
   "DocType",
+  "Download Rendition",
   "Download file",
   "Drop invalid queue items",
   "Edit",
@@ -402,6 +405,9 @@
   "Reload Container",
   "Remove",
   "Remove Job",
+  "Rendition",
+  "Rendition Name",
+  "Renditions",
   "Reorder",
   "Replace",
   "Replace Properties",
diff --git a/pom.xml b/pom.xml
index b085250..a649dc8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -71,7 +71,6 @@
     <modules>
         <module>api</module>
         <module>core</module>
-        <module>transformer</module>
         <module>login</module>
         <module>ui</module>
         <module>reference</module>
diff --git a/reference/src/main/resources/jcr_root/apps/reference/components/general/image/edit.json b/reference/src/main/resources/jcr_root/apps/reference/components/general/image/edit.json
index ef07361..4b3cf95 100644
--- a/reference/src/main/resources/jcr_root/apps/reference/components/general/image/edit.json
+++ b/reference/src/main/resources/jcr_root/apps/reference/components/general/image/edit.json
@@ -13,7 +13,11 @@
             "label": "Image Source",
             "name": "src",
             "titleProperty": "jcr:content/jcr:title",
-            "required": true
+            "required": true,
+            "events": {
+                "input": "const srcValue = document.querySelector('input[name=src]').value;\r\nconst transformationField = document.querySelector('select[name=transformation]').closest('.field');\r\ntransformationField.disabled=true;\r\nconst url = `${transformationField.dataset.path}.html${location.pathname.replace('\/cms\/editor\/edit.html','')}?src=${srcValue}`;\r\nfetch(url).then(res => res.text()).then(html => {\r\n    const div = document.createElement('div');\r\n    div.innerHTML = html;    \r\n    transformationField.replaceWith(div.querySelector('.field'));\r\n});",
+                "load": "const srcValue = document.querySelector('input[name=src]').value;\r\nconst transformationField = document.querySelector('select[name=transformation]').closest('.field');\r\ntransformationField.disabled=true;\r\nconst url = `${transformationField.dataset.path}.html${location.pathname.replace('\/cms\/editor\/edit.html','')}?src=${srcValue}`;\r\nfetch(url).then(res => res.text()).then(html => {\r\n    const div = document.createElement('div');\r\n    div.innerHTML = html;    \r\n    transformationField.replaceWith(div.querySelector('.field'));\r\n});"
+            }
         },
         "transformation": {
             "jcr:primaryType": "nt:unstructured",
@@ -30,6 +34,11 @@
             "name": "transformationFormat",
             "required": false,
             "options": {
+                "default": {
+                    "jcr:primaryType": "nt:unstructured",
+                    "label": "Default Extension",
+                    "value": "default"
+                },
                 "png": {
                     "jcr:primaryType": "nt:unstructured",
                     "label": "PNG",
diff --git a/reference/src/main/resources/jcr_root/apps/reference/components/general/image/image.jsp b/reference/src/main/resources/jcr_root/apps/reference/components/general/image/image.jsp
index 87585bb..31cb584 100644
--- a/reference/src/main/resources/jcr_root/apps/reference/components/general/image/image.jsp
+++ b/reference/src/main/resources/jcr_root/apps/reference/components/general/image/image.jsp
@@ -19,7 +19,14 @@
 <%@include file="/libs/sling-cms/global.jsp"%>
 <c:if test="${not empty properties.src}">
     <c:if test="${not empty properties.transformation}">
-        <c:set var="transform" value=".transform/${sling:encode(properties.transformation,'HTML_ATTR')}.${properties.transformationFormat}" />
+        <c:choose>
+            <c:when test="${properties.transformationFormat == 'default'}">
+                <c:set var="transform" value=".transform/${properties.transformation}" />
+            </c:when>
+            <c:otherwise>
+                <c:set var="transform" value=".transform/${properties.transformation}.${properties.transformationFormat}" />
+            </c:otherwise>
+        </c:choose>
     </c:if>
     <img src="${sling:encode(properties.src,'HTML_ATTR')}${transform}" alt="${sling:encode(properties.alt,'HTML_ATTR')}" class="${sling:encode(properties.imageClass,'HTML_ATTR')}" />
 </c:if>
\ No newline at end of file
diff --git a/reference/src/main/resources/jcr_root/apps/reference/components/general/image/transformations.jsp b/reference/src/main/resources/jcr_root/apps/reference/components/general/image/transformations.jsp
index db1be87..6f2f03d 100644
--- a/reference/src/main/resources/jcr_root/apps/reference/components/general/image/transformations.jsp
+++ b/reference/src/main/resources/jcr_root/apps/reference/components/general/image/transformations.jsp
@@ -17,10 +17,10 @@
  * under the License.
  */ --%>
  <%@include file="/libs/sling-cms/global.jsp"%>
-<sling:adaptTo adaptable="${slingRequest.requestPathInfo.suffixResource}" adaptTo="org.apache.sling.cms.transformer.TransformationManager" var="transformationManager" />
+<sling:adaptTo adaptable="${slingRequest}" adaptTo="org.apache.sling.thumbnails.RenderedResource" var="rendered" />
 <option value=""><fmt:message key="None" /></option>
-<c:forEach var="transformation" items="${transformationManager.transformations}">
-    <option ${slingRequest.requestPathInfo.suffixResource.valueMap.transformation == transformation.name ? 'selected' : ''} value="${sling:encode(transformation.name,'HTML_ATTR')}">
-        ${sling:encode(transformation.name,'HTML')}
+<c:forEach var="rendition" items="${rendered.supportedRenditions}">
+    <option ${slingRequest.requestPathInfo.suffixResource.valueMap.transformation == rendition ? 'selected' : ''} value="${sling:encode(rendition,'HTML_ATTR')}">
+        ${sling:encode(rendition,'HTML')}
     </option>
 </c:forEach>
\ No newline at end of file
diff --git a/transformer/NOTICE b/transformer/NOTICE
deleted file mode 100644
index c91d59c..0000000
--- a/transformer/NOTICE
+++ /dev/null
@@ -1,8 +0,0 @@
-Apache Sling App CMS - Transformer
-Copyright 2019 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-
-This product includes software developed at
-https://github.com/coobird/thumbnailator
\ No newline at end of file
diff --git a/transformer/bnd.bnd b/transformer/bnd.bnd
deleted file mode 100644
index 1c528db..0000000
--- a/transformer/bnd.bnd
+++ /dev/null
@@ -1,4 +0,0 @@
-Sling-Model-Packages: org.apache.sling.cms.transformer
-
-Export-Package: org.apache.sling.cms.transformer,net.coobird.thumbnailator.*
--includeresource: lib/thumbnailator.jar=thumbnailator-[[0-9\.]]*.jar;lib:=true
diff --git a/transformer/pom.xml b/transformer/pom.xml
deleted file mode 100644
index b4db414..0000000
--- a/transformer/pom.xml
+++ /dev/null
@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional
-    information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except
-    in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to
-    in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See
-    the License for the specific language governing permissions and limitations under the License. -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <artifactId>org.apache.sling.cms</artifactId>
-        <groupId>org.apache.sling</groupId>
-        <version>1.0.5-SNAPSHOT</version>
-    </parent>
-    <artifactId>org.apache.sling.cms.transformer</artifactId>
-    <name>Apache Sling - Transformer</name>
-    <description>An API and Service for creating and transforming images and documents into thumbnails</description>
-
-    <properties>
-        <sling.java.version>8</sling.java.version>
-    </properties>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>biz.aQute.bnd</groupId>
-                <artifactId>bnd-maven-plugin</artifactId>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <source>8</source>
-                    <target>8</target>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.rat</groupId>
-                <artifactId>apache-rat-plugin</artifactId>
-                <configuration>
-                    <excludes>
-                        <!-- Used by maven-remote-resources-plugin -->
-                        <exclude>src/main/appended-resources/META-INF/*</exclude>
-                        <!-- Generated by maven-remote-resources-plugin -->
-                        <exclude>velocity.log</exclude>
-                        <!-- don't check anything in target -->
-                        <exclude>target/*</exclude>
-                        <!-- for some reason Rat doesn't seem to pick up that PPTs are binary -->
-                        <exclude>src/test/resources/*.ppt</exclude>
-                    </excludes>
-                </configuration>
-                <executions>
-                    <execution>
-                        <phase>verify</phase>
-                        <goals>
-                            <goal>check</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-
-    <dependencies>
-
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>servlet-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.webconsole</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>osgi.annotation</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.service.component.annotations</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.service.metatype.annotations</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>osgi.core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>osgi.cmpn</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-
-        <!-- Sling Dependencies -->
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.caconfig.api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.cms.api</artifactId>
-            <version>${project.version}</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.cms.core</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.event.api</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- Utilities -->
-        <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-lang3</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>javax.annotation</groupId>
-            <artifactId>javax.annotation-api</artifactId>
-        </dependency>
-
-        <!-- Document handling -->
-        <dependency>
-            <groupId>net.coobird</groupId>
-            <artifactId>thumbnailator</artifactId>
-        </dependency>
-        <dependency>
-            <artifactId>pdfbox</artifactId>
-            <groupId>org.apache.pdfbox</groupId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.poi</groupId>
-            <artifactId>poi-ooxml</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.poi</groupId>
-            <artifactId>poi-scratchpad</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.tika</groupId>
-            <artifactId>tika-core</artifactId>
-        </dependency>
-
-        <!-- Testing dependencies -->
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.testing.sling-mock.junit4</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-simple</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>jakarta.xml.bind</groupId>
-            <artifactId>jakarta.xml.bind-api</artifactId>
-            <version>2.3.2</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.glassfish.jaxb</groupId>
-            <artifactId>jaxb-runtime</artifactId>
-            <version>2.3.2</version>
-            <scope>test</scope>
-        </dependency>
-
-    </dependencies>
-</project>
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/OutputFileFormat.java b/transformer/src/main/java/org/apache/sling/cms/transformer/OutputFileFormat.java
deleted file mode 100644
index 464d5b3..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/OutputFileFormat.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer;
-
-import org.apache.commons.lang3.StringUtils;
-import org.apache.sling.api.SlingHttpServletRequest;
-
-import com.google.common.base.Enums;
-import com.google.common.net.MediaType;
-
-/**
- * Enumeration of the valid output formats for the thumbnail generator.
- */
-public enum OutputFileFormat {
-    GIF(MediaType.GIF.toString()), JPEG(MediaType.JPEG.toString()), PNG(MediaType.PNG.toString());
-
-    /**
-     * Loads the output format requested in the specified request suffix.
-     * 
-     * @param request the current request from which to get the suffix
-     * @return the format for the suffix
-     */
-    public static OutputFileFormat forRequest(SlingHttpServletRequest request) {
-        String suffixExtension = StringUtils.substringAfterLast(request.getRequestPathInfo().getSuffix(), ".")
-                .toUpperCase();
-        return Enums.getIfPresent(OutputFileFormat.class, suffixExtension).or(OutputFileFormat.JPEG);
-    }
-
-    private String mimeType;
-
-    private OutputFileFormat(String mimeType) {
-        this.mimeType = mimeType;
-    }
-
-    public String getMimeType() {
-        return mimeType;
-    }
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/ThumbnailProvider.java b/transformer/src/main/java/org/apache/sling/cms/transformer/ThumbnailProvider.java
deleted file mode 100644
index 93a8b18..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/ThumbnailProvider.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.apache.sling.api.resource.Resource;
-
-/**
- * Service for retrieving a thumbnail for the specified Resource.
- */
-public interface ThumbnailProvider {
-
-    /**
-     * Returns true if the ThumbnailProvider applies for the specified resource.
-     * 
-     * @param resource the resource to check
-     * @return true if this ThumbnailProvider will create a thumbnail for this
-     *         resource, false otherwise
-     */
-    boolean applies(Resource resource);
-
-    /**
-     * Get the thumbnail from the specified resource.
-     * 
-     * @param resource the resource from which to retrieve the thumbnail
-     * @return the thumbnail
-     * @throws IOException an exception occurs retrieving the thumbnail
-     */
-    InputStream getThumbnail(Resource resource) throws IOException;
-
-}
\ No newline at end of file
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/Transformation.java b/transformer/src/main/java/org/apache/sling/cms/transformer/Transformation.java
deleted file mode 100644
index 2058207..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/Transformation.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer;
-
-import java.util.List;
-
-import org.apache.sling.api.resource.Resource;
-
-/**
- * Model representing a transformation, a series of handlers
- */
-public interface Transformation {
-
-    String getName();
-
-    List<Resource> getHandlers();
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/TransformationHandler.java b/transformer/src/main/java/org/apache/sling/cms/transformer/TransformationHandler.java
deleted file mode 100644
index f8ed7d9..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/TransformationHandler.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.apache.sling.api.resource.Resource;
-
-import net.coobird.thumbnailator.Thumbnails.Builder;
-
-/*
- * Transformation handlers handle the transformation of files using the Thumbnails library.
- * Each transformation handler implements a transformation command using the specifed configuration.
- */
-@SuppressWarnings("squid:S1214") // I don't like this rule...
-public interface TransformationHandler {
-
-    public static final String HANDLER_RESOURCE_TYPE = "handler.resourceType";
-
-    /**
-     * Get the resource type associated with this handler
-     * 
-     * @return the handler resource type
-     */
-    String getResourceType();
-
-    /**
-     * Handles the transformation of the file using the command values from the
-     * suffix segment.
-     * 
-     * @param builder the Thumbnails builder to use / update
-     * @param config  the configuration values for the transformation
-     * @throws IOException an exception occurs transforming the file
-     */
-    void handle(Builder<? extends InputStream> builder, Resource config) throws IOException;
-
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/TransformationManager.java b/transformer/src/main/java/org/apache/sling/cms/transformer/TransformationManager.java
deleted file mode 100644
index b32457a..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/TransformationManager.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer;
-
-import java.util.List;
-
-/**
- * A Sling Model interface for retrieving the transformations available to a
- * particular resource
- */
-public interface TransformationManager {
-
-    /**
-     * Gets the transformations available to a particular resource based on the CA
-     * Configs
-     * 
-     * @return a list of transformations
-     */
-    List<Transformation> getTransformations();
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/Transformer.java b/transformer/src/main/java/org/apache/sling/cms/transformer/Transformer.java
deleted file mode 100644
index a7e27ef..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/Transformer.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer;
-
-import java.io.IOException;
-import java.io.OutputStream;
-
-import org.apache.sling.api.resource.Resource;
-
-/**
- * Transforms a resource using the registered TransformationHandlers to invoke
- * transformations on the file.
- */
-public interface Transformer {
-
-    /**
-     * Transforms the resource
-     * 
-     * @param resource       the resource to transform
-     * @param transformation the transformation to execute
-     * @param format         the format of the stream to return
-     * @param out            the OutputStream to which to write the transformed file
-     * @throws IOException an exception occurs transforming the resource
-     */
-    void transform(Resource resource, Transformation transformation, OutputFileFormat format, OutputStream out)
-            throws IOException;
-
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/CropHandler.java b/transformer/src/main/java/org/apache/sling/cms/transformer/internal/CropHandler.java
deleted file mode 100644
index 573a915..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/CropHandler.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.cms.transformer.TransformationHandler;
-import org.osgi.service.component.annotations.Component;
-
-import net.coobird.thumbnailator.Thumbnails.Builder;
-import net.coobird.thumbnailator.geometry.Positions;
-
-/**
- * A transformation handler to crop images
- */
-@Component(service = TransformationHandler.class, property = { TransformationHandler.HANDLER_RESOURCE_TYPE
-        + "=sling-cms/components/caconfig/transformationhandlers/crop" }, immediate = true)
-public class CropHandler implements TransformationHandler {
-
-    public static final String PN_POSITION = "position";
-
-    @Override
-    public String getResourceType() {
-        return "sling-cms/components/caconfig/transformationhandlers/crop";
-    }
-
-    @Override
-    public void handle(Builder<? extends InputStream> builder, Resource config) throws IOException {
-        String positionStr = config.getValueMap().get(PN_POSITION, "CENTER").toUpperCase();
-        try {
-            Positions pos = Positions.valueOf(positionStr);
-            builder.crop(pos);
-        } catch (IllegalArgumentException e) {
-            throw new IOException("Unable to load crop position from " + positionStr, e);
-        }
-    }
-
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/ImageThumbnailProvider.java b/transformer/src/main/java/org/apache/sling/cms/transformer/internal/ImageThumbnailProvider.java
deleted file mode 100644
index 79fc9bf..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/ImageThumbnailProvider.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import java.io.InputStream;
-import java.util.Optional;
-
-import org.apache.jackrabbit.JcrConstants;
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.cms.CMSConstants;
-import org.apache.sling.cms.File;
-import org.apache.sling.cms.transformer.ThumbnailProvider;
-import org.osgi.service.component.annotations.Component;
-
-import com.google.common.net.MediaType;
-
-/**
- * A thumbnail provider for image files.
- */
-@Component(service = ThumbnailProvider.class, immediate = true)
-public class ImageThumbnailProvider implements ThumbnailProvider {
-
-    @Override
-    public boolean applies(Resource resource) {
-        return (CMSConstants.NT_FILE.equals(resource.getResourceType())
-                || JcrConstants.NT_FILE.equals(resource.getResourceType()))
-                && Optional.ofNullable(resource.adaptTo(File.class))
-                        .map(f -> MediaType.parse(f.getContentType()).is(MediaType.ANY_IMAGE_TYPE)).orElse(false);
-    }
-
-    @Override
-    public InputStream getThumbnail(Resource resource) {
-        return resource.adaptTo(InputStream.class);
-    }
-
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/PdfThumbnailProvider.java b/transformer/src/main/java/org/apache/sling/cms/transformer/internal/PdfThumbnailProvider.java
deleted file mode 100644
index 0230da9..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/PdfThumbnailProvider.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import java.awt.image.BufferedImage;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Optional;
-
-import javax.imageio.ImageIO;
-
-import org.apache.jackrabbit.JcrConstants;
-import org.apache.pdfbox.pdmodel.PDDocument;
-import org.apache.pdfbox.rendering.ImageType;
-import org.apache.pdfbox.rendering.PDFRenderer;
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.cms.CMSConstants;
-import org.apache.sling.cms.File;
-import org.apache.sling.cms.transformer.ThumbnailProvider;
-import org.osgi.service.component.annotations.Component;
-
-import com.google.common.net.MediaType;
-
-/**
- * A thumbnail provider for PDF documents.
- */
-@Component(service = ThumbnailProvider.class, immediate = true)
-public class PdfThumbnailProvider implements ThumbnailProvider {
-
-    @Override
-    public boolean applies(Resource resource) {
-        return (CMSConstants.NT_FILE.equals(resource.getResourceType())
-                || JcrConstants.NT_FILE.equals(resource.getResourceType()))
-                && Optional.ofNullable(resource.adaptTo(File.class))
-                        .map(r -> MediaType.PDF.is(MediaType.parse(r.getContentType()))).orElse(false);
-    }
-
-    @Override
-    public InputStream getThumbnail(Resource resource) throws IOException {
-        try (PDDocument document = PDDocument.load(resource.adaptTo(InputStream.class))) {
-            PDFRenderer pdfRenderer = new PDFRenderer(document);
-            BufferedImage bim = pdfRenderer.renderImageWithDPI(0, 300, ImageType.RGB);
-            ByteArrayOutputStream os = new ByteArrayOutputStream();
-            ImageIO.write(bim, "jpeg", os);
-            return new ByteArrayInputStream(os.toByteArray());
-        }
-    }
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/SizeHandler.java b/transformer/src/main/java/org/apache/sling/cms/transformer/internal/SizeHandler.java
deleted file mode 100644
index 79bd276..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/SizeHandler.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.cms.transformer.TransformationHandler;
-import org.osgi.service.component.annotations.Component;
-
-import net.coobird.thumbnailator.Thumbnails.Builder;
-
-/**
- * A transformer for resizing an image
- */
-@Component(service = TransformationHandler.class, property = { TransformationHandler.HANDLER_RESOURCE_TYPE
-        + "=sling-cms/components/caconfig/transformationhandlers/size" }, immediate = true)
-public class SizeHandler implements TransformationHandler {
-
-    public static final String PN_HEIGHT = "height";
-    public static final String PN_WIDTH = "width";
-
-    @Override
-    public String getResourceType() {
-        return "sling-cms/components/caconfig/transformationhandlers/size";
-    }
-
-    @Override
-    public void handle(Builder<? extends InputStream> builder, Resource config) throws IOException {
-        int width = config.getValueMap().get(PN_WIDTH, -1);
-        int height = config.getValueMap().get(PN_HEIGHT, -1);
-        builder.size(width, height);
-    }
-
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/SlideShowThumbnailProvider.java b/transformer/src/main/java/org/apache/sling/cms/transformer/internal/SlideShowThumbnailProvider.java
deleted file mode 100644
index e87371b..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/SlideShowThumbnailProvider.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import java.awt.Color;
-import java.awt.Dimension;
-import java.awt.Graphics2D;
-import java.awt.geom.Rectangle2D;
-import java.awt.image.BufferedImage;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.List;
-import java.util.Optional;
-
-import javax.imageio.ImageIO;
-
-import org.apache.commons.io.output.ByteArrayOutputStream;
-import org.apache.jackrabbit.JcrConstants;
-import org.apache.poi.hslf.usermodel.HSLFSlideShow;
-import org.apache.poi.sl.usermodel.Slide;
-import org.apache.poi.sl.usermodel.SlideShow;
-import org.apache.poi.xslf.usermodel.XMLSlideShow;
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.cms.CMSConstants;
-import org.apache.sling.cms.File;
-import org.apache.sling.cms.transformer.OutputFileFormat;
-import org.apache.sling.cms.transformer.ThumbnailProvider;
-import org.apache.sling.commons.classloader.DynamicClassLoaderManager;
-import org.osgi.service.component.annotations.Component;
-import org.osgi.service.component.annotations.Reference;
-
-import com.google.common.net.MediaType;
-
-/**
- * Provides Thumbnails for Microsoft PPT and PPTX files.
- */
-@Component(service = ThumbnailProvider.class, immediate = true)
-public class SlideShowThumbnailProvider implements ThumbnailProvider {
-
-    @Reference
-    private DynamicClassLoaderManager dclm;
-
-    @Override
-    public boolean applies(Resource resource) {
-        return (CMSConstants.NT_FILE.equals(resource.getResourceType())
-                || JcrConstants.NT_FILE.equals(resource.getResourceType()))
-                && Optional.ofNullable(resource.adaptTo(File.class)).map(f -> {
-                    MediaType mt = MediaType.parse(f.getContentType());
-                    return mt.is(MediaType.MICROSOFT_POWERPOINT) || mt.is(MediaType.OOXML_PRESENTATION);
-                }).orElse(false);
-    }
-
-    @Override
-    public InputStream getThumbnail(Resource resource) throws IOException {
-        if (dclm != null) {
-            Thread.currentThread().setContextClassLoader(dclm.getDynamicClassLoader());
-        }
-
-        SlideShow<?, ?> ppt = null;
-        MediaType mt = MediaType.parse(resource.adaptTo(File.class).getContentType());
-        try (ByteArrayOutputStream baos = new ByteArrayOutputStream();
-                InputStream is = resource.adaptTo(InputStream.class)) {
-            if (mt.is(MediaType.MICROSOFT_POWERPOINT)) {
-                ppt = new HSLFSlideShow(is);
-            } else {
-                ppt = new XMLSlideShow(is);
-            }
-            Dimension dim = ppt.getPageSize();
-            List<? extends Slide<?, ?>> slides = ppt.getSlides();
-
-            BufferedImage img = new BufferedImage(dim.width, dim.height, BufferedImage.TYPE_INT_RGB);
-            Graphics2D graphics = img.createGraphics();
-            graphics.setPaint(Color.white);
-            graphics.fill(new Rectangle2D.Float(0, 0, dim.width, dim.height));
-
-            if (slides != null && !slides.isEmpty()) {
-                slides.get(0).draw(graphics);
-            }
-
-            ImageIO.write(img, OutputFileFormat.PNG.toString(), baos);
-            return new ByteArrayInputStream(baos.toByteArray());
-        } finally {
-            if (ppt != null) {
-                ppt.close();
-            }
-        }
-    }
-
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TikaFallbackProvider.java b/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TikaFallbackProvider.java
deleted file mode 100644
index bfb2bbb..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TikaFallbackProvider.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import java.awt.Graphics;
-import java.awt.image.BufferedImage;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-import javax.imageio.ImageIO;
-import javax.swing.JEditorPane;
-
-import org.apache.jackrabbit.JcrConstants;
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.cms.CMSConstants;
-import org.apache.sling.cms.transformer.OutputFileFormat;
-import org.apache.sling.cms.transformer.ThumbnailProvider;
-import org.apache.tika.exception.TikaException;
-import org.apache.tika.metadata.Metadata;
-import org.apache.tika.parser.AutoDetectParser;
-import org.apache.tika.parser.ParseContext;
-import org.apache.tika.parser.Parser;
-import org.apache.tika.sax.BodyContentHandler;
-import org.apache.tika.sax.WriteOutContentHandler;
-import org.osgi.framework.Constants;
-import org.osgi.service.component.annotations.Component;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.xml.sax.SAXException;
-
-@Component(service = ThumbnailProvider.class, property = {
-        Constants.SERVICE_RANKING + "=" + Integer.MIN_VALUE }, immediate = true)
-public class TikaFallbackProvider implements ThumbnailProvider {
-
-    private static final Logger log = LoggerFactory.getLogger(TikaFallbackProvider.class);
-
-    @Override
-    public boolean applies(Resource resource) {
-        return (CMSConstants.NT_FILE.equals(resource.getResourceType())
-                || JcrConstants.NT_FILE.equals(resource.getResourceType()));
-    }
-
-    @Override
-    public InputStream getThumbnail(Resource resource) throws IOException {
-
-        log.info("Extracting content thumbnail from {}", resource.getPath());
-        try {
-
-            log.debug("Extracting file contents");
-            String contents = extractContents(resource);
-
-            log.debug("Creating thumbnail of file contents");
-            int width = 500;
-            int height = 500;
-            BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
-            Graphics graphics = image.createGraphics();
-            JEditorPane jep = new JEditorPane("text/html", contents);
-            jep.setSize(width, height);
-            jep.print(graphics);
-
-            ByteArrayOutputStream baos = new ByteArrayOutputStream();
-            ImageIO.write(image, OutputFileFormat.PNG.toString(), baos);
-            return new ByteArrayInputStream(baos.toByteArray());
-        } catch (SAXException | TikaException e) {
-            throw new IOException("Failed to generate thumbnail from " + resource.getPath(), e);
-        }
-    }
-
-    private String extractContents(Resource resource) throws IOException, TikaException, SAXException {
-        InputStream is = resource.adaptTo(InputStream.class);
-        Parser parser = new AutoDetectParser();
-        WriteOutContentHandler woHandler = new WriteOutContentHandler();
-        BodyContentHandler bHandler = new BodyContentHandler(woHandler);
-        
-        Metadata md = new Metadata();
-        ParseContext context = new ParseContext();
-        try {
-            parser.parse(is, bHandler, md, context);
-        } catch (SAXException se) {
-            if (woHandler.isWriteLimitReached(se)) {
-                log.debug("Reached write limit for preview generation");
-            } else {
-                throw se;
-            }
-        }
-        return bHandler.toString();
-    }
-
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TransformServlet.java b/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TransformServlet.java
deleted file mode 100644
index 40c8e86..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TransformServlet.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import javax.jcr.query.Query;
-import javax.servlet.RequestDispatcher;
-import javax.servlet.Servlet;
-import javax.servlet.ServletException;
-
-import org.apache.commons.lang3.StringUtils;
-import org.apache.jackrabbit.JcrConstants;
-import org.apache.poi.util.IOUtils;
-import org.apache.sling.api.SlingHttpServletRequest;
-import org.apache.sling.api.SlingHttpServletResponse;
-import org.apache.sling.api.request.RequestDispatcherOptions;
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.api.resource.ResourceResolver;
-import org.apache.sling.api.resource.ResourceUtil;
-import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
-import org.apache.sling.cms.CMSConstants;
-import org.apache.sling.cms.transformer.OutputFileFormat;
-import org.apache.sling.cms.transformer.Transformation;
-import org.apache.sling.cms.transformer.Transformer;
-import org.osgi.service.component.annotations.Activate;
-import org.osgi.service.component.annotations.Component;
-import org.osgi.service.component.annotations.Reference;
-import org.osgi.service.metatype.annotations.Designate;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * A servlet to transform images using the FileThumbnailTransformer API. Can be
- * invoked using the syntax:
- * 
- * /content/file/path.jpg.transform/transformation-name.png
- */
-@Component(service = { Servlet.class }, property = { "sling.servlet.extensions=transform",
-        "sling.servlet.resourceTypes=sling:File", "sling.servlet.resourceTypes=nt:file" })
-@Designate(ocd = TransformServletConfig.class)
-public class TransformServlet extends SlingSafeMethodsServlet {
-
-    private static final Logger log = LoggerFactory.getLogger(TransformServlet.class);
-
-    private static final long serialVersionUID = -1513067546618762171L;
-
-    public static final String SERVICE_USER = "sling-cms-transformer";
-
-    private transient TransformationServiceUser transformationServiceUser;
-
-    private transient Transformer transformer;
-    
-    private transient TransformServletConfig config;
-    
-    @Activate
-    public void activate(TransformServletConfig config) {
-        this.config = config;
-    }
-
-    @Override
-    protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response)
-            throws ServletException, IOException {
-        log.trace("doGet");
-
-        String name = StringUtils.substringBeforeLast(request.getRequestPathInfo().getSuffix(), ".");
-        response.setHeader("Content-Disposition", "filename=" + request.getResource().getName());
-        String format = StringUtils.substringAfterLast(request.getRequestPathInfo().getSuffix(), ".");
-        log.debug("Transforming resource: {} with transformation: {} to {}", request.getResource(), name, format);
-        String original = response.getContentType();
-        try (ResourceResolver serviceResolver = transformationServiceUser.getTransformationServiceUser()) {
-            Transformation transformation = findTransformation(serviceResolver, name);
-            if (transformation != null) {
-                response.setContentType(OutputFileFormat.forRequest(request).getMimeType());
-                String expectedPath = "jcr:content/renditions/" + name + "." + format;
-                Resource rendition = request.getResource().getChild(expectedPath);
-                if (rendition != null) {
-                    log.debug("Using existing rendition {}", name);
-                    IOUtils.copy(rendition.adaptTo(InputStream.class), response.getOutputStream());
-                } else {
-                    log.debug("Creating new rendition {}", name);
-                    ByteArrayOutputStream baos = new ByteArrayOutputStream();
-                    transformer.transform(request.getResource(), transformation,
-                            OutputFileFormat.valueOf(format.toUpperCase()), baos);
-                    IOUtils.copy(new ByteArrayInputStream(baos.toByteArray()), response.getOutputStream());
-                    if (CMSConstants.NT_FILE.equals(request.getResource().getResourceType())) {
-                        Resource file = ResourceUtil.getOrCreateResource(serviceResolver,
-                                request.getResource().getPath() + "/" + expectedPath,
-                                Collections.singletonMap(JcrConstants.JCR_PRIMARYTYPE, JcrConstants.NT_FILE),
-                                JcrConstants.NT_UNSTRUCTURED, false);
-                        Map<String, Object> properties = new HashMap<>();
-                        properties.put(JcrConstants.JCR_PRIMARYTYPE, JcrConstants.NT_UNSTRUCTURED);
-                        properties.put(JcrConstants.JCR_DATA, new ByteArrayInputStream(baos.toByteArray()));
-                        ResourceUtil.getOrCreateResource(serviceResolver,
-                                file.getPath() + "/" + JcrConstants.JCR_CONTENT, properties,
-                                JcrConstants.NT_UNSTRUCTURED, true);
-                    }
-
-                }
-            } else {
-                log.error("Exception transforming image: {} with transformation: {}", request.getResource(), name);
-                response.setContentType(original);
-                response.sendError(400, "Could not transform image with transformation: " + name);
-            }
-        } catch (Exception e) {
-            log.error("Exception rendering transformed resource", e);
-            response.setStatus(500);
-            RequestDispatcherOptions op = new RequestDispatcherOptions();
-            op.setReplaceSuffix(config.errorSuffix());
-            op.setReplaceSelectors("transform");
-            RequestDispatcher disp = request.getRequestDispatcher(config.errorResourcePath(), op);
-            disp.forward(request, response);
-        }
-    }
-
-    protected Transformation findTransformation(ResourceResolver serviceResolver, String name) {
-        name = name.substring(1).replace("'", "''");
-        log.debug("Finding transformations with {}", name);
-
-        Iterator<Resource> transformations = serviceResolver.findResources(
-                "SELECT * FROM [nt:unstructured] WHERE (ISDESCENDANTNODE([/conf]) OR ISDESCENDANTNODE([/libs/conf]) OR ISDESCENDANTNODE([/apps/conf])) AND [sling:resourceType]='sling-cms/components/caconfig/transformation' AND [name]='"
-                        + name + "'",
-                Query.JCR_SQL2);
-        if (transformations.hasNext()) {
-            Resource transformation = transformations.next();
-            return transformation.adaptTo(Transformation.class);
-        }
-
-        return null;
-    }
-
-    @Reference
-    public void setTransformationServiceUser(TransformationServiceUser transformationServiceUser) {
-        this.transformationServiceUser = transformationServiceUser;
-    }
-
-    @Reference
-    public void setTransformer(Transformer transformer) {
-        this.transformer = transformer;
-    }
-
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TransformServletConfig.java b/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TransformServletConfig.java
deleted file mode 100644
index ee2d970..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TransformServletConfig.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import org.osgi.service.metatype.annotations.AttributeDefinition;
-import org.osgi.service.metatype.annotations.ObjectClassDefinition;
-
-@ObjectClassDefinition(name = "%transformservlet.name", description = "%transformservlet.description", localization = "OSGI-INF/l10n/bundle")
-public @interface TransformServletConfig {
-
-    @AttributeDefinition(name = "%transformservlet.errorResourcePath.name", description = "%transformservlet.errorResourcePath.description")
-    String errorResourcePath() default "/static/sling-cms/thumbnails/file.png";
-    
-    @AttributeDefinition(name = "%transformservlet.errorSuffix.name", description = "%transformservlet.errorSuffix.description")
-    String errorSuffix() default "/sling-cms-thumbnail.png";
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TransformationServiceUser.java b/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TransformationServiceUser.java
deleted file mode 100644
index 210729c..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TransformationServiceUser.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import java.util.Collections;
-
-import org.apache.sling.api.resource.LoginException;
-import org.apache.sling.api.resource.ResourceResolver;
-import org.apache.sling.api.resource.ResourceResolverFactory;
-import org.osgi.service.component.annotations.Component;
-import org.osgi.service.component.annotations.Reference;
-
-/**
- * Service for retrieving the service user
- */
-@Component(service = TransformationServiceUser.class)
-public class TransformationServiceUser {
-
-    public static final String SERVICE_USER = "sling-cms-transformer";
-
-    private ResourceResolverFactory resolverFactory;
-
-    public ResourceResolver getTransformationServiceUser() throws LoginException {
-        return resolverFactory
-                .getServiceResourceResolver(Collections.singletonMap(ResourceResolverFactory.SUBSERVICE, SERVICE_USER));
-    }
-
-    @Reference
-    public void setResolverFactory(ResourceResolverFactory resolverFactory) {
-        this.resolverFactory = resolverFactory;
-    }
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TransformerImpl.java b/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TransformerImpl.java
deleted file mode 100644
index 1fb7477..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TransformerImpl.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.cms.transformer.OutputFileFormat;
-import org.apache.sling.cms.transformer.ThumbnailProvider;
-import org.apache.sling.cms.transformer.Transformation;
-import org.apache.sling.cms.transformer.TransformationHandler;
-import org.apache.sling.cms.transformer.Transformer;
-import org.osgi.service.component.annotations.Component;
-import org.osgi.service.component.annotations.Reference;
-import org.osgi.service.component.annotations.ReferenceCardinality;
-import org.osgi.service.component.annotations.ReferencePolicyOption;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.collect.Lists;
-
-import net.coobird.thumbnailator.Thumbnails;
-import net.coobird.thumbnailator.Thumbnails.Builder;
-
-@Component(service = Transformer.class)
-public class TransformerImpl implements Transformer {
-
-    private static final Logger log = LoggerFactory.getLogger(TransformerImpl.class);
-
-    @Reference(cardinality = ReferenceCardinality.AT_LEAST_ONE, policyOption = ReferencePolicyOption.GREEDY)
-    private List<TransformationHandler> handlers;
-
-    @Reference(cardinality = ReferenceCardinality.AT_LEAST_ONE, policyOption = ReferencePolicyOption.GREEDY)
-    private List<ThumbnailProvider> thumbnailProviders;
-
-    public void addThumbnailProvider(ThumbnailProvider thumbnailProvider) {
-        if (thumbnailProviders == null) {
-            thumbnailProviders = new ArrayList<>();
-        }
-        this.thumbnailProviders.add(thumbnailProvider);
-    }
-
-    public void addTransformationHandler(TransformationHandler handler) {
-        if (handlers == null) {
-            handlers = new ArrayList<>();
-        }
-        handlers.add(handler);
-    }
-
-    public List<TransformationHandler> getHandlers() {
-        return handlers;
-    }
-
-    private ThumbnailProvider getThumbnailProvider(Resource resource) throws IOException {
-        return Lists.reverse(thumbnailProviders).stream().filter(tp -> tp.applies(resource)).findFirst()
-                .orElseThrow(() -> new IOException("Unable to find thumbnail provider for: " + resource.getPath()));
-    }
-
-    /**
-     * @return the thumbnailProviders
-     */
-    public List<ThumbnailProvider> getThumbnailProviders() {
-        return thumbnailProviders;
-    }
-
-    public TransformationHandler getTransformationHandler(String resourceType) {
-        return handlers.stream().filter(h -> resourceType.equals(h.getResourceType())).findFirst().orElse(null);
-    }
-
-    @Override
-    public void transform(Resource resource, Transformation transformation, OutputFileFormat format, OutputStream out)
-            throws IOException {
-        ThumbnailProvider provider = getThumbnailProvider(resource);
-        log.debug("Using thumbnail provider {} for resource {}", provider, resource);
-        Builder<? extends InputStream> builder = Thumbnails.of(provider.getThumbnail(resource));
-        for (Resource config : transformation.getHandlers()) {
-            log.debug("Handling command: {}", config);
-            TransformationHandler handler = getTransformationHandler(config.getResourceType());
-            if (handler != null) {
-                log.debug("Invoking handler {} for command {}", handler.getClass().getCanonicalName(),
-                        config.getName());
-                handler.handle(builder, config);
-            } else {
-                log.info("No handler found for: {}", config.getName());
-            }
-        }
-        builder.outputFormat(format.toString());
-        builder.toOutputStream(out);
-
-    }
-
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TransformerWebConsole.java b/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TransformerWebConsole.java
deleted file mode 100644
index 4422894..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TransformerWebConsole.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.List;
-
-import javax.servlet.Servlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.felix.webconsole.AbstractWebConsolePlugin;
-import org.apache.felix.webconsole.WebConsoleConstants;
-import org.apache.sling.cms.transformer.ThumbnailProvider;
-import org.apache.sling.cms.transformer.TransformationHandler;
-import org.apache.sling.cms.transformer.Transformer;
-import org.osgi.framework.Constants;
-import org.osgi.service.component.annotations.Component;
-import org.osgi.service.component.annotations.Reference;
-
-import com.google.common.collect.Lists;
-
-/**
- * Simple web console plugin for listing out the registered thumbnail providers
- * and transformation handler
- */
-@Component(property = { Constants.SERVICE_DESCRIPTION + "=Web Console Plugin for Apache Sling CMS Transformer",
-        Constants.SERVICE_VENDOR + "=The Apache Software Foundation",
-        WebConsoleConstants.PLUGIN_LABEL + "=" + TransformerWebConsole.CONSOLE_LABEL,
-        WebConsoleConstants.PLUGIN_TITLE + "=" + TransformerWebConsole.CONSOLE_TITLE,
-        WebConsoleConstants.CONFIG_PRINTER_MODES + "=always",
-        WebConsoleConstants.PLUGIN_CATEGORY + "=Status" }, service = { Servlet.class })
-public class TransformerWebConsole extends AbstractWebConsolePlugin {
-
-    private static final long serialVersionUID = 4819043498961127418L;
-    public static final String CONSOLE_LABEL = "slingcms-transformer";
-    public static final String CONSOLE_TITLE = "Sling CMS Transformer";
-
-    @SuppressWarnings({ "squid:S2078", "squid:S2226" }) // ignore since this field is is injected by OSGi
-    @Reference
-    private transient Transformer transformer;
-
-    @Override
-    public String getTitle() {
-        return CONSOLE_TITLE;
-    }
-
-    @Override
-    public String getLabel() {
-        return CONSOLE_LABEL;
-    }
-
-    @Override
-    protected void renderContent(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse)
-            throws IOException {
-        PrintWriter pw = httpServletResponse.getWriter();
-        pw.println("<div id='content' class='ui-widget'><br>");
-        pw.println("<pre>");
-        pw.println("Registered Thumbnail Providers");
-        pw.println("========================");
-        List<ThumbnailProvider> providers = ((TransformerImpl) transformer).getThumbnailProviders();
-        Lists.reverse(providers).forEach(p -> pw.println(p.getClass().getName()));
-        pw.println("</pre><br/>");
-        pw.println("<pre>");
-        pw.println("Registered Transformation Handlers");
-        pw.println("========================");
-
-        List<TransformationHandler> handlers = ((TransformerImpl) transformer).getHandlers();
-        handlers.forEach(h -> pw.println(h.getResourceType() + "=" + h.getClass().getCanonicalName()));
-        pw.println("</pre>");
-        pw.println("</div>");
-    }
-
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/models/TransformationImpl.java b/transformer/src/main/java/org/apache/sling/cms/transformer/internal/models/TransformationImpl.java
deleted file mode 100644
index 433ac67..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/models/TransformationImpl.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal.models;
-
-import java.util.List;
-
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.cms.transformer.Transformation;
-import org.apache.sling.models.annotations.Model;
-import org.apache.sling.models.annotations.injectorspecific.ChildResource;
-import org.apache.sling.models.annotations.injectorspecific.ValueMapValue;
-
-@Model(adaptables = Resource.class, adapters = Transformation.class)
-public class TransformationImpl implements Transformation {
-
-    @ChildResource
-    private List<Resource> handlers;
-
-    @ValueMapValue
-    private String name;
-
-    @Override
-    public List<Resource> getHandlers() {
-        return handlers;
-    }
-
-    @Override
-    public String getName() {
-        return name;
-    }
-
-    public void sethandlers(List<Resource> handlers) {
-        this.handlers = handlers;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/models/TransformationManagerImpl.java b/transformer/src/main/java/org/apache/sling/cms/transformer/internal/models/TransformationManagerImpl.java
deleted file mode 100644
index 0458866..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/models/TransformationManagerImpl.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal.models;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.caconfig.resource.ConfigurationResourceResolver;
-import org.apache.sling.cms.transformer.Transformation;
-import org.apache.sling.cms.transformer.TransformationManager;
-import org.apache.sling.models.annotations.Model;
-import org.apache.sling.models.annotations.injectorspecific.OSGiService;
-
-@Model(adaptables = Resource.class, adapters = TransformationManager.class)
-public class TransformationManagerImpl implements TransformationManager {
-
-    private Resource resource;
-
-    @OSGiService
-    private ConfigurationResourceResolver configResourceResolver;
-
-    public TransformationManagerImpl(Resource resource) {
-        this.resource = resource;
-    }
-
-    @Override
-    public List<Transformation> getTransformations() {
-        Collection<Resource> transformationResources = configResourceResolver.getResourceCollection(resource, "files",
-                "transformations");
-        return transformationResources.stream().map(r -> r.adaptTo(Transformation.class)).collect(Collectors.toList());
-    }
-
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/package-info.java b/transformer/src/main/java/org/apache/sling/cms/transformer/package-info.java
deleted file mode 100644
index 0594c64..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/package-info.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * Package with all of the common models used to access content in the Sling
- * reference CMS
- *
- * @since 0.10.0
- */
-@org.osgi.annotation.versioning.Version("1.0.0")
-package org.apache.sling.cms.transformer;
diff --git a/transformer/src/main/resources/OSGI-INF/l10n/bundle.properties b/transformer/src/main/resources/OSGI-INF/l10n/bundle.properties
deleted file mode 100644
index 8e4e008..0000000
--- a/transformer/src/main/resources/OSGI-INF/l10n/bundle.properties
+++ /dev/null
@@ -1,35 +0,0 @@
-#
-#  Licensed to the Apache Software Foundation (ASF) under one
-#  or more contributor license agreements.  See the NOTICE file
-#  distributed with this work for additional information
-#  regarding copyright ownership.  The ASF licenses this file
-#  to you under the Apache License, Version 2.0 (the
-#  "License"); you may not use this file except in compliance
-#  with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-#  Unless required by applicable law or agreed to in writing,
-#  software distributed under the License is distributed on an
-#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#  KIND, either express or implied.  See the License for the
-#  specific language governing permissions and limitations
-#  under the License.
-#
-
-#
-# This file contains localization strings for configuration labels and
-# descriptions as used in the metatype.xml descriptor generated by the
-# the Sling SCR plugin
-
-## Transformation Servlet Entries
-transformservlet.name=Apache Sling CMS - Transform Servlet
-transformservlet.description=Servlet for transforming files into image renditions
-
-transformservlet.errorResourcePath.name=Error Resource Path
-transformservlet.errorResourcePath.name.description=The path of the resource to forward \
-if an error occurs transforming the provided resource
-
-transformservlet.errorSuffix.name=Error Suffix
-transformservlet.errorSuffix.name.description=The suffix to forward to \
-if an error occurs transforming the provided resource
diff --git a/transformer/src/test/java/org/apache/sling/cms/transformer/helpers/SlingCMSContextHelper.java b/transformer/src/test/java/org/apache/sling/cms/transformer/helpers/SlingCMSContextHelper.java
deleted file mode 100644
index a0acb90..0000000
--- a/transformer/src/test/java/org/apache/sling/cms/transformer/helpers/SlingCMSContextHelper.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.helpers;
-
-import java.io.InputStream;
-import java.util.function.Function;
-
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.testing.mock.sling.junit.SlingContext;
-
-public class SlingCMSContextHelper {
-
-    public static final void initContext(SlingContext context) {
-        context.addModelsForPackage("org.apache.sling.cms.core.internal.models");
-        context.addModelsForPackage("org.apache.sling.cms.core.models");
-
-        context.load().json("/content.json", "/content");
-        context.load().binaryResource("/apache.png", "/content/apache/sling-apache-org/index/apache.png/jcr:content");
-        context.load().binaryResource("/sling.pdf", "/content/apache/sling-apache-org/index/sling.pdf/jcr:content");
-        context.load().binaryResource("/Sling.docx", "/content/apache/sling-apache-org/index/Sling.docx/jcr:content");
-        context.load().binaryResource("/Sling.pptx", "/content/apache/sling-apache-org/index/Sling.pptx/jcr:content");
-        context.load().binaryResource("/Sling.ppt", "/content/apache/sling-apache-org/index/Sling.ppt/jcr:content");
-        context.load().binaryResource("/editor.min.css", "/content/apache/sling-apache-org/index/editor.min.css/jcr:content");
-
-        context.registerAdapter(Resource.class, InputStream.class, new Function<Resource, InputStream>() {
-            public InputStream apply(Resource input) {
-                return input.getValueMap().get("jcr:content/jcr:data", InputStream.class);
-            }
-        });
-
-    }
-}
diff --git a/transformer/src/test/java/org/apache/sling/cms/transformer/internal/CropHandlerTest.java b/transformer/src/test/java/org/apache/sling/cms/transformer/internal/CropHandlerTest.java
deleted file mode 100644
index 7f043ce..0000000
--- a/transformer/src/test/java/org/apache/sling/cms/transformer/internal/CropHandlerTest.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.fail;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Collections;
-
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.api.resource.ResourceResolver;
-import org.apache.sling.testing.resourceresolver.MockResource;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.Mockito;
-
-import net.coobird.thumbnailator.Thumbnails;
-import net.coobird.thumbnailator.Thumbnails.Builder;
-
-public class CropHandlerTest {
-
-    private Builder<? extends InputStream> builder;
-    private CropHandler cropper;
-
-    @Before
-    public void init() {
-        builder = Thumbnails.of(getClass().getClassLoader().getResourceAsStream("apache.png"));
-        builder.size(200, 200);
-        cropper = new CropHandler();
-    }
-
-    @Test
-    public void testCrop() throws IOException {
-        Resource config = new MockResource("/conf", Collections.singletonMap(CropHandler.PN_POSITION, "CENTER"),
-                Mockito.mock(ResourceResolver.class));
-        cropper.handle(builder, config);
-        assertNotNull(builder.asBufferedImage());
-    }
-
-    @Test
-    public void testCropLower() throws IOException {
-
-        Resource config = new MockResource("/conf", Collections.singletonMap(CropHandler.PN_POSITION, "center"),
-                Mockito.mock(ResourceResolver.class));
-        cropper.handle(builder, config);
-        assertNotNull(builder.asBufferedImage());
-    }
-
-    @Test
-    public void testInvalidParam() throws IOException {
-        try {
-
-            Resource config = new MockResource("/conf", Collections.singletonMap(CropHandler.PN_POSITION, "centerz"),
-                    Mockito.mock(ResourceResolver.class));
-            cropper.handle(builder, config);
-            fail();
-        } catch (IOException e) {
-        }
-    }
-
-}
diff --git a/transformer/src/test/java/org/apache/sling/cms/transformer/internal/ImageThumbnailProviderTest.java b/transformer/src/test/java/org/apache/sling/cms/transformer/internal/ImageThumbnailProviderTest.java
deleted file mode 100644
index 05e85c6..0000000
--- a/transformer/src/test/java/org/apache/sling/cms/transformer/internal/ImageThumbnailProviderTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.IOException;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.cms.transformer.helpers.SlingCMSContextHelper;
-import org.apache.sling.testing.mock.sling.junit.SlingContext;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class ImageThumbnailProviderTest {
-
-    private static final Logger log = LoggerFactory.getLogger(ImageThumbnailProviderTest.class);
-
-    @Rule
-    public final SlingContext context = new SlingContext();
-
-    private Resource imageFile;
-    private Resource pdfFile;
-
-    @Before
-    public void init() {
-        SlingCMSContextHelper.initContext(context);
-
-        imageFile = context.resourceResolver().getResource("/content/apache/sling-apache-org/index/apache.png");
-
-        pdfFile = context.resourceResolver().getResource("/content/apache/sling-apache-org/index/sling.pdf");
-    }
-
-    @Test
-    public void testContentTypes() throws IOException {
-        log.info("testContentTypes");
-        ImageThumbnailProvider itp = new ImageThumbnailProvider();
-
-        assertTrue(itp.applies(imageFile));
-        assertFalse(itp.applies(pdfFile));
-    }
-
-    @Test
-    public void testImageThumbnailProvider() throws IOException {
-        log.info("testImageThumbnailProvider");
-        ImageThumbnailProvider itp = new ImageThumbnailProvider();
-
-        assertNotNull(itp.getThumbnail(imageFile));
-        assertArrayEquals(IOUtils.toByteArray(getClass().getClassLoader().getResourceAsStream("apache.png")),
-                IOUtils.toByteArray(itp.getThumbnail(imageFile)));
-    }
-
-}
diff --git a/transformer/src/test/java/org/apache/sling/cms/transformer/internal/PdfThumbnailProviderTest.java b/transformer/src/test/java/org/apache/sling/cms/transformer/internal/PdfThumbnailProviderTest.java
deleted file mode 100644
index 2bf6f4a..0000000
--- a/transformer/src/test/java/org/apache/sling/cms/transformer/internal/PdfThumbnailProviderTest.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.IOException;
-
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.cms.transformer.helpers.SlingCMSContextHelper;
-import org.apache.sling.testing.mock.sling.junit.SlingContext;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class PdfThumbnailProviderTest {
-
-    private static final Logger log = LoggerFactory.getLogger(PdfThumbnailProviderTest.class);
-
-    @Rule
-    public final SlingContext context = new SlingContext();
-
-    private Resource imageFile;
-    private Resource pdfFile;
-
-    @Before
-    public void init() {
-        SlingCMSContextHelper.initContext(context);
-        imageFile = context.resourceResolver().getResource("/content/apache/sling-apache-org/index/apache.png");
-        pdfFile = context.resourceResolver().getResource("/content/apache/sling-apache-org/index/sling.pdf");
-    }
-
-    @Test
-    public void testContentTypes() throws IOException {
-        log.info("testContentTypes");
-        PdfThumbnailProvider ptp = new PdfThumbnailProvider();
-        assertFalse(ptp.applies(imageFile));
-        assertTrue(ptp.applies(pdfFile));
-    }
-
-    @Test
-    public void testPDFThumbnailProvider() throws IOException {
-        log.info("testPDFThumbnailProvider");
-        PdfThumbnailProvider ptp = new PdfThumbnailProvider();
-        assertNotNull(ptp.getThumbnail(pdfFile));
-    }
-
-}
diff --git a/transformer/src/test/java/org/apache/sling/cms/transformer/internal/SizeHandlerTest.java b/transformer/src/test/java/org/apache/sling/cms/transformer/internal/SizeHandlerTest.java
deleted file mode 100644
index 55e2d51..0000000
--- a/transformer/src/test/java/org/apache/sling/cms/transformer/internal/SizeHandlerTest.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.fail;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.sling.api.resource.ResourceResolver;
-import org.apache.sling.testing.resourceresolver.MockResource;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.Mockito;
-
-import net.coobird.thumbnailator.Thumbnails;
-import net.coobird.thumbnailator.Thumbnails.Builder;
-
-public class SizeHandlerTest {
-
-    private Builder<? extends InputStream> builder;
-    private SizeHandler sizer;
-
-    @Before
-    public void init() {
-        builder = Thumbnails.of(getClass().getClassLoader().getResourceAsStream("apache.png"));
-        sizer = new SizeHandler();
-    }
-
-    @Test
-    public void testResize() throws IOException {
-
-        Map<String, Object> config = new HashMap<>();
-        config.put(SizeHandler.PN_WIDTH, 200);
-        config.put(SizeHandler.PN_HEIGHT, 200);
-        sizer.handle(builder, new MockResource("/conf", config, Mockito.mock(ResourceResolver.class)));
-        assertNotNull(builder.asBufferedImage());
-    }
-
-    @Test
-    public void testInvalidWidth() throws IOException {
-        try {
-            Map<String, Object> config = new HashMap<>();
-            config.put(SizeHandler.PN_WIDTH, "K");
-            config.put(SizeHandler.PN_HEIGHT, 200);
-            sizer.handle(builder, new MockResource("/conf", config, Mockito.mock(ResourceResolver.class)));
-            fail();
-        } catch (IOException | IllegalArgumentException e) {
-        }
-    }
-
-    @Test
-    public void testInvalidHeight() throws IOException {
-        try {
-            Map<String, Object> config = new HashMap<>();
-            config.put(SizeHandler.PN_WIDTH, 200);
-            config.put(SizeHandler.PN_HEIGHT, "h");
-            sizer.handle(builder, new MockResource("/conf", config, Mockito.mock(ResourceResolver.class)));
-            fail();
-        } catch (IOException | IllegalArgumentException e) {
-        }
-    }
-
-}
diff --git a/transformer/src/test/java/org/apache/sling/cms/transformer/internal/SlideShowThumbnailProviderTest.java b/transformer/src/test/java/org/apache/sling/cms/transformer/internal/SlideShowThumbnailProviderTest.java
deleted file mode 100644
index e4a059b..0000000
--- a/transformer/src/test/java/org/apache/sling/cms/transformer/internal/SlideShowThumbnailProviderTest.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.IOException;
-
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.cms.transformer.ThumbnailProvider;
-import org.apache.sling.cms.transformer.helpers.SlingCMSContextHelper;
-import org.apache.sling.testing.mock.sling.junit.SlingContext;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class SlideShowThumbnailProviderTest {
-
-    private static final Logger log = LoggerFactory.getLogger(SlideShowThumbnailProviderTest.class);
-
-    @Rule
-    public final SlingContext context = new SlingContext();
-
-    private Resource docxFile;
-    private Resource pptFile;
-    private Resource pptxFile;
-
-    private ThumbnailProvider provider;
-
-    @Before
-    public void init() {
-        SlingCMSContextHelper.initContext(context);
-        docxFile = context.resourceResolver().getResource("/content/apache/sling-apache-org/index/Sling.docx");
-        pptxFile = context.resourceResolver().getResource("/content/apache/sling-apache-org/index/Sling.pptx");
-        pptFile = context.resourceResolver().getResource("/content/apache/sling-apache-org/index/Sling.ppt");
-        provider = new SlideShowThumbnailProvider();
-    }
-
-    @Test
-    public void testApplies() throws IOException {
-        log.info("testApplies");
-        assertTrue(provider.applies(pptxFile));
-        assertTrue(provider.applies(pptFile));
-        assertFalse(provider.applies(docxFile));
-    }
-
-    @Test
-    public void testGetThumbnail() throws IOException {
-        log.info("testGetThumbnail");
-        assertNotNull(provider.getThumbnail(pptxFile));
-        assertNotNull(provider.getThumbnail(pptFile));
-    }
-
-}
diff --git a/transformer/src/test/java/org/apache/sling/cms/transformer/internal/TikaFallbackProviderTest.java b/transformer/src/test/java/org/apache/sling/cms/transformer/internal/TikaFallbackProviderTest.java
deleted file mode 100644
index 73330c4..0000000
--- a/transformer/src/test/java/org/apache/sling/cms/transformer/internal/TikaFallbackProviderTest.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import static org.junit.Assert.assertNotNull;
-
-import java.io.IOException;
-
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.cms.transformer.helpers.SlingCMSContextHelper;
-import org.apache.sling.testing.mock.sling.junit.SlingContext;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class TikaFallbackProviderTest {
-
-    private static final Logger log = LoggerFactory.getLogger(TikaFallbackProviderTest.class);
-
-    @Rule
-    public final SlingContext context = new SlingContext();
-
-    private Resource docxFile;
-
-    private Resource largeFile;
-
-    @Before
-    public void init() {
-        SlingCMSContextHelper.initContext(context);
-        docxFile = context.resourceResolver().getResource("/content/apache/sling-apache-org/index/Sling.docx");
-        largeFile = context.resourceResolver().getResource("/content/apache/sling-apache-org/index/editor.min.css");
-    }
-
-    @Test
-    public void testTikaProvider() throws IOException {
-        log.info("testTikaProvider");
-        TikaFallbackProvider tfp = new TikaFallbackProvider();
-        assertNotNull(tfp.getThumbnail(docxFile));
-    }
-
-
-    @Test
-    public void testLargeFile() throws IOException {
-        log.info("testLargeFile");
-        TikaFallbackProvider tfp = new TikaFallbackProvider();
-        assertNotNull(tfp.getThumbnail(largeFile));
-    }
-
-}
diff --git a/transformer/src/test/java/org/apache/sling/cms/transformer/internal/TransformServletTest.java b/transformer/src/test/java/org/apache/sling/cms/transformer/internal/TransformServletTest.java
deleted file mode 100644
index 11999f2..0000000
--- a/transformer/src/test/java/org/apache/sling/cms/transformer/internal/TransformServletTest.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.servlet.ServletException;
-
-import org.apache.sling.api.resource.LoginException;
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.api.resource.ResourceResolver;
-import org.apache.sling.api.resource.ResourceResolverFactory;
-import org.apache.sling.cms.transformer.helpers.SlingCMSContextHelper;
-import org.apache.sling.cms.transformer.internal.models.TransformationImpl;
-import org.apache.sling.testing.mock.sling.junit.SlingContext;
-import org.apache.sling.testing.resourceresolver.MockResource;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.mockito.Mockito;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class TransformServletTest {
-
-    private static final Logger log = LoggerFactory.getLogger(TransformServletTest.class);
-
-    private TransformServlet ts = new TransformServlet();
-
-    @Rule
-    public final SlingContext context = new SlingContext();
-
-    @Before
-    public void init() throws IllegalAccessException, LoginException {
-        SlingCMSContextHelper.initContext(context);
-
-        ResourceResolverFactory factory = Mockito.mock(ResourceResolverFactory.class);
-        ResourceResolver resolver = Mockito.mock(ResourceResolver.class);
-
-        TransformationImpl transformation = new TransformationImpl();
-        List<Resource> handlers = new ArrayList<>();
-        Map<String, Object> size = new HashMap<>();
-        size.put(SizeHandler.PN_WIDTH, 200);
-        size.put(SizeHandler.PN_HEIGHT, 200);
-        size.put(ResourceResolver.PROPERTY_RESOURCE_TYPE, "sling-cms/components/caconfig/transformationhandlers/size");
-        handlers.add(new MockResource("/conf", size, Mockito.mock(ResourceResolver.class)));
-
-        Map<String, Object> crop = new HashMap<>();
-        crop.put(CropHandler.PN_POSITION, "center");
-        crop.put(ResourceResolver.PROPERTY_RESOURCE_TYPE, "sling-cms/components/caconfig/transformationhandlers/crop");
-        handlers.add(new MockResource("/conf", crop, Mockito.mock(ResourceResolver.class)));
-
-        transformation.sethandlers(handlers);
-
-        Mockito.when(resolver.findResources(Mockito.anyString(), Mockito.anyString())).thenAnswer((ans) -> {
-            List<Resource> resources = new ArrayList<>();
-            if (ans.getArgument(0, String.class).contains("test'")) {
-                Resource resource = Mockito.mock(Resource.class);
-                Mockito.when(resource.adaptTo(Mockito.any())).thenReturn(transformation);
-                resources.add(resource);
-            }
-            return resources.iterator();
-        });
-
-        Mockito.when(factory.getServiceResourceResolver(Mockito.any())).thenReturn(resolver);
-        TransformationServiceUser tsu = new TransformationServiceUser();
-        tsu.setResolverFactory(factory);
-        ts.setTransformationServiceUser(tsu);
-
-        TransformerImpl transformer = new TransformerImpl();
-        ((TransformerImpl) transformer).addTransformationHandler(new CropHandler() {
-            public String getResourceType() {
-                return "sling-cms/components/caconfig/transformationhandlers/crop";
-            }
-        });
-        ((TransformerImpl) transformer).addTransformationHandler(new SizeHandler() {
-            public String getResourceType() {
-                return "sling-cms/components/caconfig/transformationhandlers/size";
-            }
-        });
-
-        ((TransformerImpl) transformer).addThumbnailProvider(new ImageThumbnailProvider());
-        ((TransformerImpl) transformer).addThumbnailProvider(new PdfThumbnailProvider());
-
-        ts.setTransformer(transformer);
-
-    }
-
-    @Test
-    public void testValid() throws IOException, ServletException {
-        log.info("testContentTypes");
-
-        context.currentResource("/content/apache/sling-apache-org/index/apache.png");
-        context.requestPathInfo().setSuffix("/test.png");
-        context.requestPathInfo().setExtension("transform");
-
-        ts.doGet(context.request(), context.response());
-
-        assertNotNull(context.response().getOutput());
-    }
-
-    @Test
-    public void testInvalid() throws IOException, ServletException {
-        log.info("testContentTypes");
-
-        context.currentResource("/content/apache/sling-apache-org/index/apache.png");
-        context.requestPathInfo().setSuffix("/test2.png");
-        context.requestPathInfo().setExtension("transform");
-
-        ts.doGet(context.request(), context.response());
-
-        assertEquals(400, context.response().getStatus());
-    }
-
-}
diff --git a/transformer/src/test/java/org/apache/sling/cms/transformer/internal/TransformerImplTest.java b/transformer/src/test/java/org/apache/sling/cms/transformer/internal/TransformerImplTest.java
deleted file mode 100644
index aa6b4d3..0000000
--- a/transformer/src/test/java/org/apache/sling/cms/transformer/internal/TransformerImplTest.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import static org.junit.Assert.assertNotNull;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.poi.util.IOUtils;
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.api.resource.ResourceResolver;
-import org.apache.sling.cms.transformer.OutputFileFormat;
-import org.apache.sling.cms.transformer.Transformer;
-import org.apache.sling.cms.transformer.helpers.SlingCMSContextHelper;
-import org.apache.sling.cms.transformer.internal.models.TransformationImpl;
-import org.apache.sling.testing.mock.sling.junit.SlingContext;
-import org.apache.sling.testing.resourceresolver.MockResource;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.mockito.Mockito;
-
-public class TransformerImplTest {
-    @Rule
-    public final SlingContext context = new SlingContext();
-    private Transformer transformer;
-
-    @Before
-    public void init() {
-        SlingCMSContextHelper.initContext(context);
-        transformer = new TransformerImpl();
-
-        ((TransformerImpl) transformer).addTransformationHandler(new CropHandler() {
-            public String getResourceType() {
-                return "sling-cms/components/caconfig/transformationhandlers/crop";
-            }
-        });
-        ((TransformerImpl) transformer).addTransformationHandler(new SizeHandler() {
-            public String getResourceType() {
-                return "sling-cms/components/caconfig/transformationhandlers/size";
-            }
-        });
-
-        ((TransformerImpl) transformer).addThumbnailProvider(new ImageThumbnailProvider());
-        ((TransformerImpl) transformer).addThumbnailProvider(new PdfThumbnailProvider());
-    }
-
-    @Test
-    public void testImageThumbnail() throws IOException {
-        context.currentResource("/content/apache/sling-apache-org/index/apache.png");
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        TransformationImpl transformation = new TransformationImpl();
-        List<Resource> handlers = new ArrayList<>();
-
-        Map<String, Object> size = new HashMap<>();
-        size.put(SizeHandler.PN_WIDTH, 200);
-        size.put(SizeHandler.PN_HEIGHT, 200);
-        size.put(ResourceResolver.PROPERTY_RESOURCE_TYPE, "sling-cms/components/caconfig/transformationhandlers/size");
-        handlers.add(new MockResource("/conf", size, Mockito.mock(ResourceResolver.class)));
-
-        Map<String, Object> crop = new HashMap<>();
-        crop.put(CropHandler.PN_POSITION, "center");
-        crop.put(ResourceResolver.PROPERTY_RESOURCE_TYPE, "sling-cms/components/caconfig/transformationhandlers/crop");
-        handlers.add(new MockResource("/conf", crop, Mockito.mock(ResourceResolver.class)));
-
-        transformation.sethandlers(handlers);
-        transformer.transform(context.currentResource(), transformation, OutputFileFormat.PNG, baos);
-        assertNotNull(baos);
-
-        IOUtils.copy(new ByteArrayInputStream(baos.toByteArray()), new File("src/test/resources/thumbnail.png"));
-    }
-
-}
diff --git a/transformer/src/test/resources/Sling.docx b/transformer/src/test/resources/Sling.docx
deleted file mode 100644
index 73fba2a..0000000
--- a/transformer/src/test/resources/Sling.docx
+++ /dev/null
Binary files differ
diff --git a/transformer/src/test/resources/Sling.ppt b/transformer/src/test/resources/Sling.ppt
deleted file mode 100644
index 0e9a6d3..0000000
--- a/transformer/src/test/resources/Sling.ppt
+++ /dev/null
Binary files differ
diff --git a/transformer/src/test/resources/Sling.pptx b/transformer/src/test/resources/Sling.pptx
deleted file mode 100644
index 8ed0a34..0000000
--- a/transformer/src/test/resources/Sling.pptx
+++ /dev/null
Binary files differ
diff --git a/transformer/src/test/resources/apache.png b/transformer/src/test/resources/apache.png
deleted file mode 100644
index fc3f667..0000000
--- a/transformer/src/test/resources/apache.png
+++ /dev/null
Binary files differ
diff --git a/transformer/src/test/resources/content.json b/transformer/src/test/resources/content.json
deleted file mode 100644
index 3591ef7..0000000
--- a/transformer/src/test/resources/content.json
+++ /dev/null
@@ -1,115 +0,0 @@
-{
-    "jcr:primaryType": "sling:OrderedFolder",
-    "jcr:mixinTypes": [
-        "rep:AccessControllable"
-    ],
-    "jcr:createdBy": "admin",
-    "jcr:created": "Wed May 15 2019 12:39:57 GMT-0400",
-    "rep:policy": {
-        "jcr:primaryType": "rep:ACL",
-        "allow": {
-            "jcr:primaryType": "rep:GrantACE",
-            "rep:principalName": "authors",
-            "rep:privileges": [
-                "jcr:versionManagement",
-                "rep:write"
-            ]
-        },
-        "allow1": {
-            "jcr:primaryType": "rep:GrantACE",
-            "rep:principalName": "sling-cms-metadata",
-            "rep:privileges": [
-                "jcr:versionManagement",
-                "rep:write"
-            ]
-        },
-        "allow2": {
-            "jcr:primaryType": "rep:GrantACE",
-            "rep:principalName": "sling-cms-versionmgr",
-            "rep:privileges": [
-                "jcr:versionManagement",
-                "rep:write"
-            ]
-        },
-        "allow3": {
-            "jcr:primaryType": "rep:GrantACE",
-            "rep:principalName": "everyone",
-            "rep:privileges": [
-                "jcr:read"
-            ]
-        }
-    },
-    "apache": {
-        "jcr:primaryType": "sling:OrderedFolder",
-        "jcr:createdBy": "admin",
-        "sling:configRef": "/conf/global",
-        "jcr:created": "Wed May 15 2019 12:40:00 GMT-0400",
-        "jcr:content": {
-            "jcr:primaryType": "nt:unstructured",
-            "jcr:title": "Apache Software Foundation"
-        },
-        "sling-apache-org": {
-            "jcr:primaryType": "sling:Site",
-            "jcr:createdBy": "admin",
-            "jcr:title": "Apache Sling",
-            "jcr:language": "en",
-            "sling:url": "https://sling.apache.org",
-            "jcr:created": "Wed May 15 2019 12:40:00 GMT-0400",
-            "index": {
-                "jcr:primaryType": "sling:Page",
-                "jcr:mixinTypes": [
-                    "mix:versionable"
-                ],
-                "jcr:createdBy": "admin",
-                "jcr:versionHistory": "87458e80-83b8-46ee-a5d8-3e39c2f07c10",
-                "jcr:predecessors": [],
-                "jcr:created": "Wed May 15 2019 12:40:00 GMT-0400",
-                "jcr:baseVersion": "9ddd2472-9a0e-4fcb-8a2d-72f0b3f40d61",
-                "jcr:isCheckedOut": false,
-                "jcr:uuid": "fd5c6000-b3b9-44a2-88a0-1c8e13d7c1a7",
-                "jcr:content": {
-                    "jcr:primaryType": "nt:unstructured",
-                    "jcr:title": "Apache Sling - Bringing Back the Fun!",
-                    "jcr:lastModifiedBy": "admin",
-                    "sling:template": "/conf/global/site/templates/base-page",
-                    "sling:taxonomy": "/etc/taxonomy/reference/community",
-                    "jcr:lastModified": "Wed May 15 2019 14:05:46 GMT-0400",
-                    "sling:resourceType": "reference/components/pages/base",
-                    "published": true,
-                    "hideInSitemap": false,
-                    "container": {
-                        "jcr:primaryType": "nt:unstructured",
-                        "richtext": {
-                            "jcr:primaryType": "nt:unstructured",
-                            "text": "<p>Apache Sling(TM) is a framework for RESTful web-applications based on an extensible content tree.</p>\r\n<p>In a nutshell, Sling maps HTTP request URLs to content resources based on the request's path, extension and selectors. Using convention over configuration, requests are processed by scripts and servlets, dynamically selected based on the current resource. This fosters meaningful URLs and resource driven request processing, while the modular nature of Sling allows for specialized server instances that include dude only what is needed.</p>\r\n<p>Sling serves as basis for a variety of applications ranging from blogging engines all the way to enterprise content management systems.</p>\r\n<p>Our <a href=\"#\">Getting Started</a> page will help you start playing with Sling.</p>\r\n<p>Discussions about Sling happen on our mailing lists, see our <a href=\"#\">Project Information</a> page for more info.</p>\r\n",
-                            "sling:resourceType": "sling-cms/components/general/richtext"
-                        }
-                    },
-                    "menu": {
-                        "jcr:primaryType": "nt:unstructured",
-                        "richtext": {
-                            "jcr:primaryType": "nt:unstructured",
-                            "text": "<p>\r\n                <strong><a href=\"#\">Documentation</a></strong><br>\r\n                <a href=\"#\">Getting Started</a><br>\r\n                <a href=\"#\">The Sling Engine</a><br>\r\n                <a href=\"#\">Development</a><br>\r\n                <a href=\"#\">Bundles</a><br>\r\n                <a href=\"#\">Tutorials &amp; How-Tos</a><br>\r\n                <a href=\"http://sling.apache.org/components/\">Maven Plugins</a><br>\r\n                <a href=\"#\">Configuration</a>\r\n                \r\n            </p><p>\r\n                <a href=\"http://s.apache.org/sling.wiki\">Wiki</a><br>\r\n                <a href=\"http://s.apache.org/sling.faq\">FAQ</a><br>\r\n                \r\n            </p><p>\r\n                <strong>API Docs</strong><br>\r\n                <a href=\"#\">Sling 10</a><br>\r\n                <a href=\"#\">Sling 9</a><br>\r\n                <a href=\"#\">All versions</a><br>\r\n                \r\n            </p><p>\r\n                <strong>Project Info</strong><br>\r\n                <a href=\"#\">Downloads</a><br>\r\n                <a href=\"http://www.apache.org/licenses/\">License</a><br>\r\n                <a href=\"#\">News</a><br>\r\n                <a href=\"#\">Releases</a><br>\r\n                <a href=\"https://issues.apache.org/jira/browse/SLING\">Issue Tracker</a><br>\r\n                <a href=\"#\">Links</a><br>\r\n                <a href=\"#\">Contributing</a><br>\r\n                <a href=\"#\">Project Information</a><br>\r\n                <a href=\"#\">Security</a><br>\r\n                \r\n            </p><p>\r\n                <strong>Source</strong><br>\r\n                <a href=\"https://github.com/apache/?utf8=%E2%9C%93&amp;q=sling\">GitHub</a><br>\r\n                <a href=\"https://gitbox.apache.org/repos/asf?s=sling\">Git at Apache</a><br>\r\n                \r\n            </p><p>\r\n                <strong><a href=\"#\">Site Map</a></strong>\r\n            </p><p>\r\n                <strong>Apache Software Foundation</strong><br>\r\n                <a href=\"http://www.apache.org/foundation/thanks.html\">Thanks!</a><br>\r\n                <a href=\"http://www.apache.org/foundation/sponsorship.html\">Become a Sponsor</a><br>\r\n                <a href=\"http://www.apache.org/foundation/buy_stuff.html\">Buy Stuff</a><br>\r\n                <a href=\"https://www.apache.org/events/current-event.html\">\r\n                    <img alt=\"Current ASF Events\" src=\"https://www.apache.org/events/current-event-125x125.png\" width=\"125px\" border=\"0\">\r\n                </a><a href=\"http://apache.org/foundation/contributing.html\">\r\n                    <img alt=\"Support the Apache Software Foundation!\" src=\"/res/images/SupportApache-small.png\" width=\"125px\" border=\"0\">\r\n                </a>\r\n            </p>",
-                            "sling:resourceType": "sling-cms/components/general/richtext"
-                        }
-                    }
-                },
-                "apache.png": {
-                    "jcr:primaryType": "nt:file"
-                },
-                "sling.pdf": {
-                    "jcr:primaryType": "sling:File"
-                },
-                "Sling.docx": {
-                    "jcr:primaryType": "sling:File"
-                },
-                "Sling.pptx": {
-                    "jcr:primaryType": "sling:File"
-                },
-                "Sling.ppt": {
-                    "jcr:primaryType": "sling:File"
-                }
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/transformer/src/test/resources/editor.min.css b/transformer/src/test/resources/editor.min.css
deleted file mode 100644
index 8d051e5..0000000
--- a/transformer/src/test/resources/editor.min.css
+++ /dev/null
@@ -1,2854 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-.sling-cms-editor {
-  /*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-  /*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-  /*! minireset.css v0.0.6 | MIT License | github.com/jgthms/minireset.css */
-  font-family: "Open Sans",sans-serif; }
-
-@font-face {
-  .sling-cms-editor {
-    font-family: 'Open Sans';
-    src: url("../fonts/OpenSans-Light-webfont.woff") format("woff");
-    font-weight: 300;
-    font-style: normal;
-    font-display: fallback; } }
-
-@font-face {
-  .sling-cms-editor {
-    font-family: 'Open Sans';
-    src: url("../fonts/OpenSans-Regular-webfont.woff") format("woff");
-    font-weight: 400;
-    font-style: normal;
-    font-display: fallback; } }
-
-@font-face {
-  .sling-cms-editor {
-    font-family: 'Open Sans';
-    src: url("../fonts/OpenSans-Semibold-webfont.woff") format("woff");
-    font-weight: 600;
-    font-style: normal;
-    font-display: fallback; } }
-
-@font-face {
-  .sling-cms-editor {
-    font-family: 'Open Sans';
-    src: url("../fonts/OpenSans-Bold-webfont.woff") format("woff");
-    font-weight: 700;
-    font-style: normal;
-    font-display: fallback; } }
-
-@keyframes spinAround {
-  from {
-    transform: rotate(0deg); }
-  to {
-    transform: rotate(359deg); } }
-  .sling-cms-editor .modal-close, .sling-cms-editor .is-unselectable, .sling-cms-editor .button, .sling-cms-editor .file {
-    -webkit-touch-callout: none;
-    -webkit-user-select: none;
-    -moz-user-select: none;
-    -ms-user-select: none;
-    user-select: none; }
-  .sling-cms-editor .select:not(.is-multiple):not(.is-loading)::after {
-    border: 3px solid transparent;
-    border-radius: 2px;
-    border-right: 0;
-    border-top: 0;
-    content: " ";
-    display: block;
-    height: 0.625em;
-    margin-top: -0.4375em;
-    pointer-events: none;
-    position: absolute;
-    top: 50%;
-    transform: rotate(-45deg);
-    transform-origin: center;
-    width: 0.625em; }
-  .sling-cms-editor .box:not(:last-child), .sling-cms-editor .level:not(:last-child) {
-    margin-bottom: 1.5rem; }
-  .sling-cms-editor .modal-close {
-    -moz-appearance: none;
-    -webkit-appearance: none;
-    background-color: rgba(10, 10, 10, 0.2);
-    border: none;
-    border-radius: 290486px;
-    cursor: pointer;
-    pointer-events: auto;
-    display: inline-block;
-    flex-grow: 0;
-    flex-shrink: 0;
-    font-size: 0;
-    height: 20px;
-    max-height: 20px;
-    max-width: 20px;
-    min-height: 20px;
-    min-width: 20px;
-    outline: none;
-    position: relative;
-    vertical-align: top;
-    width: 20px; }
-    .sling-cms-editor .modal-close::before, .sling-cms-editor .modal-close::after {
-      background-color: white;
-      content: "";
-      display: block;
-      left: 50%;
-      position: absolute;
-      top: 50%;
-      transform: translateX(-50%) translateY(-50%) rotate(45deg);
-      transform-origin: center center; }
-    .sling-cms-editor .modal-close::before {
-      height: 2px;
-      width: 50%; }
-    .sling-cms-editor .modal-close::after {
-      height: 50%;
-      width: 2px; }
-    .sling-cms-editor .modal-close:hover, .sling-cms-editor .modal-close:focus {
-      background-color: rgba(10, 10, 10, 0.3); }
-    .sling-cms-editor .modal-close:active {
-      background-color: rgba(10, 10, 10, 0.4); }
-    .sling-cms-editor .is-small.modal-close {
-      height: 16px;
-      max-height: 16px;
-      max-width: 16px;
-      min-height: 16px;
-      min-width: 16px;
-      width: 16px; }
-    .sling-cms-editor .is-medium.modal-close {
-      height: 24px;
-      max-height: 24px;
-      max-width: 24px;
-      min-height: 24px;
-      min-width: 24px;
-      width: 24px; }
-    .sling-cms-editor .is-large.modal-close {
-      height: 32px;
-      max-height: 32px;
-      max-width: 32px;
-      min-height: 32px;
-      min-width: 32px;
-      width: 32px; }
-  .sling-cms-editor .button.is-loading::after, .sling-cms-editor .select.is-loading::after, .sling-cms-editor .control.is-loading::after {
-    animation: spinAround 500ms infinite linear;
-    border: 2px solid #dbdbdb;
-    border-radius: 290486px;
-    border-right-color: transparent;
-    border-top-color: transparent;
-    content: "";
-    display: block;
-    height: 1em;
-    position: relative;
-    width: 1em; }
-  .sling-cms-editor .is-overlay, .sling-cms-editor .modal, .sling-cms-editor .modal-background {
-    bottom: 0;
-    left: 0;
-    position: absolute;
-    right: 0;
-    top: 0; }
-  .sling-cms-editor .button, .sling-cms-editor .input, .sling-cms-editor .textarea, .sling-cms-editor .select select, .sling-cms-editor .file-cta,
-  .sling-cms-editor .file-name {
-    -moz-appearance: none;
-    -webkit-appearance: none;
-    align-items: center;
-    border: 1px solid transparent;
-    border-radius: 4px;
-    box-shadow: none;
-    display: inline-flex;
-    font-size: 1rem;
-    height: 2.5em;
-    justify-content: flex-start;
-    line-height: 1.5;
-    padding-bottom: calc(0.5em - 1px);
-    padding-left: calc(0.75em - 1px);
-    padding-right: calc(0.75em - 1px);
-    padding-top: calc(0.5em - 1px);
-    position: relative;
-    vertical-align: top; }
-    .sling-cms-editor .button:focus, .sling-cms-editor .input:focus, .sling-cms-editor .textarea:focus, .sling-cms-editor .select select:focus, .sling-cms-editor .file-cta:focus,
-    .sling-cms-editor .file-name:focus, .sling-cms-editor .is-focused.button, .sling-cms-editor .is-focused.input, .sling-cms-editor .is-focused.textarea, .sling-cms-editor .select select.is-focused, .sling-cms-editor .is-focused.file-cta,
-    .sling-cms-editor .is-focused.file-name, .sling-cms-editor .button:active, .sling-cms-editor .input:active, .sling-cms-editor .textarea:active, .sling-cms-editor .select select:active, .sling-cms-editor .file-cta:active,
-    .sling-cms-editor .file-name:active, .sling-cms-editor .is-active.button, .sling-cms-editor .is-active.input, .sling-cms-editor .is-active.textarea, .sling-cms-editor .select select.is-active, .sling-cms-editor .is-active.file-cta,
-    .sling-cms-editor .is-active.file-name {
-      outline: none; }
-    .sling-cms-editor .button[disabled], .sling-cms-editor .input[disabled], .sling-cms-editor .textarea[disabled], .sling-cms-editor .select select[disabled], .sling-cms-editor .file-cta[disabled],
-    .sling-cms-editor .file-name[disabled],
-    fieldset[disabled] .sling-cms-editor .button,
-    fieldset[disabled] .sling-cms-editor .input,
-    fieldset[disabled] .sling-cms-editor .textarea,
-    fieldset[disabled] .sling-cms-editor .select select,
-    fieldset[disabled] .sling-cms-editor .file-cta,
-    fieldset[disabled] .sling-cms-editor .file-name {
-      cursor: not-allowed; }
-  .sling-cms-editor html,
-  .sling-cms-editor body,
-  .sling-cms-editor p,
-  .sling-cms-editor ol,
-  .sling-cms-editor ul,
-  .sling-cms-editor li,
-  .sling-cms-editor dl,
-  .sling-cms-editor dt,
-  .sling-cms-editor dd,
-  .sling-cms-editor blockquote,
-  .sling-cms-editor figure,
-  .sling-cms-editor fieldset,
-  .sling-cms-editor legend,
-  .sling-cms-editor textarea,
-  .sling-cms-editor pre,
-  .sling-cms-editor iframe,
-  .sling-cms-editor hr,
-  .sling-cms-editor h1,
-  .sling-cms-editor h2,
-  .sling-cms-editor h3,
-  .sling-cms-editor h4,
-  .sling-cms-editor h5,
-  .sling-cms-editor h6 {
-    margin: 0;
-    padding: 0; }
-  .sling-cms-editor h1,
-  .sling-cms-editor h2,
-  .sling-cms-editor h3,
-  .sling-cms-editor h4,
-  .sling-cms-editor h5,
-  .sling-cms-editor h6 {
-    font-size: 100%;
-    font-weight: normal; }
-  .sling-cms-editor ul {
-    list-style: none; }
-  .sling-cms-editor button,
-  .sling-cms-editor input,
-  .sling-cms-editor select,
-  .sling-cms-editor textarea {
-    margin: 0; }
-  .sling-cms-editor html {
-    box-sizing: border-box; }
-  .sling-cms-editor *, .sling-cms-editor *::before, .sling-cms-editor *::after {
-    box-sizing: inherit; }
-  .sling-cms-editor img,
-  .sling-cms-editor video {
-    height: auto;
-    max-width: 100%; }
-  .sling-cms-editor iframe {
-    border: 0; }
-  .sling-cms-editor table {
-    border-collapse: collapse;
-    border-spacing: 0; }
-  .sling-cms-editor td,
-  .sling-cms-editor th {
-    padding: 0; }
-    .sling-cms-editor td:not([align]),
-    .sling-cms-editor th:not([align]) {
-      text-align: left; }
-  .sling-cms-editor html {
-    background-color: white;
-    font-size: 16px;
-    -moz-osx-font-smoothing: grayscale;
-    -webkit-font-smoothing: antialiased;
-    min-width: 300px;
-    overflow-x: hidden;
-    overflow-y: scroll;
-    text-rendering: optimizeLegibility;
-    text-size-adjust: 100%; }
-  .sling-cms-editor article,
-  .sling-cms-editor aside,
-  .sling-cms-editor figure,
-  .sling-cms-editor footer,
-  .sling-cms-editor header,
-  .sling-cms-editor hgroup,
-  .sling-cms-editor section {
-    display: block; }
-  .sling-cms-editor body,
-  .sling-cms-editor button,
-  .sling-cms-editor input,
-  .sling-cms-editor select,
-  .sling-cms-editor textarea {
-    font-family: "Open Sans", sans-serif; }
-  .sling-cms-editor code,
-  .sling-cms-editor pre {
-    -moz-osx-font-smoothing: auto;
-    -webkit-font-smoothing: auto;
-    font-family: monospace; }
-  .sling-cms-editor body {
-    color: #4a4a4a;
-    font-size: 1em;
-    font-weight: 400;
-    line-height: 1.5; }
-  .sling-cms-editor a {
-    color: #282661;
-    cursor: pointer;
-    text-decoration: none; }
-    .sling-cms-editor a strong {
-      color: currentColor; }
-    .sling-cms-editor a:hover {
-      color: #363636; }
-  .sling-cms-editor code {
-    background-color: whitesmoke;
-    color: #D22128;
-    font-size: 0.875em;
-    font-weight: normal;
-    padding: 0.25em 0.5em 0.25em; }
-  .sling-cms-editor hr {
-    background-color: whitesmoke;
-    border: none;
-    display: block;
-    height: 2px;
-    margin: 1.5rem 0; }
-  .sling-cms-editor img {
-    height: auto;
-    max-width: 100%; }
-  .sling-cms-editor input[type="checkbox"],
-  .sling-cms-editor input[type="radio"] {
-    vertical-align: baseline; }
-  .sling-cms-editor small {
-    font-size: 0.875em; }
-  .sling-cms-editor span {
-    font-style: inherit;
-    font-weight: inherit; }
-  .sling-cms-editor strong {
-    color: #363636;
-    font-weight: 700; }
-  .sling-cms-editor fieldset {
-    border: none; }
-  .sling-cms-editor pre {
-    -webkit-overflow-scrolling: touch;
-    background-color: whitesmoke;
-    color: #4a4a4a;
-    font-size: 0.875em;
-    overflow-x: auto;
-    padding: 1.25rem 1.5rem;
-    white-space: pre;
-    word-wrap: normal; }
-    .sling-cms-editor pre code {
-      background-color: transparent;
-      color: currentColor;
-      font-size: 1em;
-      padding: 0; }
-  .sling-cms-editor table td,
-  .sling-cms-editor table th {
-    vertical-align: top; }
-    .sling-cms-editor table td:not([align]),
-    .sling-cms-editor table th:not([align]) {
-      text-align: left; }
-  .sling-cms-editor table th {
-    color: #363636; }
-  .sling-cms-editor .is-clearfix::after {
-    clear: both;
-    content: " ";
-    display: table; }
-  .sling-cms-editor .is-pulled-left {
-    float: left !important; }
-  .sling-cms-editor .is-pulled-right {
-    float: right !important; }
-  .sling-cms-editor .is-clipped {
-    overflow: hidden !important; }
-  .sling-cms-editor .is-size-1 {
-    font-size: 3rem !important; }
-  .sling-cms-editor .is-size-2 {
-    font-size: 2.5rem !important; }
-  .sling-cms-editor .is-size-3 {
-    font-size: 2rem !important; }
-  .sling-cms-editor .is-size-4 {
-    font-size: 1.5rem !important; }
-  .sling-cms-editor .is-size-5 {
-    font-size: 1.25rem !important; }
-  .sling-cms-editor .is-size-6 {
-    font-size: 1rem !important; }
-  .sling-cms-editor .is-size-7 {
-    font-size: 0.75rem !important; }
-  @media screen and (max-width: 768px) {
-    .sling-cms-editor .is-size-1-mobile {
-      font-size: 3rem !important; }
-    .sling-cms-editor .is-size-2-mobile {
-      font-size: 2.5rem !important; }
-    .sling-cms-editor .is-size-3-mobile {
-      font-size: 2rem !important; }
-    .sling-cms-editor .is-size-4-mobile {
-      font-size: 1.5rem !important; }
-    .sling-cms-editor .is-size-5-mobile {
-      font-size: 1.25rem !important; }
-    .sling-cms-editor .is-size-6-mobile {
-      font-size: 1rem !important; }
-    .sling-cms-editor .is-size-7-mobile {
-      font-size: 0.75rem !important; } }
-  @media screen and (min-width: 769px), print {
-    .sling-cms-editor .is-size-1-tablet {
-      font-size: 3rem !important; }
-    .sling-cms-editor .is-size-2-tablet {
-      font-size: 2.5rem !important; }
-    .sling-cms-editor .is-size-3-tablet {
-      font-size: 2rem !important; }
-    .sling-cms-editor .is-size-4-tablet {
-      font-size: 1.5rem !important; }
-    .sling-cms-editor .is-size-5-tablet {
-      font-size: 1.25rem !important; }
-    .sling-cms-editor .is-size-6-tablet {
-      font-size: 1rem !important; }
-    .sling-cms-editor .is-size-7-tablet {
-      font-size: 0.75rem !important; } }
-  @media screen and (max-width: 1023px) {
-    .sling-cms-editor .is-size-1-touch {
-      font-size: 3rem !important; }
-    .sling-cms-editor .is-size-2-touch {
-      font-size: 2.5rem !important; }
-    .sling-cms-editor .is-size-3-touch {
-      font-size: 2rem !important; }
-    .sling-cms-editor .is-size-4-touch {
-      font-size: 1.5rem !important; }
-    .sling-cms-editor .is-size-5-touch {
-      font-size: 1.25rem !important; }
-    .sling-cms-editor .is-size-6-touch {
-      font-size: 1rem !important; }
-    .sling-cms-editor .is-size-7-touch {
-      font-size: 0.75rem !important; } }
-  @media screen and (min-width: 1024px) {
-    .sling-cms-editor .is-size-1-desktop {
-      font-size: 3rem !important; }
-    .sling-cms-editor .is-size-2-desktop {
-      font-size: 2.5rem !important; }
-    .sling-cms-editor .is-size-3-desktop {
-      font-size: 2rem !important; }
-    .sling-cms-editor .is-size-4-desktop {
-      font-size: 1.5rem !important; }
-    .sling-cms-editor .is-size-5-desktop {
-      font-size: 1.25rem !important; }
-    .sling-cms-editor .is-size-6-desktop {
-      font-size: 1rem !important; }
-    .sling-cms-editor .is-size-7-desktop {
-      font-size: 0.75rem !important; } }
-  @media screen and (min-width: 1216px) {
-    .sling-cms-editor .is-size-1-widescreen {
-      font-size: 3rem !important; }
-    .sling-cms-editor .is-size-2-widescreen {
-      font-size: 2.5rem !important; }
-    .sling-cms-editor .is-size-3-widescreen {
-      font-size: 2rem !important; }
-    .sling-cms-editor .is-size-4-widescreen {
-      font-size: 1.5rem !important; }
-    .sling-cms-editor .is-size-5-widescreen {
-      font-size: 1.25rem !important; }
-    .sling-cms-editor .is-size-6-widescreen {
-      font-size: 1rem !important; }
-    .sling-cms-editor .is-size-7-widescreen {
-      font-size: 0.75rem !important; } }
-  @media screen and (min-width: 1408px) {
-    .sling-cms-editor .is-size-1-fullhd {
-      font-size: 3rem !important; }
-    .sling-cms-editor .is-size-2-fullhd {
-      font-size: 2.5rem !important; }
-    .sling-cms-editor .is-size-3-fullhd {
-      font-size: 2rem !important; }
-    .sling-cms-editor .is-size-4-fullhd {
-      font-size: 1.5rem !important; }
-    .sling-cms-editor .is-size-5-fullhd {
-      font-size: 1.25rem !important; }
-    .sling-cms-editor .is-size-6-fullhd {
-      font-size: 1rem !important; }
-    .sling-cms-editor .is-size-7-fullhd {
-      font-size: 0.75rem !important; } }
-  .sling-cms-editor .has-text-centered {
-    text-align: center !important; }
-  .sling-cms-editor .has-text-justified {
-    text-align: justify !important; }
-  .sling-cms-editor .has-text-left {
-    text-align: left !important; }
-  .sling-cms-editor .has-text-right {
-    text-align: right !important; }
-  @media screen and (max-width: 768px) {
-    .sling-cms-editor .has-text-centered-mobile {
-      text-align: center !important; } }
-  @media screen and (min-width: 769px), print {
-    .sling-cms-editor .has-text-centered-tablet {
-      text-align: center !important; } }
-  @media screen and (min-width: 769px) and (max-width: 1023px) {
-    .sling-cms-editor .has-text-centered-tablet-only {
-      text-align: center !important; } }
-  @media screen and (max-width: 1023px) {
-    .sling-cms-editor .has-text-centered-touch {
-      text-align: center !important; } }
-  @media screen and (min-width: 1024px) {
-    .sling-cms-editor .has-text-centered-desktop {
-      text-align: center !important; } }
-  @media screen and (min-width: 1024px) and (max-width: 1215px) {
-    .sling-cms-editor .has-text-centered-desktop-only {
-      text-align: center !important; } }
-  @media screen and (min-width: 1216px) {
-    .sling-cms-editor .has-text-centered-widescreen {
-      text-align: center !important; } }
-  @media screen and (min-width: 1216px) and (max-width: 1407px) {
-    .sling-cms-editor .has-text-centered-widescreen-only {
-      text-align: center !important; } }
-  @media screen and (min-width: 1408px) {
-    .sling-cms-editor .has-text-centered-fullhd {
-      text-align: center !important; } }
-  @media screen and (max-width: 768px) {
-    .sling-cms-editor .has-text-justified-mobile {
-      text-align: justify !important; } }
-  @media screen and (min-width: 769px), print {
-    .sling-cms-editor .has-text-justified-tablet {
-      text-align: justify !important; } }
-  @media screen and (min-width: 769px) and (max-width: 1023px) {
-    .sling-cms-editor .has-text-justified-tablet-only {
-      text-align: justify !important; } }
-  @media screen and (max-width: 1023px) {
-    .sling-cms-editor .has-text-justified-touch {
-      text-align: justify !important; } }
-  @media screen and (min-width: 1024px) {
-    .sling-cms-editor .has-text-justified-desktop {
-      text-align: justify !important; } }
-  @media screen and (min-width: 1024px) and (max-width: 1215px) {
-    .sling-cms-editor .has-text-justified-desktop-only {
-      text-align: justify !important; } }
-  @media screen and (min-width: 1216px) {
-    .sling-cms-editor .has-text-justified-widescreen {
-      text-align: justify !important; } }
-  @media screen and (min-width: 1216px) and (max-width: 1407px) {
-    .sling-cms-editor .has-text-justified-widescreen-only {
-      text-align: justify !important; } }
-  @media screen and (min-width: 1408px) {
-    .sling-cms-editor .has-text-justified-fullhd {
-      text-align: justify !important; } }
-  @media screen and (max-width: 768px) {
-    .sling-cms-editor .has-text-left-mobile {
-      text-align: left !important; } }
-  @media screen and (min-width: 769px), print {
-    .sling-cms-editor .has-text-left-tablet {
-      text-align: left !important; } }
-  @media screen and (min-width: 769px) and (max-width: 1023px) {
-    .sling-cms-editor .has-text-left-tablet-only {
-      text-align: left !important; } }
-  @media screen and (max-width: 1023px) {
-    .sling-cms-editor .has-text-left-touch {
-      text-align: left !important; } }
-  @media screen and (min-width: 1024px) {
-    .sling-cms-editor .has-text-left-desktop {
-      text-align: left !important; } }
-  @media screen and (min-width: 1024px) and (max-width: 1215px) {
-    .sling-cms-editor .has-text-left-desktop-only {
-      text-align: left !important; } }
-  @media screen and (min-width: 1216px) {
-    .sling-cms-editor .has-text-left-widescreen {
-      text-align: left !important; } }
-  @media screen and (min-width: 1216px) and (max-width: 1407px) {
-    .sling-cms-editor .has-text-left-widescreen-only {
-      text-align: left !important; } }
-  @media screen and (min-width: 1408px) {
-    .sling-cms-editor .has-text-left-fullhd {
-      text-align: left !important; } }
-  @media screen and (max-width: 768px) {
-    .sling-cms-editor .has-text-right-mobile {
-      text-align: right !important; } }
-  @media screen and (min-width: 769px), print {
-    .sling-cms-editor .has-text-right-tablet {
-      text-align: right !important; } }
-  @media screen and (min-width: 769px) and (max-width: 1023px) {
-    .sling-cms-editor .has-text-right-tablet-only {
-      text-align: right !important; } }
-  @media screen and (max-width: 1023px) {
-    .sling-cms-editor .has-text-right-touch {
-      text-align: right !important; } }
-  @media screen and (min-width: 1024px) {
-    .sling-cms-editor .has-text-right-desktop {
-      text-align: right !important; } }
-  @media screen and (min-width: 1024px) and (max-width: 1215px) {
-    .sling-cms-editor .has-text-right-desktop-only {
-      text-align: right !important; } }
-  @media screen and (min-width: 1216px) {
-    .sling-cms-editor .has-text-right-widescreen {
-      text-align: right !important; } }
-  @media screen and (min-width: 1216px) and (max-width: 1407px) {
-    .sling-cms-editor .has-text-right-widescreen-only {
-      text-align: right !important; } }
-  @media screen and (min-width: 1408px) {
-    .sling-cms-editor .has-text-right-fullhd {
-      text-align: right !important; } }
-  .sling-cms-editor .is-capitalized {
-    text-transform: capitalize !important; }
-  .sling-cms-editor .is-lowercase {
-    text-transform: lowercase !important; }
-  .sling-cms-editor .is-uppercase {
-    text-transform: uppercase !important; }
-  .sling-cms-editor .is-italic {
-    font-style: italic !important; }
-  .sling-cms-editor .has-text-white {
-    color: white !important; }
-  .sling-cms-editor a.has-text-white:hover, .sling-cms-editor a.has-text-white:focus {
-    color: #e6e6e6 !important; }
-  .sling-cms-editor .has-background-white {
-    background-color: white !important; }
-  .sling-cms-editor .has-text-black {
-    color: #0a0a0a !important; }
-  .sling-cms-editor a.has-text-black:hover, .sling-cms-editor a.has-text-black:focus {
-    color: black !important; }
-  .sling-cms-editor .has-background-black {
-    background-color: #0a0a0a !important; }
-  .sling-cms-editor .has-text-light {
-    color: whitesmoke !important; }
-  .sling-cms-editor a.has-text-light:hover, .sling-cms-editor a.has-text-light:focus {
-    color: #dbdbdb !important; }
-  .sling-cms-editor .has-background-light {
-    background-color: whitesmoke !important; }
-  .sling-cms-editor .has-text-dark {
-    color: #363636 !important; }
-  .sling-cms-editor a.has-text-dark:hover, .sling-cms-editor a.has-text-dark:focus {
-    color: #1c1c1c !important; }
-  .sling-cms-editor .has-background-dark {
-    background-color: #363636 !important; }
-  .sling-cms-editor .has-text-primary {
-    color: #9E2165 !important; }
-  .sling-cms-editor a.has-text-primary:hover, .sling-cms-editor a.has-text-primary:focus {
-    color: #74184a !important; }
-  .sling-cms-editor .has-background-primary {
-    background-color: #9E2165 !important; }
-  .sling-cms-editor .has-text-link {
-    color: #282661 !important; }
-  .sling-cms-editor a.has-text-link:hover, .sling-cms-editor a.has-text-link:focus {
-    color: #19183c !important; }
-  .sling-cms-editor .has-background-link {
-    background-color: #282661 !important; }
-  .sling-cms-editor .has-text-info {
-    color: #3298dc !important; }
-  .sling-cms-editor a.has-text-info:hover, .sling-cms-editor a.has-text-info:focus {
-    color: #207dbc !important; }
-  .sling-cms-editor .has-background-info {
-    background-color: #3298dc !important; }
-  .sling-cms-editor .has-text-success {
-    color: #48c774 !important; }
-  .sling-cms-editor a.has-text-success:hover, .sling-cms-editor a.has-text-success:focus {
-    color: #34a85c !important; }
-  .sling-cms-editor .has-background-success {
-    background-color: #48c774 !important; }
-  .sling-cms-editor .has-text-warning {
-    color: #EA7826 !important; }
-  .sling-cms-editor a.has-text-warning:hover, .sling-cms-editor a.has-text-warning:focus {
-    color: #ca6014 !important; }
-  .sling-cms-editor .has-background-warning {
-    background-color: #EA7826 !important; }
-  .sling-cms-editor .has-text-danger {
-    color: #CB2138 !important; }
-  .sling-cms-editor a.has-text-danger:hover, .sling-cms-editor a.has-text-danger:focus {
-    color: #9f1a2c !important; }
-  .sling-cms-editor .has-background-danger {
-    background-color: #CB2138 !important; }
-  .sling-cms-editor .has-text-black-bis {
-    color: #121212 !important; }
-  .sling-cms-editor .has-background-black-bis {
-    background-color: #121212 !important; }
-  .sling-cms-editor .has-text-black-ter {
-    color: #242424 !important; }
-  .sling-cms-editor .has-background-black-ter {
-    background-color: #242424 !important; }
-  .sling-cms-editor .has-text-grey-darker {
-    color: #363636 !important; }
-  .sling-cms-editor .has-background-grey-darker {
-    background-color: #363636 !important; }
-  .sling-cms-editor .has-text-grey-dark {
-    color: #4a4a4a !important; }
-  .sling-cms-editor .has-background-grey-dark {
-    background-color: #4a4a4a !important; }
-  .sling-cms-editor .has-text-grey {
-    color: #7a7a7a !important; }
-  .sling-cms-editor .has-background-grey {
-    background-color: #7a7a7a !important; }
-  .sling-cms-editor .has-text-grey-light {
-    color: #b5b5b5 !important; }
-  .sling-cms-editor .has-background-grey-light {
-    background-color: #b5b5b5 !important; }
-  .sling-cms-editor .has-text-grey-lighter {
-    color: #dbdbdb !important; }
-  .sling-cms-editor .has-background-grey-lighter {
-    background-color: #dbdbdb !important; }
-  .sling-cms-editor .has-text-white-ter {
-    color: whitesmoke !important; }
-  .sling-cms-editor .has-background-white-ter {
-    background-color: whitesmoke !important; }
-  .sling-cms-editor .has-text-white-bis {
-    color: #fafafa !important; }
-  .sling-cms-editor .has-background-white-bis {
-    background-color: #fafafa !important; }
-  .sling-cms-editor .has-text-weight-light {
-    font-weight: 300 !important; }
-  .sling-cms-editor .has-text-weight-normal {
-    font-weight: 400 !important; }
-  .sling-cms-editor .has-text-weight-medium {
-    font-weight: 500 !important; }
-  .sling-cms-editor .has-text-weight-semibold {
-    font-weight: 600 !important; }
-  .sling-cms-editor .has-text-weight-bold {
-    font-weight: 700 !important; }
-  .sling-cms-editor .is-family-primary {
-    font-family: "Open Sans", sans-serif !important; }
-  .sling-cms-editor .is-family-secondary {
-    font-family: "Open Sans", sans-serif !important; }
-  .sling-cms-editor .is-family-sans-serif {
-    font-family: "Open Sans", sans-serif !important; }
-  .sling-cms-editor .is-family-monospace {
-    font-family: monospace !important; }
-  .sling-cms-editor .is-family-code {
-    font-family: monospace !important; }
-  .sling-cms-editor .is-block {
-    display: block !important; }
-  @media screen and (max-width: 768px) {
-    .sling-cms-editor .is-block-mobile {
-      display: block !important; } }
-  @media screen and (min-width: 769px), print {
-    .sling-cms-editor .is-block-tablet {
-      display: block !important; } }
-  @media screen and (min-width: 769px) and (max-width: 1023px) {
-    .sling-cms-editor .is-block-tablet-only {
-      display: block !important; } }
-  @media screen and (max-width: 1023px) {
-    .sling-cms-editor .is-block-touch {
-      display: block !important; } }
-  @media screen and (min-width: 1024px) {
-    .sling-cms-editor .is-block-desktop {
-      display: block !important; } }
-  @media screen and (min-width: 1024px) and (max-width: 1215px) {
-    .sling-cms-editor .is-block-desktop-only {
-      display: block !important; } }
-  @media screen and (min-width: 1216px) {
-    .sling-cms-editor .is-block-widescreen {
-      display: block !important; } }
-  @media screen and (min-width: 1216px) and (max-width: 1407px) {
-    .sling-cms-editor .is-block-widescreen-only {
-      display: block !important; } }
-  @media screen and (min-width: 1408px) {
-    .sling-cms-editor .is-block-fullhd {
-      display: block !important; } }
-  .sling-cms-editor .is-flex {
-    display: flex !important; }
-  @media screen and (max-width: 768px) {
-    .sling-cms-editor .is-flex-mobile {
-      display: flex !important; } }
-  @media screen and (min-width: 769px), print {
-    .sling-cms-editor .is-flex-tablet {
-      display: flex !important; } }
-  @media screen and (min-width: 769px) and (max-width: 1023px) {
-    .sling-cms-editor .is-flex-tablet-only {
-      display: flex !important; } }
-  @media screen and (max-width: 1023px) {
-    .sling-cms-editor .is-flex-touch {
-      display: flex !important; } }
-  @media screen and (min-width: 1024px) {
-    .sling-cms-editor .is-flex-desktop {
-      display: flex !important; } }
-  @media screen and (min-width: 1024px) and (max-width: 1215px) {
-    .sling-cms-editor .is-flex-desktop-only {
-      display: flex !important; } }
-  @media screen and (min-width: 1216px) {
-    .sling-cms-editor .is-flex-widescreen {
-      display: flex !important; } }
-  @media screen and (min-width: 1216px) and (max-width: 1407px) {
-    .sling-cms-editor .is-flex-widescreen-only {
-      display: flex !important; } }
-  @media screen and (min-width: 1408px) {
-    .sling-cms-editor .is-flex-fullhd {
-      display: flex !important; } }
-  .sling-cms-editor .is-inline {
-    display: inline !important; }
-  @media screen and (max-width: 768px) {
-    .sling-cms-editor .is-inline-mobile {
-      display: inline !important; } }
-  @media screen and (min-width: 769px), print {
-    .sling-cms-editor .is-inline-tablet {
-      display: inline !important; } }
-  @media screen and (min-width: 769px) and (max-width: 1023px) {
-    .sling-cms-editor .is-inline-tablet-only {
-      display: inline !important; } }
-  @media screen and (max-width: 1023px) {
-    .sling-cms-editor .is-inline-touch {
-      display: inline !important; } }
-  @media screen and (min-width: 1024px) {
-    .sling-cms-editor .is-inline-desktop {
-      display: inline !important; } }
-  @media screen and (min-width: 1024px) and (max-width: 1215px) {
-    .sling-cms-editor .is-inline-desktop-only {
-      display: inline !important; } }
-  @media screen and (min-width: 1216px) {
-    .sling-cms-editor .is-inline-widescreen {
-      display: inline !important; } }
-  @media screen and (min-width: 1216px) and (max-width: 1407px) {
-    .sling-cms-editor .is-inline-widescreen-only {
-      display: inline !important; } }
-  @media screen and (min-width: 1408px) {
-    .sling-cms-editor .is-inline-fullhd {
-      display: inline !important; } }
-  .sling-cms-editor .is-inline-block {
-    display: inline-block !important; }
-  @media screen and (max-width: 768px) {
-    .sling-cms-editor .is-inline-block-mobile {
-      display: inline-block !important; } }
-  @media screen and (min-width: 769px), print {
-    .sling-cms-editor .is-inline-block-tablet {
-      display: inline-block !important; } }
-  @media screen and (min-width: 769px) and (max-width: 1023px) {
-    .sling-cms-editor .is-inline-block-tablet-only {
-      display: inline-block !important; } }
-  @media screen and (max-width: 1023px) {
-    .sling-cms-editor .is-inline-block-touch {
-      display: inline-block !important; } }
-  @media screen and (min-width: 1024px) {
-    .sling-cms-editor .is-inline-block-desktop {
-      display: inline-block !important; } }
-  @media screen and (min-width: 1024px) and (max-width: 1215px) {
-    .sling-cms-editor .is-inline-block-desktop-only {
-      display: inline-block !important; } }
-  @media screen and (min-width: 1216px) {
-    .sling-cms-editor .is-inline-block-widescreen {
-      display: inline-block !important; } }
-  @media screen and (min-width: 1216px) and (max-width: 1407px) {
-    .sling-cms-editor .is-inline-block-widescreen-only {
-      display: inline-block !important; } }
-  @media screen and (min-width: 1408px) {
-    .sling-cms-editor .is-inline-block-fullhd {
-      display: inline-block !important; } }
-  .sling-cms-editor .is-inline-flex {
-    display: inline-flex !important; }
-  @media screen and (max-width: 768px) {
-    .sling-cms-editor .is-inline-flex-mobile {
-      display: inline-flex !important; } }
-  @media screen and (min-width: 769px), print {
-    .sling-cms-editor .is-inline-flex-tablet {
-      display: inline-flex !important; } }
-  @media screen and (min-width: 769px) and (max-width: 1023px) {
-    .sling-cms-editor .is-inline-flex-tablet-only {
-      display: inline-flex !important; } }
-  @media screen and (max-width: 1023px) {
-    .sling-cms-editor .is-inline-flex-touch {
-      display: inline-flex !important; } }
-  @media screen and (min-width: 1024px) {
-    .sling-cms-editor .is-inline-flex-desktop {
-      display: inline-flex !important; } }
-  @media screen and (min-width: 1024px) and (max-width: 1215px) {
-    .sling-cms-editor .is-inline-flex-desktop-only {
-      display: inline-flex !important; } }
-  @media screen and (min-width: 1216px) {
-    .sling-cms-editor .is-inline-flex-widescreen {
-      display: inline-flex !important; } }
-  @media screen and (min-width: 1216px) and (max-width: 1407px) {
-    .sling-cms-editor .is-inline-flex-widescreen-only {
-      display: inline-flex !important; } }
-  @media screen and (min-width: 1408px) {
-    .sling-cms-editor .is-inline-flex-fullhd {
-      display: inline-flex !important; } }
-  .sling-cms-editor .is-hidden {
-    display: none !important; }
-  .sling-cms-editor .is-sr-only {
-    border: none !important;
-    clip: rect(0, 0, 0, 0) !important;
-    height: 0.01em !important;
-    overflow: hidden !important;
-    padding: 0 !important;
-    position: absolute !important;
-    white-space: nowrap !important;
-    width: 0.01em !important; }
-  @media screen and (max-width: 768px) {
-    .sling-cms-editor .is-hidden-mobile {
-      display: none !important; } }
-  @media screen and (min-width: 769px), print {
-    .sling-cms-editor .is-hidden-tablet {
-      display: none !important; } }
-  @media screen and (min-width: 769px) and (max-width: 1023px) {
-    .sling-cms-editor .is-hidden-tablet-only {
-      display: none !important; } }
-  @media screen and (max-width: 1023px) {
-    .sling-cms-editor .is-hidden-touch {
-      display: none !important; } }
-  @media screen and (min-width: 1024px) {
-    .sling-cms-editor .is-hidden-desktop {
-      display: none !important; } }
-  @media screen and (min-width: 1024px) and (max-width: 1215px) {
-    .sling-cms-editor .is-hidden-desktop-only {
-      display: none !important; } }
-  @media screen and (min-width: 1216px) {
-    .sling-cms-editor .is-hidden-widescreen {
-      display: none !important; } }
-  @media screen and (min-width: 1216px) and (max-width: 1407px) {
-    .sling-cms-editor .is-hidden-widescreen-only {
-      display: none !important; } }
-  @media screen and (min-width: 1408px) {
-    .sling-cms-editor .is-hidden-fullhd {
-      display: none !important; } }
-  .sling-cms-editor .is-invisible {
-    visibility: hidden !important; }
-  @media screen and (max-width: 768px) {
-    .sling-cms-editor .is-invisible-mobile {
-      visibility: hidden !important; } }
-  @media screen and (min-width: 769px), print {
-    .sling-cms-editor .is-invisible-tablet {
-      visibility: hidden !important; } }
-  @media screen and (min-width: 769px) and (max-width: 1023px) {
-    .sling-cms-editor .is-invisible-tablet-only {
-      visibility: hidden !important; } }
-  @media screen and (max-width: 1023px) {
-    .sling-cms-editor .is-invisible-touch {
-      visibility: hidden !important; } }
-  @media screen and (min-width: 1024px) {
-    .sling-cms-editor .is-invisible-desktop {
-      visibility: hidden !important; } }
-  @media screen and (min-width: 1024px) and (max-width: 1215px) {
-    .sling-cms-editor .is-invisible-desktop-only {
-      visibility: hidden !important; } }
-  @media screen and (min-width: 1216px) {
-    .sling-cms-editor .is-invisible-widescreen {
-      visibility: hidden !important; } }
-  @media screen and (min-width: 1216px) and (max-width: 1407px) {
-    .sling-cms-editor .is-invisible-widescreen-only {
-      visibility: hidden !important; } }
-  @media screen and (min-width: 1408px) {
-    .sling-cms-editor .is-invisible-fullhd {
-      visibility: hidden !important; } }
-  .sling-cms-editor .is-marginless {
-    margin: 0 !important; }
-  .sling-cms-editor .is-paddingless {
-    padding: 0 !important; }
-  .sling-cms-editor .is-radiusless {
-    border-radius: 0 !important; }
-  .sling-cms-editor .is-shadowless {
-    box-shadow: none !important; }
-  .sling-cms-editor .is-relative {
-    position: relative !important; }
-  .sling-cms-editor .box {
-    background-color: white;
-    border-radius: 6px;
-    box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0px 0 1px rgba(10, 10, 10, 0.02);
-    color: #4a4a4a;
-    display: block;
-    padding: 1.25rem; }
-  .sling-cms-editor a.box:hover, .sling-cms-editor a.box:focus {
-    box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0 0 1px #282661; }
-  .sling-cms-editor a.box:active {
-    box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #282661; }
-  .sling-cms-editor .button {
-    background-color: white;
-    border-color: #dbdbdb;
-    border-width: 1px;
-    color: #363636;
-    cursor: pointer;
-    justify-content: center;
-    padding-bottom: calc(0.5em - 1px);
-    padding-left: 1em;
-    padding-right: 1em;
-    padding-top: calc(0.5em - 1px);
-    text-align: center;
-    white-space: nowrap; }
-    .sling-cms-editor .button strong {
-      color: inherit; }
-    .sling-cms-editor .button .icon, .sling-cms-editor .button .icon.is-small, .sling-cms-editor .button .icon.is-medium, .sling-cms-editor .button .icon.is-large {
-      height: 1.5em;
-      width: 1.5em; }
-    .sling-cms-editor .button .icon:first-child:not(:last-child) {
-      margin-left: calc(-0.5em - 1px);
-      margin-right: 0.25em; }
-    .sling-cms-editor .button .icon:last-child:not(:first-child) {
-      margin-left: 0.25em;
-      margin-right: calc(-0.5em - 1px); }
-    .sling-cms-editor .button .icon:first-child:last-child {
-      margin-left: calc(-0.5em - 1px);
-      margin-right: calc(-0.5em - 1px); }
-    .sling-cms-editor .button:hover, .sling-cms-editor .button.is-hovered {
-      border-color: #b5b5b5;
-      color: #363636; }
-    .sling-cms-editor .button:focus, .sling-cms-editor .button.is-focused {
-      border-color: #3273dc;
-      color: #363636; }
-      .sling-cms-editor .button:focus:not(:active), .sling-cms-editor .button.is-focused:not(:active) {
-        box-shadow: 0 0 0 0.125em rgba(40, 38, 97, 0.25); }
-    .sling-cms-editor .button:active, .sling-cms-editor .button.is-active {
-      border-color: #4a4a4a;
-      color: #363636; }
-    .sling-cms-editor .button.is-text {
-      background-color: transparent;
-      border-color: transparent;
-      color: #4a4a4a;
-      text-decoration: underline; }
-      .sling-cms-editor .button.is-text:hover, .sling-cms-editor .button.is-text.is-hovered, .sling-cms-editor .button.is-text:focus, .sling-cms-editor .button.is-text.is-focused {
-        background-color: whitesmoke;
-        color: #363636; }
-      .sling-cms-editor .button.is-text:active, .sling-cms-editor .button.is-text.is-active {
-        background-color: #e8e8e8;
-        color: #363636; }
-      .sling-cms-editor .button.is-text[disabled],
-      fieldset[disabled] .sling-cms-editor .button.is-text {
-        background-color: transparent;
-        border-color: transparent;
-        box-shadow: none; }
-    .sling-cms-editor .button.is-white {
-      background-color: white;
-      border-color: transparent;
-      color: #0a0a0a; }
-      .sling-cms-editor .button.is-white:hover, .sling-cms-editor .button.is-white.is-hovered {
-        background-color: #f9f9f9;
-        border-color: transparent;
-        color: #0a0a0a; }
-      .sling-cms-editor .button.is-white:focus, .sling-cms-editor .button.is-white.is-focused {
-        border-color: transparent;
-        color: #0a0a0a; }
-        .sling-cms-editor .button.is-white:focus:not(:active), .sling-cms-editor .button.is-white.is-focused:not(:active) {
-          box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
-      .sling-cms-editor .button.is-white:active, .sling-cms-editor .button.is-white.is-active {
-        background-color: #f2f2f2;
-        border-color: transparent;
-        color: #0a0a0a; }
-      .sling-cms-editor .button.is-white[disabled],
-      fieldset[disabled] .sling-cms-editor .button.is-white {
-        background-color: white;
-        border-color: transparent;
-        box-shadow: none; }
-      .sling-cms-editor .button.is-white.is-inverted {
-        background-color: #0a0a0a;
-        color: white; }
-        .sling-cms-editor .button.is-white.is-inverted:hover, .sling-cms-editor .button.is-white.is-inverted.is-hovered {
-          background-color: black; }
-        .sling-cms-editor .button.is-white.is-inverted[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-white.is-inverted {
-          background-color: #0a0a0a;
-          border-color: transparent;
-          box-shadow: none;
-          color: white; }
-      .sling-cms-editor .button.is-white.is-loading::after {
-        border-color: transparent transparent #0a0a0a #0a0a0a !important; }
-      .sling-cms-editor .button.is-white.is-outlined {
-        background-color: transparent;
-        border-color: white;
-        color: white; }
-        .sling-cms-editor .button.is-white.is-outlined:hover, .sling-cms-editor .button.is-white.is-outlined.is-hovered, .sling-cms-editor .button.is-white.is-outlined:focus, .sling-cms-editor .button.is-white.is-outlined.is-focused {
-          background-color: white;
-          border-color: white;
-          color: #0a0a0a; }
-        .sling-cms-editor .button.is-white.is-outlined.is-loading::after {
-          border-color: transparent transparent white white !important; }
-        .sling-cms-editor .button.is-white.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-white.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-white.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-white.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent #0a0a0a #0a0a0a !important; }
-        .sling-cms-editor .button.is-white.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-white.is-outlined {
-          background-color: transparent;
-          border-color: white;
-          box-shadow: none;
-          color: white; }
-      .sling-cms-editor .button.is-white.is-inverted.is-outlined {
-        background-color: transparent;
-        border-color: #0a0a0a;
-        color: #0a0a0a; }
-        .sling-cms-editor .button.is-white.is-inverted.is-outlined:hover, .sling-cms-editor .button.is-white.is-inverted.is-outlined.is-hovered, .sling-cms-editor .button.is-white.is-inverted.is-outlined:focus, .sling-cms-editor .button.is-white.is-inverted.is-outlined.is-focused {
-          background-color: #0a0a0a;
-          color: white; }
-        .sling-cms-editor .button.is-white.is-inverted.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-white.is-inverted.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent white white !important; }
-        .sling-cms-editor .button.is-white.is-inverted.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-white.is-inverted.is-outlined {
-          background-color: transparent;
-          border-color: #0a0a0a;
-          box-shadow: none;
-          color: #0a0a0a; }
-    .sling-cms-editor .button.is-black {
-      background-color: #0a0a0a;
-      border-color: transparent;
-      color: white; }
-      .sling-cms-editor .button.is-black:hover, .sling-cms-editor .button.is-black.is-hovered {
-        background-color: #040404;
-        border-color: transparent;
-        color: white; }
-      .sling-cms-editor .button.is-black:focus, .sling-cms-editor .button.is-black.is-focused {
-        border-color: transparent;
-        color: white; }
-        .sling-cms-editor .button.is-black:focus:not(:active), .sling-cms-editor .button.is-black.is-focused:not(:active) {
-          box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
-      .sling-cms-editor .button.is-black:active, .sling-cms-editor .button.is-black.is-active {
-        background-color: black;
-        border-color: transparent;
-        color: white; }
-      .sling-cms-editor .button.is-black[disabled],
-      fieldset[disabled] .sling-cms-editor .button.is-black {
-        background-color: #0a0a0a;
-        border-color: transparent;
-        box-shadow: none; }
-      .sling-cms-editor .button.is-black.is-inverted {
-        background-color: white;
-        color: #0a0a0a; }
-        .sling-cms-editor .button.is-black.is-inverted:hover, .sling-cms-editor .button.is-black.is-inverted.is-hovered {
-          background-color: #f2f2f2; }
-        .sling-cms-editor .button.is-black.is-inverted[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-black.is-inverted {
-          background-color: white;
-          border-color: transparent;
-          box-shadow: none;
-          color: #0a0a0a; }
-      .sling-cms-editor .button.is-black.is-loading::after {
-        border-color: transparent transparent white white !important; }
-      .sling-cms-editor .button.is-black.is-outlined {
-        background-color: transparent;
-        border-color: #0a0a0a;
-        color: #0a0a0a; }
-        .sling-cms-editor .button.is-black.is-outlined:hover, .sling-cms-editor .button.is-black.is-outlined.is-hovered, .sling-cms-editor .button.is-black.is-outlined:focus, .sling-cms-editor .button.is-black.is-outlined.is-focused {
-          background-color: #0a0a0a;
-          border-color: #0a0a0a;
-          color: white; }
-        .sling-cms-editor .button.is-black.is-outlined.is-loading::after {
-          border-color: transparent transparent #0a0a0a #0a0a0a !important; }
-        .sling-cms-editor .button.is-black.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-black.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-black.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-black.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent white white !important; }
-        .sling-cms-editor .button.is-black.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-black.is-outlined {
-          background-color: transparent;
-          border-color: #0a0a0a;
-          box-shadow: none;
-          color: #0a0a0a; }
-      .sling-cms-editor .button.is-black.is-inverted.is-outlined {
-        background-color: transparent;
-        border-color: white;
-        color: white; }
-        .sling-cms-editor .button.is-black.is-inverted.is-outlined:hover, .sling-cms-editor .button.is-black.is-inverted.is-outlined.is-hovered, .sling-cms-editor .button.is-black.is-inverted.is-outlined:focus, .sling-cms-editor .button.is-black.is-inverted.is-outlined.is-focused {
-          background-color: white;
-          color: #0a0a0a; }
-        .sling-cms-editor .button.is-black.is-inverted.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-black.is-inverted.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent #0a0a0a #0a0a0a !important; }
-        .sling-cms-editor .button.is-black.is-inverted.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-black.is-inverted.is-outlined {
-          background-color: transparent;
-          border-color: white;
-          box-shadow: none;
-          color: white; }
-    .sling-cms-editor .button.is-light {
-      background-color: whitesmoke;
-      border-color: transparent;
-      color: rgba(0, 0, 0, 0.7); }
-      .sling-cms-editor .button.is-light:hover, .sling-cms-editor .button.is-light.is-hovered {
-        background-color: #eeeeee;
-        border-color: transparent;
-        color: rgba(0, 0, 0, 0.7); }
-      .sling-cms-editor .button.is-light:focus, .sling-cms-editor .button.is-light.is-focused {
-        border-color: transparent;
-        color: rgba(0, 0, 0, 0.7); }
-        .sling-cms-editor .button.is-light:focus:not(:active), .sling-cms-editor .button.is-light.is-focused:not(:active) {
-          box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }
-      .sling-cms-editor .button.is-light:active, .sling-cms-editor .button.is-light.is-active {
-        background-color: #e8e8e8;
-        border-color: transparent;
-        color: rgba(0, 0, 0, 0.7); }
-      .sling-cms-editor .button.is-light[disabled],
-      fieldset[disabled] .sling-cms-editor .button.is-light {
-        background-color: whitesmoke;
-        border-color: transparent;
-        box-shadow: none; }
-      .sling-cms-editor .button.is-light.is-inverted {
-        background-color: rgba(0, 0, 0, 0.7);
-        color: whitesmoke; }
-        .sling-cms-editor .button.is-light.is-inverted:hover, .sling-cms-editor .button.is-light.is-inverted.is-hovered {
-          background-color: rgba(0, 0, 0, 0.7); }
-        .sling-cms-editor .button.is-light.is-inverted[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-light.is-inverted {
-          background-color: rgba(0, 0, 0, 0.7);
-          border-color: transparent;
-          box-shadow: none;
-          color: whitesmoke; }
-      .sling-cms-editor .button.is-light.is-loading::after {
-        border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; }
-      .sling-cms-editor .button.is-light.is-outlined {
-        background-color: transparent;
-        border-color: whitesmoke;
-        color: whitesmoke; }
-        .sling-cms-editor .button.is-light.is-outlined:hover, .sling-cms-editor .button.is-light.is-outlined.is-hovered, .sling-cms-editor .button.is-light.is-outlined:focus, .sling-cms-editor .button.is-light.is-outlined.is-focused {
-          background-color: whitesmoke;
-          border-color: whitesmoke;
-          color: rgba(0, 0, 0, 0.7); }
-        .sling-cms-editor .button.is-light.is-outlined.is-loading::after {
-          border-color: transparent transparent whitesmoke whitesmoke !important; }
-        .sling-cms-editor .button.is-light.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-light.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-light.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-light.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; }
-        .sling-cms-editor .button.is-light.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-light.is-outlined {
-          background-color: transparent;
-          border-color: whitesmoke;
-          box-shadow: none;
-          color: whitesmoke; }
-      .sling-cms-editor .button.is-light.is-inverted.is-outlined {
-        background-color: transparent;
-        border-color: rgba(0, 0, 0, 0.7);
-        color: rgba(0, 0, 0, 0.7); }
-        .sling-cms-editor .button.is-light.is-inverted.is-outlined:hover, .sling-cms-editor .button.is-light.is-inverted.is-outlined.is-hovered, .sling-cms-editor .button.is-light.is-inverted.is-outlined:focus, .sling-cms-editor .button.is-light.is-inverted.is-outlined.is-focused {
-          background-color: rgba(0, 0, 0, 0.7);
-          color: whitesmoke; }
-        .sling-cms-editor .button.is-light.is-inverted.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-light.is-inverted.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent whitesmoke whitesmoke !important; }
-        .sling-cms-editor .button.is-light.is-inverted.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-light.is-inverted.is-outlined {
-          background-color: transparent;
-          border-color: rgba(0, 0, 0, 0.7);
-          box-shadow: none;
-          color: rgba(0, 0, 0, 0.7); }
-    .sling-cms-editor .button.is-dark {
-      background-color: #363636;
-      border-color: transparent;
-      color: #fff; }
-      .sling-cms-editor .button.is-dark:hover, .sling-cms-editor .button.is-dark.is-hovered {
-        background-color: #2f2f2f;
-        border-color: transparent;
-        color: #fff; }
-      .sling-cms-editor .button.is-dark:focus, .sling-cms-editor .button.is-dark.is-focused {
-        border-color: transparent;
-        color: #fff; }
-        .sling-cms-editor .button.is-dark:focus:not(:active), .sling-cms-editor .button.is-dark.is-focused:not(:active) {
-          box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }
-      .sling-cms-editor .button.is-dark:active, .sling-cms-editor .button.is-dark.is-active {
-        background-color: #292929;
-        border-color: transparent;
-        color: #fff; }
-      .sling-cms-editor .button.is-dark[disabled],
-      fieldset[disabled] .sling-cms-editor .button.is-dark {
-        background-color: #363636;
-        border-color: transparent;
-        box-shadow: none; }
-      .sling-cms-editor .button.is-dark.is-inverted {
-        background-color: #fff;
-        color: #363636; }
-        .sling-cms-editor .button.is-dark.is-inverted:hover, .sling-cms-editor .button.is-dark.is-inverted.is-hovered {
-          background-color: #f2f2f2; }
-        .sling-cms-editor .button.is-dark.is-inverted[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-dark.is-inverted {
-          background-color: #fff;
-          border-color: transparent;
-          box-shadow: none;
-          color: #363636; }
-      .sling-cms-editor .button.is-dark.is-loading::after {
-        border-color: transparent transparent #fff #fff !important; }
-      .sling-cms-editor .button.is-dark.is-outlined {
-        background-color: transparent;
-        border-color: #363636;
-        color: #363636; }
-        .sling-cms-editor .button.is-dark.is-outlined:hover, .sling-cms-editor .button.is-dark.is-outlined.is-hovered, .sling-cms-editor .button.is-dark.is-outlined:focus, .sling-cms-editor .button.is-dark.is-outlined.is-focused {
-          background-color: #363636;
-          border-color: #363636;
-          color: #fff; }
-        .sling-cms-editor .button.is-dark.is-outlined.is-loading::after {
-          border-color: transparent transparent #363636 #363636 !important; }
-        .sling-cms-editor .button.is-dark.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-dark.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-dark.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-dark.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent #fff #fff !important; }
-        .sling-cms-editor .button.is-dark.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-dark.is-outlined {
-          background-color: transparent;
-          border-color: #363636;
-          box-shadow: none;
-          color: #363636; }
-      .sling-cms-editor .button.is-dark.is-inverted.is-outlined {
-        background-color: transparent;
-        border-color: #fff;
-        color: #fff; }
-        .sling-cms-editor .button.is-dark.is-inverted.is-outlined:hover, .sling-cms-editor .button.is-dark.is-inverted.is-outlined.is-hovered, .sling-cms-editor .button.is-dark.is-inverted.is-outlined:focus, .sling-cms-editor .button.is-dark.is-inverted.is-outlined.is-focused {
-          background-color: #fff;
-          color: #363636; }
-        .sling-cms-editor .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent #363636 #363636 !important; }
-        .sling-cms-editor .button.is-dark.is-inverted.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-dark.is-inverted.is-outlined {
-          background-color: transparent;
-          border-color: #fff;
-          box-shadow: none;
-          color: #fff; }
-    .sling-cms-editor .button.is-primary {
-      background-color: #9E2165;
-      border-color: transparent;
-      color: #fff; }
-      .sling-cms-editor .button.is-primary:hover, .sling-cms-editor .button.is-primary.is-hovered {
-        background-color: #931f5e;
-        border-color: transparent;
-        color: #fff; }
-      .sling-cms-editor .button.is-primary:focus, .sling-cms-editor .button.is-primary.is-focused {
-        border-color: transparent;
-        color: #fff; }
-        .sling-cms-editor .button.is-primary:focus:not(:active), .sling-cms-editor .button.is-primary.is-focused:not(:active) {
-          box-shadow: 0 0 0 0.125em rgba(158, 33, 101, 0.25); }
-      .sling-cms-editor .button.is-primary:active, .sling-cms-editor .button.is-primary.is-active {
-        background-color: #891d58;
-        border-color: transparent;
-        color: #fff; }
-      .sling-cms-editor .button.is-primary[disabled],
-      fieldset[disabled] .sling-cms-editor .button.is-primary {
-        background-color: #9E2165;
-        border-color: transparent;
-        box-shadow: none; }
-      .sling-cms-editor .button.is-primary.is-inverted {
-        background-color: #fff;
-        color: #9E2165; }
-        .sling-cms-editor .button.is-primary.is-inverted:hover, .sling-cms-editor .button.is-primary.is-inverted.is-hovered {
-          background-color: #f2f2f2; }
-        .sling-cms-editor .button.is-primary.is-inverted[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-primary.is-inverted {
-          background-color: #fff;
-          border-color: transparent;
-          box-shadow: none;
-          color: #9E2165; }
-      .sling-cms-editor .button.is-primary.is-loading::after {
-        border-color: transparent transparent #fff #fff !important; }
-      .sling-cms-editor .button.is-primary.is-outlined {
-        background-color: transparent;
-        border-color: #9E2165;
-        color: #9E2165; }
-        .sling-cms-editor .button.is-primary.is-outlined:hover, .sling-cms-editor .button.is-primary.is-outlined.is-hovered, .sling-cms-editor .button.is-primary.is-outlined:focus, .sling-cms-editor .button.is-primary.is-outlined.is-focused {
-          background-color: #9E2165;
-          border-color: #9E2165;
-          color: #fff; }
-        .sling-cms-editor .button.is-primary.is-outlined.is-loading::after {
-          border-color: transparent transparent #9E2165 #9E2165 !important; }
-        .sling-cms-editor .button.is-primary.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-primary.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-primary.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-primary.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent #fff #fff !important; }
-        .sling-cms-editor .button.is-primary.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-primary.is-outlined {
-          background-color: transparent;
-          border-color: #9E2165;
-          box-shadow: none;
-          color: #9E2165; }
-      .sling-cms-editor .button.is-primary.is-inverted.is-outlined {
-        background-color: transparent;
-        border-color: #fff;
-        color: #fff; }
-        .sling-cms-editor .button.is-primary.is-inverted.is-outlined:hover, .sling-cms-editor .button.is-primary.is-inverted.is-outlined.is-hovered, .sling-cms-editor .button.is-primary.is-inverted.is-outlined:focus, .sling-cms-editor .button.is-primary.is-inverted.is-outlined.is-focused {
-          background-color: #fff;
-          color: #9E2165; }
-        .sling-cms-editor .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent #9E2165 #9E2165 !important; }
-        .sling-cms-editor .button.is-primary.is-inverted.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-primary.is-inverted.is-outlined {
-          background-color: transparent;
-          border-color: #fff;
-          box-shadow: none;
-          color: #fff; }
-      .sling-cms-editor .button.is-primary.is-light {
-        background-color: #fbeef5;
-        color: #d43089; }
-        .sling-cms-editor .button.is-primary.is-light:hover, .sling-cms-editor .button.is-primary.is-light.is-hovered {
-          background-color: #f9e4ef;
-          border-color: transparent;
-          color: #d43089; }
-        .sling-cms-editor .button.is-primary.is-light:active, .sling-cms-editor .button.is-primary.is-light.is-active {
-          background-color: #f7d9e9;
-          border-color: transparent;
-          color: #d43089; }
-    .sling-cms-editor .button.is-link {
-      background-color: #282661;
-      border-color: transparent;
-      color: #fff; }
-      .sling-cms-editor .button.is-link:hover, .sling-cms-editor .button.is-link.is-hovered {
-        background-color: #242258;
-        border-color: transparent;
-        color: #fff; }
-      .sling-cms-editor .button.is-link:focus, .sling-cms-editor .button.is-link.is-focused {
-        border-color: transparent;
-        color: #fff; }
-        .sling-cms-editor .button.is-link:focus:not(:active), .sling-cms-editor .button.is-link.is-focused:not(:active) {
-          box-shadow: 0 0 0 0.125em rgba(40, 38, 97, 0.25); }
-      .sling-cms-editor .button.is-link:active, .sling-cms-editor .button.is-link.is-active {
-        background-color: #201f4f;
-        border-color: transparent;
-        color: #fff; }
-      .sling-cms-editor .button.is-link[disabled],
-      fieldset[disabled] .sling-cms-editor .button.is-link {
-        background-color: #282661;
-        border-color: transparent;
-        box-shadow: none; }
-      .sling-cms-editor .button.is-link.is-inverted {
-        background-color: #fff;
-        color: #282661; }
-        .sling-cms-editor .button.is-link.is-inverted:hover, .sling-cms-editor .button.is-link.is-inverted.is-hovered {
-          background-color: #f2f2f2; }
-        .sling-cms-editor .button.is-link.is-inverted[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-link.is-inverted {
-          background-color: #fff;
-          border-color: transparent;
-          box-shadow: none;
-          color: #282661; }
-      .sling-cms-editor .button.is-link.is-loading::after {
-        border-color: transparent transparent #fff #fff !important; }
-      .sling-cms-editor .button.is-link.is-outlined {
-        background-color: transparent;
-        border-color: #282661;
-        color: #282661; }
-        .sling-cms-editor .button.is-link.is-outlined:hover, .sling-cms-editor .button.is-link.is-outlined.is-hovered, .sling-cms-editor .button.is-link.is-outlined:focus, .sling-cms-editor .button.is-link.is-outlined.is-focused {
-          background-color: #282661;
-          border-color: #282661;
-          color: #fff; }
-        .sling-cms-editor .button.is-link.is-outlined.is-loading::after {
-          border-color: transparent transparent #282661 #282661 !important; }
-        .sling-cms-editor .button.is-link.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-link.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-link.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-link.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent #fff #fff !important; }
-        .sling-cms-editor .button.is-link.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-link.is-outlined {
-          background-color: transparent;
-          border-color: #282661;
-          box-shadow: none;
-          color: #282661; }
-      .sling-cms-editor .button.is-link.is-inverted.is-outlined {
-        background-color: transparent;
-        border-color: #fff;
-        color: #fff; }
-        .sling-cms-editor .button.is-link.is-inverted.is-outlined:hover, .sling-cms-editor .button.is-link.is-inverted.is-outlined.is-hovered, .sling-cms-editor .button.is-link.is-inverted.is-outlined:focus, .sling-cms-editor .button.is-link.is-inverted.is-outlined.is-focused {
-          background-color: #fff;
-          color: #282661; }
-        .sling-cms-editor .button.is-link.is-inverted.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent #282661 #282661 !important; }
-        .sling-cms-editor .button.is-link.is-inverted.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-link.is-inverted.is-outlined {
-          background-color: transparent;
-          border-color: #fff;
-          box-shadow: none;
-          color: #fff; }
-      .sling-cms-editor .button.is-link.is-light {
-        background-color: #f1f0f9;
-        color: #5e5abe; }
-        .sling-cms-editor .button.is-link.is-light:hover, .sling-cms-editor .button.is-link.is-light.is-hovered {
-          background-color: #e8e7f6;
-          border-color: transparent;
-          color: #5e5abe; }
-        .sling-cms-editor .button.is-link.is-light:active, .sling-cms-editor .button.is-link.is-light.is-active {
-          background-color: #dfdef2;
-          border-color: transparent;
-          color: #5e5abe; }
-    .sling-cms-editor .button.is-info {
-      background-color: #3298dc;
-      border-color: transparent;
-      color: #fff; }
-      .sling-cms-editor .button.is-info:hover, .sling-cms-editor .button.is-info.is-hovered {
-        background-color: #2793da;
-        border-color: transparent;
-        color: #fff; }
-      .sling-cms-editor .button.is-info:focus, .sling-cms-editor .button.is-info.is-focused {
-        border-color: transparent;
-        color: #fff; }
-        .sling-cms-editor .button.is-info:focus:not(:active), .sling-cms-editor .button.is-info.is-focused:not(:active) {
-          box-shadow: 0 0 0 0.125em rgba(50, 152, 220, 0.25); }
-      .sling-cms-editor .button.is-info:active, .sling-cms-editor .button.is-info.is-active {
-        background-color: #238cd1;
-        border-color: transparent;
-        color: #fff; }
-      .sling-cms-editor .button.is-info[disabled],
-      fieldset[disabled] .sling-cms-editor .button.is-info {
-        background-color: #3298dc;
-        border-color: transparent;
-        box-shadow: none; }
-      .sling-cms-editor .button.is-info.is-inverted {
-        background-color: #fff;
-        color: #3298dc; }
-        .sling-cms-editor .button.is-info.is-inverted:hover, .sling-cms-editor .button.is-info.is-inverted.is-hovered {
-          background-color: #f2f2f2; }
-        .sling-cms-editor .button.is-info.is-inverted[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-info.is-inverted {
-          background-color: #fff;
-          border-color: transparent;
-          box-shadow: none;
-          color: #3298dc; }
-      .sling-cms-editor .button.is-info.is-loading::after {
-        border-color: transparent transparent #fff #fff !important; }
-      .sling-cms-editor .button.is-info.is-outlined {
-        background-color: transparent;
-        border-color: #3298dc;
-        color: #3298dc; }
-        .sling-cms-editor .button.is-info.is-outlined:hover, .sling-cms-editor .button.is-info.is-outlined.is-hovered, .sling-cms-editor .button.is-info.is-outlined:focus, .sling-cms-editor .button.is-info.is-outlined.is-focused {
-          background-color: #3298dc;
-          border-color: #3298dc;
-          color: #fff; }
-        .sling-cms-editor .button.is-info.is-outlined.is-loading::after {
-          border-color: transparent transparent #3298dc #3298dc !important; }
-        .sling-cms-editor .button.is-info.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-info.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-info.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-info.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent #fff #fff !important; }
-        .sling-cms-editor .button.is-info.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-info.is-outlined {
-          background-color: transparent;
-          border-color: #3298dc;
-          box-shadow: none;
-          color: #3298dc; }
-      .sling-cms-editor .button.is-info.is-inverted.is-outlined {
-        background-color: transparent;
-        border-color: #fff;
-        color: #fff; }
-        .sling-cms-editor .button.is-info.is-inverted.is-outlined:hover, .sling-cms-editor .button.is-info.is-inverted.is-outlined.is-hovered, .sling-cms-editor .button.is-info.is-inverted.is-outlined:focus, .sling-cms-editor .button.is-info.is-inverted.is-outlined.is-focused {
-          background-color: #fff;
-          color: #3298dc; }
-        .sling-cms-editor .button.is-info.is-inverted.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent #3298dc #3298dc !important; }
-        .sling-cms-editor .button.is-info.is-inverted.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-info.is-inverted.is-outlined {
-          background-color: transparent;
-          border-color: #fff;
-          box-shadow: none;
-          color: #fff; }
-      .sling-cms-editor .button.is-info.is-light {
-        background-color: #eef6fc;
-        color: #1d72aa; }
-        .sling-cms-editor .button.is-info.is-light:hover, .sling-cms-editor .button.is-info.is-light.is-hovered {
-          background-color: #e3f1fa;
-          border-color: transparent;
-          color: #1d72aa; }
-        .sling-cms-editor .button.is-info.is-light:active, .sling-cms-editor .button.is-info.is-light.is-active {
-          background-color: #d8ebf8;
-          border-color: transparent;
-          color: #1d72aa; }
-    .sling-cms-editor .button.is-success {
-      background-color: #48c774;
-      border-color: transparent;
-      color: #fff; }
-      .sling-cms-editor .button.is-success:hover, .sling-cms-editor .button.is-success.is-hovered {
-        background-color: #3ec46d;
-        border-color: transparent;
-        color: #fff; }
-      .sling-cms-editor .button.is-success:focus, .sling-cms-editor .button.is-success.is-focused {
-        border-color: transparent;
-        color: #fff; }
-        .sling-cms-editor .button.is-success:focus:not(:active), .sling-cms-editor .button.is-success.is-focused:not(:active) {
-          box-shadow: 0 0 0 0.125em rgba(72, 199, 116, 0.25); }
-      .sling-cms-editor .button.is-success:active, .sling-cms-editor .button.is-success.is-active {
-        background-color: #3abb67;
-        border-color: transparent;
-        color: #fff; }
-      .sling-cms-editor .button.is-success[disabled],
-      fieldset[disabled] .sling-cms-editor .button.is-success {
-        background-color: #48c774;
-        border-color: transparent;
-        box-shadow: none; }
-      .sling-cms-editor .button.is-success.is-inverted {
-        background-color: #fff;
-        color: #48c774; }
-        .sling-cms-editor .button.is-success.is-inverted:hover, .sling-cms-editor .button.is-success.is-inverted.is-hovered {
-          background-color: #f2f2f2; }
-        .sling-cms-editor .button.is-success.is-inverted[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-success.is-inverted {
-          background-color: #fff;
-          border-color: transparent;
-          box-shadow: none;
-          color: #48c774; }
-      .sling-cms-editor .button.is-success.is-loading::after {
-        border-color: transparent transparent #fff #fff !important; }
-      .sling-cms-editor .button.is-success.is-outlined {
-        background-color: transparent;
-        border-color: #48c774;
-        color: #48c774; }
-        .sling-cms-editor .button.is-success.is-outlined:hover, .sling-cms-editor .button.is-success.is-outlined.is-hovered, .sling-cms-editor .button.is-success.is-outlined:focus, .sling-cms-editor .button.is-success.is-outlined.is-focused {
-          background-color: #48c774;
-          border-color: #48c774;
-          color: #fff; }
-        .sling-cms-editor .button.is-success.is-outlined.is-loading::after {
-          border-color: transparent transparent #48c774 #48c774 !important; }
-        .sling-cms-editor .button.is-success.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-success.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-success.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-success.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent #fff #fff !important; }
-        .sling-cms-editor .button.is-success.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-success.is-outlined {
-          background-color: transparent;
-          border-color: #48c774;
-          box-shadow: none;
-          color: #48c774; }
-      .sling-cms-editor .button.is-success.is-inverted.is-outlined {
-        background-color: transparent;
-        border-color: #fff;
-        color: #fff; }
-        .sling-cms-editor .button.is-success.is-inverted.is-outlined:hover, .sling-cms-editor .button.is-success.is-inverted.is-outlined.is-hovered, .sling-cms-editor .button.is-success.is-inverted.is-outlined:focus, .sling-cms-editor .button.is-success.is-inverted.is-outlined.is-focused {
-          background-color: #fff;
-          color: #48c774; }
-        .sling-cms-editor .button.is-success.is-inverted.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent #48c774 #48c774 !important; }
-        .sling-cms-editor .button.is-success.is-inverted.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-success.is-inverted.is-outlined {
-          background-color: transparent;
-          border-color: #fff;
-          box-shadow: none;
-          color: #fff; }
-      .sling-cms-editor .button.is-success.is-light {
-        background-color: #effaf3;
-        color: #257942; }
-        .sling-cms-editor .button.is-success.is-light:hover, .sling-cms-editor .button.is-success.is-light.is-hovered {
-          background-color: #e6f7ec;
-          border-color: transparent;
-          color: #257942; }
-        .sling-cms-editor .button.is-success.is-light:active, .sling-cms-editor .button.is-success.is-light.is-active {
-          background-color: #dcf4e4;
-          border-color: transparent;
-          color: #257942; }
-    .sling-cms-editor .button.is-warning {
-      background-color: #EA7826;
-      border-color: transparent;
-      color: #fff; }
-      .sling-cms-editor .button.is-warning:hover, .sling-cms-editor .button.is-warning.is-hovered {
-        background-color: #e9711a;
-        border-color: transparent;
-        color: #fff; }
-      .sling-cms-editor .button.is-warning:focus, .sling-cms-editor .button.is-warning.is-focused {
-        border-color: transparent;
-        color: #fff; }
-        .sling-cms-editor .button.is-warning:focus:not(:active), .sling-cms-editor .button.is-warning.is-focused:not(:active) {
-          box-shadow: 0 0 0 0.125em rgba(234, 120, 38, 0.25); }
-      .sling-cms-editor .button.is-warning:active, .sling-cms-editor .button.is-warning.is-active {
-        background-color: #e16b16;
-        border-color: transparent;
-        color: #fff; }
-      .sling-cms-editor .button.is-warning[disabled],
-      fieldset[disabled] .sling-cms-editor .button.is-warning {
-        background-color: #EA7826;
-        border-color: transparent;
-        box-shadow: none; }
-      .sling-cms-editor .button.is-warning.is-inverted {
-        background-color: #fff;
-        color: #EA7826; }
-        .sling-cms-editor .button.is-warning.is-inverted:hover, .sling-cms-editor .button.is-warning.is-inverted.is-hovered {
-          background-color: #f2f2f2; }
-        .sling-cms-editor .button.is-warning.is-inverted[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-warning.is-inverted {
-          background-color: #fff;
-          border-color: transparent;
-          box-shadow: none;
-          color: #EA7826; }
-      .sling-cms-editor .button.is-warning.is-loading::after {
-        border-color: transparent transparent #fff #fff !important; }
-      .sling-cms-editor .button.is-warning.is-outlined {
-        background-color: transparent;
-        border-color: #EA7826;
-        color: #EA7826; }
-        .sling-cms-editor .button.is-warning.is-outlined:hover, .sling-cms-editor .button.is-warning.is-outlined.is-hovered, .sling-cms-editor .button.is-warning.is-outlined:focus, .sling-cms-editor .button.is-warning.is-outlined.is-focused {
-          background-color: #EA7826;
-          border-color: #EA7826;
-          color: #fff; }
-        .sling-cms-editor .button.is-warning.is-outlined.is-loading::after {
-          border-color: transparent transparent #EA7826 #EA7826 !important; }
-        .sling-cms-editor .button.is-warning.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-warning.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-warning.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-warning.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent #fff #fff !important; }
-        .sling-cms-editor .button.is-warning.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-warning.is-outlined {
-          background-color: transparent;
-          border-color: #EA7826;
-          box-shadow: none;
-          color: #EA7826; }
-      .sling-cms-editor .button.is-warning.is-inverted.is-outlined {
-        background-color: transparent;
-        border-color: #fff;
-        color: #fff; }
-        .sling-cms-editor .button.is-warning.is-inverted.is-outlined:hover, .sling-cms-editor .button.is-warning.is-inverted.is-outlined.is-hovered, .sling-cms-editor .button.is-warning.is-inverted.is-outlined:focus, .sling-cms-editor .button.is-warning.is-inverted.is-outlined.is-focused {
-          background-color: #fff;
-          color: #EA7826; }
-        .sling-cms-editor .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent #EA7826 #EA7826 !important; }
-        .sling-cms-editor .button.is-warning.is-inverted.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-warning.is-inverted.is-outlined {
-          background-color: transparent;
-          border-color: #fff;
-          box-shadow: none;
-          color: #fff; }
-      .sling-cms-editor .button.is-warning.is-light {
-        background-color: #fdf3ec;
-        color: #b15411; }
-        .sling-cms-editor .button.is-warning.is-light:hover, .sling-cms-editor .button.is-warning.is-light.is-hovered {
-          background-color: #fcece1;
-          border-color: transparent;
-          color: #b15411; }
-        .sling-cms-editor .button.is-warning.is-light:active, .sling-cms-editor .button.is-warning.is-light.is-active {
-          background-color: #fbe5d5;
-          border-color: transparent;
-          color: #b15411; }
-    .sling-cms-editor .button.is-danger {
-      background-color: #CB2138;
-      border-color: transparent;
-      color: #fff; }
-      .sling-cms-editor .button.is-danger:hover, .sling-cms-editor .button.is-danger.is-hovered {
-        background-color: #c01f35;
-        border-color: transparent;
-        color: #fff; }
-      .sling-cms-editor .button.is-danger:focus, .sling-cms-editor .button.is-danger.is-focused {
-        border-color: transparent;
-        color: #fff; }
-        .sling-cms-editor .button.is-danger:focus:not(:active), .sling-cms-editor .button.is-danger.is-focused:not(:active) {
-          box-shadow: 0 0 0 0.125em rgba(203, 33, 56, 0.25); }
-      .sling-cms-editor .button.is-danger:active, .sling-cms-editor .button.is-danger.is-active {
-        background-color: #b51d32;
-        border-color: transparent;
-        color: #fff; }
-      .sling-cms-editor .button.is-danger[disabled],
-      fieldset[disabled] .sling-cms-editor .button.is-danger {
-        background-color: #CB2138;
-        border-color: transparent;
-        box-shadow: none; }
-      .sling-cms-editor .button.is-danger.is-inverted {
-        background-color: #fff;
-        color: #CB2138; }
-        .sling-cms-editor .button.is-danger.is-inverted:hover, .sling-cms-editor .button.is-danger.is-inverted.is-hovered {
-          background-color: #f2f2f2; }
-        .sling-cms-editor .button.is-danger.is-inverted[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-danger.is-inverted {
-          background-color: #fff;
-          border-color: transparent;
-          box-shadow: none;
-          color: #CB2138; }
-      .sling-cms-editor .button.is-danger.is-loading::after {
-        border-color: transparent transparent #fff #fff !important; }
-      .sling-cms-editor .button.is-danger.is-outlined {
-        background-color: transparent;
-        border-color: #CB2138;
-        color: #CB2138; }
-        .sling-cms-editor .button.is-danger.is-outlined:hover, .sling-cms-editor .button.is-danger.is-outlined.is-hovered, .sling-cms-editor .button.is-danger.is-outlined:focus, .sling-cms-editor .button.is-danger.is-outlined.is-focused {
-          background-color: #CB2138;
-          border-color: #CB2138;
-          color: #fff; }
-        .sling-cms-editor .button.is-danger.is-outlined.is-loading::after {
-          border-color: transparent transparent #CB2138 #CB2138 !important; }
-        .sling-cms-editor .button.is-danger.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-danger.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-danger.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-danger.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent #fff #fff !important; }
-        .sling-cms-editor .button.is-danger.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-danger.is-outlined {
-          background-color: transparent;
-          border-color: #CB2138;
-          box-shadow: none;
-          color: #CB2138; }
-      .sling-cms-editor .button.is-danger.is-inverted.is-outlined {
-        background-color: transparent;
-        border-color: #fff;
-        color: #fff; }
-        .sling-cms-editor .button.is-danger.is-inverted.is-outlined:hover, .sling-cms-editor .button.is-danger.is-inverted.is-outlined.is-hovered, .sling-cms-editor .button.is-danger.is-inverted.is-outlined:focus, .sling-cms-editor .button.is-danger.is-inverted.is-outlined.is-focused {
-          background-color: #fff;
-          color: #CB2138; }
-        .sling-cms-editor .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent #CB2138 #CB2138 !important; }
-        .sling-cms-editor .button.is-danger.is-inverted.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-danger.is-inverted.is-outlined {
-          background-color: transparent;
-          border-color: #fff;
-          box-shadow: none;
-          color: #fff; }
-      .sling-cms-editor .button.is-danger.is-light {
-        background-color: #fcedef;
-        color: #d3223a; }
-        .sling-cms-editor .button.is-danger.is-light:hover, .sling-cms-editor .button.is-danger.is-light.is-hovered {
-          background-color: #fae2e6;
-          border-color: transparent;
-          color: #d3223a; }
-        .sling-cms-editor .button.is-danger.is-light:active, .sling-cms-editor .button.is-danger.is-light.is-active {
-          background-color: #f9d8dc;
-          border-color: transparent;
-          color: #d3223a; }
-    .sling-cms-editor .button.is-small {
-      border-radius: 2px;
-      font-size: 0.75rem; }
-    .sling-cms-editor .button.is-normal {
-      font-size: 1rem; }
-    .sling-cms-editor .button.is-medium {
-      font-size: 1.25rem; }
-    .sling-cms-editor .button.is-large {
-      font-size: 1.5rem; }
-    .sling-cms-editor .button[disabled],
-    fieldset[disabled] .sling-cms-editor .button {
-      background-color: white;
-      border-color: #dbdbdb;
-      box-shadow: none;
-      opacity: 0.5; }
-    .sling-cms-editor .button.is-fullwidth {
-      display: flex;
-      width: 100%; }
-    .sling-cms-editor .button.is-loading {
-      color: transparent !important;
-      pointer-events: none; }
-      .sling-cms-editor .button.is-loading::after {
-        position: absolute;
-        left: calc(50% - (1em / 2));
-        top: calc(50% - (1em / 2));
-        position: absolute !important; }
-    .sling-cms-editor .button.is-static {
-      background-color: whitesmoke;
-      border-color: #dbdbdb;
-      color: #7a7a7a;
-      box-shadow: none;
-      pointer-events: none; }
-    .sling-cms-editor .button.is-rounded {
-      border-radius: 290486px;
-      padding-left: calc(1em + 0.25em);
-      padding-right: calc(1em + 0.25em); }
-  .sling-cms-editor .buttons {
-    align-items: center;
-    display: flex;
-    flex-wrap: wrap;
-    justify-content: flex-start; }
-    .sling-cms-editor .buttons .button {
-      margin-bottom: 0.5rem; }
-      .sling-cms-editor .buttons .button:not(:last-child):not(.is-fullwidth) {
-        margin-right: 0.5rem; }
-    .sling-cms-editor .buttons:last-child {
-      margin-bottom: -0.5rem; }
-    .sling-cms-editor .buttons:not(:last-child) {
-      margin-bottom: 1rem; }
-    .sling-cms-editor .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) {
-      border-radius: 2px;
-      font-size: 0.75rem; }
-    .sling-cms-editor .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) {
-      font-size: 1.25rem; }
-    .sling-cms-editor .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) {
-      font-size: 1.5rem; }
-    .sling-cms-editor .buttons.has-addons .button:not(:first-child) {
-      border-bottom-left-radius: 0;
-      border-top-left-radius: 0; }
-    .sling-cms-editor .buttons.has-addons .button:not(:last-child) {
-      border-bottom-right-radius: 0;
-      border-top-right-radius: 0;
-      margin-right: -1px; }
-    .sling-cms-editor .buttons.has-addons .button:last-child {
-      margin-right: 0; }
-    .sling-cms-editor .buttons.has-addons .button:hover, .sling-cms-editor .buttons.has-addons .button.is-hovered {
-      z-index: 2; }
-    .sling-cms-editor .buttons.has-addons .button:focus, .sling-cms-editor .buttons.has-addons .button.is-focused, .sling-cms-editor .buttons.has-addons .button:active, .sling-cms-editor .buttons.has-addons .button.is-active, .sling-cms-editor .buttons.has-addons .button.is-selected {
-      z-index: 3; }
-      .sling-cms-editor .buttons.has-addons .button:focus:hover, .sling-cms-editor .buttons.has-addons .button.is-focused:hover, .sling-cms-editor .buttons.has-addons .button:active:hover, .sling-cms-editor .buttons.has-addons .button.is-active:hover, .sling-cms-editor .buttons.has-addons .button.is-selected:hover {
-        z-index: 4; }
-    .sling-cms-editor .buttons.has-addons .button.is-expanded {
-      flex-grow: 1;
-      flex-shrink: 1; }
-    .sling-cms-editor .buttons.is-centered {
-      justify-content: center; }
-      .sling-cms-editor .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) {
-        margin-left: 0.25rem;
-        margin-right: 0.25rem; }
-    .sling-cms-editor .buttons.is-right {
-      justify-content: flex-end; }
-      .sling-cms-editor .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) {
-        margin-left: 0.25rem;
-        margin-right: 0.25rem; }
-  .sling-cms-editor .input, .sling-cms-editor .textarea, .sling-cms-editor .select select {
-    background-color: white;
-    border-color: #dbdbdb;
-    border-radius: 4px;
-    color: #363636; }
-    .sling-cms-editor .input::-moz-placeholder, .sling-cms-editor .textarea::-moz-placeholder, .sling-cms-editor .select select::-moz-placeholder {
-      color: rgba(54, 54, 54, 0.3); }
-    .sling-cms-editor .input::-webkit-input-placeholder, .sling-cms-editor .textarea::-webkit-input-placeholder, .sling-cms-editor .select select::-webkit-input-placeholder {
-      color: rgba(54, 54, 54, 0.3); }
-    .sling-cms-editor .input:-moz-placeholder, .sling-cms-editor .textarea:-moz-placeholder, .sling-cms-editor .select select:-moz-placeholder {
-      color: rgba(54, 54, 54, 0.3); }
-    .sling-cms-editor .input:-ms-input-placeholder, .sling-cms-editor .textarea:-ms-input-placeholder, .sling-cms-editor .select select:-ms-input-placeholder {
-      color: rgba(54, 54, 54, 0.3); }
-    .sling-cms-editor .input:hover, .sling-cms-editor .textarea:hover, .sling-cms-editor .select select:hover, .sling-cms-editor .is-hovered.input, .sling-cms-editor .is-hovered.textarea, .sling-cms-editor .select select.is-hovered {
-      border-color: #b5b5b5; }
-    .sling-cms-editor .input:focus, .sling-cms-editor .textarea:focus, .sling-cms-editor .select select:focus, .sling-cms-editor .is-focused.input, .sling-cms-editor .is-focused.textarea, .sling-cms-editor .select select.is-focused, .sling-cms-editor .input:active, .sling-cms-editor .textarea:active, .sling-cms-editor .select select:active, .sling-cms-editor .is-active.input, .sling-cms-editor .is-active.textarea, .sling-cms-editor .select select.is-active {
-      border-color: #282661;
-      box-shadow: 0 0 0 0.125em rgba(40, 38, 97, 0.25); }
-    .sling-cms-editor .input[disabled], .sling-cms-editor .textarea[disabled], .sling-cms-editor .select select[disabled],
-    fieldset[disabled] .sling-cms-editor .input,
-    fieldset[disabled] .sling-cms-editor .textarea,
-    fieldset[disabled] .sling-cms-editor .select select {
-      background-color: whitesmoke;
-      border-color: whitesmoke;
-      box-shadow: none;
-      color: #7a7a7a; }
-      .sling-cms-editor .input[disabled]::-moz-placeholder, .sling-cms-editor .textarea[disabled]::-moz-placeholder, .sling-cms-editor .select select[disabled]::-moz-placeholder,
-      fieldset[disabled] .sling-cms-editor .input::-moz-placeholder,
-      fieldset[disabled] .sling-cms-editor .textarea::-moz-placeholder,
-      fieldset[disabled] .sling-cms-editor .select select::-moz-placeholder {
-        color: rgba(122, 122, 122, 0.3); }
-      .sling-cms-editor .input[disabled]::-webkit-input-placeholder, .sling-cms-editor .textarea[disabled]::-webkit-input-placeholder, .sling-cms-editor .select select[disabled]::-webkit-input-placeholder,
-      fieldset[disabled] .sling-cms-editor .input::-webkit-input-placeholder,
-      fieldset[disabled] .sling-cms-editor .textarea::-webkit-input-placeholder,
-      fieldset[disabled] .sling-cms-editor .select select::-webkit-input-placeholder {
-        color: rgba(122, 122, 122, 0.3); }
-      .sling-cms-editor .input[disabled]:-moz-placeholder, .sling-cms-editor .textarea[disabled]:-moz-placeholder, .sling-cms-editor .select select[disabled]:-moz-placeholder,
-      fieldset[disabled] .sling-cms-editor .input:-moz-placeholder,
-      fieldset[disabled] .sling-cms-editor .textarea:-moz-placeholder,
-      fieldset[disabled] .sling-cms-editor .select select:-moz-placeholder {
-        color: rgba(122, 122, 122, 0.3); }
-      .sling-cms-editor .input[disabled]:-ms-input-placeholder, .sling-cms-editor .textarea[disabled]:-ms-input-placeholder, .sling-cms-editor .select select[disabled]:-ms-input-placeholder,
-      fieldset[disabled] .sling-cms-editor .input:-ms-input-placeholder,
-      fieldset[disabled] .sling-cms-editor .textarea:-ms-input-placeholder,
-      fieldset[disabled] .sling-cms-editor .select select:-ms-input-placeholder {
-        color: rgba(122, 122, 122, 0.3); }
-  .sling-cms-editor .input, .sling-cms-editor .textarea {
-    box-shadow: inset 0 0.0625em 0.125em rgba(10, 10, 10, 0.05);
-    max-width: 100%;
-    width: 100%; }
-    .sling-cms-editor .input[readonly], .sling-cms-editor .textarea[readonly] {
-      box-shadow: none; }
-    .sling-cms-editor .is-white.input, .sling-cms-editor .is-white.textarea {
-      border-color: white; }
-      .sling-cms-editor .is-white.input:focus, .sling-cms-editor .is-white.textarea:focus, .sling-cms-editor .is-white.is-focused.input, .sling-cms-editor .is-white.is-focused.textarea, .sling-cms-editor .is-white.input:active, .sling-cms-editor .is-white.textarea:active, .sling-cms-editor .is-white.is-active.input, .sling-cms-editor .is-white.is-active.textarea {
-        box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
-    .sling-cms-editor .is-black.input, .sling-cms-editor .is-black.textarea {
-      border-color: #0a0a0a; }
-      .sling-cms-editor .is-black.input:focus, .sling-cms-editor .is-black.textarea:focus, .sling-cms-editor .is-black.is-focused.input, .sling-cms-editor .is-black.is-focused.textarea, .sling-cms-editor .is-black.input:active, .sling-cms-editor .is-black.textarea:active, .sling-cms-editor .is-black.is-active.input, .sling-cms-editor .is-black.is-active.textarea {
-        box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
-    .sling-cms-editor .is-light.input, .sling-cms-editor .is-light.textarea {
-      border-color: whitesmoke; }
-      .sling-cms-editor .is-light.input:focus, .sling-cms-editor .is-light.textarea:focus, .sling-cms-editor .is-light.is-focused.input, .sling-cms-editor .is-light.is-focused.textarea, .sling-cms-editor .is-light.input:active, .sling-cms-editor .is-light.textarea:active, .sling-cms-editor .is-light.is-active.input, .sling-cms-editor .is-light.is-active.textarea {
-        box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }
-    .sling-cms-editor .is-dark.input, .sling-cms-editor .is-dark.textarea {
-      border-color: #363636; }
-      .sling-cms-editor .is-dark.input:focus, .sling-cms-editor .is-dark.textarea:focus, .sling-cms-editor .is-dark.is-focused.input, .sling-cms-editor .is-dark.is-focused.textarea, .sling-cms-editor .is-dark.input:active, .sling-cms-editor .is-dark.textarea:active, .sling-cms-editor .is-dark.is-active.input, .sling-cms-editor .is-dark.is-active.textarea {
-        box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }
-    .sling-cms-editor .is-primary.input, .sling-cms-editor .is-primary.textarea {
-      border-color: #9E2165; }
-      .sling-cms-editor .is-primary.input:focus, .sling-cms-editor .is-primary.textarea:focus, .sling-cms-editor .is-primary.is-focused.input, .sling-cms-editor .is-primary.is-focused.textarea, .sling-cms-editor .is-primary.input:active, .sling-cms-editor .is-primary.textarea:active, .sling-cms-editor .is-primary.is-active.input, .sling-cms-editor .is-primary.is-active.textarea {
-        box-shadow: 0 0 0 0.125em rgba(158, 33, 101, 0.25); }
-    .sling-cms-editor .is-link.input, .sling-cms-editor .is-link.textarea {
-      border-color: #282661; }
-      .sling-cms-editor .is-link.input:focus, .sling-cms-editor .is-link.textarea:focus, .sling-cms-editor .is-link.is-focused.input, .sling-cms-editor .is-link.is-focused.textarea, .sling-cms-editor .is-link.input:active, .sling-cms-editor .is-link.textarea:active, .sling-cms-editor .is-link.is-active.input, .sling-cms-editor .is-link.is-active.textarea {
-        box-shadow: 0 0 0 0.125em rgba(40, 38, 97, 0.25); }
-    .sling-cms-editor .is-info.input, .sling-cms-editor .is-info.textarea {
-      border-color: #3298dc; }
-      .sling-cms-editor .is-info.input:focus, .sling-cms-editor .is-info.textarea:focus, .sling-cms-editor .is-info.is-focused.input, .sling-cms-editor .is-info.is-focused.textarea, .sling-cms-editor .is-info.input:active, .sling-cms-editor .is-info.textarea:active, .sling-cms-editor .is-info.is-active.input, .sling-cms-editor .is-info.is-active.textarea {
-        box-shadow: 0 0 0 0.125em rgba(50, 152, 220, 0.25); }
-    .sling-cms-editor .is-success.input, .sling-cms-editor .is-success.textarea {
-      border-color: #48c774; }
-      .sling-cms-editor .is-success.input:focus, .sling-cms-editor .is-success.textarea:focus, .sling-cms-editor .is-success.is-focused.input, .sling-cms-editor .is-success.is-focused.textarea, .sling-cms-editor .is-success.input:active, .sling-cms-editor .is-success.textarea:active, .sling-cms-editor .is-success.is-active.input, .sling-cms-editor .is-success.is-active.textarea {
-        box-shadow: 0 0 0 0.125em rgba(72, 199, 116, 0.25); }
-    .sling-cms-editor .is-warning.input, .sling-cms-editor .is-warning.textarea {
-      border-color: #EA7826; }
-      .sling-cms-editor .is-warning.input:focus, .sling-cms-editor .is-warning.textarea:focus, .sling-cms-editor .is-warning.is-focused.input, .sling-cms-editor .is-warning.is-focused.textarea, .sling-cms-editor .is-warning.input:active, .sling-cms-editor .is-warning.textarea:active, .sling-cms-editor .is-warning.is-active.input, .sling-cms-editor .is-warning.is-active.textarea {
-        box-shadow: 0 0 0 0.125em rgba(234, 120, 38, 0.25); }
-    .sling-cms-editor .is-danger.input, .sling-cms-editor .is-danger.textarea {
-      border-color: #CB2138; }
-      .sling-cms-editor .is-danger.input:focus, .sling-cms-editor .is-danger.textarea:focus, .sling-cms-editor .is-danger.is-focused.input, .sling-cms-editor .is-danger.is-focused.textarea, .sling-cms-editor .is-danger.input:active, .sling-cms-editor .is-danger.textarea:active, .sling-cms-editor .is-danger.is-active.input, .sling-cms-editor .is-danger.is-active.textarea {
-        box-shadow: 0 0 0 0.125em rgba(203, 33, 56, 0.25); }
-    .sling-cms-editor .is-small.input, .sling-cms-editor .is-small.textarea {
-      border-radius: 2px;
-      font-size: 0.75rem; }
-    .sling-cms-editor .is-medium.input, .sling-cms-editor .is-medium.textarea {
-      font-size: 1.25rem; }
-    .sling-cms-editor .is-large.input, .sling-cms-editor .is-large.textarea {
-      font-size: 1.5rem; }
-    .sling-cms-editor .is-fullwidth.input, .sling-cms-editor .is-fullwidth.textarea {
-      display: block;
-      width: 100%; }
-    .sling-cms-editor .is-inline.input, .sling-cms-editor .is-inline.textarea {
-      display: inline;
-      width: auto; }
-  .sling-cms-editor .input.is-rounded {
-    border-radius: 290486px;
-    padding-left: calc(calc(0.75em - 1px) + 0.375em);
-    padding-right: calc(calc(0.75em - 1px) + 0.375em); }
-  .sling-cms-editor .input.is-static {
-    background-color: transparent;
-    border-color: transparent;
-    box-shadow: none;
-    padding-left: 0;
-    padding-right: 0; }
-  .sling-cms-editor .textarea {
-    display: block;
-    max-width: 100%;
-    min-width: 100%;
-    padding: calc(0.75em - 1px);
-    resize: vertical; }
-    .sling-cms-editor .textarea:not([rows]) {
-      max-height: 40em;
-      min-height: 8em; }
-    .sling-cms-editor .textarea[rows] {
-      height: initial; }
-    .sling-cms-editor .textarea.has-fixed-size {
-      resize: none; }
-  .sling-cms-editor .checkbox, .sling-cms-editor .radio {
-    cursor: pointer;
-    display: inline-block;
-    line-height: 1.25;
-    position: relative; }
-    .sling-cms-editor .checkbox input, .sling-cms-editor .radio input {
-      cursor: pointer; }
-    .sling-cms-editor .checkbox:hover, .sling-cms-editor .radio:hover {
-      color: #363636; }
-    .sling-cms-editor .checkbox[disabled], .sling-cms-editor .radio[disabled],
-    fieldset[disabled] .sling-cms-editor .checkbox,
-    fieldset[disabled] .sling-cms-editor .radio {
-      color: #7a7a7a;
-      cursor: not-allowed; }
-  .sling-cms-editor .radio + .radio {
-    margin-left: 0.5em; }
-  .sling-cms-editor .select {
-    display: inline-block;
-    max-width: 100%;
-    position: relative;
-    vertical-align: top; }
-    .sling-cms-editor .select:not(.is-multiple) {
-      height: 2.5em; }
-    .sling-cms-editor .select:not(.is-multiple):not(.is-loading)::after {
-      border-color: #282661;
-      right: 1.125em;
-      z-index: 4; }
-    .sling-cms-editor .select.is-rounded select {
-      border-radius: 290486px;
-      padding-left: 1em; }
-    .sling-cms-editor .select select {
-      cursor: pointer;
-      display: block;
-      font-size: 1em;
-      max-width: 100%;
-      outline: none; }
-      .sling-cms-editor .select select::-ms-expand {
-        display: none; }
-      .sling-cms-editor .select select[disabled]:hover,
-      fieldset[disabled] .sling-cms-editor .select select:hover {
-        border-color: whitesmoke; }
-      .sling-cms-editor .select select:not([multiple]) {
-        padding-right: 2.5em; }
-      .sling-cms-editor .select select[multiple] {
-        height: auto;
-        padding: 0; }
-        .sling-cms-editor .select select[multiple] option {
-          padding: 0.5em 1em; }
-    .sling-cms-editor .select:not(.is-multiple):not(.is-loading):hover::after {
-      border-color: #363636; }
-    .sling-cms-editor .select.is-white:not(:hover)::after {
-      border-color: white; }
-    .sling-cms-editor .select.is-white select {
-      border-color: white; }
-      .sling-cms-editor .select.is-white select:hover, .sling-cms-editor .select.is-white select.is-hovered {
-        border-color: #f2f2f2; }
-      .sling-cms-editor .select.is-white select:focus, .sling-cms-editor .select.is-white select.is-focused, .sling-cms-editor .select.is-white select:active, .sling-cms-editor .select.is-white select.is-active {
-        box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
-    .sling-cms-editor .select.is-black:not(:hover)::after {
-      border-color: #0a0a0a; }
-    .sling-cms-editor .select.is-black select {
-      border-color: #0a0a0a; }
-      .sling-cms-editor .select.is-black select:hover, .sling-cms-editor .select.is-black select.is-hovered {
-        border-color: black; }
-      .sling-cms-editor .select.is-black select:focus, .sling-cms-editor .select.is-black select.is-focused, .sling-cms-editor .select.is-black select:active, .sling-cms-editor .select.is-black select.is-active {
-        box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
-    .sling-cms-editor .select.is-light:not(:hover)::after {
-      border-color: whitesmoke; }
-    .sling-cms-editor .select.is-light select {
-      border-color: whitesmoke; }
-      .sling-cms-editor .select.is-light select:hover, .sling-cms-editor .select.is-light select.is-hovered {
-        border-color: #e8e8e8; }
-      .sling-cms-editor .select.is-light select:focus, .sling-cms-editor .select.is-light select.is-focused, .sling-cms-editor .select.is-light select:active, .sling-cms-editor .select.is-light select.is-active {
-        box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }
-    .sling-cms-editor .select.is-dark:not(:hover)::after {
-      border-color: #363636; }
-    .sling-cms-editor .select.is-dark select {
-      border-color: #363636; }
-      .sling-cms-editor .select.is-dark select:hover, .sling-cms-editor .select.is-dark select.is-hovered {
-        border-color: #292929; }
-      .sling-cms-editor .select.is-dark select:focus, .sling-cms-editor .select.is-dark select.is-focused, .sling-cms-editor .select.is-dark select:active, .sling-cms-editor .select.is-dark select.is-active {
-        box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }
-    .sling-cms-editor .select.is-primary:not(:hover)::after {
-      border-color: #9E2165; }
-    .sling-cms-editor .select.is-primary select {
-      border-color: #9E2165; }
-      .sling-cms-editor .select.is-primary select:hover, .sling-cms-editor .select.is-primary select.is-hovered {
-        border-color: #891d58; }
-      .sling-cms-editor .select.is-primary select:focus, .sling-cms-editor .select.is-primary select.is-focused, .sling-cms-editor .select.is-primary select:active, .sling-cms-editor .select.is-primary select.is-active {
-        box-shadow: 0 0 0 0.125em rgba(158, 33, 101, 0.25); }
-    .sling-cms-editor .select.is-link:not(:hover)::after {
-      border-color: #282661; }
-    .sling-cms-editor .select.is-link select {
-      border-color: #282661; }
-      .sling-cms-editor .select.is-link select:hover, .sling-cms-editor .select.is-link select.is-hovered {
-        border-color: #201f4f; }
-      .sling-cms-editor .select.is-link select:focus, .sling-cms-editor .select.is-link select.is-focused, .sling-cms-editor .select.is-link select:active, .sling-cms-editor .select.is-link select.is-active {
-        box-shadow: 0 0 0 0.125em rgba(40, 38, 97, 0.25); }
-    .sling-cms-editor .select.is-info:not(:hover)::after {
-      border-color: #3298dc; }
-    .sling-cms-editor .select.is-info select {
-      border-color: #3298dc; }
-      .sling-cms-editor .select.is-info select:hover, .sling-cms-editor .select.is-info select.is-hovered {
-        border-color: #238cd1; }
-      .sling-cms-editor .select.is-info select:focus, .sling-cms-editor .select.is-info select.is-focused, .sling-cms-editor .select.is-info select:active, .sling-cms-editor .select.is-info select.is-active {
-        box-shadow: 0 0 0 0.125em rgba(50, 152, 220, 0.25); }
-    .sling-cms-editor .select.is-success:not(:hover)::after {
-      border-color: #48c774; }
-    .sling-cms-editor .select.is-success select {
-      border-color: #48c774; }
-      .sling-cms-editor .select.is-success select:hover, .sling-cms-editor .select.is-success select.is-hovered {
-        border-color: #3abb67; }
-      .sling-cms-editor .select.is-success select:focus, .sling-cms-editor .select.is-success select.is-focused, .sling-cms-editor .select.is-success select:active, .sling-cms-editor .select.is-success select.is-active {
-        box-shadow: 0 0 0 0.125em rgba(72, 199, 116, 0.25); }
-    .sling-cms-editor .select.is-warning:not(:hover)::after {
-      border-color: #EA7826; }
-    .sling-cms-editor .select.is-warning select {
-      border-color: #EA7826; }
-      .sling-cms-editor .select.is-warning select:hover, .sling-cms-editor .select.is-warning select.is-hovered {
-        border-color: #e16b16; }
-      .sling-cms-editor .select.is-warning select:focus, .sling-cms-editor .select.is-warning select.is-focused, .sling-cms-editor .select.is-warning select:active, .sling-cms-editor .select.is-warning select.is-active {
-        box-shadow: 0 0 0 0.125em rgba(234, 120, 38, 0.25); }
-    .sling-cms-editor .select.is-danger:not(:hover)::after {
-      border-color: #CB2138; }
-    .sling-cms-editor .select.is-danger select {
-      border-color: #CB2138; }
-      .sling-cms-editor .select.is-danger select:hover, .sling-cms-editor .select.is-danger select.is-hovered {
-        border-color: #b51d32; }
-      .sling-cms-editor .select.is-danger select:focus, .sling-cms-editor .select.is-danger select.is-focused, .sling-cms-editor .select.is-danger select:active, .sling-cms-editor .select.is-danger select.is-active {
-        box-shadow: 0 0 0 0.125em rgba(203, 33, 56, 0.25); }
-    .sling-cms-editor .select.is-small {
-      border-radius: 2px;
-      font-size: 0.75rem; }
-    .sling-cms-editor .select.is-medium {
-      font-size: 1.25rem; }
-    .sling-cms-editor .select.is-large {
-      font-size: 1.5rem; }
-    .sling-cms-editor .select.is-disabled::after {
-      border-color: #7a7a7a; }
-    .sling-cms-editor .select.is-fullwidth {
-      width: 100%; }
-      .sling-cms-editor .select.is-fullwidth select {
-        width: 100%; }
-    .sling-cms-editor .select.is-loading::after {
-      margin-top: 0;
-      position: absolute;
-      right: 0.625em;
-      top: 0.625em;
-      transform: none; }
-    .sling-cms-editor .select.is-loading.is-small:after {
-      font-size: 0.75rem; }
-    .sling-cms-editor .select.is-loading.is-medium:after {
-      font-size: 1.25rem; }
-    .sling-cms-editor .select.is-loading.is-large:after {
-      font-size: 1.5rem; }
-  .sling-cms-editor .file {
-    align-items: stretch;
-    display: flex;
-    justify-content: flex-start;
-    position: relative; }
-    .sling-cms-editor .file.is-white .file-cta {
-      background-color: white;
-      border-color: transparent;
-      color: #0a0a0a; }
-    .sling-cms-editor .file.is-white:hover .file-cta, .sling-cms-editor .file.is-white.is-hovered .file-cta {
-      background-color: #f9f9f9;
-      border-color: transparent;
-      color: #0a0a0a; }
-    .sling-cms-editor .file.is-white:focus .file-cta, .sling-cms-editor .file.is-white.is-focused .file-cta {
-      border-color: transparent;
-      box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25);
-      color: #0a0a0a; }
-    .sling-cms-editor .file.is-white:active .file-cta, .sling-cms-editor .file.is-white.is-active .file-cta {
-      background-color: #f2f2f2;
-      border-color: transparent;
-      color: #0a0a0a; }
-    .sling-cms-editor .file.is-black .file-cta {
-      background-color: #0a0a0a;
-      border-color: transparent;
-      color: white; }
-    .sling-cms-editor .file.is-black:hover .file-cta, .sling-cms-editor .file.is-black.is-hovered .file-cta {
-      background-color: #040404;
-      border-color: transparent;
-      color: white; }
-    .sling-cms-editor .file.is-black:focus .file-cta, .sling-cms-editor .file.is-black.is-focused .file-cta {
-      border-color: transparent;
-      box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25);
-      color: white; }
-    .sling-cms-editor .file.is-black:active .file-cta, .sling-cms-editor .file.is-black.is-active .file-cta {
-      background-color: black;
-      border-color: transparent;
-      color: white; }
-    .sling-cms-editor .file.is-light .file-cta {
-      background-color: whitesmoke;
-      border-color: transparent;
-      color: rgba(0, 0, 0, 0.7); }
-    .sling-cms-editor .file.is-light:hover .file-cta, .sling-cms-editor .file.is-light.is-hovered .file-cta {
-      background-color: #eeeeee;
-      border-color: transparent;
-      color: rgba(0, 0, 0, 0.7); }
-    .sling-cms-editor .file.is-light:focus .file-cta, .sling-cms-editor .file.is-light.is-focused .file-cta {
-      border-color: transparent;
-      box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25);
-      color: rgba(0, 0, 0, 0.7); }
-    .sling-cms-editor .file.is-light:active .file-cta, .sling-cms-editor .file.is-light.is-active .file-cta {
-      background-color: #e8e8e8;
-      border-color: transparent;
-      color: rgba(0, 0, 0, 0.7); }
-    .sling-cms-editor .file.is-dark .file-cta {
-      background-color: #363636;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-dark:hover .file-cta, .sling-cms-editor .file.is-dark.is-hovered .file-cta {
-      background-color: #2f2f2f;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-dark:focus .file-cta, .sling-cms-editor .file.is-dark.is-focused .file-cta {
-      border-color: transparent;
-      box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25);
-      color: #fff; }
-    .sling-cms-editor .file.is-dark:active .file-cta, .sling-cms-editor .file.is-dark.is-active .file-cta {
-      background-color: #292929;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-primary .file-cta {
-      background-color: #9E2165;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-primary:hover .file-cta, .sling-cms-editor .file.is-primary.is-hovered .file-cta {
-      background-color: #931f5e;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-primary:focus .file-cta, .sling-cms-editor .file.is-primary.is-focused .file-cta {
-      border-color: transparent;
-      box-shadow: 0 0 0.5em rgba(158, 33, 101, 0.25);
-      color: #fff; }
-    .sling-cms-editor .file.is-primary:active .file-cta, .sling-cms-editor .file.is-primary.is-active .file-cta {
-      background-color: #891d58;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-link .file-cta {
-      background-color: #282661;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-link:hover .file-cta, .sling-cms-editor .file.is-link.is-hovered .file-cta {
-      background-color: #242258;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-link:focus .file-cta, .sling-cms-editor .file.is-link.is-focused .file-cta {
-      border-color: transparent;
-      box-shadow: 0 0 0.5em rgba(40, 38, 97, 0.25);
-      color: #fff; }
-    .sling-cms-editor .file.is-link:active .file-cta, .sling-cms-editor .file.is-link.is-active .file-cta {
-      background-color: #201f4f;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-info .file-cta {
-      background-color: #3298dc;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-info:hover .file-cta, .sling-cms-editor .file.is-info.is-hovered .file-cta {
-      background-color: #2793da;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-info:focus .file-cta, .sling-cms-editor .file.is-info.is-focused .file-cta {
-      border-color: transparent;
-      box-shadow: 0 0 0.5em rgba(50, 152, 220, 0.25);
-      color: #fff; }
-    .sling-cms-editor .file.is-info:active .file-cta, .sling-cms-editor .file.is-info.is-active .file-cta {
-      background-color: #238cd1;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-success .file-cta {
-      background-color: #48c774;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-success:hover .file-cta, .sling-cms-editor .file.is-success.is-hovered .file-cta {
-      background-color: #3ec46d;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-success:focus .file-cta, .sling-cms-editor .file.is-success.is-focused .file-cta {
-      border-color: transparent;
-      box-shadow: 0 0 0.5em rgba(72, 199, 116, 0.25);
-      color: #fff; }
-    .sling-cms-editor .file.is-success:active .file-cta, .sling-cms-editor .file.is-success.is-active .file-cta {
-      background-color: #3abb67;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-warning .file-cta {
-      background-color: #EA7826;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-warning:hover .file-cta, .sling-cms-editor .file.is-warning.is-hovered .file-cta {
-      background-color: #e9711a;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-warning:focus .file-cta, .sling-cms-editor .file.is-warning.is-focused .file-cta {
-      border-color: transparent;
-      box-shadow: 0 0 0.5em rgba(234, 120, 38, 0.25);
-      color: #fff; }
-    .sling-cms-editor .file.is-warning:active .file-cta, .sling-cms-editor .file.is-warning.is-active .file-cta {
-      background-color: #e16b16;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-danger .file-cta {
-      background-color: #CB2138;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-danger:hover .file-cta, .sling-cms-editor .file.is-danger.is-hovered .file-cta {
-      background-color: #c01f35;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-danger:focus .file-cta, .sling-cms-editor .file.is-danger.is-focused .file-cta {
-      border-color: transparent;
-      box-shadow: 0 0 0.5em rgba(203, 33, 56, 0.25);
-      color: #fff; }
-    .sling-cms-editor .file.is-danger:active .file-cta, .sling-cms-editor .file.is-danger.is-active .file-cta {
-      background-color: #b51d32;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-small {
-      font-size: 0.75rem; }
-    .sling-cms-editor .file.is-medium {
-      font-size: 1.25rem; }
-      .sling-cms-editor .file.is-medium .file-icon .fa {
-        font-size: 21px; }
-    .sling-cms-editor .file.is-large {
-      font-size: 1.5rem; }
-      .sling-cms-editor .file.is-large .file-icon .fa {
-        font-size: 28px; }
-    .sling-cms-editor .file.has-name .file-cta {
-      border-bottom-right-radius: 0;
-      border-top-right-radius: 0; }
-    .sling-cms-editor .file.has-name .file-name {
-      border-bottom-left-radius: 0;
-      border-top-left-radius: 0; }
-    .sling-cms-editor .file.has-name.is-empty .file-cta {
-      border-radius: 4px; }
-    .sling-cms-editor .file.has-name.is-empty .file-name {
-      display: none; }
-    .sling-cms-editor .file.is-boxed .file-label {
-      flex-direction: column; }
-    .sling-cms-editor .file.is-boxed .file-cta {
-      flex-direction: column;
-      height: auto;
-      padding: 1em 3em; }
-    .sling-cms-editor .file.is-boxed .file-name {
-      border-width: 0 1px 1px; }
-    .sling-cms-editor .file.is-boxed .file-icon {
-      height: 1.5em;
-      width: 1.5em; }
-      .sling-cms-editor .file.is-boxed .file-icon .fa {
-        font-size: 21px; }
-    .sling-cms-editor .file.is-boxed.is-small .file-icon .fa {
-      font-size: 14px; }
-    .sling-cms-editor .file.is-boxed.is-medium .file-icon .fa {
-      font-size: 28px; }
-    .sling-cms-editor .file.is-boxed.is-large .file-icon .fa {
-      font-size: 35px; }
-    .sling-cms-editor .file.is-boxed.has-name .file-cta {
-      border-radius: 4px 4px 0 0; }
-    .sling-cms-editor .file.is-boxed.has-name .file-name {
-      border-radius: 0 0 4px 4px;
-      border-width: 0 1px 1px; }
-    .sling-cms-editor .file.is-centered {
-      justify-content: center; }
-    .sling-cms-editor .file.is-fullwidth .file-label {
-      width: 100%; }
-    .sling-cms-editor .file.is-fullwidth .file-name {
-      flex-grow: 1;
-      max-width: none; }
-    .sling-cms-editor .file.is-right {
-      justify-content: flex-end; }
-      .sling-cms-editor .file.is-right .file-cta {
-        border-radius: 0 4px 4px 0; }
-      .sling-cms-editor .file.is-right .file-name {
-        border-radius: 4px 0 0 4px;
-        border-width: 1px 0 1px 1px;
-        order: -1; }
-  .sling-cms-editor .file-label {
-    align-items: stretch;
-    display: flex;
-    cursor: pointer;
-    justify-content: flex-start;
-    overflow: hidden;
-    position: relative; }
-    .sling-cms-editor .file-label:hover .file-cta {
-      background-color: #eeeeee;
-      color: #363636; }
-    .sling-cms-editor .file-label:hover .file-name {
-      border-color: #d5d5d5; }
-    .sling-cms-editor .file-label:active .file-cta {
-      background-color: #e8e8e8;
-      color: #363636; }
-    .sling-cms-editor .file-label:active .file-name {
-      border-color: #cfcfcf; }
-  .sling-cms-editor .file-input {
-    height: 100%;
-    left: 0;
-    opacity: 0;
-    outline: none;
-    position: absolute;
-    top: 0;
-    width: 100%; }
-  .sling-cms-editor .file-cta,
-  .sling-cms-editor .file-name {
-    border-color: #dbdbdb;
-    border-radius: 4px;
-    font-size: 1em;
-    padding-left: 1em;
-    padding-right: 1em;
-    white-space: nowrap; }
-  .sling-cms-editor .file-cta {
-    background-color: whitesmoke;
-    color: #4a4a4a; }
-  .sling-cms-editor .file-name {
-    border-color: #dbdbdb;
-    border-style: solid;
-    border-width: 1px 1px 1px 0;
-    display: block;
-    max-width: 16em;
-    overflow: hidden;
-    text-align: left;
-    text-overflow: ellipsis; }
-  .sling-cms-editor .file-icon {
-    align-items: center;
-    display: flex;
-    height: 1em;
-    justify-content: center;
-    margin-right: 0.5em;
-    width: 1em; }
-    .sling-cms-editor .file-icon .fa {
-      font-size: 14px; }
-  .sling-cms-editor .label {
-    color: #363636;
-    display: block;
-    font-size: 1rem;
-    font-weight: 700; }
-    .sling-cms-editor .label:not(:last-child) {
-      margin-bottom: 0.5em; }
-    .sling-cms-editor .label.is-small {
-      font-size: 0.75rem; }
-    .sling-cms-editor .label.is-medium {
-      font-size: 1.25rem; }
-    .sling-cms-editor .label.is-large {
-      font-size: 1.5rem; }
-  .sling-cms-editor .help {
-    display: block;
-    font-size: 0.75rem;
-    margin-top: 0.25rem; }
-    .sling-cms-editor .help.is-white {
-      color: white; }
-    .sling-cms-editor .help.is-black {
-      color: #0a0a0a; }
-    .sling-cms-editor .help.is-light {
-      color: whitesmoke; }
-    .sling-cms-editor .help.is-dark {
-      color: #363636; }
-    .sling-cms-editor .help.is-primary {
-      color: #9E2165; }
-    .sling-cms-editor .help.is-link {
-      color: #282661; }
-    .sling-cms-editor .help.is-info {
-      color: #3298dc; }
-    .sling-cms-editor .help.is-success {
-      color: #48c774; }
-    .sling-cms-editor .help.is-warning {
-      color: #EA7826; }
-    .sling-cms-editor .help.is-danger {
-      color: #CB2138; }
-  .sling-cms-editor .field:not(:last-child) {
-    margin-bottom: 0.75rem; }
-  .sling-cms-editor .field.has-addons {
-    display: flex;
-    justify-content: flex-start; }
-    .sling-cms-editor .field.has-addons .control:not(:last-child) {
-      margin-right: -1px; }
-    .sling-cms-editor .field.has-addons .control:not(:first-child):not(:last-child) .button,
-    .sling-cms-editor .field.has-addons .control:not(:first-child):not(:last-child) .input,
-    .sling-cms-editor .field.has-addons .control:not(:first-child):not(:last-child) .select select {
-      border-radius: 0; }
-    .sling-cms-editor .field.has-addons .control:first-child:not(:only-child) .button,
-    .sling-cms-editor .field.has-addons .control:first-child:not(:only-child) .input,
-    .sling-cms-editor .field.has-addons .control:first-child:not(:only-child) .select select {
-      border-bottom-right-radius: 0;
-      border-top-right-radius: 0; }
-    .sling-cms-editor .field.has-addons .control:last-child:not(:only-child) .button,
-    .sling-cms-editor .field.has-addons .control:last-child:not(:only-child) .input,
-    .sling-cms-editor .field.has-addons .control:last-child:not(:only-child) .select select {
-      border-bottom-left-radius: 0;
-      border-top-left-radius: 0; }
-    .sling-cms-editor .field.has-addons .control .button:not([disabled]):hover, .sling-cms-editor .field.has-addons .control .button:not([disabled]).is-hovered,
-    .sling-cms-editor .field.has-addons .control .input:not([disabled]):hover,
-    .sling-cms-editor .field.has-addons .control .input:not([disabled]).is-hovered,
-    .sling-cms-editor .field.has-addons .control .select select:not([disabled]):hover,
-    .sling-cms-editor .field.has-addons .control .select select:not([disabled]).is-hovered {
-      z-index: 2; }
-    .sling-cms-editor .field.has-addons .control .button:not([disabled]):focus, .sling-cms-editor .field.has-addons .control .button:not([disabled]).is-focused, .sling-cms-editor .field.has-addons .control .button:not([disabled]):active, .sling-cms-editor .field.has-addons .control .button:not([disabled]).is-active,
-    .sling-cms-editor .field.has-addons .control .input:not([disabled]):focus,
-    .sling-cms-editor .field.has-addons .control .input:not([disabled]).is-focused,
-    .sling-cms-editor .field.has-addons .control .input:not([disabled]):active,
-    .sling-cms-editor .field.has-addons .control .input:not([disabled]).is-active,
-    .sling-cms-editor .field.has-addons .control .select select:not([disabled]):focus,
-    .sling-cms-editor .field.has-addons .control .select select:not([disabled]).is-focused,
-    .sling-cms-editor .field.has-addons .control .select select:not([disabled]):active,
-    .sling-cms-editor .field.has-addons .control .select select:not([disabled]).is-active {
-      z-index: 3; }
-      .sling-cms-editor .field.has-addons .control .button:not([disabled]):focus:hover, .sling-cms-editor .field.has-addons .control .button:not([disabled]).is-focused:hover, .sling-cms-editor .field.has-addons .control .button:not([disabled]):active:hover, .sling-cms-editor .field.has-addons .control .button:not([disabled]).is-active:hover,
-      .sling-cms-editor .field.has-addons .control .input:not([disabled]):focus:hover,
-      .sling-cms-editor .field.has-addons .control .input:not([disabled]).is-focused:hover,
-      .sling-cms-editor .field.has-addons .control .input:not([disabled]):active:hover,
-      .sling-cms-editor .field.has-addons .control .input:not([disabled]).is-active:hover,
-      .sling-cms-editor .field.has-addons .control .select select:not([disabled]):focus:hover,
-      .sling-cms-editor .field.has-addons .control .select select:not([disabled]).is-focused:hover,
-      .sling-cms-editor .field.has-addons .control .select select:not([disabled]):active:hover,
-      .sling-cms-editor .field.has-addons .control .select select:not([disabled]).is-active:hover {
-        z-index: 4; }
-    .sling-cms-editor .field.has-addons .control.is-expanded {
-      flex-grow: 1;
-      flex-shrink: 1; }
-    .sling-cms-editor .field.has-addons.has-addons-centered {
-      justify-content: center; }
-    .sling-cms-editor .field.has-addons.has-addons-right {
-      justify-content: flex-end; }
-    .sling-cms-editor .field.has-addons.has-addons-fullwidth .control {
-      flex-grow: 1;
-      flex-shrink: 0; }
-  .sling-cms-editor .field.is-grouped {
-    display: flex;
-    justify-content: flex-start; }
-    .sling-cms-editor .field.is-grouped > .control {
-      flex-shrink: 0; }
-      .sling-cms-editor .field.is-grouped > .control:not(:last-child) {
-        margin-bottom: 0;
-        margin-right: 0.75rem; }
-      .sling-cms-editor .field.is-grouped > .control.is-expanded {
-        flex-grow: 1;
-        flex-shrink: 1; }
-    .sling-cms-editor .field.is-grouped.is-grouped-centered {
-      justify-content: center; }
-    .sling-cms-editor .field.is-grouped.is-grouped-right {
-      justify-content: flex-end; }
-    .sling-cms-editor .field.is-grouped.is-grouped-multiline {
-      flex-wrap: wrap; }
-      .sling-cms-editor .field.is-grouped.is-grouped-multiline > .control:last-child, .sling-cms-editor .field.is-grouped.is-grouped-multiline > .control:not(:last-child) {
-        margin-bottom: 0.75rem; }
-      .sling-cms-editor .field.is-grouped.is-grouped-multiline:last-child {
-        margin-bottom: -0.75rem; }
-      .sling-cms-editor .field.is-grouped.is-grouped-multiline:not(:last-child) {
-        margin-bottom: 0; }
-  @media screen and (min-width: 769px), print {
-    .sling-cms-editor .field.is-horizontal {
-      display: flex; } }
-  .sling-cms-editor .field-label .label {
-    font-size: inherit; }
-  @media screen and (max-width: 768px) {
-    .sling-cms-editor .field-label {
-      margin-bottom: 0.5rem; } }
-  @media screen and (min-width: 769px), print {
-    .sling-cms-editor .field-label {
-      flex-basis: 0;
-      flex-grow: 1;
-      flex-shrink: 0;
-      margin-right: 1.5rem;
-      text-align: right; }
-      .sling-cms-editor .field-label.is-small {
-        font-size: 0.75rem;
-        padding-top: 0.375em; }
-      .sling-cms-editor .field-label.is-normal {
-        padding-top: 0.375em; }
-      .sling-cms-editor .field-label.is-medium {
-        font-size: 1.25rem;
-        padding-top: 0.375em; }
-      .sling-cms-editor .field-label.is-large {
-        font-size: 1.5rem;
-        padding-top: 0.375em; } }
-  .sling-cms-editor .field-body .field .field {
-    margin-bottom: 0; }
-  @media screen and (min-width: 769px), print {
-    .sling-cms-editor .field-body {
-      display: flex;
-      flex-basis: 0;
-      flex-grow: 5;
-      flex-shrink: 1; }
-      .sling-cms-editor .field-body .field {
-        margin-bottom: 0; }
-      .sling-cms-editor .field-body > .field {
-        flex-shrink: 1; }
-        .sling-cms-editor .field-body > .field:not(.is-narrow) {
-          flex-grow: 1; }
-        .sling-cms-editor .field-body > .field:not(:last-child) {
-          margin-right: 0.75rem; } }
-  .sling-cms-editor .control {
-    box-sizing: border-box;
-    clear: both;
-    font-size: 1rem;
-    position: relative;
-    text-align: left; }
-    .sling-cms-editor .control.has-icons-left .input:focus ~ .icon,
-    .sling-cms-editor .control.has-icons-left .select:focus ~ .icon, .sling-cms-editor .control.has-icons-right .input:focus ~ .icon,
-    .sling-cms-editor .control.has-icons-right .select:focus ~ .icon {
-      color: #4a4a4a; }
-    .sling-cms-editor .control.has-icons-left .input.is-small ~ .icon,
-    .sling-cms-editor .control.has-icons-left .select.is-small ~ .icon, .sling-cms-editor .control.has-icons-right .input.is-small ~ .icon,
-    .sling-cms-editor .control.has-icons-right .select.is-small ~ .icon {
-      font-size: 0.75rem; }
-    .sling-cms-editor .control.has-icons-left .input.is-medium ~ .icon,
-    .sling-cms-editor .control.has-icons-left .select.is-medium ~ .icon, .sling-cms-editor .control.has-icons-right .input.is-medium ~ .icon,
-    .sling-cms-editor .control.has-icons-right .select.is-medium ~ .icon {
-      font-size: 1.25rem; }
-    .sling-cms-editor .control.has-icons-left .input.is-large ~ .icon,
-    .sling-cms-editor .control.has-icons-left .select.is-large ~ .icon, .sling-cms-editor .control.has-icons-right .input.is-large ~ .icon,
-    .sling-cms-editor .control.has-icons-right .select.is-large ~ .icon {
-      font-size: 1.5rem; }
-    .sling-cms-editor .control.has-icons-left .icon, .sling-cms-editor .control.has-icons-right .icon {
-      color: #dbdbdb;
-      height: 2.5em;
-      pointer-events: none;
-      position: absolute;
-      top: 0;
-      width: 2.5em;
-      z-index: 4; }
-    .sling-cms-editor .control.has-icons-left .input,
-    .sling-cms-editor .control.has-icons-left .select select {
-      padding-left: 2.5em; }
-    .sling-cms-editor .control.has-icons-left .icon.is-left {
-      left: 0; }
-    .sling-cms-editor .control.has-icons-right .input,
-    .sling-cms-editor .control.has-icons-right .select select {
-      padding-right: 2.5em; }
-    .sling-cms-editor .control.has-icons-right .icon.is-right {
-      right: 0; }
-    .sling-cms-editor .control.is-loading::after {
-      position: absolute !important;
-      right: 0.625em;
-      top: 0.625em;
-      z-index: 4; }
-    .sling-cms-editor .control.is-loading.is-small:after {
-      font-size: 0.75rem; }
-    .sling-cms-editor .control.is-loading.is-medium:after {
-      font-size: 1.25rem; }
-    .sling-cms-editor .control.is-loading.is-large:after {
-      font-size: 1.5rem; }
-  .sling-cms-editor .icon {
-    align-items: center;
-    display: inline-flex;
-    justify-content: center;
-    height: 1.5rem;
-    width: 1.5rem; }
-    .sling-cms-editor .icon.is-small {
-      height: 1rem;
-      width: 1rem; }
-    .sling-cms-editor .icon.is-medium {
-      height: 2rem;
-      width: 2rem; }
-    .sling-cms-editor .icon.is-large {
-      height: 3rem;
-      width: 3rem; }
-  .sling-cms-editor .level {
-    align-items: center;
-    justify-content: space-between; }
-    .sling-cms-editor .level code {
-      border-radius: 4px; }
-    .sling-cms-editor .level img {
-      display: inline-block;
-      vertical-align: top; }
-    .sling-cms-editor .level.is-mobile {
-      display: flex; }
-      .sling-cms-editor .level.is-mobile .level-left,
-      .sling-cms-editor .level.is-mobile .level-right {
-        display: flex; }
-      .sling-cms-editor .level.is-mobile .level-left + .level-right {
-        margin-top: 0; }
-      .sling-cms-editor .level.is-mobile .level-item:not(:last-child) {
-        margin-bottom: 0;
-        margin-right: 0.75rem; }
-      .sling-cms-editor .level.is-mobile .level-item:not(.is-narrow) {
-        flex-grow: 1; }
-    @media screen and (min-width: 769px), print {
-      .sling-cms-editor .level {
-        display: flex; }
-        .sling-cms-editor .level > .level-item:not(.is-narrow) {
-          flex-grow: 1; } }
-  .sling-cms-editor .level-item {
-    align-items: center;
-    display: flex;
-    flex-basis: auto;
-    flex-grow: 0;
-    flex-shrink: 0;
-    justify-content: center; }
-    .sling-cms-editor .level-item .title,
-    .sling-cms-editor .level-item .subtitle {
-      margin-bottom: 0; }
-    @media screen and (max-width: 768px) {
-      .sling-cms-editor .level-item:not(:last-child) {
-        margin-bottom: 0.75rem; } }
-  .sling-cms-editor .level-left,
-  .sling-cms-editor .level-right {
-    flex-basis: auto;
-    flex-grow: 0;
-    flex-shrink: 0; }
-    .sling-cms-editor .level-left .level-item.is-flexible,
-    .sling-cms-editor .level-right .level-item.is-flexible {
-      flex-grow: 1; }
-    @media screen and (min-width: 769px), print {
-      .sling-cms-editor .level-left .level-item:not(:last-child),
-      .sling-cms-editor .level-right .level-item:not(:last-child) {
-        margin-right: 0.75rem; } }
-  .sling-cms-editor .level-left {
-    align-items: center;
-    justify-content: flex-start; }
-    @media screen and (max-width: 768px) {
-      .sling-cms-editor .level-left + .level-right {
-        margin-top: 1.5rem; } }
-    @media screen and (min-width: 769px), print {
-      .sling-cms-editor .level-left {
-        display: flex; } }
-  .sling-cms-editor .level-right {
-    align-items: center;
-    justify-content: flex-end; }
-    @media screen and (min-width: 769px), print {
-      .sling-cms-editor .level-right {
-        display: flex; } }
-  .sling-cms-editor .modal {
-    align-items: center;
-    display: none;
-    flex-direction: column;
-    justify-content: center;
-    overflow: hidden;
-    position: fixed;
-    z-index: 2000; }
-    .sling-cms-editor .modal.is-active {
-      display: flex; }
-  .sling-cms-editor .modal-background {
-    background-color: rgba(10, 10, 10, 0.86); }
-  .sling-cms-editor .modal-content,
-  .sling-cms-editor .modal-card {
-    margin: 0 20px;
-    max-height: calc(100vh - 160px);
-    overflow: auto;
-    position: relative;
-    width: 100%; }
-    @media screen and (min-width: 769px), print {
-      .sling-cms-editor .modal-content,
-      .sling-cms-editor .modal-card {
-        margin: 0 auto;
-        max-height: calc(100vh - 40px);
-        width: 640px; } }
-  .sling-cms-editor .modal-close {
-    background: none;
-    height: 40px;
-    position: fixed;
-    right: 20px;
-    top: 20px;
-    width: 40px; }
-  .sling-cms-editor .modal-card {
-    display: flex;
-    flex-direction: column;
-    max-height: calc(100vh - 40px);
-    overflow: hidden;
-    -ms-overflow-y: visible; }
-  .sling-cms-editor .modal-card-head,
-  .sling-cms-editor .modal-card-foot {
-    align-items: center;
-    background-color: whitesmoke;
-    display: flex;
-    flex-shrink: 0;
-    justify-content: flex-start;
-    padding: 20px;
-    position: relative; }
-  .sling-cms-editor .modal-card-head {
-    border-bottom: 1px solid #dbdbdb;
-    border-top-left-radius: 6px;
-    border-top-right-radius: 6px; }
-  .sling-cms-editor .modal-card-title {
-    color: #363636;
-    flex-grow: 1;
-    flex-shrink: 0;
-    font-size: 1.5rem;
-    line-height: 1; }
-  .sling-cms-editor .modal-card-foot {
-    border-bottom-left-radius: 6px;
-    border-bottom-right-radius: 6px;
-    border-top: 1px solid #dbdbdb; }
-    .sling-cms-editor .modal-card-foot .button:not(:last-child) {
-      margin-right: 0.5em; }
-  .sling-cms-editor .modal-card-body {
-    -webkit-overflow-scrolling: touch;
-    background-color: white;
-    flex-grow: 1;
-    flex-shrink: 1;
-    overflow: auto;
-    padding: 20px; }
-  .sling-cms-editor * {
-    box-sizing: border-box; }
-  .sling-cms-editor [draggable] {
-    -moz-user-select: none;
-    -khtml-user-select: none;
-    -webkit-user-select: none;
-    user-select: none;
-    /* Required to make elements draggable in old WebKit */
-    -khtml-user-drag: element;
-    -webkit-user-drag: element; }
-  .sling-cms-editor .is-draggable {
-    position: relative; }
-  .sling-cms-editor .is-vhidden {
-    position: absolute !important;
-    top: -9999px !important;
-    left: -9999px !important; }
-  .sling-cms-editor .level {
-    padding: 0.5em; }
-  .sling-cms-editor .modal-body {
-    padding: 0.5em;
-    height: 500px; }
-  .sling-cms-editor .modal-frame {
-    width: 100%;
-    height: 100%;
-    border: none; }
-  .sling-cms-editor .modal-title {
-    font-size: 180%;
-    cursor: move; }
-  .sling-cms-editor .page-wrapper-frame {
-    position: fixed;
-    top: 44px;
-    left: 0;
-    bottom: 0;
-    right: 0;
-    width: 100%;
-    height: 100%;
-    border: none;
-    margin: 0;
-    padding: 0;
-    overflow: hidden;
-    z-index: 998;
-    padding-top: 8px; }
-    @media screen and (max-width: 769px) {
-      .sling-cms-editor .page-wrapper-frame {
-        top: 104px; } }
-  .sling-cms-editor .sling-cms-logo {
-    height: 25px; }
-
-.sling-cms-component {
-  border: 1px solid rgba(0, 0, 0, 0); }
-
-.sling-cms-component__is-active {
-  border-color: #dbdbdb; }
-
-.sling-cms-droptarget__is-active {
-  height: 2em;
-  border: 1px solid #b5b5b5;
-  background-color: whitesmoke; }
-
-.sling-cms-droptarget__is-over {
-  height: 2em;
-  border: 1px solid whitesmoke;
-  background-color: #b5b5b5; }
-
-/*
-  Copyright (c) 2018 Michael Amprimo <@michaelampr>.
-  Licensed under the MIT License (MIT), https://jam-icons.com
-*/
-@font-face{font-family:'jam-icons';src:url("../fonts/jam-icons.eot?osflwm");src:url("../fonts/jam-icons.eot?osflwm#iefix") format("embedded-opentype"),url("../fonts/jam-icons.ttf?osflwm") format("truetype"),url("../fonts/jam-icons.woff?osflwm") format("woff"),url("../fonts/jam-icons.svg?osflwm#Jam-icons") format("svg");font-weight:normal;font-style:normal}.jam{font-family:'jam-icons' !important;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.jam-five-hundred-px:before{content:"\e900"}.jam-activity:before{content:"\e901"}.jam-airbnb:before{content:"\e902"}.jam-alarm-clock-f:before{content:"\e903"}.jam-alarm-clock:before{content:"\e904"}.jam-alert-f:before{content:"\e905"}.jam-alert:before{content:"\e906"}.jam-alien-f:before{content:"\e907"}.jam-alien:before{content:"\e908"}.jam-align-center:before{content:"\e909"}.jam-align-justify:before{content:"\e90a"}.jam-align-left:before{content:"\e90b"}.jam-align-right:before{content:"\e90c"}.jam-amazon:before{content:"\e90d"}.jam-anchor:before{content:"\e90e"}.jam-android-circle:before{content:"\e90f"}.jam-android-square:before{content:"\e910"}.jam-android:before{content:"\e911"}.jam-aperture:before{content:"\e912"}.jam-apple-circle:before{content:"\e913"}.jam-apple-square:before{content:"\e914"}.jam-apple:before{content:"\e915"}.jam-archive-f:before{content:"\e916"}.jam-archive:before{content:"\e917"}.jam-arrow-circle-down-f:before{content:"\e918"}.jam-arrow-circle-down-left-f:before{content:"\e919"}.jam-arrow-circle-down-left:before{content:"\e91a"}.jam-arrow-circle-down-right-f:before{content:"\e91b"}.jam-arrow-circle-down-right:before{content:"\e91c"}.jam-arrow-circle-down:before{content:"\e91d"}.jam-arrow-circle-left-f:before{content:"\e91e"}.jam-arrow-circle-left:before{content:"\e91f"}.jam-arrow-circle-right-f:before{content:"\e920"}.jam-arrow-circle-right:before{content:"\e921"}.jam-arrow-circle-up-f:before{content:"\e922"}.jam-arrow-circle-up-left-f:before{content:"\e923"}.jam-arrow-circle-up-left:before{content:"\e924"}.jam-arrow-circle-up-right-f:before{content:"\e925"}.jam-arrow-circle-up-right:before{content:"\e926"}.jam-arrow-circle-up:before{content:"\e927"}.jam-arrow-down-left:before{content:"\e928"}.jam-arrow-down-right:before{content:"\e929"}.jam-arrow-down:before{content:"\e92a"}.jam-arrow-left:before{content:"\e92b"}.jam-arrow-right:before{content:"\e92c"}.jam-arrow-square-down-f:before{content:"\e92d"}.jam-arrow-square-down-left-f:before{content:"\e92e"}.jam-arrow-square-down-left:before{content:"\e92f"}.jam-arrow-square-down-right-f:before{content:"\e930"}.jam-arrow-square-down-right:before{content:"\e931"}.jam-arrow-square-down:before{content:"\e932"}.jam-arrow-square-left-f:before{content:"\e933"}.jam-arrow-square-left:before{content:"\e934"}.jam-arrow-square-right-f:before{content:"\e935"}.jam-arrow-square-right:before{content:"\e936"}.jam-arrow-square-up-f:before{content:"\e937"}.jam-arrow-square-up-left-f:before{content:"\e938"}.jam-arrow-square-up-left:before{content:"\e939"}.jam-arrow-square-up-right-f:before{content:"\e93a"}.jam-arrow-square-up-right:before{content:"\e93b"}.jam-arrow-square-up:before{content:"\e93c"}.jam-arrow-up-left:before{content:"\e93d"}.jam-arrow-up-right:before{content:"\e93e"}.jam-arrow-up:before{content:"\e93f"}.jam-arrows-corners:before{content:"\e940"}.jam-arrows-fullscreen:before{content:"\e941"}.jam-arrows-h:before{content:"\e942"}.jam-arrows-v:before{content:"\e943"}.jam-attachment:before{content:"\e944"}.jam-background-color:before{content:"\e945"}.jam-backpack-f:before{content:"\e946"}.jam-backpack:before{content:"\e947"}.jam-backward-circle-f:before{content:"\e948"}.jam-backward-circle:before{content:"\e949"}.jam-backward-square-f:before{content:"\e94a"}.jam-backward-square:before{content:"\e94b"}.jam-backward:before{content:"\e94c"}.jam-baidu-circle:before{content:"\e94d"}.jam-baidu-square:before{content:"\e94e"}.jam-baidu:before{content:"\e94f"}.jam-bandage-f:before{content:"\e950"}.jam-bandage:before{content:"\e951"}.jam-bar-chart:before{content:"\e952"}.jam-baseball:before{content:"\e953"}.jam-basketball:before{content:"\e954"}.jam-bathtub-f:before{content:"\e955"}.jam-bathtub:before{content:"\e956"}.jam-battery-charging-f:before{content:"\e957"}.jam-battery-charging:before{content:"\e958"}.jam-battery-f:before{content:"\e959"}.jam-battery-half-f:before{content:"\e95a"}.jam-battery-half:before{content:"\e95b"}.jam-battery-one-quarter-f:before{content:"\e95c"}.jam-battery-one-quarter:before{content:"\e95d"}.jam-battery-three-quarters-f:before{content:"\e95e"}.jam-battery-three-quarters:before{content:"\e95f"}.jam-battery:before{content:"\e960"}.jam-beatport-circle:before{content:"\e961"}.jam-beatport-square:before{content:"\e962"}.jam-beatport:before{content:"\e963"}.jam-beer-f:before{content:"\e964"}.jam-beer:before{content:"\e965"}.jam-behance-circle:before{content:"\e966"}.jam-behance-square:before{content:"\e967"}.jam-behance:before{content:"\e968"}.jam-bell-f:before{content:"\e969"}.jam-bell-off-f:before{content:"\e96a"}.jam-bell-off:before{content:"\e96b"}.jam-bell:before{content:"\e96c"}.jam-bing-circle:before{content:"\e96d"}.jam-bing-square:before{content:"\e96e"}.jam-bing:before{content:"\e96f"}.jam-birthday-cake-f:before{content:"\e970"}.jam-birthday-cake:before{content:"\e971"}.jam-blogger-circle:before{content:"\e972"}.jam-blogger-square:before{content:"\e973"}.jam-blogger:before{content:"\e974"}.jam-bluetooth:before{content:"\e975"}.jam-bold:before{content:"\e976"}.jam-book-f:before{content:"\e977"}.jam-book:before{content:"\e978"}.jam-bookmark-f:before{content:"\e979"}.jam-bookmark-minus-f:before{content:"\e97a"}.jam-bookmark-minus:before{content:"\e97b"}.jam-bookmark-plus-f:before{content:"\e97c"}.jam-bookmark-plus:before{content:"\e97d"}.jam-bookmark-remove-f:before{content:"\e97e"}.jam-bookmark-remove:before{content:"\e97f"}.jam-bookmark:before{content:"\e980"}.jam-bottle-f:before{content:"\e981"}.jam-bottle:before{content:"\e982"}.jam-box-f:before{content:"\e983"}.jam-box:before{content:"\e984"}.jam-branch-f:before{content:"\e985"}.jam-branch:before{content:"\e986"}.jam-brightness-down-f:before{content:"\e987"}.jam-brightness-down:before{content:"\e988"}.jam-brightness-up-f:before{content:"\e989"}.jam-brightness-up:before{content:"\e98a"}.jam-brightness:before{content:"\e98b"}.jam-brush-f:before{content:"\e98c"}.jam-brush:before{content:"\e98d"}.jam-bug-f:before{content:"\e98e"}.jam-bug:before{content:"\e98f"}.jam-building-f:before{content:"\e990"}.jam-building:before{content:"\e991"}.jam-bus-f:before{content:"\e992"}.jam-bus:before{content:"\e993"}.jam-cactus-f:before{content:"\e994"}.jam-cactus:before{content:"\e995"}.jam-calculator:before{content:"\e996"}.jam-calendar-alt-f:before{content:"\e997"}.jam-calendar-alt:before{content:"\e998"}.jam-calendar-f:before{content:"\e999"}.jam-calendar:before{content:"\e99a"}.jam-camera-alt-f:before{content:"\e99b"}.jam-camera-alt:before{content:"\e99c"}.jam-camera-f:before{content:"\e99d"}.jam-camera:before{content:"\e99e"}.jam-candle-f:before{content:"\e99f"}.jam-candle:before{content:"\e9a0"}.jam-capsule-f:before{content:"\e9a1"}.jam-capsule:before{content:"\e9a2"}.jam-car-f:before{content:"\e9a3"}.jam-car:before{content:"\e9a4"}.jam-castle-f:before{content:"\e9a5"}.jam-castle:before{content:"\e9a6"}.jam-check:before{content:"\e9a7"}.jam-chevron-circle-down-f:before{content:"\e9a8"}.jam-chevron-circle-down-left-f:before{content:"\e9a9"}.jam-chevron-circle-down-left:before{content:"\e9aa"}.jam-chevron-circle-down-right-f:before{content:"\e9ab"}.jam-chevron-circle-down-right:before{content:"\e9ac"}.jam-chevron-circle-down:before{content:"\e9ad"}.jam-chevron-circle-left-f:before{content:"\e9ae"}.jam-chevron-circle-left:before{content:"\e9af"}.jam-chevron-circle-right-f:before{content:"\e9b0"}.jam-chevron-circle-right:before{content:"\e9b1"}.jam-chevron-circle-up-f:before{content:"\e9b2"}.jam-chevron-circle-up-left-f:before{content:"\e9b3"}.jam-chevron-circle-up-left:before{content:"\e9b4"}.jam-chevron-circle-up-right-f:before{content:"\e9b5"}.jam-chevron-circle-up-right:before{content:"\e9b6"}.jam-chevron-circle-up:before{content:"\e9b7"}.jam-chevron-down-left:before{content:"\e9b8"}.jam-chevron-down-right:before{content:"\e9b9"}.jam-chevron-down:before{content:"\e9ba"}.jam-chevron-left:before{content:"\e9bb"}.jam-chevron-right:before{content:"\e9bc"}.jam-chevron-square-down-f:before{content:"\e9bd"}.jam-chevron-square-down-left-f:before{content:"\e9be"}.jam-chevron-square-down-left:before{content:"\e9bf"}.jam-chevron-square-down-right-f:before{content:"\e9c0"}.jam-chevron-square-down-right:before{content:"\e9c1"}.jam-chevron-square-down:before{content:"\e9c2"}.jam-chevron-square-left-f:before{content:"\e9c3"}.jam-chevron-square-left:before{content:"\e9c4"}.jam-chevron-square-right-f:before{content:"\e9c5"}.jam-chevron-square-right:before{content:"\e9c6"}.jam-chevron-square-up-f:before{content:"\e9c7"}.jam-chevron-square-up-left-f:before{content:"\e9c8"}.jam-chevron-square-up-left:before{content:"\e9c9"}.jam-chevron-square-up-right-f:before{content:"\e9ca"}.jam-chevron-square-up-right:before{content:"\e9cb"}.jam-chevron-square-up:before{content:"\e9cc"}.jam-chevron-up-left:before{content:"\e9cd"}.jam-chevron-up-right:before{content:"\e9ce"}.jam-chevron-up:before{content:"\e9cf"}.jam-chevrons-circle-down-f:before{content:"\e9d0"}.jam-chevrons-circle-down-left-f:before{content:"\e9d1"}.jam-chevrons-circle-down-left:before{content:"\e9d2"}.jam-chevrons-circle-down-right-f:before{content:"\e9d3"}.jam-chevrons-circle-down-right:before{content:"\e9d4"}.jam-chevrons-circle-down:before{content:"\e9d5"}.jam-chevrons-circle-left-f:before{content:"\e9d6"}.jam-chevrons-circle-left:before{content:"\e9d7"}.jam-chevrons-circle-right-f:before{content:"\e9d8"}.jam-chevrons-circle-right:before{content:"\e9d9"}.jam-chevrons-circle-up-f:before{content:"\e9da"}.jam-chevrons-circle-up-left-f:before{content:"\e9db"}.jam-chevrons-circle-up-left:before{content:"\e9dc"}.jam-chevrons-circle-up-right-f:before{content:"\e9dd"}.jam-chevrons-circle-up-right:before{content:"\e9de"}.jam-chevrons-circle-up:before{content:"\e9df"}.jam-chevrons-down-left:before{content:"\e9e0"}.jam-chevrons-down-right:before{content:"\e9e1"}.jam-chevrons-down:before{content:"\e9e2"}.jam-chevrons-left:before{content:"\e9e3"}.jam-chevrons-right:before{content:"\e9e4"}.jam-chevrons-square-down-f:before{content:"\e9e5"}.jam-chevrons-square-down-left-f:before{content:"\e9e6"}.jam-chevrons-square-down-left:before{content:"\e9e7"}.jam-chevrons-square-down-right-f:before{content:"\e9e8"}.jam-chevrons-square-down-right:before{content:"\e9e9"}.jam-chevrons-square-down:before{content:"\e9ea"}.jam-chevrons-square-left-f:before{content:"\e9eb"}.jam-chevrons-square-left:before{content:"\e9ec"}.jam-chevrons-square-right-f:before{content:"\e9ed"}.jam-chevrons-square-right:before{content:"\e9ee"}.jam-chevrons-square-up-f:before{content:"\e9ef"}.jam-chevrons-square-up-left-f:before{content:"\e9f0"}.jam-chevrons-square-up-left:before{content:"\e9f1"}.jam-chevrons-square-up-right-f:before{content:"\e9f2"}.jam-chevrons-square-up-right:before{content:"\e9f3"}.jam-chevrons-square-up:before{content:"\e9f4"}.jam-chevrons-up-left:before{content:"\e9f5"}.jam-chevrons-up-right:before{content:"\e9f6"}.jam-chevrons-up:before{content:"\e9f7"}.jam-chronometer-f:before{content:"\e9f8"}.jam-chronometer:before{content:"\e9f9"}.jam-circle-f:before{content:"\e9fa"}.jam-circle:before{content:"\e9fb"}.jam-clear-format:before{content:"\e9fc"}.jam-clipboard-f:before{content:"\e9fd"}.jam-clipboard:before{content:"\e9fe"}.jam-clock-f:before{content:"\e9ff"}.jam-clock:before{content:"\ea00"}.jam-close-circle-f:before{content:"\ea01"}.jam-close-circle:before{content:"\ea02"}.jam-close-rectangle-f:before{content:"\ea03"}.jam-close-rectangle:before{content:"\ea04"}.jam-close:before{content:"\ea05"}.jam-cloud-f:before{content:"\ea06"}.jam-cloud-rain-f:before{content:"\ea07"}.jam-cloud-rain:before{content:"\ea08"}.jam-cloud-snow-f:before{content:"\ea09"}.jam-cloud-snow:before{content:"\ea0a"}.jam-cloud-thunder-f:before{content:"\ea0b"}.jam-cloud-thunder:before{content:"\ea0c"}.jam-cloud:before{content:"\ea0d"}.jam-codepen-circle:before{content:"\ea0e"}.jam-codepen-square:before{content:"\ea0f"}.jam-codepen:before{content:"\ea10"}.jam-coffee-cup-f:before{content:"\ea11"}.jam-coffee-cup:before{content:"\ea12"}.jam-coffee:before{content:"\ea13"}.jam-cog-f:before{content:"\ea14"}.jam-cog:before{content:"\ea15"}.jam-cogs-f:before{content:"\ea16"}.jam-cogs:before{content:"\ea17"}.jam-coin-f:before{content:"\ea18"}.jam-coin:before{content:"\ea19"}.jam-color:before{content:"\ea1a"}.jam-compass-f:before{content:"\ea1b"}.jam-compass:before{content:"\ea1c"}.jam-computer-alt-f:before{content:"\ea1d"}.jam-computer-alt:before{content:"\ea1e"}.jam-computer-f:before{content:"\ea1f"}.jam-computer:before{content:"\ea20"}.jam-credit-card-f:before{content:"\ea21"}.jam-credit-card:before{content:"\ea22"}.jam-crop:before{content:"\ea23"}.jam-crown-f:before{content:"\ea24"}.jam-crown:before{content:"\ea25"}.jam-cutlery-f:before{content:"\ea26"}.jam-cutlery:before{content:"\ea27"}.jam-cutter-f:before{content:"\ea28"}.jam-cutter:before{content:"\ea29"}.jam-dashboard-f:before{content:"\ea2a"}.jam-dashboard:before{content:"\ea2b"}.jam-database-f:before{content:"\ea2c"}.jam-database:before{content:"\ea2d"}.jam-deezer-circle:before{content:"\ea2e"}.jam-deezer-square:before{content:"\ea2f"}.jam-deezer:before{content:"\ea30"}.jam-delete-f:before{content:"\ea31"}.jam-delete:before{content:"\ea32"}.jam-deviantart-circle:before{content:"\ea33"}.jam-deviantart-square:before{content:"\ea34"}.jam-deviantart:before{content:"\ea35"}.jam-digg:before{content:"\ea36"}.jam-direction-f:before{content:"\ea37"}.jam-direction:before{content:"\ea38"}.jam-directions-f:before{content:"\ea39"}.jam-directions:before{content:"\ea3a"}.jam-disc-f:before{content:"\ea3b"}.jam-disc:before{content:"\ea3c"}.jam-disqus-circle:before{content:"\ea3d"}.jam-disqus-square:before{content:"\ea3e"}.jam-disqus:before{content:"\ea3f"}.jam-dj-f:before{content:"\ea40"}.jam-dj:before{content:"\ea41"}.jam-dna:before{content:"\ea42"}.jam-document-f:before{content:"\ea43"}.jam-document:before{content:"\ea44"}.jam-door:before{content:"\ea45"}.jam-download:before{content:"\ea46"}.jam-drupal-circle:before{content:"\ea47"}.jam-drupal-square:before{content:"\ea48"}.jam-drupal:before{content:"\ea49"}.jam-ebay:before{content:"\ea4a"}.jam-egg-f:before{content:"\ea4b"}.jam-egg:before{content:"\ea4c"}.jam-eggs-f:before{content:"\ea4d"}.jam-eggs:before{content:"\ea4e"}.jam-eject-circle-f:before{content:"\ea4f"}.jam-eject-circle:before{content:"\ea50"}.jam-eject-square-f:before{content:"\ea51"}.jam-eject-square:before{content:"\ea52"}.jam-eject:before{content:"\ea53"}.jam-envelope-f:before{content:"\ea54"}.jam-envelope-open-f:before{content:"\ea55"}.jam-envelope-open:before{content:"\ea56"}.jam-envelope:before{content:"\ea57"}.jam-extinguisher-f:before{content:"\ea58"}.jam-extinguisher:before{content:"\ea59"}.jam-eye-close-f:before{content:"\ea5a"}.jam-eye-close:before{content:"\ea5b"}.jam-eye-f:before{content:"\ea5c"}.jam-eye:before{content:"\ea5d"}.jam-eyedropper-f:before{content:"\ea5e"}.jam-eyedropper:before{content:"\ea5f"}.jam-facebook-circle:before{content:"\ea60"}.jam-facebook-square:before{content:"\ea61"}.jam-facebook:before{content:"\ea62"}.jam-fast-backward-circle-f:before{content:"\ea63"}.jam-fast-backward-circle:before{content:"\ea64"}.jam-fast-backward-square-f:before{content:"\ea65"}.jam-fast-backward-square:before{content:"\ea66"}.jam-fast-backward:before{content:"\ea67"}.jam-fast-forward-circle-f:before{content:"\ea68"}.jam-fast-forward-circle:before{content:"\ea69"}.jam-fast-forward-square-f:before{content:"\ea6a"}.jam-fast-forward-square:before{content:"\ea6b"}.jam-fast-forward:before{content:"\ea6c"}.jam-feather-f:before{content:"\ea6d"}.jam-feather:before{content:"\ea6e"}.jam-female:before{content:"\ea6f"}.jam-file-f:before{content:"\ea70"}.jam-file:before{content:"\ea71"}.jam-files-f:before{content:"\ea72"}.jam-files:before{content:"\ea73"}.jam-filter-f:before{content:"\ea74"}.jam-filter:before{content:"\ea75"}.jam-fingerprint:before{content:"\ea76"}.jam-first-aid-f:before{content:"\ea77"}.jam-first-aid:before{content:"\ea78"}.jam-fish:before{content:"\ea79"}.jam-fiverr-circle:before{content:"\ea7a"}.jam-fiverr-square:before{content:"\ea7b"}.jam-fiverr:before{content:"\ea7c"}.jam-flag-f:before{content:"\ea7d"}.jam-flag:before{content:"\ea7e"}.jam-flame-f:before{content:"\ea7f"}.jam-flame:before{content:"\ea80"}.jam-flashlight-off-f:before{content:"\ea81"}.jam-flashlight-off:before{content:"\ea82"}.jam-flashlight-on-f:before{content:"\ea83"}.jam-flashlight-on:before{content:"\ea84"}.jam-flask:before{content:"\ea85"}.jam-flickr-circle:before{content:"\ea86"}.jam-flickr-square:before{content:"\ea87"}.jam-flickr:before{content:"\ea88"}.jam-flower:before{content:"\ea89"}.jam-folder-f:before{content:"\ea8a"}.jam-folder-open-f:before{content:"\ea8b"}.jam-folder-open:before{content:"\ea8c"}.jam-folder-zip-f:before{content:"\ea8d"}.jam-folder-zip:before{content:"\ea8e"}.jam-folder:before{content:"\ea8f"}.jam-football:before{content:"\ea90"}.jam-fork-f:before{content:"\ea91"}.jam-fork:before{content:"\ea92"}.jam-forward-circle-f:before{content:"\ea93"}.jam-forward-circle:before{content:"\ea94"}.jam-forward-square-f:before{content:"\ea95"}.jam-forward-square:before{content:"\ea96"}.jam-forward:before{content:"\ea97"}.jam-foursquare:before{content:"\ea98"}.jam-gamepad-f:before{content:"\ea99"}.jam-gamepad-retro-f:before{content:"\ea9a"}.jam-gamepad-retro:before{content:"\ea9b"}.jam-gamepad:before{content:"\ea9c"}.jam-ghost-f:before{content:"\ea9d"}.jam-ghost-org-circle:before{content:"\ea9e"}.jam-ghost-org-square:before{content:"\ea9f"}.jam-ghost-org:before{content:"\eaa0"}.jam-ghost:before{content:"\eaa1"}.jam-gift-f:before{content:"\eaa2"}.jam-gift:before{content:"\eaa3"}.jam-github-circle:before{content:"\eaa4"}.jam-github-square:before{content:"\eaa5"}.jam-github:before{content:"\eaa6"}.jam-gitlab-circle:before{content:"\eaa7"}.jam-gitlab-square:before{content:"\eaa8"}.jam-gitlab:before{content:"\eaa9"}.jam-glass-empty:before{content:"\eaaa"}.jam-glass-filled-f:before{content:"\eaab"}.jam-glass-filled:before{content:"\eaac"}.jam-glue-f:before{content:"\eaad"}.jam-glue:before{content:"\eaae"}.jam-google-circle:before{content:"\eaaf"}.jam-google-play-circle:before{content:"\eab0"}.jam-google-play-square:before{content:"\eab1"}.jam-google-play:before{content:"\eab2"}.jam-google-plus-circle:before{content:"\eab3"}.jam-google-plus-square:before{content:"\eab4"}.jam-google-plus:before{content:"\eab5"}.jam-google-square:before{content:"\eab6"}.jam-google:before{content:"\eab7"}.jam-gps-f:before{content:"\eab8"}.jam-gps:before{content:"\eab9"}.jam-grid-f:before{content:"\eaba"}.jam-grid:before{content:"\eabb"}.jam-hairdryer-f:before{content:"\eabc"}.jam-hairdryer:before{content:"\eabd"}.jam-hammer-f:before{content:"\eabe"}.jam-hammer:before{content:"\eabf"}.jam-hashtag:before{content:"\eac0"}.jam-header-1:before{content:"\eac1"}.jam-header-2:before{content:"\eac2"}.jam-header-3:before{content:"\eac3"}.jam-header-4:before{content:"\eac4"}.jam-header-5:before{content:"\eac5"}.jam-header-6:before{content:"\eac6"}.jam-header:before{content:"\eac7"}.jam-headset-f:before{content:"\eac8"}.jam-headset:before{content:"\eac9"}.jam-heart-f:before{content:"\eaca"}.jam-heart:before{content:"\eacb"}.jam-helmet-f:before{content:"\eacc"}.jam-helmet:before{content:"\eacd"}.jam-help-f:before{content:"\eace"}.jam-help:before{content:"\eacf"}.jam-highlighter-f:before{content:"\ead0"}.jam-highlighter:before{content:"\ead1"}.jam-history:before{content:"\ead2"}.jam-home-f:before{content:"\ead3"}.jam-home:before{content:"\ead4"}.jam-hourglass-f:before{content:"\ead5"}.jam-hourglass:before{content:"\ead6"}.jam-ice-cream-f:before{content:"\ead7"}.jam-ice-cream:before{content:"\ead8"}.jam-id-card-f:before{content:"\ead9"}.jam-id-card:before{content:"\eada"}.jam-inbox-f:before{content:"\eadb"}.jam-inbox:before{content:"\eadc"}.jam-inboxes-f:before{content:"\eadd"}.jam-inboxes:before{content:"\eade"}.jam-indent:before{content:"\eadf"}.jam-infinite:before{content:"\eae0"}.jam-info-f:before{content:"\eae1"}.jam-info:before{content:"\eae2"}.jam-instagram:before{content:"\eae3"}.jam-instant-picture-f:before{content:"\eae4"}.jam-instant-picture:before{content:"\eae5"}.jam-italic:before{content:"\eae6"}.jam-joystick-f:before{content:"\eae7"}.jam-joystick:before{content:"\eae8"}.jam-key-f:before{content:"\eae9"}.jam-key:before{content:"\eaea"}.jam-keyboard-f:before{content:"\eaeb"}.jam-keyboard:before{content:"\eaec"}.jam-language:before{content:"\eaed"}.jam-layers-f:before{content:"\eaee"}.jam-layers:before{content:"\eaef"}.jam-layout-f:before{content:"\eaf0"}.jam-layout:before{content:"\eaf1"}.jam-leaf-f:before{content:"\eaf2"}.jam-leaf:before{content:"\eaf3"}.jam-lifebuoy-f:before{content:"\eaf4"}.jam-lifebuoy:before{content:"\eaf5"}.jam-lightbulb-f:before{content:"\eaf6"}.jam-lightbulb:before{content:"\eaf7"}.jam-line:before{content:"\eaf8"}.jam-link:before{content:"\eaf9"}.jam-linkedin-circle:before{content:"\eafa"}.jam-linkedin-square:before{content:"\eafb"}.jam-linkedin:before{content:"\eafc"}.jam-log-in:before{content:"\eafd"}.jam-log-out:before{content:"\eafe"}.jam-luggage-f:before{content:"\eaff"}.jam-luggage:before{content:"\eb00"}.jam-magic-f:before{content:"\eb01"}.jam-magic:before{content:"\eb02"}.jam-magnet-f:before{content:"\eb03"}.jam-magnet:before{content:"\eb04"}.jam-male:before{content:"\eb05"}.jam-map-f:before{content:"\eb06"}.jam-map-marker-f:before{content:"\eb07"}.jam-map-marker:before{content:"\eb08"}.jam-map:before{content:"\eb09"}.jam-mask-f:before{content:"\eb0a"}.jam-mask:before{content:"\eb0b"}.jam-medal-f:before{content:"\eb0c"}.jam-medal:before{content:"\eb0d"}.jam-medical:before{content:"\eb0e"}.jam-medium-circle:before{content:"\eb0f"}.jam-medium-square:before{content:"\eb10"}.jam-medium:before{content:"\eb11"}.jam-menu:before{content:"\eb12"}.jam-merge-f:before{content:"\eb13"}.jam-merge:before{content:"\eb14"}.jam-message-alt-f:before{content:"\eb15"}.jam-message-alt-writing-f:before{content:"\eb16"}.jam-message-alt-writing:before{content:"\eb17"}.jam-message-alt:before{content:"\eb18"}.jam-message-f:before{content:"\eb19"}.jam-message-writing-f:before{content:"\eb1a"}.jam-message-writing:before{content:"\eb1b"}.jam-message:before{content:"\eb1c"}.jam-messages-alt-f:before{content:"\eb1d"}.jam-messages-alt:before{content:"\eb1e"}.jam-messages-f:before{content:"\eb1f"}.jam-messages:before{content:"\eb20"}.jam-messenger:before{content:"\eb21"}.jam-mic-alt:before{content:"\eb22"}.jam-mic-circle-f:before{content:"\eb23"}.jam-mic-circle:before{content:"\eb24"}.jam-mic-f:before{content:"\eb25"}.jam-mic-square-f:before{content:"\eb26"}.jam-mic-square:before{content:"\eb27"}.jam-mic:before{content:"\eb28"}.jam-microchip-f:before{content:"\eb29"}.jam-microchip:before{content:"\eb2a"}.jam-minus-circle-f:before{content:"\eb2b"}.jam-minus-circle:before{content:"\eb2c"}.jam-minus-rectangle-f:before{content:"\eb2d"}.jam-minus-rectangle:before{content:"\eb2e"}.jam-minus:before{content:"\eb2f"}.jam-moon-f:before{content:"\eb30"}.jam-moon:before{content:"\eb31"}.jam-more-horizontal-f:before{content:"\eb32"}.jam-more-horizontal:before{content:"\eb33"}.jam-more-vertical-f:before{content:"\eb34"}.jam-more-vertical:before{content:"\eb35"}.jam-mountain-f:before{content:"\eb36"}.jam-mountain:before{content:"\eb37"}.jam-move-alt:before{content:"\eb38"}.jam-move:before{content:"\eb39"}.jam-movie:before{content:"\eb3a"}.jam-mug-f:before{content:"\eb3b"}.jam-mug:before{content:"\eb3c"}.jam-music-f:before{content:"\eb3d"}.jam-music:before{content:"\eb3e"}.jam-myspace-circle:before{content:"\eb3f"}.jam-myspace-square:before{content:"\eb40"}.jam-myspace:before{content:"\eb41"}.jam-napster-circle:before{content:"\eb42"}.jam-napster-square:before{content:"\eb43"}.jam-napster:before{content:"\eb44"}.jam-newsletter-f:before{content:"\eb45"}.jam-newsletter:before{content:"\eb46"}.jam-newspaper-f:before{content:"\eb47"}.jam-newspaper:before{content:"\eb48"}.jam-npm:before{content:"\eb49"}.jam-odnoklassniki-circle:before{content:"\eb4a"}.jam-odnoklassniki-square:before{content:"\eb4b"}.jam-odnoklassniki:before{content:"\eb4c"}.jam-opera-circle:before{content:"\eb4d"}.jam-opera-square:before{content:"\eb4e"}.jam-opera:before{content:"\eb4f"}.jam-ordered-list:before{content:"\eb50"}.jam-padlock-alt-f:before{content:"\eb51"}.jam-padlock-alt-open-f:before{content:"\eb52"}.jam-padlock-alt-open:before{content:"\eb53"}.jam-padlock-alt:before{content:"\eb54"}.jam-padlock-f:before{content:"\eb55"}.jam-padlock-open-f:before{content:"\eb56"}.jam-padlock-open:before{content:"\eb57"}.jam-padlock:before{content:"\eb58"}.jam-paper-plane-f:before{content:"\eb59"}.jam-paper-plane:before{content:"\eb5a"}.jam-patreon-circle:before{content:"\eb5b"}.jam-patreon-square:before{content:"\eb5c"}.jam-patreon:before{content:"\eb5d"}.jam-pause:before{content:"\eb5e"}.jam-paypal-circle:before{content:"\eb5f"}.jam-paypal-square:before{content:"\eb60"}.jam-paypal:before{content:"\eb61"}.jam-pen-f:before{content:"\eb62"}.jam-pen:before{content:"\eb63"}.jam-pencil-f:before{content:"\eb64"}.jam-pencil:before{content:"\eb65"}.jam-periscope-circle:before{content:"\eb66"}.jam-periscope-square:before{content:"\eb67"}.jam-periscope:before{content:"\eb68"}.jam-phone-f:before{content:"\eb69"}.jam-phone:before{content:"\eb6a"}.jam-picture-f:before{content:"\eb6b"}.jam-picture:before{content:"\eb6c"}.jam-pictures-f:before{content:"\eb6d"}.jam-pictures:before{content:"\eb6e"}.jam-pie-chart-alt:before{content:"\eb6f"}.jam-pie-chart-f:before{content:"\eb70"}.jam-pie-chart:before{content:"\eb71"}.jam-pin-alt-f:before{content:"\eb72"}.jam-pin-alt:before{content:"\eb73"}.jam-pin-f:before{content:"\eb74"}.jam-pin:before{content:"\eb75"}.jam-pinterest-circle:before{content:"\eb76"}.jam-pinterest-square:before{content:"\eb77"}.jam-pinterest:before{content:"\eb78"}.jam-pizza-slice:before{content:"\eb79"}.jam-plane-f:before{content:"\eb7a"}.jam-plane:before{content:"\eb7b"}.jam-play-circle-f:before{content:"\eb7c"}.jam-play-circle:before{content:"\eb7d"}.jam-play-square-f:before{content:"\eb7e"}.jam-play-square:before{content:"\eb7f"}.jam-play:before{content:"\eb80"}.jam-plug-f:before{content:"\eb81"}.jam-plug:before{content:"\eb82"}.jam-plus-circle-f:before{content:"\eb83"}.jam-plus-circle:before{content:"\eb84"}.jam-plus-rectangle-f:before{content:"\eb85"}.jam-plus-rectangle:before{content:"\eb86"}.jam-plus:before{content:"\eb87"}.jam-pocket-watch-f:before{content:"\eb88"}.jam-pocket-watch:before{content:"\eb89"}.jam-podcast:before{content:"\eb8a"}.jam-power:before{content:"\eb8b"}.jam-printer-f:before{content:"\eb8c"}.jam-printer:before{content:"\eb8d"}.jam-qr-code:before{content:"\eb8e"}.jam-quora-circle:before{content:"\eb8f"}.jam-quora-square:before{content:"\eb90"}.jam-quora:before{content:"\eb91"}.jam-rainbow:before{content:"\eb92"}.jam-rec:before{content:"\eb93"}.jam-rectangle-f:before{content:"\eb94"}.jam-rectangle:before{content:"\eb95"}.jam-reddit:before{content:"\eb96"}.jam-redo:before{content:"\eb97"}.jam-refresh-reverse:before{content:"\eb98"}.jam-refresh:before{content:"\eb99"}.jam-repeat:before{content:"\eb9a"}.jam-rocket-f:before{content:"\eb9b"}.jam-rocket:before{content:"\eb9c"}.jam-rss-feed:before{content:"\eb9d"}.jam-rubber:before{content:"\eb9e"}.jam-ruler-f:before{content:"\eb9f"}.jam-ruler:before{content:"\eba0"}.jam-save-f:before{content:"\eba1"}.jam-save:before{content:"\eba2"}.jam-scissors:before{content:"\eba3"}.jam-screen-f:before{content:"\eba4"}.jam-screen:before{content:"\eba5"}.jam-screwdriver-f:before{content:"\eba6"}.jam-screwdriver:before{content:"\eba7"}.jam-search-folder:before{content:"\eba8"}.jam-search-minus:before{content:"\eba9"}.jam-search-plus:before{content:"\ebaa"}.jam-search:before{content:"\ebab"}.jam-set-backward-circle-f:before{content:"\ebac"}.jam-set-backward-circle:before{content:"\ebad"}.jam-set-backward-square-f:before{content:"\ebae"}.jam-set-backward-square:before{content:"\ebaf"}.jam-set-backward:before{content:"\ebb0"}.jam-set-forward-circle-f:before{content:"\ebb1"}.jam-set-forward-circle:before{content:"\ebb2"}.jam-set-forward-square-f:before{content:"\ebb3"}.jam-set-forward-square:before{content:"\ebb4"}.jam-set-forward:before{content:"\ebb5"}.jam-set-square-f:before{content:"\ebb6"}.jam-set-square:before{content:"\ebb7"}.jam-settings-alt:before{content:"\ebb8"}.jam-share-alt-f:before{content:"\ebb9"}.jam-share-alt:before{content:"\ebba"}.jam-share:before{content:"\ebbb"}.jam-shield-check-f:before{content:"\ebbc"}.jam-shield-check:before{content:"\ebbd"}.jam-shield-close-f:before{content:"\ebbe"}.jam-shield-close:before{content:"\ebbf"}.jam-shield-f:before{content:"\ebc0"}.jam-shield-half:before{content:"\ebc1"}.jam-shield-minus-f:before{content:"\ebc2"}.jam-shield-minus:before{content:"\ebc3"}.jam-shield-plus-f:before{content:"\ebc4"}.jam-shield-plus:before{content:"\ebc5"}.jam-shield:before{content:"\ebc6"}.jam-shopify-circle:before{content:"\ebc7"}.jam-shopify-square:before{content:"\ebc8"}.jam-shopify:before{content:"\ebc9"}.jam-shopping-bag-alt-f:before{content:"\ebca"}.jam-shopping-bag-alt:before{content:"\ebcb"}.jam-shopping-bag-f:before{content:"\ebcc"}.jam-shopping-bag:before{content:"\ebcd"}.jam-shopping-cart:before{content:"\ebce"}.jam-shuffle:before{content:"\ebcf"}.jam-signal:before{content:"\ebd0"}.jam-sitemap-f:before{content:"\ebd1"}.jam-sitemap:before{content:"\ebd2"}.jam-skull-f:before{content:"\ebd3"}.jam-skull:before{content:"\ebd4"}.jam-skype-circle:before{content:"\ebd5"}.jam-skype-square:before{content:"\ebd6"}.jam-skype:before{content:"\ebd7"}.jam-slack-circle:before{content:"\ebd8"}.jam-slack-square:before{content:"\ebd9"}.jam-slack:before{content:"\ebda"}.jam-smiley-f:before{content:"\ebdb"}.jam-smiley:before{content:"\ebdc"}.jam-snapchat-circle:before{content:"\ebdd"}.jam-snapchat-square:before{content:"\ebde"}.jam-snapchat:before{content:"\ebdf"}.jam-snowboard-f:before{content:"\ebe0"}.jam-snowboard:before{content:"\ebe1"}.jam-snowflake:before{content:"\ebe2"}.jam-soundcloud:before{content:"\ebe3"}.jam-speaker-f:before{content:"\ebe4"}.jam-speaker:before{content:"\ebe5"}.jam-spotify:before{content:"\ebe6"}.jam-square-f:before{content:"\ebe7"}.jam-square:before{content:"\ebe8"}.jam-squarespace-circle:before{content:"\ebe9"}.jam-squarespace-square:before{content:"\ebea"}.jam-squarespace:before{content:"\ebeb"}.jam-stackoverflow-circle:before{content:"\ebec"}.jam-stackoverflow-square:before{content:"\ebed"}.jam-stackoverflow:before{content:"\ebee"}.jam-stamp-f:before{content:"\ebef"}.jam-stamp:before{content:"\ebf0"}.jam-star-f:before{content:"\ebf1"}.jam-star-full:before{content:"\ebf2"}.jam-star-half:before{content:"\ebf3"}.jam-star:before{content:"\ebf4"}.jam-station:before{content:"\ebf5"}.jam-stop-sign:before{content:"\ebf6"}.jam-stop:before{content:"\ebf7"}.jam-store:before{content:"\ebf8"}.jam-strikethrough:before{content:"\ebf9"}.jam-stumbleupon-circle:before{content:"\ebfa"}.jam-stumbleupon-square:before{content:"\ebfb"}.jam-stumbleupon:before{content:"\ebfc"}.jam-sun-f:before{content:"\ebfd"}.jam-sun:before{content:"\ebfe"}.jam-switch-left-f:before{content:"\ebff"}.jam-switch-left:before{content:"\ec00"}.jam-switch-right-f:before{content:"\ec01"}.jam-switch-right:before{content:"\ec02"}.jam-sword-f:before{content:"\ec03"}.jam-sword:before{content:"\ec04"}.jam-tablet-f:before{content:"\ec05"}.jam-tablet:before{content:"\ec06"}.jam-tag-f:before{content:"\ec07"}.jam-tag:before{content:"\ec08"}.jam-tags-f:before{content:"\ec09"}.jam-tags:before{content:"\ec0a"}.jam-target:before{content:"\ec0b"}.jam-task-list-f:before{content:"\ec0c"}.jam-task-list:before{content:"\ec0d"}.jam-temperature:before{content:"\ec0e"}.jam-terminal:before{content:"\ec0f"}.jam-thunder-f:before{content:"\ec10"}.jam-thunder:before{content:"\ec11"}.jam-ticket-f:before{content:"\ec12"}.jam-ticket:before{content:"\ec13"}.jam-tools-f:before{content:"\ec14"}.jam-tools:before{content:"\ec15"}.jam-torch-f:before{content:"\ec16"}.jam-torch:before{content:"\ec17"}.jam-totem:before{content:"\ec18"}.jam-train-f:before{content:"\ec19"}.jam-train:before{content:"\ec1a"}.jam-transgender:before{content:"\ec1b"}.jam-trash-alt-f:before{content:"\ec1c"}.jam-trash-alt:before{content:"\ec1d"}.jam-trash-f:before{content:"\ec1e"}.jam-trash:before{content:"\ec1f"}.jam-tree-alt-f:before{content:"\ec20"}.jam-tree-alt:before{content:"\ec21"}.jam-tree-f:before{content:"\ec22"}.jam-tree:before{content:"\ec23"}.jam-trello:before{content:"\ec24"}.jam-triangle-danger-f:before{content:"\ec25"}.jam-triangle-danger:before{content:"\ec26"}.jam-triangle-f:before{content:"\ec27"}.jam-triangle:before{content:"\ec28"}.jam-trophy-f:before{content:"\ec29"}.jam-trophy:before{content:"\ec2a"}.jam-tube:before{content:"\ec2b"}.jam-tumblr-circle:before{content:"\ec2c"}.jam-tumblr-square:before{content:"\ec2d"}.jam-tumblr:before{content:"\ec2e"}.jam-twitch:before{content:"\ec2f"}.jam-twitter-circle:before{content:"\ec30"}.jam-twitter-square:before{content:"\ec31"}.jam-twitter:before{content:"\ec32"}.jam-umbrella-closed-f:before{content:"\ec33"}.jam-umbrella-closed:before{content:"\ec34"}.jam-umbrella-f:before{content:"\ec35"}.jam-umbrella:before{content:"\ec36"}.jam-underline:before{content:"\ec37"}.jam-undo:before{content:"\ec38"}.jam-unindent:before{content:"\ec39"}.jam-universe:before{content:"\ec3a"}.jam-unordered-list:before{content:"\ec3b"}.jam-unsplash-circle:before{content:"\ec3c"}.jam-unsplash-square:before{content:"\ec3d"}.jam-unsplash:before{content:"\ec3e"}.jam-upload:before{content:"\ec3f"}.jam-user-circle:before{content:"\ec40"}.jam-user-minus:before{content:"\ec41"}.jam-user-plus:before{content:"\ec42"}.jam-user-remove:before{content:"\ec43"}.jam-user-square:before{content:"\ec44"}.jam-user:before{content:"\ec45"}.jam-users:before{content:"\ec46"}.jam-viadeo:before{content:"\ec47"}.jam-viber-circle:before{content:"\ec48"}.jam-viber-square:before{content:"\ec49"}.jam-viber:before{content:"\ec4a"}.jam-video-camera-f:before{content:"\ec4b"}.jam-video-camera-vintage-f:before{content:"\ec4c"}.jam-video-camera-vintage:before{content:"\ec4d"}.jam-video-camera:before{content:"\ec4e"}.jam-vimeo-circle:before{content:"\ec4f"}.jam-vimeo-square:before{content:"\ec50"}.jam-vimeo:before{content:"\ec51"}.jam-vine-circle:before{content:"\ec52"}.jam-vine-square:before{content:"\ec53"}.jam-vine:before{content:"\ec54"}.jam-voicemail:before{content:"\ec55"}.jam-volume-circle-f:before{content:"\ec56"}.jam-volume-circle:before{content:"\ec57"}.jam-volume-down-circle-f:before{content:"\ec58"}.jam-volume-down-circle:before{content:"\ec59"}.jam-volume-down-square-f:before{content:"\ec5a"}.jam-volume-down-square:before{content:"\ec5b"}.jam-volume-down:before{content:"\ec5c"}.jam-volume-mute-circle-f:before{content:"\ec5d"}.jam-volume-mute-circle:before{content:"\ec5e"}.jam-volume-mute-square-f:before{content:"\ec5f"}.jam-volume-mute-square:before{content:"\ec60"}.jam-volume-mute:before{content:"\ec61"}.jam-volume-square-f:before{content:"\ec62"}.jam-volume-square:before{content:"\ec63"}.jam-volume-up-circle-f:before{content:"\ec64"}.jam-volume-up-circle:before{content:"\ec65"}.jam-volume-up-square-f:before{content:"\ec66"}.jam-volume-up-square:before{content:"\ec67"}.jam-volume-up:before{content:"\ec68"}.jam-volume:before{content:"\ec69"}.jam-watch-f:before{content:"\ec6a"}.jam-watch:before{content:"\ec6b"}.jam-water-drop-f:before{content:"\ec6c"}.jam-water-drop:before{content:"\ec6d"}.jam-whatsapp:before{content:"\ec6e"}.jam-wifi:before{content:"\ec6f"}.jam-wikipedia:before{content:"\ec70"}.jam-wordpress:before{content:"\ec71"}.jam-world:before{content:"\ec72"}.jam-wrench-f:before{content:"\ec73"}.jam-wrench:before{content:"\ec74"}.jam-write-f:before{content:"\ec75"}.jam-write:before{content:"\ec76"}.jam-yahoo-circle:before{content:"\ec77"}.jam-yahoo-square:before{content:"\ec78"}.jam-yahoo:before{content:"\ec79"}.jam-yelp-circle:before{content:"\ec7a"}.jam-yelp-square:before{content:"\ec7b"}.jam-yelp:before{content:"\ec7c"}.jam-youtube-circle:before{content:"\ec7d"}.jam-youtube-square:before{content:"\ec7e"}.jam-youtube:before{content:"\ec7f"}
diff --git a/transformer/src/test/resources/sling.pdf b/transformer/src/test/resources/sling.pdf
deleted file mode 100644
index a443389..0000000
--- a/transformer/src/test/resources/sling.pdf
+++ /dev/null
Binary files differ
diff --git a/transformer/src/test/resources/thumbnail.png b/transformer/src/test/resources/thumbnail.png
deleted file mode 100644
index 62cf067..0000000
--- a/transformer/src/test/resources/thumbnail.png
+++ /dev/null
Binary files differ
diff --git a/ui/bnd.bnd b/ui/bnd.bnd
index bd2763c..88e58e9 100644
--- a/ui/bnd.bnd
+++ b/ui/bnd.bnd
@@ -1,3 +1,3 @@
 Sling-Nodetypes: SLING-INF/nodetypes/nodetypes.cnd
-Sling-Initial-Content: jcr_root;overwriteProperties=true;overwrite=false;ignoreImportProviders:=xml,jcr_root/conf/global;overwrite=true;ignoreImportProviders:=xml;path:=/conf/global,jcr_root/etc/clientlibs;overwrite=true;ignoreImportProviders:=xml;path:=/etc/clientlibs,jcr_root/etc/taxonomy;overwrite:=false;uninstall:=true;path:=/etc/taxonomy,jcr_root/oak%3Aindex;overwrite:=false;uninstall:=true;path:=/oak:index,jcr_root/libs/sling/servlet/errorhandler;overwriteProperties:=true;overwrite:=true;uninstall:=true;path:=/libs/sling/servlet/errorhandler,jcr_root/libs/sling-cms;overwrite:=true;uninstall:=true;path:=/libs/sling-cms,jcr_root/static/clientlibs/sling-cms;overwrite:=true;uninstall:=true;path:=/static/clientlibs/sling-cms;ignoreImportProviders:=xml,jcr_root/static/clientlibs/sling-cms-editor;overwrite:=true;uninstall:=true;path:=/static/clientlibs/sling-cms-editor;ignoreImportProviders:=xml,jcr_root/static/sling-cms;overwrite:=true;uninstall:=true;path:=/static/sling-cms;ignoreImportProviders:=xml
+Sling-Initial-Content: jcr_root;overwriteProperties=true;overwrite=false;ignoreImportProviders:=xml,jcr_root/conf/global;overwrite=true;ignoreImportProviders:=xml;path:=/conf/global,jcr_root/etc/clientlibs;overwrite=true;ignoreImportProviders:=xml;path:=/etc/clientlibs,jcr_root/etc/taxonomy;overwrite:=false;uninstall:=true;path:=/etc/taxonomy,jcr_root/oak%3Aindex;overwrite:=false;uninstall:=true;path:=/oak:index,jcr_root/libs/sling/servlet/errorhandler;overwriteProperties:=true;overwrite:=true;uninstall:=true;path:=/libs/sling/servlet/errorhandler,jcr_root/libs/sling-cms;overwrite:=true;uninstall:=true;path:=/libs/sling-cms,jcr_root/libs/sling/thumbnails;overwrite:=true;uninstall:=true;path:=/libs/sling/thumbnails,jcr_root/static/clientlibs/sling-cms;overwrite:=true;uninstall:=true;path:=/static/clientlibs/sling-cms;ignoreImportProviders:=xml,jcr_root/static/clientlibs/sling-cms-editor;overwrite:=true;uninstall:=true;path:=/static/clientlibs/sling-cms-editor;ignoreImportProviders:=xml,jcr_root/static/sling-cms;overwrite:=true;uninstall:=true;path:=/static/sling-cms;ignoreImportProviders:=xml
 -includeresource: target/frontend/dist
\ No newline at end of file
diff --git a/ui/src/main/frontend/js/cms.fields.js b/ui/src/main/frontend/js/cms.fields.js
index 11a9b8b..e759258 100644
--- a/ui/src/main/frontend/js/cms.fields.js
+++ b/ui/src/main/frontend/js/cms.fields.js
@@ -18,11 +18,11 @@
  */
 /* global wysihtml, wysihtmlParserRules */
 
-rava.bind('.file', {
+rava.bind(".file", {
   callbacks: {
     created() {
       const field = this;
-      const close = field.closest('form').querySelector('a.close');
+      const close = field.closest("form").querySelector("a.close");
 
       function setProgress(m, progress) {
         const meter = m;
@@ -37,89 +37,131 @@
         formData.append("_charset_", "utf-8");
 
         const xhr = new XMLHttpRequest();
-        xhr.upload.addEventListener('loadstart', () => {
-          setProgress(meter, 0);
-        }, false);
-        xhr.upload.addEventListener('progress', (event) => {
-          const percent = (event.loaded / event.total) * 100;
-          setProgress(meter, percent);
-        }, false);
-        xhr.upload.addEventListener('load', () => {
-          meter.classList.add('is-info');
-        }, false);
-        xhr.addEventListener('readystatechange', (event) => {
-          let status; let text; let
-            readyState;
-          try {
-            readyState = event.target.readyState;
-            text = event.target.responseText;
-            status = event.target.status;
-          } catch (e) {
-            meter.classList.add('is-danger');
-          }
-          if (readyState === 4) {
-            meter.classList.remove('is-info');
-            if (status === 200 && text) {
-              meter.classList.add('is-success');
-            } else {
-              meter.classList.add('is-danger');
-              console.warn('Failed to upload %s, recieved message %s', file.name, text); // eslint-disable-line no-console
+        xhr.upload.addEventListener(
+          "loadstart",
+          () => {
+            setProgress(meter, 0);
+          },
+          false
+        );
+        xhr.upload.addEventListener(
+          "progress",
+          (event) => {
+            const percent = (event.loaded / event.total) * 100;
+            setProgress(meter, percent);
+          },
+          false
+        );
+        xhr.upload.addEventListener(
+          "load",
+          () => {
+            meter.classList.add("is-info");
+          },
+          false
+        );
+        xhr.addEventListener(
+          "readystatechange",
+          (event) => {
+            let status;
+            let text;
+            let readyState;
+            try {
+              readyState = event.target.readyState;
+              text = event.target.responseText;
+              status = event.target.status;
+            } catch (e) {
+              meter.classList.add("is-danger");
             }
-          }
-        }, false);
-        xhr.open('POST', action, true);
+            if (readyState === 4) {
+              meter.classList.remove("is-info");
+              if (status === 200 && text) {
+                meter.classList.add("is-success");
+              } else {
+                meter.classList.add("is-danger");
+                console.warn(
+                  "Failed to upload %s, recieved message %s",
+                  file.name,
+                  text
+                ); // eslint-disable-line no-console
+              }
+            }
+          },
+          false
+        );
+        xhr.open("POST", action, true);
         xhr.send(formData);
       }
       function handleFile(scope, file) {
-        const it = document.createElement('div');
-        const ctr = scope.closest('.control').querySelector('.file-item-container');
+        const it = document.createElement("div");
+        const ctr = scope
+          .closest(".control")
+          .querySelector(".file-item-container");
         let meter = null;
-        it.innerHTML = document.querySelector('.file-item-template').innerHTML;
-        meter = it.querySelector('.progress');
-        it.querySelector('.file-item-name').innerText = file.name;
-        ctr.classList.remove('is-hidden');
+        it.innerHTML = document.querySelector(".file-item-template").innerHTML;
+        meter = it.querySelector(".progress");
+        it.querySelector(".file-item-name").innerText = file.name;
+        ctr.classList.remove("is-hidden");
         ctr.appendChild(it);
-        uploadFile(meter, scope.closest('form').action, file);
+        uploadFile(meter, scope.closest("form").action, file);
       }
 
-      field.addEventListener('dragover', (event) => {
-        event.preventDefault();
-      }, false);
-      field.addEventListener('dragenter', (event) => {
-        event.preventDefault();
-        field.classList.add('is-primary');
-      }, false);
-      field.addEventListener('dragleave', (event) => {
-        event.preventDefault();
-        if(!field.contains(event.fromElement)){
-          field.classList.remove('is-primary');
-        }
-      }, false);
-      field.addEventListener('drop', (event) => {
-        event.preventDefault();
-        field.classList.remove('is-primary');
-        if (event.dataTransfer.items) {
-          const { items } = event.dataTransfer;
-          for (let i = 0; i < items.length; i++) { // eslint-disable-line no-plusplus
-            if (items[i].kind === 'file') {
-              handleFile(field, items[i].getAsFile());
+      field.addEventListener(
+        "dragover",
+        (event) => {
+          event.preventDefault();
+        },
+        false
+      );
+      field.addEventListener(
+        "dragenter",
+        (event) => {
+          event.preventDefault();
+          field.classList.add("is-primary");
+        },
+        false
+      );
+      field.addEventListener(
+        "dragleave",
+        (event) => {
+          event.preventDefault();
+          if (!field.contains(event.fromElement)) {
+            field.classList.remove("is-primary");
+          }
+        },
+        false
+      );
+      field.addEventListener(
+        "drop",
+        (event) => {
+          event.preventDefault();
+          field.classList.remove("is-primary");
+          if (event.dataTransfer.items) {
+            const { items } = event.dataTransfer;
+            for (let i = 0; i < items.length; i++) {
+              // eslint-disable-line no-plusplus
+              if (items[i].kind === "file") {
+                handleFile(field, items[i].getAsFile());
+              }
+            }
+          } else {
+            const { files } = event.dataTransfer;
+            for (let i = 0; i < files.length; i++) {
+              // eslint-disable-line no-plusplus
+              handleFile(field, files[i]);
             }
           }
-        } else {
-          const { files } = event.dataTransfer;
-          for (let i = 0; i < files.length; i++) { // eslint-disable-line no-plusplus
-            handleFile(field, files[i]);
-          }
-        }
-      }, false);
-      field.closest('form').querySelector('button[type=submit]').remove();
-      close.innerText = 'Done';
-      close.addEventListener('click', () => {
+        },
+        false
+      );
+      field.closest("form").querySelector("button[type=submit]").remove();
+      close.innerText = "Done";
+      close.addEventListener("click", () => {
         window.Sling.CMS.ui.reloadContext();
       });
-      field.querySelector('input').addEventListener('change', (event) => {
+      field.querySelector("input").addEventListener("change", (event) => {
         const { files } = event.target;
-        for (let i = 0; i < files.length; i++) { // eslint-disable-line no-plusplus
+        for (let i = 0; i < files.length; i++) {
+          // eslint-disable-line no-plusplus
           handleFile(field, files[i]);
         }
       });
@@ -128,37 +170,41 @@
 });
 
 /* Support for updating the namehint when creating a component */
-rava.bind('.namehint', {
+rava.bind(".namehint", {
   callbacks: {
     created() {
       const field = this;
-      this.closest('.Form-Ajax').querySelector('select[name="sling:resourceType"]').addEventListener('change', (evt) => {
-        const resourceType = evt.target.value.split('/');
-        field.value = resourceType[resourceType.length - 1];
-      });
+      this.closest(".Form-Ajax")
+        .querySelector('select[name="sling:resourceType"]')
+        .addEventListener("change", (evt) => {
+          const resourceType = evt.target.value.split("/");
+          field.value = resourceType[resourceType.length - 1];
+        });
     },
   },
 });
 
 /* Support for repeating form fields */
-rava.bind('.repeating', {
+rava.bind(".repeating", {
   callbacks: {
     created() {
       const ctr = this;
-      this.querySelectorAll('.repeating__add').forEach((el) => {
-        el.addEventListener('click', (event) => {
+      this.querySelectorAll(".repeating__add").forEach((el) => {
+        el.addEventListener("click", (event) => {
           event.stopPropagation();
           event.preventDefault();
-          const node = ctr.querySelector('.repeating__template > .repeating__item').cloneNode(true);
-          ctr.querySelector('.repeating__container').appendChild(node);
+          const node = ctr
+            .querySelector(".repeating__template > .repeating__item")
+            .cloneNode(true);
+          ctr.querySelector(".repeating__container").appendChild(node);
         });
       });
     },
   },
 });
-rava.bind('.repeating__item', {
+rava.bind(".repeating__item", {
   events: {
-    ':scope .repeating__remove': {
+    ":scope .repeating__remove": {
       click(event) {
         event.stopPropagation();
         event.preventDefault();
@@ -168,13 +214,38 @@
   },
 });
 
-rava.bind('.rte', {
+rava.bind(".rte", {
   callbacks: {
     created() {
-      new wysihtml.Editor(this.querySelector('.rte-editor'), { // eslint-disable-line no-new, new-cap
-        toolbar: this.querySelector('.rte-toolbar'),
+      new wysihtml.Editor(this.querySelector(".rte-editor"), {
+        // eslint-disable-line no-new, new-cap
+        toolbar: this.querySelector(".rte-toolbar"),
         parserRules: wysihtmlParserRules,
       });
     },
   },
 });
+
+rava.bind('.field[data-events]:not([data-events=""])', {
+  callbacks: {
+    async created() {
+      const events = this.dataset.events.split(",").filter((e) => e !== "");
+      const res = await fetch(`${this.dataset.path}/events.json`, {
+        cache: "no-cache",
+        headers: {
+          Accept: "application/json",
+        },
+      });
+      const handlers = await res.json();
+      for (var event of events) {
+        this.querySelectorAll("input,select,textarea").forEach((el) => {
+          if (event === "load") {
+            Function(handlers[event])();
+          } else {
+            el.addEventListener(event, Function(handlers[event]));
+          }
+        });
+      }
+    },
+  },
+});
diff --git a/ui/src/main/frontend/js/cms.form.js b/ui/src/main/frontend/js/cms.form.js
index 97b0ca1..1d46b5b 100644
--- a/ui/src/main/frontend/js/cms.form.js
+++ b/ui/src/main/frontend/js/cms.form.js
@@ -64,7 +64,10 @@
           },
         });
         if (Sling.CMS.utils.ok(response)) {
-          const res = await response.json();
+          let res = {};
+          if (response.headers.get('content-type').indexOf("application/json") !== -1) {
+            res = await response.json();
+          }
           form.querySelector('.form-wrapper').disabled = false;
           if (callback && Sling.CMS.handlers[callback]) {
             Sling.CMS.handlers[callback](res, 'success');
diff --git a/ui/src/main/frontend/js/cms.js b/ui/src/main/frontend/js/cms.js
index d1a3b41..43327ce 100644
--- a/ui/src/main/frontend/js/cms.js
+++ b/ui/src/main/frontend/js/cms.js
@@ -67,7 +67,7 @@
     },
     confirmReload(res, msg) {
       if (window.self !== window.top) {
-        window.top.Sling.CMS.ui.confirmMessage(msg, res.title, () => {
+        window.top.Sling.CMS.ui.confirmMessage(msg, res ? res.title : '', () => {
           window.top.location.reload();
         });
       } else {
@@ -77,7 +77,7 @@
       }
     },
     confirmReloadComponent(res, msg, path) {
-      window.top.Sling.CMS.ui.confirmMessage(msg, res.title, () => {
+      window.top.Sling.CMS.ui.confirmMessage(msg, res ? res.title : '', () => {
         const modal = window.top.Sling.CMS.ui.loaderModal();
         window.parent.window.CMSEditor.ui.reloadComponent(path, () => {
           modal.remove();
diff --git a/ui/src/main/frontend/js/cms.pathfield.js b/ui/src/main/frontend/js/cms.pathfield.js
index e66b14d..fbf0f0c 100644
--- a/ui/src/main/frontend/js/cms.pathfield.js
+++ b/ui/src/main/frontend/js/cms.pathfield.js
@@ -19,24 +19,28 @@
 /* global autoComplete */
 Sling.CMS.pathfield = null;
 
-rava.bind('input.pathfield', {
+rava.bind("input.pathfield", {
   callbacks: {
     created() {
-      const { type } = this.dataset;
-      const { base } = this.dataset;
-
-      new autoComplete({ // eslint-disable-line no-new, new-cap
+      const { base, type } = this.dataset;
+      const field = this;
+      // eslint-disable-line no-new, new-cap
+      new autoComplete({
         minChars: 1,
         selector: this,
+        debounce: 100,
+        onSelect: function (e, term, item) {
+          setTimeout(() => field.dispatchEvent(new Event("input")), 500);
+        },
         source(t, response) {
           let term = t;
-          if (term === '/') {
+          if (term === "/") {
             term = base;
           }
           fetch(
             `/bin/cms/paths?path=${encodeURIComponent(
-              term,
-            )}&type=${encodeURIComponent(type)}`,
+              term
+            )}&type=${encodeURIComponent(type)}`
           )
             .then((resp) => resp.json())
             .then((data) => {
@@ -48,15 +52,15 @@
   },
 });
 
-rava.bind('.search-button', {
+rava.bind(".search-button", {
   events: {
     click() {
-      Sling.CMS.pathfield = this.closest('.field').querySelector('.pathfield');
+      Sling.CMS.pathfield = this.closest(".field").querySelector(".pathfield");
     },
   },
 });
 
-rava.bind('.search-select-button', {
+rava.bind(".search-select-button", {
   events: {
     click() {
       const { path } = this.dataset;
@@ -65,23 +69,24 @@
       } else {
         Sling.CMS.pathfield.postMessage(
           {
-            action: 'slingcms.setpath',
+            action: "slingcms.setpath",
             path,
           },
-          window.location.origin,
+          window.location.origin
         );
       }
-      this.closest('.modal').remove();
+      this.closest(".modal").remove();
     },
   },
 });
 
 window.addEventListener(
-  'message',
+  "message",
   (event) => {
-    if (event.data.action === 'slingcms.setpath') {
+    if (event.data.action === "slingcms.setpath") {
       Sling.CMS.pathfield.value = event.data.path;
+      Sling.CMS.pathfield.dispatchEvent(new Event("change"));
     }
   },
-  false,
+  false
 );
diff --git a/ui/src/main/resources/jcr_root/conf/global.json b/ui/src/main/resources/jcr_root/conf/global.json
index 98ba179..9b4eae9 100644
--- a/ui/src/main/resources/jcr_root/conf/global.json
+++ b/ui/src/main/resources/jcr_root/conf/global.json
@@ -78,57 +78,45 @@
             "sling-cms-thumbnail": {
                 "jcr:primaryType": "nt:unstructured",
                 "name": "sling-cms-thumbnail",
-                "sling:resourceType": "sling-cms/components/caconfig/transformation",
+                "sling:resourceType": "sling/thumbnails/transformation",
                 "handlers": {
                     "jcr:primaryType": "nt:unstructured",
-                    "size": {
-                        "jcr:primaryType": "nt:unstructured",
-                        "height": "480",
-                        "width": "600",
-                        "sling:resourceType": "sling-cms/components/caconfig/transformationhandlers/size"
-                    },
                     "crop": {
                         "jcr:primaryType": "nt:unstructured",
                         "position": "CENTER",
-                        "sling:resourceType": "sling-cms/components/caconfig/transformationhandlers/crop"
+                        "height": "480",
+                        "width": "600",
+                        "sling:resourceType": "sling/thumbnails/transformers/crop"
                     }
                 }
             },
             "sling-cms-thumbnail128": {
                 "jcr:primaryType": "nt:unstructured",
                 "name": "sling-cms-thumbnail128",
-                "sling:resourceType": "sling-cms/components/caconfig/transformation",
+                "sling:resourceType": "sling/thumbnails/transformation",
                 "handlers": {
                     "jcr:primaryType": "nt:unstructured",
-                    "size": {
-                        "jcr:primaryType": "nt:unstructured",
-                        "height": "128",
-                        "width": "128",
-                        "sling:resourceType": "sling-cms/components/caconfig/transformationhandlers/size"
-                    },
                     "crop": {
                         "jcr:primaryType": "nt:unstructured",
                         "position": "CENTER",
-                        "sling:resourceType": "sling-cms/components/caconfig/transformationhandlers/crop"
+                        "height": "128",
+                        "width": "128",
+                        "sling:resourceType": "sling/thumbnails/transformers/crop"
                     }
                 }
             },
             "sling-cms-thumbnail32": {
                 "jcr:primaryType": "nt:unstructured",
                 "name": "sling-cms-thumbnail32",
-                "sling:resourceType": "sling-cms/components/caconfig/transformation",
+                "sling:resourceType": "sling/thumbnails/transformation",
                 "handlers": {
                     "jcr:primaryType": "nt:unstructured",
-                    "size": {
+                    "crop": {
                         "jcr:primaryType": "nt:unstructured",
                         "height": "32",
                         "width": "32",
-                        "sling:resourceType": "sling-cms/components/caconfig/transformationhandlers/size"
-                    },
-                    "crop": {
-                        "jcr:primaryType": "nt:unstructured",
                         "position": "CENTER",
-                        "sling:resourceType": "sling-cms/components/caconfig/transformationhandlers/crop"
+                        "sling:resourceType": "sling/thumbnails/transformers/crop"
                     }
                 }
             }
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformation/config.json b/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformation/config.json
deleted file mode 100644
index ef57689..0000000
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformation/config.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-	"jcr:primaryType": "sling:Component",
-    "jcr:title": "Sling CMS - Transformation Configuration"
-}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop.json b/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop.json
deleted file mode 100644
index 6b9670f..0000000
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-    "jcr:primaryType": "sling:Component",
-    "jcr:title": "Sling CMS - Transformation Crop Handler",
-    "componentType": "SlingCMS-TransformationHandler"
-}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/actions/basic/basic.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/actions/basic/basic.jsp
index 8714d29..7e1a6d8 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/actions/basic/basic.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/actions/basic/basic.jsp
@@ -17,7 +17,7 @@
  * under the License.
  */ --%>
 <%@include file="/libs/sling-cms/global.jsp"%>
-<a class="button" ${actionConfig.valueMap.new != false ? 'target="_blank"' : ''} href="${actionConfig.valueMap.prefix}${resource.path}" title="${sling:encode(actionConfig.valueMap.title,'HTML_ATTR')}">
+<a class="button" ${actionConfig.valueMap.new != false ? 'target="_blank"' : ''} href="${actionConfig.valueMap.prefix}${resource.path}${actionConfig.valueMap.suffix}" title="${sling:encode(actionConfig.valueMap.title,'HTML_ATTR')}">
     <span class="jam jam-${actionConfig.valueMap.icon}">
         <span class="is-sr-only">
             ${sling:encode(actionConfig.valueMap.title,'HTML')}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/actions/modal/modal.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/actions/modal/modal.jsp
index eb1511e..f44edfe 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/actions/modal/modal.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/actions/modal/modal.jsp
@@ -17,7 +17,7 @@
  * under the License.
  */ --%>
 <%@include file="/libs/sling-cms/global.jsp"%>
-<a class="button Fetch-Modal" data-title="${sling:encode(actionConfig.valueMap.title,'HTML_ATTR')}" data-path="${actionConfig.valueMap.ajaxPath != null ? actionConfig.valueMap.ajaxPath : '.Main-Content form'}" href="${actionConfig.valueMap.prefix}${resource.path}" title="${sling:encode(actionConfig.valueMap.title,'HTML_ATTR')}">
+<a class="button Fetch-Modal" data-title="${sling:encode(actionConfig.valueMap.title,'HTML_ATTR')}" data-path="${actionConfig.valueMap.ajaxPath != null ? actionConfig.valueMap.ajaxPath : '.Main-Content form'}" href="${actionConfig.valueMap.prefix}${resource.path}${actionConfig.valueMap.suffix}" title="${sling:encode(actionConfig.valueMap.title,'HTML_ATTR')}">
     <span class="jam jam-${actionConfig.valueMap.icon}">
         <span class="is-sr-only">
             ${sling:encode(actionConfig.valueMap.title,'HTML')}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/columns/actions/actions.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/columns/actions/actions.jsp
index 4790956..13601ac 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/columns/actions/actions.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/columns/actions/actions.jsp
@@ -17,7 +17,7 @@
  * under the License.
  */ --%>
 <%@include file="/libs/sling-cms/global.jsp"%>
-<td class="is-vhidden cell-actions">
+<td class="${colConfig.valueMap.show ? '' : 'is-vhidden'} cell-actions">
     <c:forEach var="ac" items="${sling:listChildren(colConfig)}">
         <c:set var="actionConfig" value="${ac}" scope="request" />
         <sling:include path="${resource.path}" resourceType="${actionConfig.resourceType}" />
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentactions/contentactions.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentactions/contentactions.jsp
index 2ae8f35..06fb6c6 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentactions/contentactions.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentactions/contentactions.jsp
@@ -22,7 +22,7 @@
         <div class="level-item">
             <div class="buttons has-addons">
                 <c:forEach var="action" items="${sling:listChildren(sling:getRelativeResource(resource,'actions'))}" varStatus="status">
-                    <a class="button Fetch-Modal" data-title="Add ${action.valueMap.label}" data-path=".Main-Content form" href="${action.valueMap.prefix}${sling:encode(slingRequest.requestPathInfo.suffix,'HTML_ATTR')}">
+                    <a class="button Fetch-Modal" data-title="Add ${action.valueMap.label}" data-path=".Main-Content form" href="${action.valueMap.prefix}${sling:encode(slingRequest.requestPathInfo.suffix,'HTML_ATTR')}${action.valueMap.suffix}">
                         + <fmt:message key="${action.valueMap.label}" />
                     </a>
                 </c:forEach>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/base/base.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/base/base.jsp
index e2b2031..a9f3246 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/base/base.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/base/base.jsp
@@ -48,7 +48,12 @@
         <c:set var="value" value="${editProperties[properties.name]}" scope="request" />
     </c:otherwise>
 </c:choose>
-<div class="field">
+<c:forEach var="event" items="${sling:getRelativeResource(resource,'./events').valueMap}">
+    <c:if test="${!fn:contains(event.key,':')}">
+        <c:set var="events" value="${events},${event.key}" />
+    </c:if>
+</c:forEach>
+<div class="field" data-events="${events}" data-path="${resource.path}">
     <c:if test="${not empty properties.label}">
         <label class="label" for="${properties.name}">
             <fmt:message key="${properties.label}" var="label" />
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/path/path.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/path/path.jsp
index 092d508..4f18695 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/path/path.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/path/path.jsp
@@ -55,9 +55,14 @@
         <c:if test="${properties.required}"><span class="has-text-danger">*</span></c:if>
     </label>
 </c:if>
+<c:forEach var="event" items="${sling:getRelativeResource(resource,'./events').valueMap}">
+    <c:if test="${!fn:contains(event.key,':')}">
+        <c:set var="events" value="${events},${event.key}" />
+    </c:if>
+</c:forEach>
 <c:choose>
     <c:when test="${properties.hidesearch != true}">
-        <div class="field has-addons">
+        <div class="field has-addons" data-events="${events}" data-path="${resource.path}">
           <div class="control is-expanded">
               <input class="input pathfield" type="text" id="${sling:encode(properties.name,'HTML_ATTR')}" name="${sling:encode(properties.name,'HTML_ATTR')}" value="${sling:encode(value,'HTML_ATTR')}" ${required} ${disabled} data-type="${sling:encode(properties.type,'HTML_ATTR')}" data-base="${sling:encode(properties.basePath,'HTML_ATTR')}" autocomplete="off" />
           </div>
@@ -72,7 +77,7 @@
          </div>
     </c:when>
     <c:otherwise>
-        <div class="field">
+        <div class="field" data-events="${events}" data-path="${resource.path}">
             <div class="control">
                 <input class="input pathfield" type="text" name="${sling:encode(properties.name,'HTML_ATTR')}" value="${sling:encode(value,'HTML_ATTR')}" ${required} ${disabled} data-type="${sling:encode(properties.type,'HTML_ATTR')}" data-base="${sling:encode(properties.basePath,'HTML_ATTR')}" autocomplete="off" />
             </div>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop/crop.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/resourceparam/resourceparam.jsp
similarity index 81%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop/crop.jsp
copy to ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/resourceparam/resourceparam.jsp
index a8cc28b..340f680 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop/crop.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/resourceparam/resourceparam.jsp
@@ -16,8 +16,5 @@
  * specific language governing permissions and limitations
  * under the License.
  */ --%>
- <%@include file="/libs/sling-cms/global.jsp"%>
-<dl>
-    <dt><fmt:message key="Position" /></dt>
-    <dd>${properties.position}</dd>
-</dl>
\ No newline at end of file
+<%@include file="/libs/sling-cms/global.jsp"%>
+<input type="hidden" name="${properties.name}" value="${sling:getResource(resourceResolver, param[properties.param]).path}" />
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size/size.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/scripts/transformations.jsp
similarity index 62%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size/size.jsp
copy to ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/scripts/transformations.jsp
index a25f5ec..7f9524e 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size/size.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/scripts/transformations.jsp
@@ -17,9 +17,10 @@
  * under the License.
  */ --%>
  <%@include file="/libs/sling-cms/global.jsp"%>
-<dl>
-    <dt><fmt:message key="Width" /></dt>
-    <dd>${properties.width}</dd>
-    <dt><fmt:message key="Height" /></dt>
-    <dd>${properties.height}</dd>
-</dl>
\ No newline at end of file
+<sling:adaptTo adaptable="${slingRequest.requestPathInfo.suffixResource}" adaptTo="org.apache.sling.thumbnails.RenderedResource" var="rendered" />
+<option value="">None</option>
+<c:forEach var="transformation" items="${rendered.availableTransformations}">
+    <option ${slingRequest.requestPathInfo.suffixResource.valueMap.transformation == transformation.name ? 'selected' : ''} value="${sling:encode(transformation.path,'HTML_ATTR')}">
+        ${sling:encode(transformation.name,'HTML')}
+    </option>
+</c:forEach>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/slingform/slingform.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/slingform/slingform.jsp
index fa920a7..4d9c97e 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/slingform/slingform.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/slingform/slingform.jsp
@@ -17,9 +17,13 @@
  * under the License.
  */ --%>
 <%@include file="/libs/sling-cms/global.jsp"%>
+<c:set var="encoding" value="multipart/form-data" />
+<c:if test="${not empty properties.encoding}">
+    <c:set var="encoding" value="${properties.encoding}" />
+</c:if>
 <form method="post"
     action="${sling:encode(slingRequest.requestPathInfo.suffix,'HTML_ATTR')}${sling:encode(properties.actionSuffix,'HTML_ATTR')}"
-    enctype="multipart/form-data" class="Form-Ajax"
+    enctype="${encoding}" class="Form-Ajax"
     data-add-date="${properties.addDate != false}"
     data-callback="${properties.callback}">
     <div class="form-wrapper pt-4 field">
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/file/addrendition.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/file/addrendition.json
new file mode 100644
index 0000000..b643215
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/file/addrendition.json
@@ -0,0 +1,62 @@
+{
+  "jcr:primaryType": "sling:Page",
+  "jcr:content": {
+    "sling:resourceType": "sling-cms/components/pages/modal",
+    "jcr:title": "Render File",
+    "jcr:primaryType": "nt:unstructured",
+    "container": {
+      "jcr:primaryType": "nt:unstructured",
+      "sling:resourceType": "sling-cms/components/general/container",
+      "slingform": {
+        "jcr:primaryType": "nt:unstructured",
+        "sling:resourceType": "sling-cms/components/editor/slingform",
+        "button": "Create",
+        "encoding": "application/x-www-form-urlencoded",
+        "successPrepend": "/cms/site/content.html",
+        "fields": {
+          "jcr:primaryType": "nt:unstructured",
+          "sling:resourceType": "sling-cms/components/general/container",
+          "resource": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "sling-cms/components/editor/fields/resourceparam",
+            "name": "resource",
+            "param": "resource"
+          },
+          "renditionName": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "sling-cms/components/editor/fields/text",
+            "label": "Rendition Name",
+            "name": "renditionName"
+          },
+          "transformation": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "sling-cms/components/editor/fields/select",
+            "label": "Transformation",
+            "name": "transformationResource",
+            "required": true,
+            "optionsScript": "/libs/sling-cms/components/editor/scripts/transformations.jsp"
+          },
+          "format": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "sling-cms/components/editor/fields/select",
+            "label": "Transformation Format",
+            "name": "format",
+            "required": true,
+            "options": {
+              "png": {
+                "jcr:primaryType": "nt:unstructured",
+                "label": "PNG",
+                "value": "png"
+              },
+              "jpg": {
+                "jcr:primaryType": "nt:unstructured",
+                "label": "Jpeg",
+                "value": "jpeg"
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/file/renditions.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/file/renditions.json
new file mode 100644
index 0000000..65413d7
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/file/renditions.json
@@ -0,0 +1,74 @@
+{
+    "jcr:primaryType": "sling:Page",
+    "jcr:content": {
+        "sling:resourceType": "sling-cms/components/pages/modal",
+        "jcr:title": "Renditions",
+        "jcr:primaryType": "nt:unstructured",
+        "container": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "sling-cms/components/general/container",
+            "contentactions": {
+                "jcr:primaryType": "nt:unstructured",
+                "sling:resourceType": "sling-cms/components/cms/contentactions",
+                "includeSwitcher": false,
+                "actions": {
+                    "page": {
+                        "jcr:primaryType": "nt:unstructured",
+                        "label": "Rendition",
+                        "prefix": "/cms/file/addrendition.html/bin/sling/thumbnails/transform?resource=",
+                        "suffix":"/../../"
+                    }
+                }
+            },
+            "contenttable": {
+                "jcr:primaryType": "nt:unstructured",
+                "sling:resourceType": "sling-cms/components/cms/contenttable",
+                "columns": {
+                    "jcr:primaryType": "nt:unstructured",
+                    "name": {
+                        "jcr:primaryType": "nt:unstructured",
+                        "title": "Name"
+                    },
+                    "rendition-actions": {
+                        "jcr:primaryType": "nt:unstructured",
+                        "title": "Actions"
+                    }
+                },
+                "types": {
+                    "jcr:primaryType": "nt:unstructured",
+                    "nt:file": {
+                        "jcr:primaryType": "nt:unstructured",
+                        "columns": {
+                            "jcr:primaryType": "nt:unstructured",
+                            "name": {
+                                "jcr:primaryType": "nt:unstructured",
+                                "sling:resourceType": "sling-cms/components/cms/columns/name",
+                                "link": true
+                            },
+                            "rendition-actions": {
+                                "jcr:primaryType": "nt:unstructured",
+                                "sling:resourceType": "sling-cms/components/cms/columns/actions",
+                                "show": true,
+                                "download": {
+                                    "jcr:primaryType": "nt:unstructured",
+                                    "sling:resourceType": "sling-cms/components/cms/actions/basic",
+                                    "title": "Download Rendition",
+                                    "icon": "download",
+                                    "new": true,
+                                    "prefix": "/cms/file/download.html"
+                                },
+                                "delete": {
+                                    "jcr:primaryType": "nt:unstructured",
+                                    "sling:resourceType": "sling-cms/components/cms/actions/modal",
+                                    "title": "Delete Rendition",
+                                    "icon": "trash",
+                                    "prefix": "/cms/shared/delete.html"
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/site/content.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/site/content.json
index 2c860ba..1c176ae 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/site/content.json
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/site/content.json
@@ -270,6 +270,14 @@
                                     "icon": "download",
                                     "prefix": "/cms/file/download.html"
                                 },
+                                "renditions": {
+                                    "jcr:primaryType": "nt:unstructured",
+                                    "sling:resourceType": "sling-cms/components/cms/actions/modal",
+                                    "title": "Renditions",
+                                    "icon": "pictures",
+                                    "prefix": "/cms/file/renditions.table.html",
+                                    "suffix": "/jcr:content/renditions"
+                                },
                                 "references": {
                                     "jcr:primaryType": "nt:unstructured",
                                     "sling:resourceType": "sling-cms/components/cms/actions/modal",
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/transformations/create.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/transformations/create.json
index 6c15e49..95d7be0 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/transformations/create.json
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/transformations/create.json
@@ -46,7 +46,7 @@
                         "jcr:primaryType": "nt:unstructured",
                         "sling:resourceType": "sling-cms/components/editor/fields/hidden",
                         "name": "sling:resourceType",
-                        "value": "sling-cms/components/caconfig/transformation"
+                        "value": "sling/thumbnails/transformation"
                     }
                 }
             }
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/transformations/edit.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/transformations/edit.json
index 8051946..3bea016 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/transformations/edit.json
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/transformations/edit.json
@@ -23,7 +23,7 @@
             },
             "transformationeditor": {
                 "jcr:primaryType": "nt:unstructured",
-                "sling:resourceType": "sling-cms/components/caconfig/transformation"
+                "sling:resourceType": "sling/thumbnails/transformation"
             }
         }
     }
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/i18n.json b/ui/src/main/resources/jcr_root/libs/sling-cms/i18n.json
index 78ddcd0..e69de29 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/i18n.json
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/i18n.json
@@ -1,2994 +0,0 @@
-{
-  "jcr:primaryType": "sling:OrderedFolder",
-  "jcr:content": {
-    "jcr:title": "Sling CMS"
-  },
-  "zh": {
-    "jcr:primaryType": "sling:Folder",
-    "jcr:mixinTypes": [
-      "mix:language"
-    ],
-    "jcr:language": "zh",
-    "sling:resourceType": "sling-cms/components/cms/blank",
-    "entry-0": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "+条目",
-      "sling:key": "+ Entry"
-    },
-    "entry-1": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "-- 默认 --",
-      "sling:key": "-- Default --"
-    },
-    "entry-2": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "作用",
-      "sling:key": "Action"
-    },
-    "entry-3": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "作用组配置",
-      "sling:key": "Action Config Groups"
-    },
-    "entry-4": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "作用",
-      "sling:key": "Actions"
-    },
-    "entry-5": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "作用错误信息",
-      "sling:key": "Actions Error Message"
-    },
-    "entry-6": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "添加",
-      "sling:key": "Add"
-    },
-    "entry-7": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "添加类",
-      "sling:key": "Add Classes"
-    },
-    "entry-8": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "添加组件",
-      "sling:key": "Add Components"
-    },
-    "entry-9": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "添加站点组",
-      "sling:key": "Add Site Group"
-    },
-    "entry-10": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "添加模板",
-      "sling:key": "Add Template"
-    },
-    "entry-11": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "添加转换",
-      "sling:key": "Add Transformation"
-    },
-    "entry-12": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "附加属性",
-      "sling:key": "Additional Attributes"
-    },
-    "entry-13": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "附加属性",
-      "sling:key": "Additional Properties"
-    },
-    "entry-14": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "高级",
-      "sling:key": "Advanced"
-    },
-    "entry-15": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "代理目标",
-      "sling:key": "Agent Target"
-    },
-    "entry-16": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "代理",
-      "sling:key": "Agents"
-    },
-    "entry-17": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "报警类别",
-      "sling:key": "Alert Class"
-    },
-    "entry-18": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "算法",
-      "sling:key": "Algorithm"
-    },
-    "entry-19": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "别名",
-      "sling:key": "Alias"
-    },
-    "entry-20": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "允许全屏",
-      "sling:key": "Allow Fullscreen"
-    },
-    "entry-21": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "允许的参数",
-      "sling:key": "Allowed Parameters"
-    },
-    "entry-22": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "允许的路径",
-      "sling:key": "Allowed Paths"
-    },
-    "entry-23": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "允许的属性",
-      "sling:key": "Allowed Properties"
-    },
-    "entry-24": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "允许的根目录",
-      "sling:key": "Allowed Roots"
-    },
-    "entry-25": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "已优化",
-      "sling:key": "Already Optimized"
-    },
-    "entry-26": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "备选文本",
-      "sling:key": "Alt Text"
-    },
-    "entry-27": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "备选案文。",
-      "sling:key": "Alternative text..."
-    },
-    "entry-28": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "渲染响应时出现异常。",
-      "sling:key": "An unexpected exception occurred rendering the response."
-    },
-    "entry-29": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "Apache Sling",
-      "sling:key": "Apache Sling"
-    },
-    "entry-30": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "Apache软件基金会",
-      "sling:key": "Apache Software Foundation"
-    },
-    "entry-31": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "异步发送",
-      "sling:key": "Async Delivery"
-    },
-    "entry-32": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "自动检出",
-      "sling:key": "Auto Checkout"
-    },
-    "entry-33": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "可用的组件",
-      "sling:key": "Available Component Types"
-    },
-    "entry-34": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "基础页面",
-      "sling:key": "Base Page"
-    },
-    "entry-35": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "基础路径",
-      "sling:key": "Base Path"
-    },
-    "entry-36": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "在{0}前",
-      "sling:key": "Before {0}"
-    },
-    "entry-37": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "博客文章",
-      "sling:key": "Blog Post"
-    },
-    "entry-38": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "Bootstrap CSS策略",
-      "sling:key": "Bootstrap CSS Policy"
-    },
-    "entry-39": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "底部中间",
-      "sling:key": "Bottom Center"
-    },
-    "entry-40": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "左下角",
-      "sling:key": "Bottom Left"
-    },
-    "entry-41": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "右下角",
-      "sling:key": "Bottom Right"
-    },
-    "entry-42": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "浏览/拖动文件",
-      "sling:key": "Browse / Drag File(s)"
-    },
-    "entry-43": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "数据文件夹",
-      "sling:key": "Bucket"
-    },
-    "entry-44": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "批量发布",
-      "sling:key": "Bulk Publication"
-    },
-    "entry-45": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "批量替换",
-      "sling:key": "Bulk Replace"
-    },
-    "entry-46": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "按钮类",
-      "sling:key": "Button Class"
-    },
-    "entry-47": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "CMS--基础页面",
-      "sling:key": "CMS - Base Page"
-    },
-    "entry-48": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "CMS--编辑页面",
-      "sling:key": "CMS - Editor Page"
-    },
-    "entry-49": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "CMS - 错误页面",
-      "sling:key": "CMS - Error Page"
-    },
-    "entry-50": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "CMS - 片段页面",
-      "sling:key": "CMS - Fragment Page"
-    },
-    "entry-51": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "CMS - 模态页面",
-      "sling:key": "CMS - Modal Page"
-    },
-    "entry-52": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "CMS参引",
-      "sling:key": "CMS Reference"
-    },
-    "entry-53": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "内容分发",
-      "sling:key": "CONTENT_DISTRIBUTION"
-    },
-    "entry-54": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "CTA类",
-      "sling:key": "CTA Class"
-    },
-    "entry-55": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "CTA类",
-      "sling:key": "CTA Classes"
-    },
-    "entry-56": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "CTA超链接",
-      "sling:key": "CTA Link"
-    },
-    "entry-57": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "响应动作",
-      "sling:key": "Call to Action"
-    },
-    "entry-58": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "取消",
-      "sling:key": "Cancel"
-    },
-    "entry-59": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "规范",
-      "sling:key": "Canonical"
-    },
-    "entry-60": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "居中",
-      "sling:key": "Center"
-    },
-    "entry-61": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "中间偏左",
-      "sling:key": "Center Left"
-    },
-    "entry-62": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "中间偏右",
-      "sling:key": "Center Right"
-    },
-    "entry-63": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "修改密码",
-      "sling:key": "Change Password"
-    },
-    "entry-64": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "检查字段类",
-      "sling:key": "Check Field Class"
-    },
-    "entry-65": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "检查输入类",
-      "sling:key": "Check Input Class"
-    },
-    "entry-66": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "检查标签类",
-      "sling:key": "Check Label Class"
-    },
-    "entry-67": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "检入",
-      "sling:key": "Checkin"
-    },
-    "entry-68": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "关闭",
-      "sling:key": "Close"
-    },
-    "entry-69": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "代码",
-      "sling:key": "Code"
-    },
-    "entry-70": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "代码块",
-      "sling:key": "Code Block"
-    },
-    "entry-71": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "颜色",
-      "sling:key": "Color"
-    },
-    "entry-72": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "列控制",
-      "sling:key": "Column Control"
-    },
-    "entry-73": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "列",
-      "sling:key": "Columns"
-    },
-    "entry-74": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "评论",
-      "sling:key": "Comment"
-    },
-    "entry-75": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "社区",
-      "sling:key": "Community"
-    },
-    "entry-76": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "组件",
-      "sling:key": "Component"
-    },
-    "entry-77": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "组件配置",
-      "sling:key": "Component Configurations"
-    },
-    "entry-78": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "组件策略",
-      "sling:key": "Component Policies"
-    },
-    "entry-79": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "配置",
-      "sling:key": "Config"
-    },
-    "entry-80": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "配置文件夹",
-      "sling:key": "Config Context"
-    },
-    "entry-81": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "站点属性",
-      "sling:key": "Configuration"
-    },
-    "entry-82": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "配置字段",
-      "sling:key": "Configuration Fields"
-    },
-    "entry-83": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "配置类型",
-      "sling:key": "Configuration Type"
-    },
-    "entry-84": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "配置",
-      "sling:key": "Configurations"
-    },
-    "entry-85": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "配置站点",
-      "sling:key": "Configure Site"
-    },
-    "entry-86": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "连接超时",
-      "sling:key": "Connection Timeout"
-    },
-    "entry-87": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "表格连接",
-      "sling:key": "Contact Form"
-    },
-    "entry-88": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "容器",
-      "sling:key": "Container"
-    },
-    "entry-89": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "容器类",
-      "sling:key": "Container Class"
-    },
-    "entry-90": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "内容",
-      "sling:key": "Content"
-    },
-    "entry-91": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "未发布内容",
-      "sling:key": "Content Not Published"
-    },
-    "entry-92": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "安装包管理",
-      "sling:key": "Content Packages"
-    },
-    "entry-93": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "已发布内容",
-      "sling:key": "Content Published"
-    },
-    "entry-94": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "内容类型",
-      "sling:key": "Content Type"
-    },
-    "entry-95": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "复制",
-      "sling:key": "Copy"
-    },
-    "entry-96": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "核心模式元模式",
-      "sling:key": "Core schema meta-schema"
-    },
-    "entry-97": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "计数",
-      "sling:key": "Count"
-    },
-    "entry-98": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "新建用户权限文件夹",
-      "sling:key": "Create Authorizable Folder"
-    },
-    "entry-99": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "新建配置",
-      "sling:key": "Create Config"
-    },
-    "entry-100": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "新建文件夹",
-      "sling:key": "Create Folder"
-    },
-    "entry-101": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "新建组",
-      "sling:key": "Create Group"
-    },
-    "entry-102": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "新建语言",
-      "sling:key": "Create Language"
-    },
-    "entry-103": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "新建映射",
-      "sling:key": "Create Mapping"
-    },
-    "entry-104": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "新建页面",
-      "sling:key": "Create Page"
-    },
-    "entry-105": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "新建站点",
-      "sling:key": "Create Site"
-    },
-    "entry-106": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "新建标签",
-      "sling:key": "Create Taxonomy"
-    },
-    "entry-107": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "新建用户",
-      "sling:key": "Create User"
-    },
-    "entry-108": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "新建用户生成内容",
-      "sling:key": "Create User Generated Content"
-    },
-    "entry-109": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "新建快照",
-      "sling:key": "Create Version"
-    },
-    "entry-110": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "新建i18n条目",
-      "sling:key": "Create i18n Entry"
-    },
-    "entry-111": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "创建时间",
-      "sling:key": "Created"
-    },
-    "entry-112": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "当前位置",
-      "sling:key": "Current Position"
-    },
-    "entry-113": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "日期",
-      "sling:key": "Date"
-    },
-    "entry-114": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "日期/时间",
-      "sling:key": "Date/Time"
-    },
-    "entry-115": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "本地时间",
-      "sling:key": "Datetime Local"
-    },
-    "entry-116": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "默认",
-      "sling:key": "Default"
-    },
-    "entry-117": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "默认文件编辑器",
-      "sling:key": "Default File Editor"
-    },
-    "entry-118": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "默认布局",
-      "sling:key": "Default Layout"
-    },
-    "entry-119": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "默认策略",
-      "sling:key": "Default Policy"
-    },
-    "entry-120": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "默认站点配置",
-      "sling:key": "Default Site Configuration"
-    },
-    "entry-121": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "删除",
-      "sling:key": "Delete"
-    },
-    "entry-122": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "删除内容",
-      "sling:key": "Delete Content"
-    },
-    "entry-123": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "删除文件",
-      "sling:key": "Delete File"
-    },
-    "entry-124": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "删除文件夹",
-      "sling:key": "Delete Folder"
-    },
-    "entry-125": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "删除分组",
-      "sling:key": "Delete Group"
-    },
-    "entry-126": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "删除映射",
-      "sling:key": "Delete Mapping"
-    },
-    "entry-127": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "删除页面",
-      "sling:key": "Delete Page"
-    },
-    "entry-128": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "删除站点配置",
-      "sling:key": "Delete Site Config"
-    },
-    "entry-129": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "删除站点组",
-      "sling:key": "Delete Site Group"
-    },
-    "entry-130": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "删除标签",
-      "sling:key": "Delete Taxonomy Item"
-    },
-    "entry-131": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "删除模板",
-      "sling:key": "Delete Template"
-    },
-    "entry-132": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "删除转换",
-      "sling:key": "Delete Transformation"
-    },
-    "entry-133": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "删除用户",
-      "sling:key": "Delete User"
-    },
-    "entry-134": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "删除用户生成内容",
-      "sling:key": "Delete User Generated Content"
-    },
-    "entry-135": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "删除i18n条目",
-      "sling:key": "Delete i18n Dictionary"
-    },
-    "entry-136": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "删除该页面",
-      "sling:key": "Delete the specified page"
-    },
-    "entry-137": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "删除该站点",
-      "sling:key": "Delete the specified site"
-    },
-    "entry-138": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "SEO描述",
-      "sling:key": "Description"
-    },
-    "entry-139": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "问题:",
-      "sling:key": "Destination:"
-    },
-    "entry-140": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "已禁用",
-      "sling:key": "Disabled"
-    },
-    "entry-141": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "禁用原因",
-      "sling:key": "Disabled Reason"
-    },
-    "entry-142": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "显示",
-      "sling:key": "Display"
-    },
-    "entry-143": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "无法填入相应内容!",
-      "sling:key": "Do not fill this out!"
-    },
-    "entry-144": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "我想删除:",
-      "sling:key": "Do you want to delete:"
-    },
-    "entry-145": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "我想发表:",
-      "sling:key": "Do you want to publish:"
-    },
-    "entry-146": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "你们想重新安排:",
-      "sling:key": "Do you want to reorder:"
-    },
-    "entry-147": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "你们想发表:",
-      "sling:key": "Do you want to unpublish:"
-    },
-    "entry-148": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "文件类型",
-      "sling:key": "DocType"
-    },
-    "entry-149": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "下载文件",
-      "sling:key": "Download file"
-    },
-    "entry-150": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "删除无效队列",
-      "sling:key": "Drop invalid queue items"
-    },
-    "entry-151": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "编辑",
-      "sling:key": "Edit"
-    },
-    "entry-152": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "编辑配置",
-      "sling:key": "Edit Configuration"
-    },
-    "entry-153": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "编辑配置属性",
-      "sling:key": "Edit Configuration Properties"
-    },
-    "entry-154": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "编辑字典属性",
-      "sling:key": "Edit Dictionary Properties"
-    },
-    "entry-155": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "编辑文件",
-      "sling:key": "Edit File"
-    },
-    "entry-156": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "编辑文件属性",
-      "sling:key": "Edit File Properties"
-    },
-    "entry-157": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "编辑文件夹",
-      "sling:key": "Edit Folder"
-    },
-    "entry-158": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "编辑文件夹属性",
-      "sling:key": "Edit Folder Properties"
-    },
-    "entry-159": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "修改语言",
-      "sling:key": "Edit Language"
-    },
-    "entry-160": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "编辑映射",
-      "sling:key": "Edit Mapping"
-    },
-    "entry-161": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "编辑页面",
-      "sling:key": "Edit Page"
-    },
-    "entry-162": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "编辑页面属性",
-      "sling:key": "Edit Page Properties"
-    },
-    "entry-163": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "编辑属性",
-      "sling:key": "Edit Properties"
-    },
-    "entry-164": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "编辑站点",
-      "sling:key": "Edit Site"
-    },
-    "entry-165": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "编辑站点组",
-      "sling:key": "Edit Site Group"
-    },
-    "entry-166": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "编辑站点组属性",
-      "sling:key": "Edit Site Group Properties"
-    },
-    "entry-167": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "编辑站点属性",
-      "sling:key": "Edit Site Properties"
-    },
-    "entry-168": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "编辑标签",
-      "sling:key": "Edit Taxonomy Item"
-    },
-    "entry-169": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "编辑模板",
-      "sling:key": "Edit Template"
-    },
-    "entry-170": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "编辑转换",
-      "sling:key": "Edit Transformation"
-    },
-    "entry-171": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "电子邮件",
-      "sling:key": "Email"
-    },
-    "entry-172": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "已启用",
-      "sling:key": "Enabled"
-    },
-    "entry-173": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "端点URL",
-      "sling:key": "Endpoint URL"
-    },
-    "entry-174": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "端点",
-      "sling:key": "Endpoints"
-    },
-    "entry-175": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "错误信息",
-      "sling:key": "Error Message"
-    },
-    "entry-176": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "错误页面",
-      "sling:key": "Error Page"
-    },
-    "entry-177": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "完整匹配",
-      "sling:key": "Exact Match"
-    },
-    "entry-178": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "异常情况",
-      "sling:key": "Exception"
-    },
-    "entry-179": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "现有的 Path:",
-      "sling:key": "Existing Path:"
-    },
-    "entry-180": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "输出器",
-      "sling:key": "Exporters"
-    },
-    "entry-181": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "提取文件元数据",
-      "sling:key": "Extract File Metadata"
-    },
-    "entry-182": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "字段类",
-      "sling:key": "Field Class"
-    },
-    "entry-183": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "字段组配置",
-      "sling:key": "Field Config Groups"
-    },
-    "entry-184": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "字段组类",
-      "sling:key": "Field Group Class"
-    },
-    "entry-185": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "字段必填类",
-      "sling:key": "Field Required Class"
-    },
-    "entry-186": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "字段",
-      "sling:key": "Fields"
-    },
-    "entry-187": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "字段错误信息",
-      "sling:key": "Fields Error Message"
-    },
-    "entry-188": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "字段集",
-      "sling:key": "Fieldset"
-    },
-    "entry-189": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "文件",
-      "sling:key": "File"
-    },
-    "entry-190": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "文件无法被优化",
-      "sling:key": "File Cannot be Optimized"
-    },
-    "entry-191": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "文件配置",
-      "sling:key": "File Configurations"
-    },
-    "entry-192": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "文件编辑器",
-      "sling:key": "File Editors"
-    },
-    "entry-193": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "文件元数据",
-      "sling:key": "File Metadata"
-    },
-    "entry-194": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "查找",
-      "sling:key": "Find"
-    },
-    "entry-195": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "查找内容",
-      "sling:key": "Find Content"
-    },
-    "entry-196": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "完成",
-      "sling:key": "Finished"
-    },
-    "entry-197": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "最前",
-      "sling:key": "First"
-    },
-    "entry-198": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "浮点数值(双精度)",
-      "sling:key": "Floating Point (Double)"
-    },
-    "entry-199": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "文件夹",
-      "sling:key": "Folder"
-    },
-    "entry-200": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "禁止访问",
-      "sling:key": "Forbidden"
-    },
-    "entry-201": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "表格",
-      "sling:key": "Form"
-    },
-    "entry-202": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "表格类",
-      "sling:key": "Form Class"
-    },
-    "entry-203": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "表格ID",
-      "sling:key": "Form ID"
-    },
-    "entry-204": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "格式",
-      "sling:key": "Format"
-    },
-    "entry-205": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "论坛帖子",
-      "sling:key": "Forum Post"
-    },
-    "entry-206": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "转发",
-      "sling:key": "Forward"
-    },
-    "entry-207": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "片段",
-      "sling:key": "Fragment"
-    },
-    "entry-208": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "页面分栏源文件",
-      "sling:key": "Frame Source"
-    },
-    "entry-209": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "来源",
-      "sling:key": "From"
-    },
-    "entry-210": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "全局",
-      "sling:key": "Global"
-    },
-    "entry-211": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "平铺",
-      "sling:key": "Grid"
-    },
-    "entry-212": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "组",
-      "sling:key": "Group"
-    },
-    "entry-213": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "组成员",
-      "sling:key": "Group Members"
-    },
-    "entry-214": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "隶属组",
-      "sling:key": "Group Membership"
-    },
-    "entry-215": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "标题1",
-      "sling:key": "Header 1"
-    },
-    "entry-216": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "标题2",
-      "sling:key": "Header 2"
-    },
-    "entry-217": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "标题3",
-      "sling:key": "Header 3"
-    },
-    "entry-218": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "标题4",
-      "sling:key": "Header 4"
-    },
-    "entry-219": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "标题5",
-      "sling:key": "Header 5"
-    },
-    "entry-220": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "高度",
-      "sling:key": "Height"
-    },
-    "entry-221": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "帮助",
-      "sling:key": "Help"
-    },
-    "entry-222": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "隐藏",
-      "sling:key": "Hidden"
-    },
-    "entry-223": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "在站点地图里隐藏",
-      "sling:key": "Hide in Sitemap"
-    },
-    "entry-224": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "首页",
-      "sling:key": "Home"
-    },
-    "entry-225": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "主页标签",
-      "sling:key": "Home Label"
-    },
-    "entry-226": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "蜜罐",
-      "sling:key": "Honeypot"
-    },
-    "entry-227": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "蜜罐名称",
-      "sling:key": "Honeypot Name"
-    },
-    "entry-228": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "内嵌框架",
-      "sling:key": "IFrame"
-    },
-    "entry-229": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "内嵌框架类",
-      "sling:key": "IFrame Class"
-    },
-    "entry-230": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "图片",
-      "sling:key": "Image"
-    },
-    "entry-231": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "图片类",
-      "sling:key": "Image Class"
-    },
-    "entry-232": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "图像类",
-      "sling:key": "Image Classes"
-    },
-    "entry-233": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "图片源地址",
-      "sling:key": "Image Source"
-    },
-    "entry-234": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "导入器",
-      "sling:key": "Importers"
-    },
-    "entry-235": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "包含分页",
-      "sling:key": "Include Pagination"
-    },
-    "entry-236": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "信息",
-      "sling:key": "Info"
-    },
-    "entry-237": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "输入类",
-      "sling:key": "Input Class"
-    },
-    "entry-238": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "输入类型",
-      "sling:key": "Input Type"
-    },
-    "entry-239": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "自测",
-      "sling:key": "Insights"
-    },
-    "entry-240": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "整型",
-      "sling:key": "Integer"
-    },
-    "entry-241": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "中间路径",
-      "sling:key": "Intermediate Path"
-    },
-    "entry-242": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "内部重定向",
-      "sling:key": "Internal Redirect"
-    },
-    "entry-243": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "国际化管理",
-      "sling:key": "Internationalization (i18n)"
-    },
-    "entry-244": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "是否包含子路径",
-      "sling:key": "Is Deep"
-    },
-    "entry-245": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "条目类别",
-      "sling:key": "Item Class"
-    },
-    "entry-246": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "条目标签",
-      "sling:key": "Item Tag"
-    },
-    "entry-247": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "JAR",
-      "sling:key": "JAR"
-    },
-    "entry-248": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "JCR XML",
-      "sling:key": "JCR XML"
-    },
-    "entry-249": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "JSON",
-      "sling:key": "JSON"
-    },
-    "entry-250": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "任务",
-      "sling:key": "Job"
-    },
-    "entry-251": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "任务管理",
-      "sling:key": "Jobs"
-    },
-    "entry-252": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "任务名称",
-      "sling:key": "Job Name"
-    },
-    "entry-253": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "JPEG",
-      "sling:key": "Jpeg"
-    },
-    "entry-254": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "密钥",
-      "sling:key": "Key"
-    },
-    "entry-255": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "SEO关键词",
-      "sling:key": "Keywords"
-    },
-    "entry-256": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "标签",
-      "sling:key": "Label"
-    },
-    "entry-257": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "语言",
-      "sling:key": "Language"
-    },
-    "entry-258": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "最后",
-      "sling:key": "Last"
-    },
-    "entry-259": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "最近修改",
-      "sling:key": "Last Modified"
-    },
-    "entry-260": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "最近发布",
-      "sling:key": "Last Publication"
-    },
-    "entry-261": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "最近发布者",
-      "sling:key": "Last Publication By"
-    },
-    "entry-262": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "最近发布操作",
-      "sling:key": "Last Publication Type"
-    },
-    "entry-263": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "布局",
-      "sling:key": "Layout"
-    },
-    "entry-264": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "图例",
-      "sling:key": "Legend"
-    },
-    "entry-265": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "等级",
-      "sling:key": "Level"
-    },
-    "entry-266": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "许可证",
-      "sling:key": "Licensing"
-    },
-    "entry-267": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "限制",
-      "sling:key": "Limit"
-    },
-    "entry-268": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "链接",
-      "sling:key": "Link"
-    },
-    "entry-269": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "列表",
-      "sling:key": "List"
-    },
-    "entry-270": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "列表类",
-      "sling:key": "List Class"
-    },
-    "entry-271": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "任务列表",
-      "sling:key": "List Jobs"
-    },
-    "entry-272": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "标签列表",
-      "sling:key": "List Tag"
-    },
-    "entry-273": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "内容导入",
-      "sling:key": "Load Content"
-    },
-    "entry-274": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "内容导入的路径",
-      "sling:key": "Loading content under path"
-    },
-    "entry-275": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "使用 Sling Post Servlet 进行内容导入。",
-      "sling:key": "Loads content using the Sling Post Servlet Import."
-    },
-    "entry-276": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "区域",
-      "sling:key": "Locale"
-    },
-    "entry-277": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "日志级别",
-      "sling:key": "Log Level"
-    },
-    "entry-278": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "登录",
-      "sling:key": "Login"
-    },
-    "entry-279": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "是否登录?",
-      "sling:key": "Login?"
-    },
-    "entry-280": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "注销",
-      "sling:key": "Logout"
-    },
-    "entry-281": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "日志",
-      "sling:key": "Logs"
-    },
-    "entry-282": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "MIME类型",
-      "sling:key": "MIME Type"
-    },
-    "entry-283": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "MIME类型列表",
-      "sling:key": "MIME Types"
-    },
-    "entry-284": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "启用快照",
-      "sling:key": "Make Versionable"
-    },
-    "entry-285": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "管理",
-      "sling:key": "Manage"
-    },
-    "entry-286": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "管理快照",
-      "sling:key": "Manage Versions"
-    },
-    "entry-287": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "映射",
-      "sling:key": "Mapping"
-    },
-    "entry-288": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "站点映射",
-      "sling:key": "Mappings"
-    },
-    "entry-289": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "匹配表达式",
-      "sling:key": "Match"
-    },
-    "entry-290": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "最高级别",
-      "sling:key": "Max Grade Level"
-    },
-    "entry-291": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "最高级别",
-      "sling:key": "Maximum Grade Level"
-    },
-    "entry-292": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "成员",
-      "sling:key": "Members"
-    },
-    "entry-293": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "隶属于",
-      "sling:key": "Membership"
-    },
-    "entry-294": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "消息",
-      "sling:key": "Message"
-    },
-    "entry-295": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "最低级别",
-      "sling:key": "Min Grade Level"
-    },
-    "entry-296": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "最低级别",
-      "sling:key": "Minimum Grade Level"
-    },
-    "entry-297": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "模式",
-      "sling:key": "Mode"
-    },
-    "entry-298": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "月",
-      "sling:key": "Month"
-    },
-    "entry-299": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "移动",
-      "sling:key": "Move"
-    },
-    "entry-300": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "移动/复制配置",
-      "sling:key": "Move / Copy Config"
-    },
-    "entry-301": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "移动/复制文件",
-      "sling:key": "Move / Copy File"
-    },
-    "entry-302": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "移动/复制文件夹",
-      "sling:key": "Move / Copy Folder"
-    },
-    "entry-303": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "移动/复制组",
-      "sling:key": "Move / Copy Group"
-    },
-    "entry-304": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "移动/复制映射",
-      "sling:key": "Move / Copy Mapping"
-    },
-    "entry-305": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "移动/复制页面",
-      "sling:key": "Move / Copy Page"
-    },
-    "entry-306": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "移动/复制站点",
-      "sling:key": "Move / Copy Site"
-    },
-    "entry-307": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "移动/复制站点组",
-      "sling:key": "Move / Copy Site Group"
-    },
-    "entry-308": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "移动/复制标签",
-      "sling:key": "Move / Copy Taxonomy Item"
-    },
-    "entry-309": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "移动/复制模板",
-      "sling:key": "Move / Copy Template"
-    },
-    "entry-310": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "移动/复制转换",
-      "sling:key": "Move / Copy Transformation"
-    },
-    "entry-311": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "移动/复制用户",
-      "sling:key": "Move / Copy User"
-    },
-    "entry-312": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "移动/复制内容",
-      "sling:key": "Move/Copy Content"
-    },
-    "entry-313": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "多选",
-      "sling:key": "MultiSelect"
-    },
-    "entry-314": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "可多选",
-      "sling:key": "Multiple Select?"
-    },
-    "entry-315": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "名称",
-      "sling:key": "Name"
-    },
-    "entry-316": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "新密码",
-      "sling:key": "New Password"
-    },
-    "entry-317": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "新窗口",
-      "sling:key": "New Window"
-    },
-    "entry-318": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "否",
-      "sling:key": "No"
-    },
-    "entry-319": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "无搜索结果",
-      "sling:key": "No Results"
-    },
-    "entry-320": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "没有找到所选信息",
-      "sling:key": "No Selection Message"
-    },
-    "entry-321": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "编辑{0}配置的编辑器不存在!",
-      "sling:key": "No editor configured for {0}!"
-    },
-    "entry-322": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "存储库管理",
-      "sling:key": "Node Browser"
-    },
-    "entry-323": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "节点名称",
-      "sling:key": "Node Name"
-    },
-    "entry-324": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "资源不存在",
-      "sling:key": "Not Found"
-    },
-    "entry-325": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "未发布",
-      "sling:key": "Not Published"
-    },
-    "entry-326": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "数量",
-      "sling:key": "Number"
-    },
-    "entry-327": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "打开",
-      "sling:key": "Open"
-    },
-    "entry-328": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "在新窗口打开?",
-      "sling:key": "Open In New Window?"
-    },
-    "entry-329": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "操作",
-      "sling:key": "Operation"
-    },
-    "entry-330": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "优化文件",
-      "sling:key": "Optimize"
-    },
-    "entry-331": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "优化文件",
-      "sling:key": "Optimize File"
-    },
-    "entry-332": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "优化文件列表",
-      "sling:key": "Optimize Files"
-    },
-    "entry-333": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "优化空间大小",
-      "sling:key": "Optimized Size"
-    },
-    "entry-334": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "选项",
-      "sling:key": "Options"
-    },
-    "entry-335": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "顺序",
-      "sling:key": "Order"
-    },
-    "entry-336": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "原始尺寸",
-      "sling:key": "Original Size"
-    },
-    "entry-337": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "其他",
-      "sling:key": "Other"
-    },
-    "entry-338": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "覆盖类型",
-      "sling:key": "Override Type"
-    },
-    "entry-339": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "PNG",
-      "sling:key": "PNG"
-    },
-    "entry-340": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "包生成器目标",
-      "sling:key": "Package Builder Target"
-    },
-    "entry-341": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "页面",
-      "sling:key": "Page"
-    },
-    "entry-342": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "页面条目类",
-      "sling:key": "Page Item Class"
-    },
-    "entry-343": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "页面模板",
-      "sling:key": "Page Template"
-    },
-    "entry-344": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "页面链接类",
-      "sling:key": "PageLink Class"
-    },
-    "entry-345": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "分页器类",
-      "sling:key": "Pagination Class"
-    },
-    "entry-346": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "段落",
-      "sling:key": "Paragraph"
-    },
-    "entry-347": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "密码",
-      "sling:key": "Password"
-    },
-    "entry-348": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "密码标签",
-      "sling:key": "Password Label"
-    },
-    "entry-349": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "路径",
-      "sling:key": "Path"
-    },
-    "entry-350": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "路径深度",
-      "sling:key": "Path Depth"
-    },
-    "entry-351": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "路径模式",
-      "sling:key": "Path Pattern"
-    },
-    "entry-352": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "路径",
-      "sling:key": "Paths"
-    },
-    "entry-353": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "模式",
-      "sling:key": "Pattern"
-    },
-    "entry-354": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "占位符",
-      "sling:key": "Placeholder"
-    },
-    "entry-355": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "策略",
-      "sling:key": "Policy"
-    },
-    "entry-356": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "路径策略",
-      "sling:key": "Policy Path"
-    },
-    "entry-357": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "位置",
-      "sling:key": "Position"
-    },
-    "entry-358": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "上一快照",
-      "sling:key": "Predecessors"
-    },
-    "entry-359": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "预览",
-      "sling:key": "Preview"
-    },
-    "entry-360": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "主URL",
-      "sling:key": "Primary URL"
-    },
-    "entry-361": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "优先队列",
-      "sling:key": "Priority Queues"
-    },
-    "entry-362": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "配置",
-      "sling:key": "Profile"
-    },
-    "entry-363": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "配置属性",
-      "sling:key": "Profile Properties"
-    },
-    "entry-364": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "进展",
-      "sling:key": "Progress"
-    },
-    "entry-365": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "进度日志",
-      "sling:key": "Progress Log"
-    },
-    "entry-366": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "属性",
-      "sling:key": "Properties"
-    },
-    "entry-367": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "属性",
-      "sling:key": "Property"
-    },
-    "entry-368": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "提供者组配置",
-      "sling:key": "Provider Config Groups"
-    },
-    "entry-369": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "提供者",
-      "sling:key": "Providers"
-    },
-    "entry-370": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "内容分发",
-      "sling:key": "Publication"
-    },
-    "entry-371": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "分发代理",
-      "sling:key": "Publication Agent"
-    },
-    "entry-372": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "分发代理列表",
-      "sling:key": "Publication Agents"
-    },
-    "entry-373": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "分发输出器",
-      "sling:key": "Publication Exporter"
-    },
-    "entry-374": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "分发输出器列表",
-      "sling:key": "Publication Exporters"
-    },
-    "entry-375": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "分发导入器",
-      "sling:key": "Publication Importer"
-    },
-    "entry-376": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "分发导入器列表",
-      "sling:key": "Publication Importers"
-    },
-    "entry-377": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "分发模式",
-      "sling:key": "Publication Mode"
-    },
-    "entry-378": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "分发状态",
-      "sling:key": "Publication Status"
-    },
-    "entry-379": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "发布",
-      "sling:key": "Publish"
-    },
-    "entry-380": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "发布状态",
-      "sling:key": "Published"
-    },
-    "entry-381": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "发布日期",
-      "sling:key": "Published Date"
-    },
-    "entry-382": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "拉取条目",
-      "sling:key": "Pull Items"
-    },
-    "entry-383": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "查询",
-      "sling:key": "Query"
-    },
-    "entry-384": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "队列",
-      "sling:key": "Queue"
-    },
-    "entry-385": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "已启用队列处理",
-      "sling:key": "Queue Processing Enabled"
-    },
-    "entry-386": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "队列提供者",
-      "sling:key": "Queue Provider"
-    },
-    "entry-387": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "单选/复选框",
-      "sling:key": "Radio / Checkbox"
-    },
-    "entry-388": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "原因",
-      "sling:key": "Reason"
-    },
-    "entry-389": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "最近修改",
-      "sling:key": "Recent Content"
-    },
-    "entry-390": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "重定向",
-      "sling:key": "Redirect"
-    },
-    "entry-391": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "引用",
-      "sling:key": "Reference"
-    },
-    "entry-392": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "引用 - 基础页",
-      "sling:key": "Reference - Base Page"
-    },
-    "entry-393": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "引用 - 博客文章页",
-      "sling:key": "Reference - Blog Post Page"
-    },
-    "entry-394": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "引用源地址",
-      "sling:key": "Reference Source"
-    },
-    "entry-395": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "引用列表",
-      "sling:key": "References"
-    },
-    "entry-396": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "来源",
-      "sling:key": "Referrer"
-    },
-    "entry-397": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "正则表达式",
-      "sling:key": "Regular Expression"
-    },
-    "entry-398": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "重新加载容器",
-      "sling:key": "Reload Container"
-    },
-    "entry-399": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "移除",
-      "sling:key": "Remove"
-    },
-    "entry-400": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "移除任务",
-      "sling:key": "Remove Job"
-    },
-    "entry-401": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "排序",
-      "sling:key": "Reorder"
-    },
-    "entry-402": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "替换",
-      "sling:key": "Replace"
-    },
-    "entry-403": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "替换属性",
-      "sling:key": "Replace Properties"
-    },
-    "entry-404": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "替换路径",
-      "sling:key": "Replacement Path"
-    },
-    "entry-405": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "拆除道路下的财产:",
-      "sling:key": "Replacing properties under path:"
-    },
-    "entry-406": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "回复",
-      "sling:key": "Reply"
-    },
-    "entry-407": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "重新发布",
-      "sling:key": "Republish"
-    },
-    "entry-408": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "授权策略请求",
-      "sling:key": "Request Authorization Strategy Target"
-    },
-    "entry-409": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "请求参数",
-      "sling:key": "Request Parameters"
-    },
-    "entry-410": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "请求重置密码",
-      "sling:key": "Request Password Reset"
-    },
-    "entry-411": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "必填项",
-      "sling:key": "Required"
-    },
-    "entry-412": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "必填文本区",
-      "sling:key": "Required Textarea"
-    },
-    "entry-413": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "重置密码",
-      "sling:key": "Reset Password"
-    },
-    "entry-414": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "重置时间超时",
-      "sling:key": "Reset Timeout"
-    },
-    "entry-415": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "还原",
-      "sling:key": "Restore"
-    },
-    "entry-416": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "还原初始快照",
-      "sling:key": "Restore Original"
-    },
-    "entry-417": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "还原快照",
-      "sling:key": "Restore Version"
-    },
-    "entry-418": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "还原内容到{0}",
-      "sling:key": "Restore the content to {0}"
-    },
-    "entry-419": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "结果类",
-      "sling:key": "Result Class"
-    },
-    "entry-420": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "结果标题类",
-      "sling:key": "Result Header Class"
-    },
-    "entry-421": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "结果信息",
-      "sling:key": "Result Message"
-    },
-    "entry-422": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "审查用户生成内容",
-      "sling:key": "Review User Generated Content"
-    },
-    "entry-423": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "可重写配置",
-      "sling:key": "Rewrite Configuration"
-    },
-    "entry-424": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "重写器",
-      "sling:key": "Rewriter"
-    },
-    "entry-425": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "可重写属性",
-      "sling:key": "Rewritten Attributes"
-    },
-    "entry-426": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "富文本编辑器",
-      "sling:key": "Rich Text Editor"
-    },
-    "entry-427": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "行类",
-      "sling:key": "Row Class"
-    },
-    "entry-428": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "单独实例",
-      "sling:key": "STANDALONE"
-    },
-    "entry-429": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "同一窗口",
-      "sling:key": "Same Window"
-    },
-    "entry-430": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "保存",
-      "sling:key": "Save"
-    },
-    "entry-431": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "另存为",
-      "sling:key": "Save As"
-    },
-    "entry-432": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "保存文件",
-      "sling:key": "Save File"
-    },
-    "entry-433": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "保存I18n字典",
-      "sling:key": "Save i18n Dictionary"
-    },
-    "entry-434": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "保存中",
-      "sling:key": "Savings"
-    },
-    "entry-435": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "搜索",
-      "sling:key": "Search"
-    },
-    "entry-436": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "搜索类",
-      "sling:key": "Search Class"
-    },
-    "entry-437": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "搜索表格",
-      "sling:key": "Search Form"
-    },
-    "entry-438": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "选择",
-      "sling:key": "Select"
-    },
-    "entry-439": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "选择组件",
-      "sling:key": "Select Component"
-    },
-    "entry-440": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "选择任务",
-      "sling:key": "Select Job"
-    },
-    "entry-441": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "选择策略",
-      "sling:key": "Select Policy"
-    },
-    "entry-442": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "当选:",
-      "sling:key": "Select Position:"
-    },
-    "entry-443": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "选择",
-      "sling:key": "Selection"
-    },
-    "entry-444": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "发送主要的",
-      "sling:key": "Send Main"
-    },
-    "entry-445": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "设置配置属性",
-      "sling:key": "Set Profile Properties"
-    },
-    "entry-446": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "注册",
-      "sling:key": "Signup"
-    },
-    "entry-447": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "单选",
-      "sling:key": "Single Select"
-    },
-    "entry-448": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "站点",
-      "sling:key": "Site"
-    },
-    "entry-449": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "站点配置",
-      "sling:key": "Site Configurations"
-    },
-    "entry-450": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "站点内容",
-      "sling:key": "Site Content"
-    },
-    "entry-451": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "站点组",
-      "sling:key": "Site Group"
-    },
-    "entry-452": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "站点设置",
-      "sling:key": "Site Settings"
-    },
-    "entry-453": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "站点列表",
-      "sling:key": "Sites"
-    },
-    "entry-454": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "Sling CMS",
-      "sling:key": "Sling CMS"
-    },
-    "entry-455": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "Sling CMS - 组合框",
-      "sling:key": "Sling CMS - Combobox"
-    },
-    "entry-456": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "Sling CMS - 组件配置",
-      "sling:key": "Sling CMS - Component Configuration"
-    },
-    "entry-457": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "Sling CMS - 组件策略列表",
-      "sling:key": "Sling CMS - Component Policies"
-    },
-    "entry-458": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "Sling CMS - 组件策略",
-      "sling:key": "Sling CMS - Component Policy"
-    },
-    "entry-459": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "Sling CMS - 配置参数",
-      "sling:key": "Sling CMS - Config Parameter"
-    },
-    "entry-460": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "Sling CMS - 文件编辑器",
-      "sling:key": "Sling CMS - File Editor"
-    },
-    "entry-461": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "Sling CMS - 文件元数据",
-      "sling:key": "Sling CMS - File Metadata"
-    },
-    "entry-462": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "Sling CMS - 隐藏字段",
-      "sling:key": "Sling CMS - Hidden Field"
-    },
-    "entry-463": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "Sling CMS - 输入字段",
-      "sling:key": "Sling CMS - Input Field"
-    },
-    "entry-464": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "Sling CMS - 用户成员",
-      "sling:key": "Sling CMS - Members"
-    },
-    "entry-465": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "Sling CMS - 用户隶属配置",
-      "sling:key": "Sling CMS - Membership"
-    },
-    "entry-466": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "Sling CMS - 策略配置",
-      "sling:key": "Sling CMS - Policy Configuration"
-    },
-    "entry-467": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "Sling CMS - 发布字段",
-      "sling:key": "Sling CMS - Publication Field"
-    },
-    "entry-468": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "Sling CMS - 可读性配置",
-      "sling:key": "Sling CMS - Readability Configuration"
-    },
-    "entry-469": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "Sling CMS - 重写器",
-      "sling:key": "Sling CMS - Rewriter"
-    },
-    "entry-470": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "Sling CMS - 重写器配置",
-      "sling:key": "Sling CMS - Rewriter Configuration"
-    },
-    "entry-471": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "Sling CMS - 选择字段",
-      "sling:key": "Sling CMS - Select Field"
-    },
-    "entry-472": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "Sling CMS - 站点设置",
-      "sling:key": "Sling CMS - Site Settings"
-    },
-    "entry-473": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "Sling CMS - 标签字段",
-      "sling:key": "Sling CMS - Taxonomy Field"
-    },
-    "entry-474": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "Sling CMS - 模板配置",
-      "sling:key": "Sling CMS - Template Configuration"
-    },
-    "entry-475": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "Sling CMS - 模板配置列表",
-      "sling:key": "Sling CMS - Templates Configuration"
-    },
-    "entry-476": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "Sling CMS - 文本区字段",
-      "sling:key": "Sling CMS - Textarea Field"
-    },
-    "entry-477": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "Sling CMS - 转换配置",
-      "sling:key": "Sling CMS - Transformation Configuration"
-    },
-    "entry-478": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "Sling CMS - 批量转换处理程序",
-      "sling:key": "Sling CMS - Transformation Crop Handler"
-    },
-    "entry-479": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "Sling CMS - 大小转换处理程序",
-      "sling:key": "Sling CMS - Transformation Size Handler"
-    },
-    "entry-480": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "Sling CMS - 转换配置列表",
-      "sling:key": "Sling CMS - Transformations Configuration"
-    },
-    "entry-481": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "Sling CMS - 缩略图",
-      "sling:key": "Sling CMS Thumbnails"
-    },
-    "entry-482": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "启动",
-      "sling:key": "Start"
-    },
-    "entry-483": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "新增任务",
-      "sling:key": "Start Job"
-    },
-    "entry-484": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "开始",
-      "sling:key": "Started"
-    },
-    "entry-485": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "状态",
-      "sling:key": "State"
-    },
-    "entry-486": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "静态资源",
-      "sling:key": "Static Content"
-    },
-    "entry-487": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "当前状态",
-      "sling:key": "Status"
-    },
-    "entry-488": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "字符串",
-      "sling:key": "String"
-    },
-    "entry-489": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "样式选项",
-      "sling:key": "Style Option"
-    },
-    "entry-490": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "样式选项列表",
-      "sling:key": "Style Options"
-    },
-    "entry-491": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "样式封装器",
-      "sling:key": "Style Wrapper"
-    },
-    "entry-492": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "主题",
-      "sling:key": "Subject"
-    },
-    "entry-493": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "提交类",
-      "sling:key": "Submit Class"
-    },
-    "entry-494": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "提交标签",
-      "sling:key": "Submit Label"
-    },
-    "entry-495": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "提交文本",
-      "sling:key": "Submit Text"
-    },
-    "entry-496": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "子路径",
-      "sling:key": "Subpath"
-    },
-    "entry-497": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "替换字符串",
-      "sling:key": "Subsitution String"
-    },
-    "entry-498": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "操作成功动作",
-      "sling:key": "Success Action"
-    },
-    "entry-499": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "操作成功消息",
-      "sling:key": "Success Message"
-    },
-    "entry-500": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "操作成功页面",
-      "sling:key": "Success Page"
-    },
-    "entry-501": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "下一快照",
-      "sling:key": "Successors"
-    },
-    "entry-502": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "标题后缀",
-      "sling:key": "Suffix Header"
-    },
-    "entry-503": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "后缀资源",
-      "sling:key": "Suffix Resource"
-    },
-    "entry-504": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "后缀资源属性",
-      "sling:key": "Suffix Resource Property"
-    },
-    "entry-505": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "Web 控制台",
-      "sling:key": "System Console"
-    },
-    "entry-506": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "列表",
-      "sling:key": "Table"
-    },
-    "entry-507": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "标签",
-      "sling:key": "Tag"
-    },
-    "entry-508": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "标签页",
-      "sling:key": "Tag Page"
-    },
-    "entry-509": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "标签根目录",
-      "sling:key": "Tag Root"
-    },
-    "entry-510": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "标签列表",
-      "sling:key": "Tags"
-    },
-    "entry-511": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "目标路径",
-      "sling:key": "Target Path"
-    },
-    "entry-512": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "标签管理",
-      "sling:key": "Taxonomy"
-    },
-    "entry-513": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "标签条目",
-      "sling:key": "Taxonomy Item"
-    },
-    "entry-514": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "标签根目录",
-      "sling:key": "Taxonomy Root"
-    },
-    "entry-515": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "电话",
-      "sling:key": "Telephone"
-    },
-    "entry-516": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "模板",
-      "sling:key": "Template"
-    },
-    "entry-517": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "模板内容",
-      "sling:key": "Template Content"
-    },
-    "entry-518": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "模板列表",
-      "sling:key": "Templates"
-    },
-    "entry-519": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "搜索关键词",
-      "sling:key": "Term"
-    },
-    "entry-520": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "测试",
-      "sling:key": "Test"
-    },
-    "entry-521": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "测试表格",
-      "sling:key": "Test Form"
-    },
-    "entry-522": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "文本",
-      "sling:key": "Text"
-    },
-    "entry-523": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "文本字段",
-      "sling:key": "Text Field"
-    },
-    "entry-524": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "文本区域",
-      "sling:key": "Textarea"
-    },
-    "entry-525": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "没有找到请求的内容。",
-      "sling:key": "The requested content was not found."
-    },
-    "entry-526": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "基于 Apache Sling 框架,多功能内容管理系统。如果需要新增站点,请在左侧菜单依次点击“管理”,“站点列表”,然后新增站点或站点组即可。",
-      "sling:key": "This is a full-featured Content Management System built using the Apache Sling Framework! To begin, select Manage >> Site on the left to add your first website."
-    },
-    "entry-527": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "缩略图",
-      "sling:key": "Thumbnail"
-    },
-    "entry-528": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "时间",
-      "sling:key": "Time"
-    },
-    "entry-529": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "标题",
-      "sling:key": "Title"
-    },
-    "entry-530": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "到",
-      "sling:key": "To"
-    },
-    "entry-531": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "工具",
-      "sling:key": "Tools"
-    },
-    "entry-532": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "顶部中间",
-      "sling:key": "Top Center"
-    },
-    "entry-533": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "左上角",
-      "sling:key": "Top Left"
-    },
-    "entry-534": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "右上角",
-      "sling:key": "Top Right"
-    },
-    "entry-535": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "变换",
-      "sling:key": "Transformation"
-    },
-    "entry-536": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "变换处理格式",
-      "sling:key": "Transformation Format"
-    },
-    "entry-537": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "变换处理程序",
-      "sling:key": "Transformation Handlers"
-    },
-    "entry-538": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "变换处理名称",
-      "sling:key": "Transformation Name"
-    },
-    "entry-539": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "变换处理列表",
-      "sling:key": "Transformations"
-    },
-    "entry-540": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "传输目标提供者密码",
-      "sling:key": "Transport Secret Provider Target"
-    },
-    "entry-541": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "类型",
-      "sling:key": "Type"
-    },
-    "entry-542": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "URL",
-      "sling:key": "URL"
-    },
-    "entry-543": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "未授权",
-      "sling:key": "Unauthorized"
-    },
-    "entry-544": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "意外的异常",
-      "sling:key": "Unexpected Exception"
-    },
-    "entry-545": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "取消发布",
-      "sling:key": "Unpublish"
-    },
-    "entry-546": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "更新映射",
-      "sling:key": "Update Mapping"
-    },
-    "entry-547": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "更新配置文件",
-      "sling:key": "Update Profile"
-    },
-    "entry-548": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "更新属性",
-      "sling:key": "Update Properties"
-    },
-    "entry-549": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "更新引用?",
-      "sling:key": "Update References?"
-    },
-    "entry-550": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "更新用户生成内容",
-      "sling:key": "Update User Generated Content"
-    },
-    "entry-551": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "上传文件",
-      "sling:key": "Upload File"
-    },
-    "entry-552": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "用户",
-      "sling:key": "User"
-    },
-    "entry-553": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "用户代理",
-      "sling:key": "User Agent"
-    },
-    "entry-554": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "访客留言",
-      "sling:key": "User Generated"
-    },
-    "entry-555": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "用户生成内容",
-      "sling:key": "User Generated Content"
-    },
-    "entry-556": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "用户IP",
-      "sling:key": "User IP"
-    },
-    "entry-557": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "用户资料",
-      "sling:key": "User Profile"
-    },
-    "entry-558": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "用户状态",
-      "sling:key": "User Status"
-    },
-    "entry-559": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "用户名标签",
-      "sling:key": "Username Label"
-    },
-    "entry-560": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "用户和组",
-      "sling:key": "Users & Groups"
-    },
-    "entry-561": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "用户/用户组",
-      "sling:key": "Users / Groups"
-    },
-    "entry-562": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "值",
-      "sling:key": "Value"
-    },
-    "entry-563": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "快照",
-      "sling:key": "Version"
-    },
-    "entry-564": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "查看自测",
-      "sling:key": "View Insights"
-    },
-    "entry-565": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "查看任务",
-      "sling:key": "View Job"
-    },
-    "entry-566": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "查看引用",
-      "sling:key": "View References"
-    },
-    "entry-567": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "欢迎使用 Apache Sling CMS!",
-      "sling:key": "Welcome to the Apache Sling CMS!"
-    },
-    "entry-568": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "宽度",
-      "sling:key": "Width"
-    },
-    "entry-569": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "包裹在容器中?",
-      "sling:key": "Wrap In Container?"
-    },
-    "entry-570": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "包裹在页面中?",
-      "sling:key": "Wrap in Page?"
-    },
-    "entry-571": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "封装器类",
-      "sling:key": "Wrapper Class"
-    },
-    "entry-572": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "封装器类列表",
-      "sling:key": "Wrapper Classes"
-    },
-    "entry-573": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "XML",
-      "sling:key": "XML"
-    },
-    "entry-574": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "是",
-      "sling:key": "Yes"
-    },
-    "entry-575": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "无法访问所请求资源。",
-      "sling:key": "You cannot access the requested resource."
-    },
-    "entry-576": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "ZIP",
-      "sling:key": "ZIP"
-    },
-    "entry-577": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "i18n",
-      "sling:key": "i18n"
-    },
-    "entry-578": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "i18n代码",
-      "sling:key": "i18n Code"
-    },
-    "entry-579": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "i18n 字典",
-      "sling:key": "i18n Dictionaries"
-    },
-    "entry-580": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "i18n 词典列表",
-      "sling:key": "i18n Dictionarties"
-    },
-    "entry-581": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "i18n 词典",
-      "sling:key": "i18n Dictionary"
-    },
-    "entry-582": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "i18n 词典条目",
-      "sling:key": "i18n Dictionary Entries"
-    },
-    "entry-583": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "不适用",
-      "sling:key": "N/A"
-    },
-    "entry-584": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "用户生成内容",
-      "sling:key": "UGC"
-    },
-    "entry-585": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "替代文本…",
-      "sling:key": "Alternative text…"
-    },
-    "entry-586": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "目的路径",
-      "sling:key": "Destination"
-    },
-    "entry-587": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "您是否要删除",
-      "sling:key": "Do you want to delete"
-    },
-    "entry-588": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "您是否要发布",
-      "sling:key": "Do you want to publish"
-    },
-    "entry-589": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "您是否要重排序",
-      "sling:key": "Do you want to reorder"
-    },
-    "entry-590": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "您是否要取消发布",
-      "sling:key": "Do you want to unpublish"
-    },
-    "entry-591": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "存在路径",
-      "sling:key": "Existing Path"
-    },
-    "entry-592": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "替换此路径内所有资源的属性",
-      "sling:key": "Replacing properties under path"
-    },
-    "entry-593": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "选择位置",
-      "sling:key": "Select Position"
-    },
-    "entry-594": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "",
-      "sling:key": "Job Name"
-    },
-    "entry-595": {
-      "jcr:primaryType": "sling:MessageEntry",
-      "sling:message": "",
-      "sling:key": "None"
-    }
-  }
-}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformation/config.json b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformation/config.json
new file mode 100644
index 0000000..5d133a9
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformation/config.json
@@ -0,0 +1,4 @@
+{
+	"jcr:primaryType": "sling:Component",
+    "jcr:title": "Transformation Configuration"
+}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformation/config/config.jsp b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformation/config/config.jsp
similarity index 100%
rename from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformation/config/config.jsp
rename to ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformation/config/config.jsp
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformation/config/edit.json b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformation/config/edit.json
similarity index 100%
rename from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformation/config/edit.json
rename to ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformation/config/edit.json
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformation/transformation.jsp b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformation/transformation.jsp
similarity index 94%
rename from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformation/transformation.jsp
rename to ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformation/transformation.jsp
index 2534257..aa6794a 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformation/transformation.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformation/transformation.jsp
@@ -20,7 +20,7 @@
 <div class="scroll-container">
     <c:set var="cmsEditEnabled" value="true" scope="request" />
     <sling:call script="/libs/sling-cms/components/editor/scripts/init.jsp" />
-    <sling:include path="${slingRequest.requestPathInfo.suffix}" resourceType="sling-cms/components/caconfig/transformation/config" />
+    <sling:include path="${slingRequest.requestPathInfo.suffix}" resourceType="sling/thumbnails/transformation/config" />
     <sling:call script="/libs/sling-cms/components/editor/scripts/finalize.jsp" />
     <c:set var="cmsEditEnabled" value="false" scope="request" />
 </div>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/colorize.json
similarity index 62%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json
copy to ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/colorize.json
index 55709a9..3396d4e 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json
+++ b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/colorize.json
@@ -1,5 +1,5 @@
 {
     "jcr:primaryType": "sling:Component",
-    "jcr:title": "Sling CMS - Transformation Size Handler",
+    "jcr:title": "Colorize Handler",
     "componentType": "SlingCMS-TransformationHandler"
 }
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size/size.jsp b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/colorize/colorize.jsp
similarity index 71%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size/size.jsp
copy to ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/colorize/colorize.jsp
index a25f5ec..75b1a8f 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size/size.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/colorize/colorize.jsp
@@ -18,8 +18,12 @@
  */ --%>
  <%@include file="/libs/sling-cms/global.jsp"%>
 <dl>
-    <dt><fmt:message key="Width" /></dt>
-    <dd>${properties.width}</dd>
-    <dt><fmt:message key="Height" /></dt>
-    <dd>${properties.height}</dd>
+    <dt>Red</dt>
+    <dd><sling:encode value="${properties.red}" mode="HTML" /></dd>
+    <dt>Green</dt>
+    <dd><sling:encode value="${properties.green}" mode="HTML" /></dd>
+    <dt>Blue</dt>
+    <dd><sling:encode value="${properties.blue}" mode="HTML" /></dd>
+    <dt>Alpha</dt>
+    <dd><sling:encode value="${properties.alpha}" mode="HTML" /></dd>
 </dl>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/colorize/edit.json b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/colorize/edit.json
new file mode 100644
index 0000000..e3e8dfb
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/colorize/edit.json
@@ -0,0 +1,40 @@
+ {
+    "jcr:primaryType": "nt:unstructured",
+    "sling:resourceType": "sling-cms/components/editor/slingform",
+    "button": "Save",
+    "fields": {
+        "jcr:primaryType": "nt:unstructured",
+        "sling:resourceType": "sling-cms/components/general/container",
+        "red": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "sling-cms/components/editor/fields/text",
+            "label": "Red",
+            "name": "red",
+            "required": true,
+            "type": "number"
+        },
+        "green": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "sling-cms/components/editor/fields/text",
+            "label": "Green",
+            "name": "green",
+            "required": true,
+            "type": "number"
+        },
+        "blue": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "sling-cms/components/editor/fields/text",
+            "label": "Blue",
+            "name": "blue",
+            "required": true,
+            "type": "number"
+        },
+        "alpha": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "sling-cms/components/editor/fields/text",
+            "label": "Alpha",
+            "required": true,
+            "name": "alpha"
+        }
+    }
+}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/crop.json
similarity index 62%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json
copy to ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/crop.json
index 55709a9..393ce1f 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json
+++ b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/crop.json
@@ -1,5 +1,5 @@
 {
     "jcr:primaryType": "sling:Component",
-    "jcr:title": "Sling CMS - Transformation Size Handler",
+    "jcr:title": "Crop Handler",
     "componentType": "SlingCMS-TransformationHandler"
 }
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size/size.jsp b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/crop/crop.jsp
similarity index 78%
rename from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size/size.jsp
rename to ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/crop/crop.jsp
index a25f5ec..695fc24 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size/size.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/crop/crop.jsp
@@ -18,8 +18,10 @@
  */ --%>
  <%@include file="/libs/sling-cms/global.jsp"%>
 <dl>
-    <dt><fmt:message key="Width" /></dt>
-    <dd>${properties.width}</dd>
+    <dt><fmt:message key="Position" /></dt>
+    <dd><sling:encode value="${properties.position}" mode="HTML" /></dd>
     <dt><fmt:message key="Height" /></dt>
-    <dd>${properties.height}</dd>
+    <dd><sling:encode value="${properties.height}" mode="HTML" /></dd>
+    <dt><fmt:message key="Width" /></dt>
+    <dd><sling:encode value="${properties.width}" mode="HTML" /></dd>
 </dl>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop/edit.json b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/crop/edit.json
similarity index 76%
rename from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop/edit.json
rename to ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/crop/edit.json
index 4aa1dbb..29b2db0 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop/edit.json
+++ b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/crop/edit.json
@@ -48,6 +48,22 @@
                     "value": "TOP_RIGHT"
                 }
             }
+        },
+        "width": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "sling-cms/components/editor/fields/text",
+            "label": "Width",
+            "name": "width",
+            "required": true,
+            "type": "number"
+        },
+        "height": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "sling-cms/components/editor/fields/text",
+            "label": "Height",
+            "name": "height",
+            "required": true,
+            "type": "number"
         }
     }
 }
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/flip.json
similarity index 62%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json
copy to ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/flip.json
index 55709a9..f0176e7 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json
+++ b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/flip.json
@@ -1,5 +1,5 @@
 {
     "jcr:primaryType": "sling:Component",
-    "jcr:title": "Sling CMS - Transformation Size Handler",
+    "jcr:title": "Flip Handler",
     "componentType": "SlingCMS-TransformationHandler"
 }
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/flip/edit.json b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/flip/edit.json
new file mode 100644
index 0000000..e8e5b1d
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/flip/edit.json
@@ -0,0 +1,26 @@
+{
+  "jcr:primaryType": "nt:unstructured",
+  "sling:resourceType": "sling-cms/components/editor/slingform",
+  "button": "Save",
+  "fields": {
+    "jcr:primaryType": "nt:unstructured",
+    "sling:resourceType": "sling-cms/components/general/container",
+    "direction": {
+      "jcr:primaryType": "nt:unstructured",
+      "sling:resourceType": "sling-cms/components/editor/fields/select",
+      "label": "Direction",
+      "name": "direction",
+      "required": true,
+      "options": {
+        "horizontal": {
+          "label": "Horizontal",
+          "value": "horizontal"
+        },
+        "vertical": {
+          "label": "Vertical",
+          "value": "vertical"
+        }
+      }
+    }
+  }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop/crop.jsp b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/flip/flip.jsp
similarity index 87%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop/crop.jsp
copy to ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/flip/flip.jsp
index a8cc28b..54b058e 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop/crop.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/flip/flip.jsp
@@ -18,6 +18,6 @@
  */ --%>
  <%@include file="/libs/sling-cms/global.jsp"%>
 <dl>
-    <dt><fmt:message key="Position" /></dt>
-    <dd>${properties.position}</dd>
+    <dt><fmt:message key="Direction" /></dt>
+    <dd><sling:encode value="${properties.direction}" mode="HTML" /></dd>
 </dl>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/greyscale.json
similarity index 61%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json
copy to ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/greyscale.json
index 55709a9..a9afa5a 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json
+++ b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/greyscale.json
@@ -1,5 +1,5 @@
 {
     "jcr:primaryType": "sling:Component",
-    "jcr:title": "Sling CMS - Transformation Size Handler",
+    "jcr:title": "Greyscale Handler",
     "componentType": "SlingCMS-TransformationHandler"
 }
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/greyscale/edit.json b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/greyscale/edit.json
new file mode 100644
index 0000000..774c5d5
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/greyscale/edit.json
@@ -0,0 +1,7 @@
+ {
+    "jcr:primaryType": "nt:unstructured",
+    "sling:resourceType": "sling-cms/components/editor/slingform",
+    "button": "No settings required",
+    "fields": {
+    }
+}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop/crop.jsp b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/greyscale/greyscale.jsp
similarity index 90%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop/crop.jsp
copy to ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/greyscale/greyscale.jsp
index a8cc28b..f8d3e1a 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop/crop.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/greyscale/greyscale.jsp
@@ -18,6 +18,4 @@
  */ --%>
  <%@include file="/libs/sling-cms/global.jsp"%>
 <dl>
-    <dt><fmt:message key="Position" /></dt>
-    <dd>${properties.position}</dd>
 </dl>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/resize.json
similarity index 62%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json
copy to ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/resize.json
index 55709a9..0fb0728 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json
+++ b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/resize.json
@@ -1,5 +1,5 @@
 {
     "jcr:primaryType": "sling:Component",
-    "jcr:title": "Sling CMS - Transformation Size Handler",
+    "jcr:title": "Resize Handler",
     "componentType": "SlingCMS-TransformationHandler"
 }
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/resize/edit.json b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/resize/edit.json
new file mode 100644
index 0000000..fdb2126
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/resize/edit.json
@@ -0,0 +1,45 @@
+ {
+    "jcr:primaryType": "nt:unstructured",
+    "sling:resourceType": "sling-cms/components/editor/slingform",
+    "button": "Save",
+    "fields": {
+        "jcr:primaryType": "nt:unstructured",
+        "sling:resourceType": "sling-cms/components/general/container",
+        "width": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "sling-cms/components/editor/fields/text",
+            "label": "Width",
+            "name": "width",
+            "type": "number"
+        },
+        "height": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "sling-cms/components/editor/fields/text",
+            "label": "Height",
+            "name": "height",
+            "type": "number"
+        },
+        "keepAspectRatio": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "sling-cms/components/editor/fields/select",
+            "label": "Keep Aspect Ratio",
+            "name": "keepAspectRatio",
+            "options": {
+                "yes": {
+                    "label": "Yes",
+                    "value": true
+                },
+                "no": {
+                    "label": "No",
+                    "value": false
+                }
+            }
+        },
+        "keepAspectRatioTypeHint": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "sling-cms/components/editor/fields/hidden",
+            "name": "keepAspectRatio@TypeHint",
+            "value": "Boolean"
+        }
+    }
+}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size/size.jsp b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/resize/resize.jsp
similarity index 74%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size/size.jsp
copy to ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/resize/resize.jsp
index a25f5ec..be0d5c8 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size/size.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/resize/resize.jsp
@@ -18,8 +18,10 @@
  */ --%>
  <%@include file="/libs/sling-cms/global.jsp"%>
 <dl>
-    <dt><fmt:message key="Width" /></dt>
-    <dd>${properties.width}</dd>
-    <dt><fmt:message key="Height" /></dt>
-    <dd>${properties.height}</dd>
+    <dt>Width</dt>
+    <dd><sling:encode value="${properties.width}" mode="HTML" /></dd>
+    <dt>Height</dt>
+    <dd><sling:encode value="${properties.height}" mode="HTML" /></dd>
+    <dt>Keep Aspect Ratio</dt>
+    <dd><sling:encode value="${properties.keepAspectRatio}" mode="HTML" /></dd>
 </dl>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/rotate.json
similarity index 62%
rename from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json
rename to ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/rotate.json
index 55709a9..db69efa 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json
+++ b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/rotate.json
@@ -1,5 +1,5 @@
 {
     "jcr:primaryType": "sling:Component",
-    "jcr:title": "Sling CMS - Transformation Size Handler",
+    "jcr:title": "Rotate Handler",
     "componentType": "SlingCMS-TransformationHandler"
 }
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/rotate/edit.json b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/rotate/edit.json
new file mode 100644
index 0000000..8a88504
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/rotate/edit.json
@@ -0,0 +1,17 @@
+ {
+    "jcr:primaryType": "nt:unstructured",
+    "sling:resourceType": "sling-cms/components/editor/slingform",
+    "button": "Save",
+    "fields": {
+        "jcr:primaryType": "nt:unstructured",
+        "sling:resourceType": "sling-cms/components/general/container",
+        "degrees": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "sling-cms/components/editor/fields/text",
+            "label": "Degrees",
+            "name": "degrees",
+            "required": true,
+            "type": "text"
+        }
+    }
+}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop/crop.jsp b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/rotate/rotate.jsp
similarity index 89%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop/crop.jsp
copy to ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/rotate/rotate.jsp
index a8cc28b..5407ba5 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop/crop.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/rotate/rotate.jsp
@@ -18,6 +18,6 @@
  */ --%>
  <%@include file="/libs/sling-cms/global.jsp"%>
 <dl>
-    <dt><fmt:message key="Position" /></dt>
-    <dd>${properties.position}</dd>
+    <dt>Degrees</dt>
+    <dd><sling:encode value="${properties.degrees}" mode="HTML" /></dd>
 </dl>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size/edit.json b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/scale/edit.json
similarity index 69%
rename from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size/edit.json
rename to ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/scale/edit.json
index 4469a65..f32d19c 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size/edit.json
+++ b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/scale/edit.json
@@ -5,19 +5,26 @@
     "fields": {
         "jcr:primaryType": "nt:unstructured",
         "sling:resourceType": "sling-cms/components/general/container",
+        "both": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "sling-cms/components/editor/fields/select",
+            "label": "Both Width and Height",
+            "name": "both",
+            "type": "text"
+        },
         "width": {
             "jcr:primaryType": "nt:unstructured",
             "sling:resourceType": "sling-cms/components/editor/fields/text",
             "label": "Width",
             "name": "width",
-            "type": "number"
+            "type": "text"
         },
         "height": {
             "jcr:primaryType": "nt:unstructured",
             "sling:resourceType": "sling-cms/components/editor/fields/text",
             "label": "Height",
             "name": "height",
-            "type": "number"
+            "type": "text"
         }
     }
 }
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size/size.jsp b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/scale/scale.jsp
similarity index 76%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size/size.jsp
copy to ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/scale/scale.jsp
index a25f5ec..d4f4af6 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size/size.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/scale/scale.jsp
@@ -18,8 +18,10 @@
  */ --%>
  <%@include file="/libs/sling-cms/global.jsp"%>
 <dl>
-    <dt><fmt:message key="Width" /></dt>
-    <dd>${properties.width}</dd>
-    <dt><fmt:message key="Height" /></dt>
-    <dd>${properties.height}</dd>
+    <dt>Both</dt>
+    <dd><sling:encode value="${properties.both}" mode="HTML" /></dd>
+    <dt>Width</dt>
+    <dd><sling:encode value="${properties.width}" mode="HTML" /></dd>
+    <dt>Height</dt>
+    <dd><sling:encode value="${properties.height}" mode="HTML" /></dd>
 </dl>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/transparency.json
similarity index 61%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json
copy to ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/transparency.json
index 55709a9..6b70bb0 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json
+++ b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/transparency.json
@@ -1,5 +1,5 @@
 {
     "jcr:primaryType": "sling:Component",
-    "jcr:title": "Sling CMS - Transformation Size Handler",
+    "jcr:title": "Transparency Handler",
     "componentType": "SlingCMS-TransformationHandler"
 }
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/transparency/edit.json b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/transparency/edit.json
new file mode 100644
index 0000000..5fa3d3d
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/transparency/edit.json
@@ -0,0 +1,16 @@
+ {
+    "jcr:primaryType": "nt:unstructured",
+    "sling:resourceType": "sling-cms/components/editor/slingform",
+    "button": "Save",
+    "fields": {
+        "jcr:primaryType": "nt:unstructured",
+        "sling:resourceType": "sling-cms/components/general/container",
+        "alpha": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "sling-cms/components/editor/fields/text",
+            "label": "Alpha",
+            "required": true,
+            "name": "alpha"
+        }
+    }
+}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop/crop.jsp b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/transparency/transparency.jsp
similarity index 90%
rename from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop/crop.jsp
rename to ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/transparency/transparency.jsp
index a8cc28b..2d831f9 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop/crop.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformers/transparency/transparency.jsp
@@ -18,6 +18,6 @@
  */ --%>
  <%@include file="/libs/sling-cms/global.jsp"%>
 <dl>
-    <dt><fmt:message key="Position" /></dt>
-    <dd>${properties.position}</dd>
+    <dt>Alpha</dt>
+    <dd><sling:encode value="${properties.alpha}" mode="HTML" /></dd>
 </dl>
\ No newline at end of file