Fixing licensing issues, moving examples to their own project
diff --git a/pom.xml b/pom.xml
index ccec8df..1a7aba7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,10 +11,9 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <maven.compiler.source>1.8</maven.compiler.source>
- <maven.compiler.target>1.8</maven.compiler.target>
+ <maven.compiler.source>8</maven.compiler.source>
+ <maven.compiler.target>8</maven.compiler.target>
- <version.errai>4.0.0.CR1</version.errai>
<version.gwt>2.8.0</version.gwt>
<version.jackson>2.8.8</version.jackson>
<version.lombok>1.16.14</version.lombok>
@@ -29,7 +28,6 @@
<module>scim-tools</module>
<module>scim-compliance</module>
<module>scim-common</module>
- <module>scim-errai</module>
</modules>
<scm>
@@ -224,14 +222,6 @@
<type>pom</type>
<scope>import</scope>
</dependency>
- <dependency>
- <groupId>org.jboss.errai.bom</groupId>
- <artifactId>errai-bom</artifactId>
- <version>${version.errai}</version>
- <type>pom</type>
- <scope>import</scope>
- </dependency>
-
</dependencies>
</dependencyManagement>
diff --git a/scim-common/src/main/java/edu/psu/swe/scim/common/ScimUtils.java b/scim-common/src/main/java/edu/psu/swe/scim/common/ScimUtils.java
index 3ab786b..f29772e 100644
--- a/scim-common/src/main/java/edu/psu/swe/scim/common/ScimUtils.java
+++ b/scim-common/src/main/java/edu/psu/swe/scim/common/ScimUtils.java
@@ -8,9 +8,6 @@
import java.util.Date;
import java.util.List;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-
import com.google.common.collect.Lists;
@@ -36,7 +33,10 @@
return ldt.format(DateTimeFormatter.ISO_DATE_TIME);
}
- public static List<Field> getFieldsUpTo(@Nonnull Class<?> startClass, @Nullable Class<?> exclusiveParent) {
+ //Removing the @Nonnull & @Nullable annotations, they are GPL licensed and not compliant with Apache 2.0
+ //public static List<Field> getFieldsUpTo(@Nonnull Class<?> startClass, @Nullable Class<?> exclusiveParent) {
+
+ public static List<Field> getFieldsUpTo(Class<?> startClass, Class<?> exclusiveParent) {
List<Field> currentClassFields = Lists.newArrayList(startClass.getDeclaredFields());
Class<?> parentClass = startClass.getSuperclass();
if (parentClass != null && (exclusiveParent == null || !(parentClass.equals(exclusiveParent)))) {
diff --git a/scim-errai/pom.xml b/scim-errai/pom.xml
deleted file mode 100644
index 4dce2de..0000000
--- a/scim-errai/pom.xml
+++ /dev/null
@@ -1,129 +0,0 @@
-<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/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>edu.psu.swe.scim</groupId>
- <artifactId>scim-parent</artifactId>
- <version>2.23-SNAPSHOT</version>
- </parent>
-
- <artifactId>scim-errai</artifactId>
- <name>SCIM - Errai</name>
- <description>GWT/Errai components that can be used to display and edit SCIM resources.</description>
-
- <repositories>
- <repository>
- <id>jboss</id>
- <name>JBoss Public Repo</name>
- <url>https://repository.jboss.org/nexus/content/groups/public</url>
- </repository>
- <repository>
- <id>google-snapshots</id>
- <name>Google Snapshots Repo</name>
- <url>https://oss.sonatype.org/content/repositories/google-snapshots</url>
- <releases>
- <enabled>false</enabled>
- </releases>
- <snapshots>
- </snapshots>
- </repository>
- <repository>
- <id>sonatype-public</id>
- <name>Sonatype Public Snapshots Repo</name>
- <url>https://oss.sonatype.org/content/repositories/public</url>
- </repository>
- </repositories>
-
- <build>
- <!-- Output classes directly into the webapp, so that IDEs and "mvn process-classes" update them in DevMode -->
- <outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/classes</outputDirectory>
-
- <resources>
- <resource>
- <directory>src/main/resources</directory>
- </resource>
- <resource>
- <directory>src/main/java</directory>
- </resource>
- <resource>
- <directory>target/generated-sources/delombok</directory>
- </resource>
- </resources>
-
- </build>
-
- <profiles>
- <profile>
- <id>showcase</id>
- <build>
- <plugins>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>gwt-maven-plugin</artifactId>
- <version>${version.gwt}</version>
- <executions>
- <execution>
- <goals>
- <goal>compile</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <runTarget>index.html</runTarget>
- <strict>true</strict>
- <extraJvmArgs>-Xmx2048m</extraJvmArgs>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-war-plugin</artifactId>
- <version>2.6</version>
- <executions>
- <execution>
- <phase>package</phase>
- <goals>
- <goal>war</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
- </profiles>
-
- <dependencies>
- <dependency>
- <groupId>com.google.gwt</groupId>
- <artifactId>gwt-user</artifactId>
-<!-- <version>${gwt.version}</version> -->
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>com.google.gwt</groupId>
- <artifactId>gwt-dev</artifactId>
-<!-- <version>${gwt.version}</version> -->
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.errai</groupId>
- <artifactId>errai-javaee-all</artifactId>
- </dependency>
- <dependency>
- <groupId>org.projectlombok</groupId>
- <artifactId>lombok</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.mockito</groupId>
- <artifactId>mockito-all</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>pl.pragmatists</groupId>
- <artifactId>JUnitParams</artifactId>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/business/common/Error.java b/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/business/common/Error.java
deleted file mode 100644
index 6810dd8..0000000
--- a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/business/common/Error.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
- *
- */
-package edu.psu.swe.scim.errai.client.business.common;
-
-import org.jboss.errai.common.client.api.annotations.Portable;
-
-import lombok.Data;
-
-/**
- * A DTO that represents the SCIM error while on the wire. See
- * section 3.12 of the SCIM Protocol Specification at:
- *
- * https://tools.ietf.org/html/rfc7644#section-3.12
- *
- * @author Steve Moyer <smoyer@psu.edu>
- */
-@Data
-@Portable
-public class Error {
-
- public enum Type {
-
- invalidFilter,
- tooMany,
- uniqueness,
- mutability,
- invalidSyntax,
- invalidPath,
- noTarget,
- invalidValue,
- invalidVers,
- sensitive;
-
- }
-
- int status = 400;
- Type scimType;
- String detail;
-
-}
diff --git a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/business/common/ListResponse.java b/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/business/common/ListResponse.java
deleted file mode 100644
index e8adb16..0000000
--- a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/business/common/ListResponse.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/**
- *
- */
-package edu.psu.swe.scim.errai.client.business.common;
-
-import java.util.List;
-
-import org.jboss.errai.common.client.api.annotations.Portable;
-
-import lombok.Data;
-
-/**
- * A DTO that represents the result of a SCIM query on the wire. See
- * setcion 3.4.2 of the SCIM Protocol Specification at:
- *
- * https://tools.ietf.org/html/rfc7644#section-3.4.2
- *
- * @author Steve Moyer <smoyer@psu.edu>
- */
-@Data
-@Portable
-public class ListResponse<T> {
-
- int itemsPerPage = 0;
- List<T> Resources;
- int startIndex = 0;
- int totalResults = 0;
- List<String> schemas;
-
-}
diff --git a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/business/common/Meta.java b/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/business/common/Meta.java
deleted file mode 100644
index 54334de..0000000
--- a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/business/common/Meta.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/**
- *
- */
-package edu.psu.swe.scim.errai.client.business.common;
-
-import org.jboss.errai.common.client.api.annotations.Portable;
-
-import lombok.Data;
-
-/**
- * A DTO the provides the wire format of the "meta" section sent with each
- * SCIM resource according to section 3.1 of the SCIM Schema Specification.
- *
- * https://tools.ietf.org/html/rfc7643#section-3.1
- *
- * @author Steve Moyer <smoyer@psu.edu>
- */
-@Data
-@Portable
-public class Meta {
-
- String resourceType;
- String created; // DateTime
- String lastModified; // DateTime
- String location;
- String version;
-
-}
diff --git a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/business/common/Resource.java b/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/business/common/Resource.java
deleted file mode 100644
index 5f918a2..0000000
--- a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/business/common/Resource.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package edu.psu.swe.scim.errai.client.business.common;
-
-import org.jboss.errai.common.client.api.annotations.Portable;
-
-import lombok.Data;
-
-/**
- * Provides the common attributes for SCIM resources as defined in section
- * 3.1 of the SCIM Schema specification.
- *
- * https://tools.ietf.org/html/rfc7643#section-3.1
- *
- * @author Steve Moyer <smoyer@psu.edu>
- */
-@Data
-@Portable
-public abstract class Resource {
-
- String id;
- String externalId;
- Meta meta;
-
-}
diff --git a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/business/resourcetype/ResourceType.java b/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/business/resourcetype/ResourceType.java
deleted file mode 100644
index 6df1f7b..0000000
--- a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/business/resourcetype/ResourceType.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- *
- */
-package edu.psu.swe.scim.errai.client.business.resourcetype;
-
-import java.util.List;
-
-import org.jboss.errai.common.client.api.annotations.Portable;
-
-import edu.psu.swe.scim.errai.client.business.common.Resource;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * A DTO that represents the wire format of a SCIM ResourceType according
- * to section 6 of the SCIM Schema Specification. See:
- *
- * https://tools.ietf.org/html/rfc7643#section-6
- *
- * @author Steve Moyer <smoyer@psu.edu>
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@Portable
-public class ResourceType extends Resource {
-
- String name;
- String description;
- String endpoint;
- String schema;
- List<SchemaExtension> schemaExtensions;
-
-}
diff --git a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/business/resourcetype/SchemaExtension.java b/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/business/resourcetype/SchemaExtension.java
deleted file mode 100644
index 46d4adb..0000000
--- a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/business/resourcetype/SchemaExtension.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package edu.psu.swe.scim.errai.client.business.resourcetype;
-
-import org.jboss.errai.common.client.api.annotations.Portable;
-
-import lombok.Data;
-
-/**
- * A DTO that represents the wire format of a SCIM ResourceType's SchemaExtension
- * according to section 6 of the SCIM Schema Specification. See:
- *
- * https://tools.ietf.org/html/rfc7643#section-6
- *
- * @author Steve Moyer <smoyer@psu.edu>
- */
-@Data
-@Portable
-public class SchemaExtension {
-
- String schema;
- boolean required;
-
-}
diff --git a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/business/schema/Attribute.java b/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/business/schema/Attribute.java
deleted file mode 100644
index 9fa6f25..0000000
--- a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/business/schema/Attribute.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/**
- *
- */
-package edu.psu.swe.scim.errai.client.business.schema;
-
-import org.jboss.errai.common.client.api.annotations.Portable;
-
-import lombok.Data;
-
-/**
- * A DTO representing the wire format of each of a SCIM Schema's
- * attributes. See section 7 of the SCIM Schema Specification at:
- *
- * https://tools.ietf.org/html/rfc7643#section-7
- *
- * @author Steve Moyer <smoyer@psu.edu>
- */
-@Data
-@Portable
-public class Attribute {
-
- public enum Mutability {
- READ_ONLY,
- READ_WRITE,
- IMMUTABLE,
- WRITE_ONLY,
- ;
- }
-
- public enum Returned {
- ALWAYS,
- NEVER,
- DEFAULT,
- REQUEST,
- ;
- }
-
- public enum Uniqueness {
- NONE,
- SERVER,
- GLOBAL,
- ;
- }
-
- public enum Type {
- STRING,
- BOOLEAN,
- DECIMAL,
- INTEGER,
- DATE_TIME,
- BINARY,
- REFERENCE,
- COMPLEX,
- ;
- }
-
- String name;
- Type type;
- Attribute[] subAttributes;
- boolean multivalued;
- String description;
- boolean required = false;
- String[] canonicalValues;
- boolean caseExact;
- Mutability mutability;
- Returned returned;
- Uniqueness uniqueness;
- String[] referenceTypes;
-
-}
diff --git a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/business/schema/Schema.java b/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/business/schema/Schema.java
deleted file mode 100644
index 16dcf32..0000000
--- a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/business/schema/Schema.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/**
- *
- */
-package edu.psu.swe.scim.errai.client.business.schema;
-
-import org.jboss.errai.common.client.api.annotations.Portable;
-
-import edu.psu.swe.scim.errai.client.business.common.Resource;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * A DTO representing the format of a SCIM Schema object on the wire. See
- * section 7 of the SCIM Schema Specification at:
- *
- * https://tools.ietf.org/html/rfc7643#section-7
- *
- * Steve Moyer <smoyer@psu.edu>
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@Portable
-public class Schema extends Resource {
-
- String name;
- String description;
- Attribute[] attributes;
-
-}
diff --git a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/business/scim/ScimServiceProvider.java b/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/business/scim/ScimServiceProvider.java
deleted file mode 100644
index bdc5f23..0000000
--- a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/business/scim/ScimServiceProvider.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/**
- *
- */
-package edu.psu.swe.scim.errai.client.business.scim;
-
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-
-import edu.psu.swe.scim.errai.client.business.common.ListResponse;
-import edu.psu.swe.scim.errai.client.business.resourcetype.ResourceType;
-import edu.psu.swe.scim.errai.client.business.schema.Schema;
-
-/**
- * Defines the REST end-points needed to retrieve the SCIM ResourceTypes
- * and SCIM Schemas from the server. See sections 6 and 7 respectively
- * in the SCIM Schema Specification at:
- *
- * https://tools.ietf.org/html/rfc7643#section-6
- * https://tools.ietf.org/html/rfc7643#section-7
- *
- * @author Steve Moyer <smoyer@psu.edu>
- */
-@Path("/v2")
-public interface ScimServiceProvider {
-
- @Path("ResourceTypes")
- @GET
- ListResponse<ResourceType> getResourceTypes();
-
- @Path("Schemas")
- @GET
- ListResponse<Schema> getSchemas();
-
-}
diff --git a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/models/AuthenticationSchemeConfig.java b/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/models/AuthenticationSchemeConfig.java
deleted file mode 100644
index 6b7c7f4..0000000
--- a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/models/AuthenticationSchemeConfig.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package edu.psu.swe.scim.errai.client.models;
-
-import org.jboss.errai.common.client.api.annotations.Portable;
-
-import lombok.Data;
-
-/**
- * A DTO that describes the AuthenticationScheme sub-object of the SCIM
- * ServiceProviderConfig according to section 5 of the SCIM Schema
- * Specification. See:
- *
- * https://tools.ietf.org/html/rfc7643#section-5
- *
- * @author Steve Moyer <smoyer@psu.edu>
- */
-@Data
-@Portable
-public class AuthenticationSchemeConfig {
-
- public enum Type {
-
- }
-
- Type type;
- String name;
- String description;
- String specUri;
- String documentationUri;
-
-}
diff --git a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/models/BulkConfig.java b/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/models/BulkConfig.java
deleted file mode 100644
index f0d7777..0000000
--- a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/models/BulkConfig.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package edu.psu.swe.scim.errai.client.models;
-
-import org.jboss.errai.common.client.api.annotations.Portable;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * A DTO that describes the Bulk sub-object of the SCIM
- * ServiceProviderConfig according to section 5 of the SCIM Schema
- * Specification. See:
- *
- * https://tools.ietf.org/html/rfc7643#section-5
- *
- * @author Steve Moyer <smoyer@psu.edu>
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@Portable
-public class BulkConfig extends SupportedConfig {
-
- int maxOperations;
- int maxPayloadSize;
-
-}
diff --git a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/models/ChangePasswordConfig.java b/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/models/ChangePasswordConfig.java
deleted file mode 100644
index 4836215..0000000
--- a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/models/ChangePasswordConfig.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package edu.psu.swe.scim.errai.client.models;
-
-import org.jboss.errai.common.client.api.annotations.Portable;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * A DTO that describes the ChangePassword sub-object of the SCIM
- * ServiceProviderConfig according to section 5 of the SCIM Schema
- * Specification. See:
- *
- * https://tools.ietf.org/html/rfc7643#section-5
- *
- * @author Steve Moyer <smoyer@psu.edu>
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@Portable
-public class ChangePasswordConfig extends SupportedConfig {
-
-}
diff --git a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/models/EtagConfig.java b/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/models/EtagConfig.java
deleted file mode 100644
index 2def3e7..0000000
--- a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/models/EtagConfig.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package edu.psu.swe.scim.errai.client.models;
-
-import org.jboss.errai.common.client.api.annotations.Portable;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * A DTO that describes the Etag sub-object of the SCIM
- * ServiceProviderConfig according to section 5 of the SCIM Schema
- * Specification. See:
- *
- * https://tools.ietf.org/html/rfc7643#section-5
- *
- * @author Steve Moyer <smoyer@psu.edu>
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@Portable
-public class EtagConfig extends SupportedConfig {
-
-}
diff --git a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/models/FilterConfig.java b/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/models/FilterConfig.java
deleted file mode 100644
index 0f3de87..0000000
--- a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/models/FilterConfig.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package edu.psu.swe.scim.errai.client.models;
-
-import org.jboss.errai.common.client.api.annotations.Portable;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * A DTO that describes the Filter sub-object of the SCIM
- * ServiceProviderConfig according to section 5 of the SCIM Schema
- * Specification. See:
- *
- * https://tools.ietf.org/html/rfc7643#section-5
- *
- * @author Steve Moyer <smoyer@psu.edu>
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@Portable
-public class FilterConfig extends SupportedConfig {
-
- int maxResults;
-
-}
diff --git a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/models/PatchConfig.java b/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/models/PatchConfig.java
deleted file mode 100644
index d8b1687..0000000
--- a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/models/PatchConfig.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package edu.psu.swe.scim.errai.client.models;
-
-import org.jboss.errai.common.client.api.annotations.Portable;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * A DTO that describes the Patch sub-object of the SCIM
- * ServiceProviderConfig according to section 5 of the SCIM Schema
- * Specification. See:
- *
- * https://tools.ietf.org/html/rfc7643#section-5
- *
- * @author Steve Moyer <smoyer@psu.edu>
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@Portable
-public class PatchConfig extends SupportedConfig {
-
-}
diff --git a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/models/ServiceProviderConfig.java b/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/models/ServiceProviderConfig.java
deleted file mode 100644
index 486bb3d..0000000
--- a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/models/ServiceProviderConfig.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package edu.psu.swe.scim.errai.client.models;
-
-import org.jboss.errai.common.client.api.annotations.Portable;
-
-import edu.psu.swe.scim.errai.client.business.common.Meta;
-import edu.psu.swe.scim.errai.client.business.schema.Schema;
-import lombok.Data;
-
-/**
- * A DTO that represents the wire format of a SCIM ServiceProviderConfig
- * according to section 5 of the SCIM Schema Specification. See:
- *
- * https://tools.ietf.org/html/rfc7643#section-5
- *
- * @author Steve Moyer <smoyer@psu.edu>
- */
-@Data
-@Portable
-public class ServiceProviderConfig {
-
- Schema[] schemas;
- Meta meta;
-
- String documentationUri;
- PatchConfig patch;
- BulkConfig bulk;
- FilterConfig filter;
- ChangePasswordConfig changePassword;
- SortConfig sort;
- EtagConfig etag;
- AuthenticationSchemeConfig[] authenticationSchemes;
-
-}
diff --git a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/models/SortConfig.java b/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/models/SortConfig.java
deleted file mode 100644
index 95d3ed5..0000000
--- a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/models/SortConfig.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package edu.psu.swe.scim.errai.client.models;
-
-import org.jboss.errai.common.client.api.annotations.Portable;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * A DTO that describes the Sort sub-object of the SCIM
- * ServiceProviderConfig according to section 5 of the SCIM Schema
- * Specification. See:
- *
- * https://tools.ietf.org/html/rfc7643#section-5
- *
- * @author Steve Moyer <smoyer@psu.edu>
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@Portable
-public class SortConfig extends SupportedConfig {
-
-}
diff --git a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/models/SupportedConfig.java b/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/models/SupportedConfig.java
deleted file mode 100644
index 36d5468..0000000
--- a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/client/models/SupportedConfig.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package edu.psu.swe.scim.errai.client.models;
-
-import org.jboss.errai.common.client.api.annotations.Portable;
-
-import lombok.Data;
-
-/**
- * A super-class for configuration objects that include
- * the supports sub-attribute within a sub-object of the SCIM
- * ServiceProviderConfig according to section 5 of the SCIM Schema
- * Specification. See:
- *
- * https://tools.ietf.org/html/rfc7643#section-5
- *
- * @author Steve Moyer <smoyer@psu.edu>
- */
-@Data
-@Portable
-public class SupportedConfig {
-
- boolean supported;
-
-}
diff --git a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/showcase/ScimErraiShowcase.java b/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/showcase/ScimErraiShowcase.java
deleted file mode 100644
index c24e563..0000000
--- a/scim-errai/src/main/lombok/edu/psu/swe/scim/errai/showcase/ScimErraiShowcase.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package edu.psu.swe.scim.errai.showcase;
-
-import java.util.List;
-import java.util.stream.Stream;
-
-import org.jboss.errai.common.client.api.RemoteCallback;
-import org.jboss.errai.common.client.dom.Div;
-import org.jboss.errai.common.client.dom.Span;
-import org.jboss.errai.common.client.dom.Window;
-import org.jboss.errai.enterprise.client.jaxrs.api.RestClient;
-import org.jboss.errai.ioc.client.api.AfterInitialization;
-import org.jboss.errai.ioc.client.api.EntryPoint;
-
-import edu.psu.swe.scim.errai.client.business.common.ListResponse;
-import edu.psu.swe.scim.errai.client.business.resourcetype.ResourceType;
-import edu.psu.swe.scim.errai.client.business.schema.Attribute;
-import edu.psu.swe.scim.errai.client.business.schema.Schema;
-import edu.psu.swe.scim.errai.client.business.scim.ScimServiceProvider;
-
-@EntryPoint
-public class ScimErraiShowcase {
-
- RemoteCallback<ListResponse<ResourceType>> resourceTypesCallaback = r -> showResourceTypeList(r.getResources());
- RemoteCallback<ListResponse<Schema>> schemasCallback = r -> showSchemaList(r.getResources());
-
- Div root;
-
- @AfterInitialization
- public void start() {
- Span label = (Span) Window.getDocument().createElement("span");
- label.setInnerHTML("This is a test");
- root = (Div) Window.getDocument().getElementById("scimErraiShowcase");
- root.appendChild(label);
-
- RestClient.setJacksonMarshallingActive(true);
-
- RestClient.create(ScimServiceProvider.class, schemasCallback, 200).getSchemas();
-
- RestClient.create(ScimServiceProvider.class, resourceTypesCallaback, 200).getResourceTypes();
- }
-
- void showResourceTypeList(List<ResourceType> resourceTypes) {
- resourceTypes.forEach(s -> {
- Div resourceType = (Div) Window.getDocument().createElement("div");
- resourceType.setInnerHTML(s.toString());
- root.appendChild(resourceType);
- });
- }
-
- void showSchemaList(List<Schema> schemas) {
- schemas.forEach(s -> {
- Div schema = (Div) Window.getDocument().createElement("div");
- schema.setInnerHTML(s.getName() + " - " + s.getAttributes().length);
- root.appendChild(schema);
- Stream.of(s.getAttributes()).forEach(a -> root.appendChild(getAttribute(a, "")));
- });
- }
-
- Div getAttribute(Attribute a, String spacer) {
- String adjustedSpacer = spacer + " ";
- Div attribute = (Div) Window.getDocument().createElement("div");
- attribute.appendChild(getSpan(adjustedSpacer));
- attribute.appendChild(getSpan("Name: " + a.getName()));
- attribute.appendChild(getSpan("Type: " + a.getType().name()));
- if(Attribute.Type.COMPLEX.equals(a.getType())) {
- Stream.of(a.getSubAttributes()).forEach(sa -> attribute.appendChild(getAttribute(sa, adjustedSpacer)));
- }
- return attribute;
- }
-
- Span getSpan(String innerHtml) {
- Span spacer = (Span) Window.getDocument().createElement("span");
- spacer.setInnerHTML(innerHtml);
- return spacer;
- }
-
-}
diff --git a/scim-errai/src/main/resources/ErraiApp.properties b/scim-errai/src/main/resources/ErraiApp.properties
deleted file mode 100644
index e69de29..0000000
--- a/scim-errai/src/main/resources/ErraiApp.properties
+++ /dev/null
diff --git a/scim-errai/src/main/resources/edu/psu/swe/scim/errai/ScimErraiComponents.gwt.xml b/scim-errai/src/main/resources/edu/psu/swe/scim/errai/ScimErraiComponents.gwt.xml
deleted file mode 100644
index 2067562..0000000
--- a/scim-errai/src/main/resources/edu/psu/swe/scim/errai/ScimErraiComponents.gwt.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.4//EN"
- "http://google-web-toolkit.googlecode.com/svn/releases/2.4/distro-source/core/src/gwt-module.dtd">
-
-<module>
-
- <inherits name="org.jboss.errai.enterprise.All" />
-
- <set-property name="gwt.logging.enabled" value="TRUE"/>
- <set-property name="gwt.logging.logLevel" value="ALL"/>
-
-</module>
\ No newline at end of file
diff --git a/scim-errai/src/main/resources/edu/psu/swe/scim/errai/ScimErraiShowcase.gwt.xml b/scim-errai/src/main/resources/edu/psu/swe/scim/errai/ScimErraiShowcase.gwt.xml
deleted file mode 100644
index 5305b46..0000000
--- a/scim-errai/src/main/resources/edu/psu/swe/scim/errai/ScimErraiShowcase.gwt.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.4//EN"
- "http://google-web-toolkit.googlecode.com/svn/releases/2.4/distro-source/core/src/gwt-module.dtd">
-
-<module rename-to="ScimErraiShowcase">
-
- <inherits name="org.jboss.errai.enterprise.All" />
- <inherits name="edu.psu.swe.scim.errai.ScimErraiComponents" />
-
- <set-property name="gwt.logging.enabled" value="TRUE" />
- <set-property name="gwt.logging.logLevel" value="ALL" />
-
- <source path="showcase" />
-
-</module>
\ No newline at end of file
diff --git a/scim-errai/src/main/webapp/WEB-INF/beans.xml b/scim-errai/src/main/webapp/WEB-INF/beans.xml
deleted file mode 100644
index 2e3be00..0000000
--- a/scim-errai/src/main/webapp/WEB-INF/beans.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
- version="1.1" bean-discovery-mode="all">
-
- <scan>
- <!-- These exclusions were added by Errai to avoid deploying client-side classes to the server -->
- <!-- End of Errai exclusions -->
- </scan>
-</beans>
diff --git a/scim-errai/src/main/webapp/WEB-INF/web.xml b/scim-errai/src/main/webapp/WEB-INF/web.xml
deleted file mode 100644
index 57b7f06..0000000
--- a/scim-errai/src/main/webapp/WEB-INF/web.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns="http://java.sun.com/xml/ns/javaee"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
- version="3.0">
-
-</web-app>
diff --git a/scim-errai/src/main/webapp/css/application.css b/scim-errai/src/main/webapp/css/application.css
deleted file mode 100644
index 0823b59..0000000
--- a/scim-errai/src/main/webapp/css/application.css
+++ /dev/null
@@ -1,9 +0,0 @@
-.navbar-brand img {
- margin: -7px 5px;
-}
-
-@media(min-width: 768px) {
- .contact {
- height: 350px !important;
- }
-}
diff --git a/scim-errai/src/main/webapp/css/core-newLogo.css b/scim-errai/src/main/webapp/css/core-newLogo.css
deleted file mode 100644
index 329f920..0000000
--- a/scim-errai/src/main/webapp/css/core-newLogo.css
+++ /dev/null
@@ -1 +0,0 @@
-/*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff !important}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#262c3a;text-decoration:none}a:hover,a:focus{color:#08090c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#777}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#262c3a}a.text-primary:hover{color:#12151b}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#262c3a}a.bg-primary:hover{background-color:#12151b}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"]{line-height:34px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:30px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:46px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.form-group-sm .form-control{height:30px;line-height:30px}textarea.form-group-sm .form-control,select[multiple].form-group-sm .form-control{height:auto}.form-group-sm .form-control-static{height:30px;padding:5px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.form-group-lg .form-control{height:46px;line-height:46px}textarea.form-group-lg .form-control,select[multiple].form-group-lg .form-control{height:auto}.form-group-lg .form-control-static{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.333333px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default.focus,.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#262c3a;border-color:#1c202b}.btn-primary:hover,.btn-primary:focus,.btn-primary.focus,.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#12151b;border-color:#040406}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#262c3a;border-color:#1c202b}.btn-primary .badge{color:#262c3a;background-color:#fff}.btn-success{color:#fff;background-color:#085931;border-color:#064224}.btn-success:hover,.btn-success:focus,.btn-success.focus,.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#042a17;border-color:#010905}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#085931;border-color:#064224}.btn-success .badge{color:#085931;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info.focus,.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning.focus,.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger.focus,.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#262c3a;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#08090c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#777;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none;visibility:hidden}.collapse.in{display:block;visibility:visible}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:.35s;transition-duration:.35s;-webkit-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative;cursor:pointer}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#333;white-space:nowrap;cursor:pointer}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#262c3a}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#777}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.dropdown-menu>li>span{display:block;padding:3px 20px}.dropdown-menu>li>span,.dropdown-menu>li>span:hover,.dropdown-menu>li>span:focus{color:#777}.dropdown-menu>li>span:hover,.dropdown-menu>li>span:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:normal;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#777;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#262c3a}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#262c3a}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none;visibility:hidden}.tab-content>.active{display:block;visibility:visible}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:60px;margin-bottom:0;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:0}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block !important;visibility:visible !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:20px 15px;font-size:18px;line-height:20px;height:60px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:13px;margin-bottom:13px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:10px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:20px;padding-bottom:20px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:13px;margin-bottom:13px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:13px;margin-bottom:13px}.navbar-btn.btn-sm{margin-top:15px;margin-bottom:15px}.navbar-btn.btn-xs{margin-top:19px;margin-bottom:19px}.navbar-text{margin-top:20px;margin-bottom:20px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important;float:left}.navbar-right{float:right !important;float:right;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#262c3a;border-color:#191d26}.navbar-default .navbar-brand{color:#97bee5}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#6ea4db;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#97bee5}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#327eca;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#2865a1;background-color:#191d26}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#191d26}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#191d26;color:#2865a1}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#97bee5}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#327eca;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#2865a1;background-color:#191d26}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#97bee5}.navbar-default .navbar-link:hover{color:#327eca}.navbar-default .btn-link{color:#97bee5}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#327eca}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#3580d1;border-color:#3580d1}.navbar-inverse .navbar-brand{color:#fff}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#fff}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#bfbfbf;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#a6a6a6;background-color:#2767ac}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#2a6eb8}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#2767ac;color:#a6a6a6}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#3580d1}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#3580d1}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#fff}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#bfbfbf;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#a6a6a6;background-color:#2767ac}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#fff}.navbar-inverse .navbar-link:hover{color:#bfbfbf}.navbar-inverse .btn-link{color:#fff}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#bfbfbf}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#262c3a;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#08090c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#262c3a;border-color:#262c3a;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#777;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#777;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:rgba(128,128,128,0.5);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:hover,.label-default[href]:focus{background-color:#5e5e5e}.label-primary{background-color:#262c3a}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#12151b}.label-success{background-color:#085931}.label-success[href]:hover,.label-success[href]:focus{background-color:#042a17}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#262c3a;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px 15px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding:48px 0}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#262c3a}.thumbnail .caption{padding:9px;color:#333}.alert{padding:10px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:30px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#262c3a;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#085931}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;color:#555;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#eee;color:#777;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#262c3a;border-color:#262c3a}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#808dac}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#f5f5f5;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#dcdcdc;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#dcdcdc;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#dcdcdc;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#262c3a}.panel-primary>.panel-heading{color:#fff;background-color:#262c3a;border-color:#262c3a}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#262c3a}.panel-primary>.panel-heading .badge{color:#262c3a;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#262c3a}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform 0.3s ease-out;-moz-transition:-moz-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box;outline:0}.modal-backdrop{position:absolute;top:0;right:0;left:0;bottom:0;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;visibility:visible;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-weight:normal;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-weight:normal;line-height:1.42857143;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform 0.6s ease-in-out;-moz-transition:-moz-transform 0.6s ease-in-out;-o-transition:-o-transform 0.6s ease-in-out;transition:transform 0.6s ease-in-out;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;-moz-perspective:1000;perspective:1000}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important;visibility:hidden !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.dropdown-menu>form>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>form>li>a:hover,.dropdown-menu>form>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>form>.active>a,.dropdown-menu>form>.active>a:hover,.dropdown-menu>form>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#262c3a}.dropdown-menu>form>.disabled>a,.dropdown-menu>form>.disabled>a:hover,.dropdown-menu>form>.disabled>a:focus{color:#777}.dropdown-menu>form>.disabled>a:hover,.dropdown-menu>form>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.tt-scrollable .tt-menu{max-height:400px;overflow-y:auto}.twitter-typeahead{width:100%}.tt-query{box-shadow:0 1px 1px rgba(0,0,0,0.075) inset}.tt-hint{color:#999}.tt-header{font-weight:bold}.tt-header>a{font-weight:normal}.tt-header-link{font-size:85%}.tt-dataset>div{padding:0 7px}.tt-menu{text-align:left;background-color:#fff;border:1px solid rgba(0,0,0,0.15);-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);padding:8px 0;width:422px;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.tt-suggestion{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#333;white-space:nowrap}.tt-suggestion:hover,.tt-suggestion:focus,.tt-suggestion.tt-cursor{background-color:#f5f5f5;color:#262626;cursor:pointer;text-decoration:none}.tt-suggestion p{margin:0}#scrollable-dropdown-menu .tt-menu{max-height:150px;overflow-y:auto}#rtl-support .tt-menu{text-align:right}.inner-addon{position:relative}.inner-addon .fa{position:absolute;padding:10px}.left-addon .fa{left:0}.right-addon .fa{right:0}.left-addon input{padding-left:30px}.right-addon input{padding-right:30px}.ml{height:100%;padding:0;background-color:#fff}.ml a{text-decoration:none;cursor:pointer}.ml .panel-size{height:300px}.ml .overflow{overflow-y:auto}.ml .vcenter{display:inline-block;vertical-align:middle;float:none}.ml .no-pad{padding:0}.ml .right-pad{padding-right:7px}.ml .no-pad-r{padding-right:0}.ml .no-pad-l{padding-left:0}.ml .pad-5{padding:5px}.ml .no-marg-b{margin-bottom:0}.ml .no-marg-r{margin-right:0}.ml .border-right{border-right:1px solid #ddd}.ml .border-right{border-right:1px solid #ddd}.ml .border-left{border-left:1px solid #ddd}.ml .borderless tbody tr td,.ml .borderless tbody tr th,.ml .borderless thead tr th{border:none}.ml .plus-sign{float:right;padding-right:5px}.ml .minus-sign{float:right;padding-right:5px}.ml .positive{color:#085931}.ml .positive:hover,.ml .positive:active,.ml .positive.active{color:#042a17}.ml .negative{color:#d9534f}.ml .negative:hover,.ml .negative:active,.ml .negative.active{color:#c9302c}@font-face{font-family:'FontAwesome';src:url("/core-web-interface-examples/javax.faces.resource/fonts/fontawesome-webfont.eot.jsf");src:url("/core-web-interface-examples/javax.faces.resource/fonts/fontawesome-webfont.eot.jsf?#iefix") format('embedded-opentype'),url("/core-web-interface-examples/javax.faces.resource/fonts/fontawesome-webfont.woff2.jsf") format('woff2'),url("/core-web-interface-examples/javax.faces.resource/fonts/fontawesome-webfont.woff.jsf") format('woff'),url("/core-web-interface-examples/javax.faces.resource/fonts/fontawesome-webfont.ttf.jsf") format('truetype'),url("/core-web-interface-examples/javax.faces.resource/fonts/fontawesome-webfont.svg.jsf#fontawesomeregular") format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.checkbox{padding-left:20px}.checkbox label{display:inline-block;vertical-align:middle;position:relative;padding-left:5px}.checkbox label::before{content:"";display:inline-block;position:absolute;width:20px;height:20px;left:0;margin-left:-20px;border:1px solid #ccc;border-radius:3px;background-color:#fff;-webkit-transition:border 0.15s ease-in-out, color 0.15s ease-in-out;-o-transition:border 0.15s ease-in-out, color 0.15s ease-in-out;transition:border 0.15s ease-in-out, color 0.15s ease-in-out}.checkbox label::after{display:inline-block;position:absolute;width:16px;height:16px;left:-1px;top:-8px;margin-left:-20px;padding-left:3px;padding-top:1px;font-size:22px;text-shadow:2px 0 #fff,-2px 0 #fff,0 2px #fff,0 -2px #fff;font-weight:normal;color:#555}.checkbox input[type="checkbox"],.checkbox input[type="radio"]{opacity:0;z-index:1}.checkbox input[type="checkbox"]:focus+label::before,.checkbox input[type="radio"]:focus+label::before{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6)}.checkbox input[type="checkbox"]:checked+label::after,.checkbox input[type="radio"]:checked+label::after{font-family:'FontAwesome';content:"\f00c";line-height:31px}.checkbox input[type="checkbox"]:disabled+label,.checkbox input[type="radio"]:disabled+label{opacity:.65}.checkbox input[type="checkbox"]:disabled+label::before,.checkbox input[type="radio"]:disabled+label::before{background-color:#eee;cursor:not-allowed}.checkbox.checkbox-circle label::before{border-radius:50%}.checkbox.checkbox-inline{margin-top:0}.checkbox-primary input[type="checkbox"]:checked+label::after,.checkbox-primary input[type="radio"]:checked+label::after{color:#262c3a}.checkbox-danger input[type="checkbox"]:checked+label::after,.checkbox-danger input[type="radio"]:checked+label::after{color:#d9534f}.checkbox-info input[type="checkbox"]:checked+label::after,.checkbox-info input[type="radio"]:checked+label::after{color:#5bc0de}.checkbox-warning input[type="checkbox"]:checked+label::after,.checkbox-warning input[type="radio"]:checked+label::after{color:#f0ad4e}.checkbox-success input[type="checkbox"]:checked+label::after,.checkbox-success input[type="radio"]:checked+label::after{color:#085931}.radio{padding-left:20px}.radio label{display:inline-block;vertical-align:middle;position:relative;padding-left:5px}.radio label::before{content:"";display:inline-block;position:absolute;width:17px;height:17px;left:0;margin-left:-20px;border:1px solid #ccc;border-radius:50%;background-color:#fff;-webkit-transition:border .15s ease-in-out;-o-transition:border .15s ease-in-out;transition:border .15s ease-in-out}.radio label::after{display:inline-block;position:absolute;content:" ";width:11px;height:11px;left:3px;top:3px;margin-left:-20px;border-radius:50%;background-color:#555;-webkit-transform:scale(0, 0);-ms-transform:scale(0, 0);-o-transform:scale(0, 0);transform:scale(0, 0);-webkit-transition:-webkit-transform .1s cubic-bezier(.8, -0.33, .2, 1.33);-moz-transition:-moz-transform .1s cubic-bezier(.8, -0.33, .2, 1.33);-o-transition:-o-transform .1s cubic-bezier(.8, -0.33, .2, 1.33);transition:transform .1s cubic-bezier(.8, -0.33, .2, 1.33)}.radio input[type="radio"]{opacity:0;z-index:1}.radio input[type="radio"]:focus+label::before{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.radio input[type="radio"]:checked+label::after{-webkit-transform:scale(1, 1);-ms-transform:scale(1, 1);-o-transform:scale(1, 1);transform:scale(1, 1)}.radio input[type="radio"]:disabled+label{opacity:.65}.radio input[type="radio"]:disabled+label::before{cursor:not-allowed}.radio.radio-inline{margin-top:0}.radio-primary input[type="radio"]+label::after{background-color:#262c3a}.radio-primary input[type="radio"]:checked+label::before{border-color:#262c3a}.radio-primary input[type="radio"]:checked+label::after{background-color:#262c3a}.radio-danger input[type="radio"]+label::after{background-color:#d9534f}.radio-danger input[type="radio"]:checked+label::before{border-color:#d9534f}.radio-danger input[type="radio"]:checked+label::after{background-color:#d9534f}.radio-info input[type="radio"]+label::after{background-color:#5bc0de}.radio-info input[type="radio"]:checked+label::before{border-color:#5bc0de}.radio-info input[type="radio"]:checked+label::after{background-color:#5bc0de}.radio-warning input[type="radio"]+label::after{background-color:#f0ad4e}.radio-warning input[type="radio"]:checked+label::before{border-color:#f0ad4e}.radio-warning input[type="radio"]:checked+label::after{background-color:#f0ad4e}.radio-success input[type="radio"]+label::after{background-color:#085931}.radio-success input[type="radio"]:checked+label::before{border-color:#085931}.radio-success input[type="radio"]:checked+label::after{background-color:#085931}input[type="checkbox"].styled:checked+label:after,input[type="radio"].styled:checked+label:after{font-family:'FontAwesome';content:"\f00c"}input[type="checkbox"] .styled:checked+label::before,input[type="radio"] .styled:checked+label::before{color:#fff}input[type="checkbox"] .styled:checked+label::after,input[type="radio"] .styled:checked+label::after{color:#fff}.dl-spaced dt{line-height:1.5em}.dl-spaced dd{line-height:1.5em}.dl-spaced dd i{font-size:1.3em}.dl-left dt{text-align:left}.dl-wide{margin-bottom:0}.dl-wide dt{width:243px}.dl-wide dd{margin-left:263px}.block{display:block}.pad50-t{padding-top:50px}.marg-t-5{margin-top:5px}.marg-t{margin-top:10px}.marg-t-13{margin-top:13px}.marg-l{margin-left:10px}.marg-t-7{margin:-7px 0 0}.marg-t-30{margin-top:30px}.marg-b-5{margin:0 0 -5px 0}.marg-b{margin-bottom:10px}.marg-b-20{margin-bottom:20px}.marg-r{margin-right:10px}.marg-r-5{margin-right:5px}.marg-all{margin:10px}.marg-none{margin:0}.no-marg-top{margin-top:0}.no-marg-bottom{margin-bottom:0}.pad-t{padding-top:10px}.pad-l{padding-left:10px}.pad-b{padding-bottom:10px}.pad-r{padding-right:10px}.pad-all{padding:10px}.pad-none{padding:0}.pad-r-5{padding-right:5px}.pad-t-5{padding-top:5px}.nopad-l{padding-left:0}@font-face{font-family:'Glyphicons Halflings';src:url("/core-web-interface-examples/javax.faces.resource/fonts/glyphicons-halflings-regular.eot.jsf");src:url("/core-web-interface-examples/javax.faces.resource/fonts/glyphicons-halflings-regular.eot.jsf#iefix") format('embedded-opentype'),url("/core-web-interface-examples/javax.faces.resource/fonts/glyphicons-halflings-regular.woff2.jsf") format('woff2'),url("/core-web-interface-examples/javax.faces.resource/fonts/glyphicons-halflings-regular.woff.jsf") format('woff'),url("/core-web-interface-examples/javax.faces.resource/fonts/glyphicons-halflings-regular.ttf.jsf") format('truetype'),url("/core-web-interface-examples/javax.faces.resource/fonts/glyphicons-halflings-regular.svg.jsf#glyphicons-halflingsregular") format('svg')}.marg-top-26{margin-top:26px}.pre-wrap{white-space:pre-wrap}.panel-group{margin-bottom:0}.panel-title a{cursor:pointer}.panel-title a:hover{text-decoration:none}.z-top{z-index:999}.marg-top-neg-20{margin-top:-20px}.checkbox label.checkbox-well-label{font-weight:bold;font-size:16px;vertical-align:top}.checkbox-well-container{background:#f5f5f5;display:inline-block;margin-left:10px;margin-top:5px;padding-left:9px;padding-right:5px;z-index:999}legend{background-color:inherit;border:medium none;display:inline-block;line-height:1;margin-bottom:2px;padding-left:5px;padding-right:5px;width:auto;font-size:16px;font-weight:bold;margin-left:-15px}.legend-checkbox{font-size:14px;line-height:20px;margin-left:-25px}.wide{width:100%}.wide-400{width:400px}.panel-heading-bg{background-color:#dcdcdc}.body-bg{background-color:#fff}.ellipsis{position:relative}.ellipsis:before{content:' ';visibility:hidden}.ellipsis span{position:absolute;left:0;right:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.height-400{height:400px;overflow-y:auto}.inline-block{display:inline-block}.info-icon{color:#262c3a;cursor:pointer;font-size:1.1em}.hide-form-control{background:inherit;border:medium none;box-shadow:none;padding:0}.noselect{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn.in-menu{font-size:14px;padding:0 10px}.no-text-context{color:#333}.btn.primary-static{background-color:#262c3a}.nohover:hover{color:none;background:none}.default-cursor{cursor:default}.pointer-cursor{cursor:pointer}.resize-vertical{resize:vertical}.resize-horizontal{resize:horizontal}.resize-none{resize:none}.pager-button-size{padding:5px 14px}.btn-header{margin-top:-26px}.no-list-style{list-style-type:none}.navbar-md{min-height:40px}.navbar-md .navbar-brand,.navbar-md .navbar-nav>li>a{padding-top:10px;padding-bottom:10px}.navbar-md .navbar-brand{height:40px}.navbar-md .navbar-toggle{margin:6.06060606px 12.12121212px 6.06060606px 0;padding:6.06060606px 7.01754386px 6.06060606px 7.01754386px}.navbar-md .navbar-toggle .icon-bar{width:20px}.btn-file{position:relative;overflow:hidden}.btn-file input[type=file]{position:absolute;top:0;right:0;min-width:100%;min-height:100%;font-size:100px;text-align:right;filter:alpha(opacity=0);opacity:0;outline:none;background:#fff;cursor:inherit;display:block}input[readonly]{background-color:#fff ! important;cursor:text ! important}@media (max-width:767px){#searchbar>.navbar-form{width:auto;margin-left:0;margin-right:0}.lower-navbar{min-height:0}}@media (min-width:768px){#searchbar>.navbar-form{width:350px}}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{vertical-align:middle}.row-height{line-height:34px;min-height:34px;height:34px}a,tr,button{-moz-transition:all .2s ease-in;-o-transition:all .2s ease-in;-webkit-transition:all .2s ease-in}html{min-height:100%;position:relative}body{margin-bottom:37px}.footer{bottom:0;position:absolute;width:100%;padding:10px}.section{padding-top:60px;margin-top:-60px}.body-padding{padding-top:70px}.no-decoration:hover{text-decoration:none}.table-hover tbody tr td div.table-buttons a{text-decoration:none}.table-hover tbody tr td div.table-buttons{visibility:hidden}.table-hover tbody tr:hover td div.table-buttons{visibility:visible}.navbar-brand{padding:0;margin:29px 0 0}#psumark{display:inline;width:100;height:100;float:left;margin:0 15px 0 0}.site-title{font-family:"Open Sans",sans-serif;font-size:2.8rem;font-weight:300;line-height:1;margin:0 0 .8rem}.site-subtitle{font-size:2rem}.title-area{float:left;font-family:"Open Sans",sans-serif;font-weight:300;color:#ededed;padding:0;margin:26px 0}
diff --git a/scim-errai/src/main/webapp/css/focus.css b/scim-errai/src/main/webapp/css/focus.css
deleted file mode 100644
index ab96e48..0000000
--- a/scim-errai/src/main/webapp/css/focus.css
+++ /dev/null
@@ -1 +0,0 @@
-body{margin:0;padding:0}iframe{display:inline;margin:0;padding:0}.label-closeable a,.label-closeable a:visited{color:#fff}.label-closeable a:hover,.label-closeable a:active{color:#bbb}.bg_red{background-color:#fbb}.bg_orange{background-color:#fdb}.bg_yellow{background-color:#ffb}.bg_green{background-color:#bfb}.bg_aqua{background-color:#bff}.bg_blue{background-color:#bbf}.bg_purple{background-color:#fbf}.bg_grey,.bg_gray{background-color:#bbb}.bg_black{background-color:#000;color:#fff}.led{border-color:#000;border-radius:.5em;border-width:1px;display:inline-block;height:1em;margin-left:5px;vertical-align:middle;width:1em}.led-green{border-color:#000;border-radius:.5em;border-width:1px;display:inline-block;height:1em;margin-left:5px;vertical-align:middle;width:1em;background-color:#0f0;box-shadow:0 0 10px 1px #0f0;border-style:solid}.led-red{border-color:#000;border-radius:.5em;border-width:1px;display:inline-block;height:1em;margin-left:5px;vertical-align:middle;width:1em;background-color:#f00;box-shadow:0 0 10px 1px #f00;border-style:solid}.led-yellow{border-color:#000;border-radius:.5em;border-width:1px;display:inline-block;height:1em;margin-left:5px;vertical-align:middle;width:1em;background-color:#fb0;box-shadow:0 0 10px 1px #fb0;border-style:solid}.search-results-status{width:5%}.search-results-userid{width:14%}.search-results-first-name{width:14%}.search-results-last-name{width:14%}.search-results-email-address{width:25%}.search-results-psuid{width:14%}.search-results-primary-affiliation{width:14%}.bg_red{background-color:#fbb}.bg_orange{background-color:#fdb}.bg_yellow{background-color:#ffb}.bg_green{background-color:#bfb}.bg_aqua{background-color:#bff}.bg_blue{background-color:#bbf}.bg_purple{background-color:#fbf}.bg_grey,.bg_gray{background-color:#bbb}.bg_black{background-color:#000;color:#fff}.status-blue{background-color:#d9edf7;border-color:#85c5e5;border-radius:4px;border-style:solid;border-width:1px;display:inline-block;height:36px;margin:auto;padding-top:3px;text-align:center;vertical-align:center;width:36px}.status-blue span{color:#000;font-family:FontAwesome;font-size:200%}.status-green{background-color:#dff0d8;border-color:#a3d48e;border-radius:4px;border-style:solid;border-width:1px;display:inline-block;height:36px;margin:auto;padding-top:3px;text-align:center;vertical-align:center;width:36px}.status-green span{color:#000;font-family:FontAwesome;font-size:200%}.status-grey{background-color:#ddd;border-color:#aaa;border-radius:4px;border-style:solid;border-width:1px;display:inline-block;height:36px;margin:auto;padding-top:3px;text-align:center;vertical-align:center;width:36px}.status-grey span{color:#000;font-family:FontAwesome;font-size:200%}.status-red{background-color:#f2dede;border-color:#d59595;border-radius:4px;border-style:solid;border-width:1px;display:inline-block;height:36px;margin:auto;padding-top:3px;text-align:center;vertical-align:center;width:36px}.status-red span{color:#000;font-family:FontAwesome;font-size:200%}.status-yellow{background-color:#fcf8e3;border-color:#f2e187;border-radius:4px;border-style:solid;border-width:1px;display:inline-block;height:36px;margin:auto;padding-top:3px;text-align:center;vertical-align:center;width:36px}.status-yellow span{color:#000;font-family:FontAwesome;font-size:200%}.tagged-text-box{font-size:14px;vertical-align:baseline}.tagged-text-box .label{font-size:inherit}.tagged-text-box input[type=text]{background-color:inherit;border-style:none}.form-control{font-size:14px;width:100%;vertical-align:baseline}.form-control .label{font-size:inherit;margin-right:8px}.form-control input[type=text]{background-color:inherit;border-style:none}.bg_red{background-color:#fbb}.bg_orange{background-color:#fdb}.bg_yellow{background-color:#ffb}.bg_green{background-color:#bfb}.bg_aqua{background-color:#bff}.bg_blue{background-color:#bbf}.bg_purple{background-color:#fbf}.bg_grey,.bg_gray{background-color:#bbb}.bg_black{background-color:#000;color:#fff}.token-field input{width:100%}#searchInput,#searchDebug,#workspace{width:100%}
diff --git a/scim-errai/src/main/webapp/css/tc.css b/scim-errai/src/main/webapp/css/tc.css
deleted file mode 100644
index 3ecafed..0000000
--- a/scim-errai/src/main/webapp/css/tc.css
+++ /dev/null
@@ -1,8 +0,0 @@
-
-alert-panel {
- margin: 20px 15px 0 15px;
-}
-
-#entry-view {
- margin-top: 15px;
-}
\ No newline at end of file
diff --git a/scim-errai/src/main/webapp/img/PS_HOR_REV_RGB_2C.png b/scim-errai/src/main/webapp/img/PS_HOR_REV_RGB_2C.png
deleted file mode 100644
index 8f24c8a..0000000
--- a/scim-errai/src/main/webapp/img/PS_HOR_REV_RGB_2C.png
+++ /dev/null
Binary files differ
diff --git a/scim-errai/src/main/webapp/img/university-mark2.jpeg b/scim-errai/src/main/webapp/img/university-mark2.jpeg
deleted file mode 100644
index 78f0327..0000000
--- a/scim-errai/src/main/webapp/img/university-mark2.jpeg
+++ /dev/null
Binary files differ
diff --git a/scim-errai/src/main/webapp/index.html b/scim-errai/src/main/webapp/index.html
deleted file mode 100644
index 80ce820..0000000
--- a/scim-errai/src/main/webapp/index.html
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="UTF-8">
-
-<!-- Setup proper rendering with touch-zooming -->
-<meta name="viewport" content="width=device-width, initial-scale=1">
-
-<!-- Properties can be specified to influence deferred binding -->
-<meta name='gwt:property' content='locale=en_UK'>
-
-<meta http-equiv="cache-control" content="max-age=0" />
-<meta http-equiv="cache-control" content="no-cache" />
-<meta http-equiv="expires" content="0" />
-<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
-<meta http-equiv="pragma" content="no-cache" />
-
-<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
-
-<!-- Latest compiled and minified JavaScript -->
-<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
-
-<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
-
-<!-- Stylesheets are optional, but useful -->
-<link rel="stylesheet" href="css/core-newLogo.css">
-<link rel="stylesheet" href="css/tc.css">
-
-<!-- Titles are optional, but useful -->
-<title>SCIM Errai - Component Showcase</title>
-
- <script type="text/javascript">
- erraiBusRemoteCommunicationEnabled = false;
- </script>
- <script type="text/javascript">
- erraiJaxRsApplicationRoot = "https://scim.psu.edu/tier";
- </script>
-
- <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
- <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
-
-</head>
-<body>
-
- <div id="scimErraiShowcase"></div>
-
- <!-- This script tag is what actually loads the GWT module. The -->
- <!-- 'nocache.js' file (also called a "selection script") is -->
- <!-- produced by the GWT compiler in the module output directory -->
- <!-- or generated automatically in development mode. -->
- <script type="text/javascript" src="ScimErraiShowcase/ScimErraiShowcase.nocache.js"></script>
-
- <!-- Include a history iframe to enable full GWT history support -->
- <!-- (the id must be exactly as shown) -->
- <iframe src="javascript:''" id="__gwt_historyFrame" style="width: 0; height: 0; border: 0"></iframe>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/scim-errai/src/test/resources/resource-types.json b/scim-errai/src/test/resources/resource-types.json
deleted file mode 100644
index 2603d8e..0000000
--- a/scim-errai/src/test/resources/resource-types.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "totalResults": 2,
- "startIndex": 1,
- "itemsPerPage": 2,
- "schemas": [
- "urn:ietf:params:scim:api:messages:2.0:ListResponse"
- ],
- "Resources": [
- {
- "meta": {
- "resourceType": "ResourceType",
- "location": "http://scim.psu.edu/tier/v2/ResourceTypes/Group"
- },
- "id": "Group",
- "name": "Group",
- "description": "Top level ScimGroup",
- "endpoint": "/Groups",
- "schemas": [
- "urn:ietf:params:scim:schemas:core:2.0:ResourceType"
- ],
- "schema": "urn:ietf:params:scim:schemas:core:2.0:Group"
- },
- {
- "meta": {
- "resourceType": "ResourceType",
- "location": "http://scim.psu.edu/tier/v2/ResourceTypes/User"
- },
- "id": "User",
- "name": "User",
- "description": "Top level ScimUser",
- "endpoint": "/Users",
- "schemaExtensions": [
- {
- "required": false,
- "schema": "urn:internet2:params:scim:schemas:EduPersonExtension"
- },
- {
- "required": false,
- "schema": "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"
- }
- ],
- "schemas": [
- "urn:ietf:params:scim:schemas:core:2.0:ResourceType"
- ],
- "schema": "urn:ietf:params:scim:schemas:core:2.0:User"
- }
- ]
-}
\ No newline at end of file
diff --git a/scim-errai/src/test/resources/schemas.json b/scim-errai/src/test/resources/schemas.json
deleted file mode 100644
index 8191c49..0000000
--- a/scim-errai/src/test/resources/schemas.json
+++ /dev/null
@@ -1,1854 +0,0 @@
-{
- "totalResults": 4,
- "startIndex": 1,
- "itemsPerPage": 4,
- "schemas":
- [
- "urn:ietf:params:scim:api:messages:2.0:ListResponse"
- ],
- "Resources":
- [
- {
- "id": "urn:ietf:params:scim:schemas:core:2.0:Group",
- "name": "Group",
- "description": "Top level ScimGroup",
- "attributes":
- [
- {
- "name": "displayName",
- "type": "STRING",
- "multiValued": false,
- "description": "A human-readable name for the Group.",
- "required": true,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "members",
- "type": "COMPLEX",
- "subAttributes":
- [
- {
- "name": "value",
- "type": "STRING",
- "multiValued": false,
- "description": "Reference Element Identifier",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "ref",
- "type": "STRING",
- "multiValued": false,
- "description": "The URI of the corresponding resource ",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE",
- "referenceTypes":
- [
- "User",
- "Group"
- ]
- },
- {
- "name": "display",
- "type": "STRING",
- "multiValued": false,
- "description": "A human readable name, primarily used for display purposes. READ-ONLY.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "type",
- "type": "REFERENCE",
- "multiValued": false,
- "description": "A label indicating the attribute's function; e.g., 'direct' or 'indirect'.",
- "required": false,
- "canonicalValues":
- [
- "indirect",
- "direct"
- ],
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- }
- ],
- "multiValued": true,
- "description": "A list of members of the Group.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "meta",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": false,
- "description": "",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "ALWAYS",
- "uniqueness": "NONE"
- },
- {
- "name": "id",
- "type": "STRING",
- "multiValued": false,
- "description": "",
- "required": true,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "ALWAYS",
- "uniqueness": "NONE"
- },
- {
- "name": "externalId",
- "type": "STRING",
- "multiValued": false,
- "description": "",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- }
- ],
- "meta":
- {
- "resourceType": "Schema",
- "location": "http://scim.psu.edu/tier/v2/Schemas/urn:ietf:params:scim:schemas:core:2.0:Group"
- }
- },
- {
- "id": "urn:internet2:params:scim:schemas:EduPersonExtension",
- "name": "EduPersonExtension",
- "description": "Eduperson extension",
- "attributes":
- [
- {
- "name": "eduPersonAffiliation",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "Specifies the person's relationship(s) to the institution in broad categories such as student, faculty, staff, alum, etc. (See controlled vocabulary). Notes If there is a value in eduPersonPrimaryAffiliation, that value MUST be asserted here as well.",
- "required": false,
- "canonicalValues":
- [
- "library-walk-in",
- "student",
- "member",
- "staff",
- "affiliate",
- "employee",
- "alum",
- "faculty"
- ],
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "eduPersonEntitlement",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "URI (either URN or URL) that indicates a set of rights to specific resources.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "eduPersonNickname",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "Person's nickname, or the informal name by which they are accustomed to be hailed.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "eduPersonOrgDN",
- "type": "STRING",
- "multiValued": false,
- "description": "The distinguished name (DN) of the directory entry representing the institution with which the person is associated. LDAP example eduPersonOrgDN: o=Hogwarts, dc=hsww, dc=wiz",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "eduPersonOrgUnitDN",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "The distinguished name(s) (DN) of the directory entries representing the person's Organizational Unit(s). May be multivalued, as for example, in the case of a faculty member with appointments in multiple departments or a person who is a student in one department and an employee in another. LDAP Example - eduPersonOrgUnitDN: ou=Potions, o=Hogwarts, dc=hsww, dc=wiz",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "eduPersonPrimaryAffiliation",
- "type": "STRING",
- "multiValued": false,
- "description": "Person's nickname, or the informal name by which they are accustomed to be hailed. LDAP Example - eduPersonPrimaryAffiliation: student",
- "required": false,
- "canonicalValues":
- [
- "library-walk-in",
- "student",
- "member",
- "staff",
- "affiliate",
- "employee",
- "alum",
- "faculty"
- ],
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "eduPersonPrimaryOrgUnitDN",
- "type": "STRING",
- "multiValued": false,
- "description": "The distinguished name (DN) of the directory entry representing the person's primary Organizational Unit(s). LDAP example - eduPersonPrimaryOrgUnitDN: ou=Music Department, o=Notre Dame, dc=nd, dc=edu",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "eduPersonPrincipalName",
- "type": "STRING",
- "multiValued": false,
- "description": "A scoped identifier for a person. It should be represented in the form \"user@scope\" where 'user' is a name-based identifier for the person and where the \"scope\" portion MUST be the administrative domain of the identity system where the identifier was created and assigned. Each value of 'scope' defines a namespace within which the assigned identifiers MUST be unique. Given this rule, if two eduPersonPrincipalName (ePPN) values are the same at a given point in time, they refer to the same person. There must be one and only one \"@\" sign in valid values of eduPersonPrincipalName. LDAP example - eduPersonPrincipalName: hputter@hsww.wiz",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "eduPersonPrincipalNamePrior",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "Each value of this multi-valued attribute represents an ePPN (eduPersonPrincipalName) value that was previously associated with the entry. The values MUST NOT include the currently valid ePPN value. There is no implied or assumed order to the values. This attribute MUST NOT be populated if ePPN values are ever reassigned to a different entry (after, for example, a period of dormancy). That is, they MUST be unique in space and over time. LDAP example - eduPersonPrincipalNamePrior: foo@hsww.wiz",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "eduPersonScopedAffiliation",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "Specifies the person's affiliation within a particular security domain in broad categories such as student, faculty, staff, alum, etc. The values consist of a left and right component separated by an \"@\" sign. The left component is one of the values from the eduPersonAffiliation controlled vocabulary.This right-hand side syntax of eduPersonScopedAffiliation intentionally matches that used for the right-hand side values for eduPersonPrincipalName. The \"scope\" portion MUST be the administrative domain to which the affiliation applies. Multiple \"@\" signs are not recommended, but in any case, the first occurrence of the \"@\" sign starting from the left is to be taken as the delimiter between components. Thus, user identifier is to the left, security domain to the right of the first \"@\". This parsing rule conforms to the POSIX \"greedy\" disambiguation method in regular expression processing. LDAP exapmple - eduPersonScopedAffiliation: faculty@cs.berkeley.edu",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "eduPersonTargetedID",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "A persistent, non-reassigned, opaque identifier for a principal.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "eduPersonAssurance",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "Set of URIs that assert compliance with specific standards for identity assurance. LDAP example - eduPersonAssurance: urn:mace:incommon:IAQ:sample",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "eduPersonUniqueId",
- "type": "STRING",
- "multiValued": false,
- "description": " A long-lived, non re-assignable, omnidirectional identifier suitable for use as a principal identifier by authentication providers or as a unique external key by applications. LDAP example - eduPersonUniqueId: 28c5353b8bb34984a8bd4169ba94c606@foo.edu",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "eduPersonOrcid",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "ORCID iDs are persistent digital identifiers for individual researchers. Their primary purpose is to unambiguously and definitively link them with their scholarly work products. ORCID iDs are assigned, managed and maintained by the ORCID organization. LDAP example - eduPersonOrcid: http://orcid.org/0000-0002-1825-0097",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "audio",
- "type": "STRING",
- "multiValued": false,
- "description": "RFC1274 notes that the proprietary format they recommend is \"interim\" only.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "cn",
- "type": "STRING",
- "multiValued": false,
- "description": "Common name.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "description",
- "type": "STRING",
- "multiValued": false,
- "description": "Open-ended; whatever the person or the directory manager puts here. According to RFC4519, \"The 'description' attribute type contains human-readable descriptive phrases about the object. Each description is one value of this multi-valued attribute.\" LDIF example - description: A jolly good felon",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "displayName",
- "type": "STRING",
- "multiValued": false,
- "description": "The name(s) that should appear in white-pages-like applications for this person. LDIF example - displayName: Jack Dougherty",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "facsimileTelephoneNumber",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "According to RFC4519: \"The 'facsimileTelephoneNumber' attribute type contains telephone numbers (and, optionally, the parameters) for facsimile terminals. Each telephone number is one value of this multi-valued attribute.\" LDIF example - facsimileTelephoneNumber: +44 71 123 4567",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "givenName",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "From RFC4519 description:\"The 'givenName' attribute type contains name strings that are the part of a person's name that is not their surname. Each string is one value of this multi-valued attribute.\" LDIF example - givenName: Stephen",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "homePhone",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "From RFC1274 description: \"The [homePhone] attribute type specifies a home telephone number associated with a person.\" LDIF example - homePhone: +1 608 555 1212",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "homePostalAddress",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "From RFC1274 description: \"The Home postal address attribute type specifies a home postal address for an object. This should be limited to up to 6 lines of 30 characters each.\" LDIF example - homePostalAddress: 1212 Como Ave.$Midton, SD 45621$USA",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "initials",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "From RFC4519 description: \"The 'initials' attribute type contains strings of initials of some or all of an individual's names, except the surname(s). Each string is one value of this multi-valued attribute.\" LDIF example - initials: f x",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "jpegPhoto",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "Follow inetOrgPerson definition of RFC2798: \"Used to store one or more images of a person using the JPEG File Interchange Format [JFIF].\"",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "locality",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "locality name. LDIF example - l: Hudson Valley",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "labeledURI",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "Follow inetOrgPerson definition of RFC2079: \"Uniform Resource Identifier with optional label.\" LDIF example - labeledURI: http://www.hsww.wiz/%7Eputter Harry's home page",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "mail",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "From RFC4524: The 'mail' (rfc822mailbox) attribute type holds Internet mail addresses in Mailbox [RFC2821] form (e.g., user@example.com). LDIF example - mail: dumbledore@hsww.wiz",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "manager",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "From RFC4524: \"The 'manager' attribute specifies managers, by distinguished name, of the person (or entity).\" LDIF example - manager: uid=twilliams, ou=people, dc=hobart, dc=edu",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "mobile",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "From RFC4524: \"The 'mobile' (mobileTelephoneNumber) attribute specifies mobile telephone numbers (e.g., \"+1 775 555 6789\") associated with a person (or entity).\" LDIF example - mobile: +47 22 44 66 88",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "o",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "Standard name of the top-level organization (institution) with which this person is associated. LDIF example - o: St. Cloud State",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "ou",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "Organizational unit(s). According to X.520(2000), \"The Organizational Unit Name attribute type specifies an organizational unit. When used as a component of a directory name it identifies an organizational unit with which the named object is affiliated. The designated organizational unit is understood to be part of an organization designated by an OrganizationName [o] attribute. It follows that if an Organizational Unit Name attribute is used in a directory name, it must be associated with an OrganizationName [o] attribute. An attribute value for Organizational Unit Name is a string chosen by the organization of which it is a part.\" LDIF example - ou: Faculty Senate",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "pager",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "From RFC4524: \"The 'pager' (pagerTelephoneNumber) attribute specifies pager telephone numbers (e.g., \"+1 775 555 5555\") for an object.\" LDIF example - pager: +1 202 555 4321",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "postalAddress",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "Campus or office address. inetOrgPerson has a homePostalAddress that complements this attribute. X.520(2000) reads: \"The Postal Address attribute type specifies the address information required for the physical postal delivery to an object.\" LDIF example - postalAddress: P.O. Box 333$Whoville, WH 99999$USA",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "postalCode",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "Follow X.500(2001): \"The postal code attribute type specifies the postal code of the named object. If this attribute\" LDIF example - postalCode: 54321",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "postOfficeBox",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "From RFC4519: \"The 'postOfficeBox' attribute type contains postal box identifiers that a Postal Service uses when a customer arranges to receive mail at a box on the premises of the Postal Service. Each postal box identifier is a single value of this multi-valued attribute.\" SCIM example - postOfficeBox: 109260",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "preferredLanguage",
- "type": "STRING",
- "multiValued": false,
- "description": "Follow inetOrgPerson definition of RFC2798: \"preferred written or spoken language for a person.\" LDIF example - preferredLanguage: EO",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "seeAlso",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "From RFC4519: The 'seeAlso' attribute type contains the distinguished names of objects that are related to the subject object. Each related object name is one value of this multi-valued attribute.\" LDIF example - seeAlso: cn=Department Chair, ou=physics, o=University of Technology, dc=utech, dc=ac, dc=uk",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "sn",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "Surname or family name. From RFC4519: \"The 'sn' ('surname' in X.500) attribute type contains name strings for the family names of a person. Each string is one value of this multi-valued attribute.\" LDIF example - sn: Carson-Smith",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "st",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "Abbreviation for state or province name. LDIF example - st: IL",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "street",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "From RFC4519: \"The 'street' ('streetAddress' in X.500) attribute type contains site information from a postal address (i.e., the street name, place, avenue, and the house number). Each street is one value of this multi-valued attribute.\" LDIF example - street: 303 Mulberry St",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "telephoneNumber",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "Office/campus phone number. Attribute values should comply with the international format specified in ITU Recommendation E.123: e.g., \"+44 71 123 4567.\" LDIF example - telephoneNumber: +1 212 555 1234",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "title",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "From RFC4519: \"The 'title' attribute type contains the title of a person in their organizational context. Each title is one value of this multi-valued attribute.\" LDIF example - title: Assistant Vice-Deputy for Redundancy Reduction",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "uid",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "From RFC4519: \"The 'uid' ('userid' in RFC1274) attribute type contains computer system login names associated with the object. Each name is one value of this multi-valued attribute.\" LDIF example - uid: gmettes",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "uniqueIdentifier",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "From RFC4524: \"The 'uniqueIdentifier' attribute specifies a unique identifier for an object represented in the Directory. The domain within which the identifier is unique and the exact semantics of the identifier are for local definition. For a person, this might be an institution- wide payroll number. For an organizational unit, it might be a department code.\"",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "userCertificate",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "A user's X.509 certificate.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "userPassword",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "This attribute identifies the entry's password and encryption method in the following format: {encryption method}encrypted password.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "NEVER",
- "uniqueness": "NONE"
- },
- {
- "name": "userSMIMECertificate",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "An X.509 certificate specifically for use in S/MIME applications (see RFCs 2632, 2633 and 2634).",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "x500uniqueIdentifier",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": true,
- "description": "Defined originally in X.509(96) and included in RFC2256.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- }
- ],
- "meta":
- {
- "resourceType": "Schema",
- "location": "http://scim.psu.edu/tier/v2/Schemas/urn:internet2:params:scim:schemas:EduPersonExtension"
- }
- },
- {
- "id": "urn:ietf:params:scim:schemas:core:2.0:User",
- "name": "User",
- "description": "Top level ScimUser",
- "attributes":
- [
- {
- "name": "active",
- "type": "BOOLEAN",
- "multiValued": false,
- "description": "A Boolean value indicating the User's administrative status.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "addresses",
- "type": "COMPLEX",
- "subAttributes":
- [
- {
- "name": "type",
- "type": "STRING",
- "multiValued": false,
- "description": "A label indicating the attribute's function; e.g., 'aim', 'gtalk', 'mobile' etc.",
- "required": false,
- "canonicalValues":
- [
- "other",
- "work",
- "home"
- ],
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "display",
- "type": "STRING",
- "multiValued": false,
- "description": "A human readable name, primarily used for display purposes. READ-ONLY.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "primary",
- "type": "BOOLEAN",
- "multiValued": false,
- "description": "A Boolean value indicating the 'primary' or preferred attribute value for this attribute, e.g. the preferred mailing address or primary e-mail address. The primary attribute value 'true' MUST appear no more than once.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "country",
- "type": "STRING",
- "multiValued": false,
- "description": "The two letter ISO 3166-1 alpha-2 country code",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "formatted",
- "type": "STRING",
- "multiValued": false,
- "description": "The full mailing address, formatted for display or use with a mailing label. This attribute MAY contain newlines.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "locality",
- "type": "STRING",
- "multiValued": false,
- "description": "The city or locality component.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "postalCode",
- "type": "STRING",
- "multiValued": false,
- "description": "The zipcode or postal code component.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "region",
- "type": "STRING",
- "multiValued": false,
- "description": "The state or region component.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "streetAddress",
- "type": "STRING",
- "multiValued": false,
- "description": "The full street address component, which may include house number, street name, PO BOX, and multi-line extended street address information. This attribute MAY contain newlines.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- }
- ],
- "multiValued": true,
- "description": "A physical mailing address for this User, as described in (address Element). Canonical Type Values of work, home, and other. The value attribute is a complex type with the following sub-attributes.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "displayName",
- "type": "STRING",
- "multiValued": false,
- "description": "The name of the User, suitable for display to end-users. The name SHOULD be the full name of the User being described if known",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "emails",
- "type": "COMPLEX",
- "subAttributes":
- [
- {
- "name": "type",
- "type": "STRING",
- "multiValued": false,
- "description": "A label indicating the attribute's function; e.g., 'work' or 'home'.",
- "required": false,
- "canonicalValues":
- [
- "other",
- "work",
- "home"
- ],
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "value",
- "type": "STRING",
- "multiValued": false,
- "description": "E-mail addresses for the user. The value SHOULD be canonicalized by the Service Provider, e.g. bjensen@example.com instead of bjensen@EXAMPLE.COM. Canonical Type values of work, home, and other.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "display",
- "type": "STRING",
- "multiValued": false,
- "description": "A human readable name, primarily used for display purposes. READ-ONLY.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "primary",
- "type": "BOOLEAN",
- "multiValued": false,
- "description": "A Boolean value indicating the 'primary' or preferred attribute value for this attribute, e.g. the preferred mailing address or primary e-mail address. The primary attribute value 'true' MUST appear no more than once.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- }
- ],
- "multiValued": true,
- "description": "E-mail addresses for the user. The value SHOULD be canonicalized by the Service Provider, e.g. bjensen@example.com instead of bjensen@EXAMPLE.COM. Canonical Type values of work, home, and other.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "entitlements",
- "type": "COMPLEX",
- "subAttributes":
- [
- {
- "name": "type",
- "type": "STRING",
- "multiValued": false,
- "description": "A label indicating the attribute's function.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "value",
- "type": "STRING",
- "multiValued": false,
- "description": "The value of an entitlement.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "display",
- "type": "STRING",
- "multiValued": false,
- "description": "A human readable name, primarily used for display purposes. READ-ONLY.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "primary",
- "type": "BOOLEAN",
- "multiValued": false,
- "description": "A Boolean value indicating the 'primary' or preferred attribute value for this attribute, e.g. the preferred mailing address or primary e-mail address. The primary attribute value 'true' MUST appear no more than once.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- }
- ],
- "multiValued": true,
- "description": "Get the description",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "groups",
- "type": "COMPLEX",
- "subAttributes":
- [
- {
- "name": "value",
- "type": "STRING",
- "multiValued": false,
- "description": "Reference Element Identifier",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "ref",
- "type": "STRING",
- "multiValued": false,
- "description": "The URI of the corresponding resource ",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE",
- "referenceTypes":
- [
- "User",
- "Group"
- ]
- },
- {
- "name": "display",
- "type": "STRING",
- "multiValued": false,
- "description": "A human readable name, primarily used for display purposes. READ-ONLY.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "type",
- "type": "REFERENCE",
- "multiValued": false,
- "description": "A label indicating the attribute's function; e.g., 'direct' or 'indirect'.",
- "required": false,
- "canonicalValues":
- [
- "indirect",
- "direct"
- ],
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- }
- ],
- "multiValued": true,
- "description": "A list of groups that the user belongs to, either thorough direct membership, nested groups, or dynamically calculated",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "ims",
- "type": "COMPLEX",
- "subAttributes":
- [
- {
- "name": "type",
- "type": "STRING",
- "multiValued": false,
- "description": "A label indicating the attribute's function; e.g., 'aim', 'gtalk', 'mobile' etc.",
- "required": false,
- "canonicalValues":
- [
- "qq",
- "skype",
- "qtalk",
- "aim",
- "icq",
- "yahoo",
- "msn",
- "xmpp"
- ],
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "value",
- "type": "STRING",
- "multiValued": false,
- "description": "Instant messaging address for the User.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "display",
- "type": "STRING",
- "multiValued": false,
- "description": "A human readable name, primarily used for display purposes. READ-ONLY.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "primary",
- "type": "BOOLEAN",
- "multiValued": false,
- "description": "A Boolean value indicating the 'primary' or preferred attribute value for this attribute, e.g. the preferred mailing address or primary e-mail address. The primary attribute value 'true' MUST appear no more than once.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- }
- ],
- "multiValued": true,
- "description": "Instant messaging address for the User.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "locale",
- "type": "STRING",
- "multiValued": false,
- "description": "Used to indicate the User's default location for purposes of localizing items such as currency, date time format, numerical representations, etc.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "name",
- "type": "COMPLEX",
- "subAttributes":
- [
- {
- "name": "formatted",
- "type": "STRING",
- "multiValued": false,
- "description": "The full name, including all middle names, titles, and suffixes as appropriate, formatted for display (e.g. Ms. Barbara J Jensen, III.).",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "familyName",
- "type": "STRING",
- "multiValued": false,
- "description": "The family name of the User, or Last Name in most Western languages (e.g. Jensen given the full name Ms. Barbara J Jensen, III.).",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "givenName",
- "type": "STRING",
- "multiValued": false,
- "description": "The given name of the User, or First Name in most Western languages (e.g. Barbara given the full name Ms. Barbara J Jensen, III.).",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "middleName",
- "type": "STRING",
- "multiValued": false,
- "description": "The middle name(s) of the User (e.g. Robert given the full name Ms. Barbara J Jensen, III.).",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "honorificPrefix",
- "type": "STRING",
- "multiValued": false,
- "description": "The honorific prefix(es) of the User, or Title in most Western languages (e.g. Ms. given the full name Ms. Barbara J Jensen, III.).",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "honorificSuffix",
- "type": "STRING",
- "multiValued": false,
- "description": "The honorific suffix(es) of the User, or Suffix in most Western languages (e.g. III. given the full name Ms. Barbara J Jensen, III.).",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- }
- ],
- "multiValued": false,
- "description": "The components of the user's real name. Providers MAY return just the full name as a single string in the formatted sub-attribute, or they MAY return just the individual component attributes using the other sub-attributes, or they MAY return both. If both variants are returned, they SHOULD be describing the same name, with the formatted name indicating how the component attributes should be combined.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "nickName",
- "type": "STRING",
- "multiValued": false,
- "description": "The casual way to address the user in real life, e.g.'Bob' or 'Bobby' instead of 'Robert'. This attribute SHOULD NOT be used to represent a User's username (e.g. bjensen or mpepperidge)",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "password",
- "type": "STRING",
- "multiValued": false,
- "description": "The User's clear text password. This attribute is intended to be used as a means to specify an initial password when creating a new User or to reset an existing User's password.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "NEVER",
- "uniqueness": "NONE"
- },
- {
- "name": "phoneNumbers",
- "type": "COMPLEX",
- "subAttributes":
- [
- {
- "name": "value",
- "type": "STRING",
- "multiValued": false,
- "description": "Phone number of the User",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "display",
- "type": "STRING",
- "multiValued": false,
- "description": "A human readable name, primarily used for display purposes. READ-ONLY.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "type",
- "type": "STRING",
- "multiValued": false,
- "description": "A label indicating the attribute's function; e.g., 'work' or 'home' or 'mobile' etc.",
- "required": false,
- "canonicalValues":
- [
- "other",
- "pager",
- "work",
- "mobile",
- "fax",
- "home"
- ],
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "primary",
- "type": "BOOLEAN",
- "multiValued": false,
- "description": "A Boolean value indicating the 'primary' or preferred attribute value for this attribute, e.g. the preferred phone number or primary phone number. The primary attribute value 'true' MUST appear no more than once.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- }
- ],
- "multiValued": true,
- "description": "Phone numbers for the User. The value SHOULD be canonicalized by the Service Provider according to format in RFC3966 e.g. 'tel:+1-201-555-0123'. Canonical Type values of work, home, mobile, fax, pager and other.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "photos",
- "type": "COMPLEX",
- "subAttributes":
- [
- {
- "name": "value",
- "type": "STRING",
- "multiValued": false,
- "description": "URL of a photo of the User.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE",
- "referenceTypes":
- [
- "external"
- ]
- },
- {
- "name": "type",
- "type": "STRING",
- "multiValued": false,
- "description": "A label indicating the attribute's function; e.g., 'photo' or 'thumbnail'.",
- "required": false,
- "canonicalValues":
- [
- "thumbnail",
- "photo"
- ],
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "display",
- "type": "STRING",
- "multiValued": false,
- "description": "A human readable name, primarily used for display purposes. READ-ONLY.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "primary",
- "type": "BOOLEAN",
- "multiValued": false,
- "description": "A Boolean value indicating the 'primary' or preferred attribute value for this attribute, e.g. the preferred mailing address or primary e-mail address. The primary attribute value 'true' MUST appear no more than once.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- }
- ],
- "multiValued": true,
- "description": "URLs of photos of the User.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "profileUrl",
- "type": "STRING",
- "multiValued": false,
- "description": "A fully qualified URL to a page representing the User's online profile",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE",
- "referenceTypes":
- [
- "external"
- ]
- },
- {
- "name": "preferredLanguage",
- "type": "STRING",
- "multiValued": false,
- "description": "Indicates the User's preferred written or spoken language. Generally used for selecting a localized User interface. e.g., 'en_US' specifies the language English and country US.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "roles",
- "type": "COMPLEX",
- "subAttributes":
- [
- {
- "name": "type",
- "type": "STRING",
- "multiValued": false,
- "description": "A label indicating the attribute's function.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "value",
- "type": "STRING",
- "multiValued": false,
- "description": "The value of a role.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "display",
- "type": "STRING",
- "multiValued": false,
- "description": "A human readable name, primarily used for display purposes. READ-ONLY.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "primary",
- "type": "BOOLEAN",
- "multiValued": false,
- "description": "A Boolean value indicating the 'primary' or preferred attribute value for this attribute, e.g. the preferred mailing address or primary e-mail address. The primary attribute value 'true' MUST appear no more than once.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- }
- ],
- "multiValued": true,
- "description": "A list of roles for the User that collectively represent who the User is; e.g., 'Student', 'Faculty'.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "timezone",
- "type": "STRING",
- "multiValued": false,
- "description": "The User's time zone in the 'Olson' timezone database format; e.g.,'America/Los_Angeles'",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "title",
- "type": "STRING",
- "multiValued": false,
- "description": "The user's title, such as \"Vice President.\"",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "userName",
- "type": "STRING",
- "multiValued": false,
- "description": "Unique identifier for the User typically used by the user to directly authenticate to the service provider. Each User MUST include a non-empty userName value. This identifier MUST be unique across the Service Consumer's entire set of Users. REQUIRED",
- "required": true,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "SERVER"
- },
- {
- "name": "userType",
- "type": "STRING",
- "multiValued": false,
- "description": "Used to identify the organization to user relationship. Typical values used might be 'Contractor', 'Employee', 'Intern', 'Temp', 'External', and 'Unknown' but any value may be used.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "x509Certificates",
- "type": "COMPLEX",
- "subAttributes":
- [
- {
- "name": "type",
- "type": "STRING",
- "multiValued": false,
- "description": "A label indicating the attribute's function.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "value",
- "type": "STRING",
- "multiValued": false,
- "description": "The value of a X509 certificate.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "display",
- "type": "STRING",
- "multiValued": false,
- "description": "A human readable name, primarily used for display purposes. READ-ONLY.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "primary",
- "type": "BOOLEAN",
- "multiValued": false,
- "description": "A Boolean value indicating the 'primary' or preferred attribute value for this attribute, e.g. the preferred mailing address or primary e-mail address. The primary attribute value 'true' MUST appear no more than once.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- }
- ],
- "multiValued": true,
- "description": "A list of certificates issued to the User.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "meta",
- "type": "COMPLEX",
- "subAttributes":
- [
-
- ],
- "multiValued": false,
- "description": "",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "ALWAYS",
- "uniqueness": "NONE"
- },
- {
- "name": "id",
- "type": "STRING",
- "multiValued": false,
- "description": "",
- "required": true,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "ALWAYS",
- "uniqueness": "NONE"
- },
- {
- "name": "externalId",
- "type": "STRING",
- "multiValued": false,
- "description": "",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- }
- ],
- "meta":
- {
- "resourceType": "Schema",
- "location": "http://scim.psu.edu/tier/v2/Schemas/urn:ietf:params:scim:schemas:core:2.0:User"
- }
- },
- {
- "id": "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User",
- "name": "EnterpriseUser",
- "description": "Attributes commonly used in representing users that belong to, or act on behalf of, a business or enterprise.",
- "attributes":
- [
- {
- "name": "employeeNumber",
- "type": "STRING",
- "multiValued": false,
- "description": "A string identifier, typically numeric or alphanumeric, assigned to a person, typically based on order of hire or association with an organization.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "costCenter",
- "type": "STRING",
- "multiValued": false,
- "description": "Identifies the name of a cost center.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "organization",
- "type": "STRING",
- "multiValued": false,
- "description": "Identifies the name of an organization.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "division",
- "type": "STRING",
- "multiValued": false,
- "description": "Identifies the name of a division.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "department",
- "type": "STRING",
- "multiValued": false,
- "description": "Identifies the name of a department.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "manager",
- "type": "COMPLEX",
- "subAttributes":
- [
- {
- "name": "value",
- "type": "STRING",
- "multiValued": false,
- "description": "The \"id\" of the SCIM resource representing the user's manager. RECOMMENDED.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "ref",
- "type": "STRING",
- "multiValued": false,
- "description": "The URI of the SCIM resource representing the User's manager. RECOMMENDED.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- },
- {
- "name": "displayName",
- "type": "STRING",
- "multiValued": false,
- "description": "he displayName of the user's manager. This attribute is OPTIONAL.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_ONLY",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- }
- ],
- "multiValued": false,
- "description": "The user's manager. A complex type that optionally allows service providers to represent organizational hierarchy by referencing the \"id\" attribute of another User.",
- "required": false,
- "caseExact": false,
- "mutability": "READ_WRITE",
- "returned": "DEFAULT",
- "uniqueness": "NONE"
- }
- ],
- "meta":
- {
- "resourceType": "Schema",
- "location": "http://scim.psu.edu/tier/v2/Schemas/urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"
- }
- }
- ]
-}
\ No newline at end of file
diff --git a/scim-server/pom.xml b/scim-server/pom.xml
index 7cef7bd..08a3052 100644
--- a/scim-server/pom.xml
+++ b/scim-server/pom.xml
@@ -13,7 +13,6 @@
<modules>
<module>scim-server-common</module>
- <module>scim-server-example</module>
</modules>
</project>
diff --git a/scim-server/scim-server-common/pom.xml b/scim-server/scim-server-common/pom.xml
index e88dd29..0bfff75 100644
--- a/scim-server/scim-server-common/pom.xml
+++ b/scim-server/scim-server-common/pom.xml
@@ -78,6 +78,32 @@
<groupId>io.swagger</groupId>
<artifactId>swagger-jaxrs</artifactId>
<version>1.5.0</version>
+ <exclusions>
+ <exclusion>
+ <groupId>com.fasterxml.jackson.dataformat</groupId>
+ <artifactId>jackson-dataformat-xml</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-core</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-annotations</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.google.code.findbugs</groupId>
+ <artifactId>annotations</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-databind</artifactId>
+ </exclusion>
+ <exclusion>
+ <artifactId>jsr311-api</artifactId>
+ <groupId>javax.ws.rs</groupId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>edu.psu.swe.scim</groupId>
diff --git a/scim-server/scim-server-example/pom.xml b/scim-server/scim-server-example/pom.xml
deleted file mode 100644
index 4ed1d5b..0000000
--- a/scim-server/scim-server-example/pom.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<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/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>edu.psu.swe.scim</groupId>
- <artifactId>scim-server</artifactId>
- <version>2.23-SNAPSHOT</version>
- </parent>
-
- <artifactId>scim-server-examples</artifactId>
- <name>SCIM - Server - Examples</name>
- <packaging>pom</packaging>
-
- <modules>
- <module>scim-server-rdbms</module>
- <module>scim-server-couchdb</module>
- <module>scim-server-memory</module>
- </modules>
-
-</project>
diff --git a/scim-server/scim-server-example/scim-server-couchdb/pom.xml b/scim-server/scim-server-example/scim-server-couchdb/pom.xml
deleted file mode 100644
index 4b8d3c4..0000000
--- a/scim-server/scim-server-example/scim-server-couchdb/pom.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<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/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>edu.psu.swe.scim</groupId>
- <artifactId>scim-server-examples</artifactId>
- <version>2.23-SNAPSHOT</version>
- </parent>
-
- <artifactId>scim-server-couchdb</artifactId>
- <name>SCIM - Server - CouchDB</name>
- <packaging>war</packaging>
-
- <dependencies>
- <dependency>
- <groupId>javax</groupId>
- <artifactId>javaee-api</artifactId>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>scim-server-common</artifactId>
- <version>${project.version}</version>
- </dependency>
- </dependencies>
-
-</project>
diff --git a/scim-server/scim-server-example/scim-server-couchdb/src/main/webapp/WEB-INF/beans.xml b/scim-server/scim-server-example/scim-server-couchdb/src/main/webapp/WEB-INF/beans.xml
deleted file mode 100644
index 1fe732f..0000000
--- a/scim-server/scim-server-example/scim-server-couchdb/src/main/webapp/WEB-INF/beans.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0"?>
-<beans xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://jboss.org/schema/cdi/beans_1_0.xsd"/>
diff --git a/scim-server/scim-server-example/scim-server-couchdb/src/main/webapp/WEB-INF/web.xml b/scim-server/scim-server-example/scim-server-couchdb/src/main/webapp/WEB-INF/web.xml
deleted file mode 100644
index 8948851..0000000
--- a/scim-server/scim-server-example/scim-server-couchdb/src/main/webapp/WEB-INF/web.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
-
-</web-app>
diff --git a/scim-server/scim-server-example/scim-server-memory/pom.xml b/scim-server/scim-server-example/scim-server-memory/pom.xml
deleted file mode 100644
index 4a15bf4..0000000
--- a/scim-server/scim-server-example/scim-server-memory/pom.xml
+++ /dev/null
@@ -1,115 +0,0 @@
-<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/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>edu.psu.swe.scim</groupId>
- <artifactId>scim-server-examples</artifactId>
- <version>2.23-SNAPSHOT</version>
- </parent>
-
- <artifactId>scim-server-memory</artifactId>
- <name>SCIM - Server - Memory</name>
- <packaging>war</packaging>
-
- <dependencies>
- <dependency>
- <groupId>javax</groupId>
- <artifactId>javaee-api</artifactId>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>scim-server-common</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.projectlombok</groupId>
- <artifactId>lombok</artifactId>
- <scope>provided</scope>
- </dependency>
- </dependencies>
-
- <build>
-
- <finalName>${project.artifactId}</finalName>
-
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-war-plugin</artifactId>
- <configuration>
- <failOnMissingWebXml>false</failOnMissingWebXml>
- <archive>
- <manifestEntries>
- <Logging-Profile>${project.artifactId}</Logging-Profile>
- </manifestEntries>
- </archive>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.wildfly.plugins</groupId>
- <artifactId>wildfly-maven-plugin</artifactId>
- <inherited>true</inherited>
- <configuration>
- <skip>false</skip>
- </configuration>
- </plugin>
-
- <plugin>
- <groupId>io.fabric8</groupId>
- <artifactId>docker-maven-plugin</artifactId>
- <configuration>
- <skip>false</skip>
- <images>
- <image>
- <name>scim-server-memory</name>
- <build>
- <from>jboss/wildfly</from>
- <tags>
- <tag>latest</tag>
- <tag>${project.version}</tag>
- </tags>
- <runCmds>
- <runCmd>/opt/jboss/wildfly/bin/add-user.sh vadmin vpassword --silent</runCmd>
- </runCmds>
- <cmd>
- <exec>
- <args>/opt/jboss/wildfly/bin/standalone.sh</args>
- <args>-b</args>
- <args>0.0.0.0</args>
- <args>-bmanagement</args>
- <args>0.0.0.0</args>
- </exec>
- </cmd>
- <ports>
- <port>8080</port>
- <port>9990</port>
- </ports>
- <assembly>
- <basedir>/opt/jboss/wildfly/standalone/deployments</basedir>
- <descriptorRef>artifact</descriptorRef>
- </assembly>
- </build>
- <run>
- <ports>
- <port>wildfly.port:8080</port>
- <port>wildfly.management.port:9990</port>
- </ports>
- <wait>
- <http>
- <url>http://localhost:${wildfly.port}/</url>
- </http>
- <time>60000</time>
- </wait>
- <log>
- <enabled>true</enabled>
- <prefix>ScimMem</prefix>
- </log>
- </run>
- </image>
- </images>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
-</project>
diff --git a/scim-server/scim-server-example/scim-server-memory/src/main/java/edu/psu/swe/scim/memory/extensions/LuckyNumberExtension.java b/scim-server/scim-server-example/scim-server-memory/src/main/java/edu/psu/swe/scim/memory/extensions/LuckyNumberExtension.java
deleted file mode 100644
index acb1bd0..0000000
--- a/scim-server/scim-server-example/scim-server-memory/src/main/java/edu/psu/swe/scim/memory/extensions/LuckyNumberExtension.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package edu.psu.swe.scim.memory.extensions;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-
-import edu.psu.swe.scim.spec.annotation.ScimAttribute;
-import edu.psu.swe.scim.spec.annotation.ScimExtensionType;
-import edu.psu.swe.scim.spec.resources.ScimExtension;
-import edu.psu.swe.scim.spec.schema.Schema.Attribute.Returned;
-import lombok.Data;
-
-/**
- * Allows a User's lucky number to be passed as part of the User's entry via
- * the SCIM protocol.
- *
- * @author Chris Harm <crh5255@psu.edu>
- */
-@XmlRootElement( name = "LuckyNumberExtension", namespace = "http://www.psu.edu/schemas/psu-scim" )
-@XmlAccessorType(XmlAccessType.NONE)
-@Data
-@ScimExtensionType(id = LuckyNumberExtension.SCHEMA_URN, description="Lucky Numbers", name="LuckyNumbers", required=true)
-public class LuckyNumberExtension implements ScimExtension {
-
- public static final String SCHEMA_URN = "urn:mem:params:scim:schemas:extension:LuckyNumberExtension";
-
- @ScimAttribute(returned=Returned.DEFAULT, required=true)
- @XmlElement
- private long luckyNumber;
-
- /**
- * Provides the URN associated with this extension which, as defined by the
- * SCIM specification is the extension's unique identifier.
- *
- * @return The extension's URN.
- */
- @Override
- public String getUrn() {
- return SCHEMA_URN;
- }
-
-}
diff --git a/scim-server/scim-server-example/scim-server-memory/src/main/java/edu/psu/swe/scim/memory/rest/RestApplication.java b/scim-server/scim-server-example/scim-server-memory/src/main/java/edu/psu/swe/scim/memory/rest/RestApplication.java
deleted file mode 100644
index 935e7b2..0000000
--- a/scim-server/scim-server-example/scim-server-memory/src/main/java/edu/psu/swe/scim/memory/rest/RestApplication.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package edu.psu.swe.scim.memory.rest;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import javax.ws.rs.ApplicationPath;
-import javax.ws.rs.core.Application;
-
-import edu.psu.swe.scim.server.rest.ScimResourceHelper;
-
-@ApplicationPath("v2")
-public class RestApplication extends Application {
-
- @Override
- public Set<Class<?>> getClasses() {
- Set<Class<?>> clazzes = new HashSet<Class<?>>();
-
- clazzes.addAll(ScimResourceHelper.getScimClassesToLoad());
- clazzes.addAll(ScimResourceHelper.getSwaggerClassesToLoad());
-
- return clazzes;
- }
-
-}
diff --git a/scim-server/scim-server-example/scim-server-memory/src/main/java/edu/psu/swe/scim/memory/rest/SwaggerJaxrsConfig.java b/scim-server/scim-server-example/scim-server-memory/src/main/java/edu/psu/swe/scim/memory/rest/SwaggerJaxrsConfig.java
deleted file mode 100644
index bc182c4..0000000
--- a/scim-server/scim-server-example/scim-server-memory/src/main/java/edu/psu/swe/scim/memory/rest/SwaggerJaxrsConfig.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package edu.psu.swe.scim.memory.rest;
-
-import io.swagger.jaxrs.config.BeanConfig;
-import io.swagger.models.Swagger;
-import io.swagger.models.auth.BasicAuthDefinition;
-import io.swagger.models.auth.OAuth2Definition;
-import io.swagger.util.Json;
-import io.swagger.util.Yaml;
-
-import java.util.Properties;
-
-import javax.inject.Inject;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-import javax.servlet.annotation.WebListener;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule;
-
-@WebListener
-public class SwaggerJaxrsConfig implements ServletContextListener {
-
- private static final Logger LOGGER = LoggerFactory.getLogger(SwaggerJaxrsConfig.class);
-
- public static BeanConfig beanConfig = new BeanConfig();
-
- public void contextInitialized(ServletContextEvent event) {
- LOGGER.debug("Initializing swagger...");
-
- try {
- // BeanConfig beanConfig = new BeanConfig();
- beanConfig.setBasePath(event.getServletContext().getContextPath() + "/v2");
- beanConfig.setResourcePackage("edu.psu.swe.scim");
- beanConfig.setScan(true);
- beanConfig.setTitle("In-Memory SCIM Server");
- beanConfig.setDescription("In Memory SCIM Server Example Implementation");
- beanConfig.setVersion("2.0");
-
- Json.mapper().registerModule(new JaxbAnnotationModule());
- Yaml.mapper().registerModule(new JaxbAnnotationModule());
-
- } catch (Exception e) {
- LOGGER.error("Error initializing swagger", e);
- }
- }
-
- public void contextDestroyed(ServletContextEvent event) {
- // do on application destroy
- }
-}
\ No newline at end of file
diff --git a/scim-server/scim-server-example/scim-server-memory/src/main/java/edu/psu/swe/scim/memory/service/InMemoryGroupService.java b/scim-server/scim-server-example/scim-server-memory/src/main/java/edu/psu/swe/scim/memory/service/InMemoryGroupService.java
deleted file mode 100644
index 88ccbc2..0000000
--- a/scim-server/scim-server-example/scim-server-memory/src/main/java/edu/psu/swe/scim/memory/service/InMemoryGroupService.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package edu.psu.swe.scim.memory.service;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Named;
-
-import edu.psu.swe.scim.server.exception.UnableToUpdateResourceException;
-import edu.psu.swe.scim.server.provider.Provider;
-import edu.psu.swe.scim.server.provider.UpdateRequest;
-import edu.psu.swe.scim.spec.protocol.filter.FilterResponse;
-import edu.psu.swe.scim.spec.protocol.search.Filter;
-import edu.psu.swe.scim.spec.protocol.search.PageRequest;
-import edu.psu.swe.scim.spec.protocol.search.SortRequest;
-import edu.psu.swe.scim.spec.resources.ScimExtension;
-import edu.psu.swe.scim.spec.resources.ScimGroup;
-
-@Named
-@ApplicationScoped
-public class InMemoryGroupService implements Provider<ScimGroup> {
-
- private Map<String, ScimGroup> groups = new HashMap<>();
-
- @Override
- public ScimGroup create(ScimGroup resource) {
- String resourceId = resource.getId();
- int idCandidate = resource.hashCode();
- String id = resourceId != null ? resourceId : Integer.toString(idCandidate);
-
- while (groups.containsKey(id)) {
- id = Integer.toString(idCandidate);
- ++idCandidate;
- }
- groups.put(id, resource);
- resource.setId(id);
- return resource;
- }
-
- @Override
- public ScimGroup update(UpdateRequest<ScimGroup> updateRequest) throws UnableToUpdateResourceException {
- String id = updateRequest.getId();
- ScimGroup resource = updateRequest.getResource();
- groups.put(id, resource);
- return resource;
- }
-
- @Override
- public ScimGroup get(String id) {
- return groups.get(id);
- }
-
- @Override
- public void delete(String id) {
- groups.remove(id);
- }
-
- @Override
- public FilterResponse<ScimGroup> find(Filter filter, PageRequest pageRequest, SortRequest sortRequest) {
- return new FilterResponse<ScimGroup>(groups.values(), pageRequest, groups.size());
- }
-
- @Override
- public List<Class<? extends ScimExtension>> getExtensionList() {
- return Collections.emptyList();
- }
-
-}
diff --git a/scim-server/scim-server-example/scim-server-memory/src/main/java/edu/psu/swe/scim/memory/service/InMemorySelfResolverImpl.java b/scim-server/scim-server-example/scim-server-memory/src/main/java/edu/psu/swe/scim/memory/service/InMemorySelfResolverImpl.java
deleted file mode 100644
index 079486c..0000000
--- a/scim-server/scim-server-example/scim-server-memory/src/main/java/edu/psu/swe/scim/memory/service/InMemorySelfResolverImpl.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package edu.psu.swe.scim.memory.service;
-
-import java.security.Principal;
-
-import javax.ejb.Stateless;
-import javax.ws.rs.core.Response.Status;
-
-import edu.psu.swe.scim.server.exception.UnableToResolveIdException;
-import edu.psu.swe.scim.server.provider.SelfIdResolver;
-
-@Stateless
-public class InMemorySelfResolverImpl implements SelfIdResolver {
-
- @Override
- public String resolveToInternalId(Principal principal) throws UnableToResolveIdException {
- throw new UnableToResolveIdException(Status.NOT_IMPLEMENTED, "Caller Principal not available");
- }
-
-}
diff --git a/scim-server/scim-server-example/scim-server-memory/src/main/java/edu/psu/swe/scim/memory/service/InMemoryUserService.java b/scim-server/scim-server-example/scim-server-memory/src/main/java/edu/psu/swe/scim/memory/service/InMemoryUserService.java
deleted file mode 100644
index 7da1e06..0000000
--- a/scim-server/scim-server-example/scim-server-memory/src/main/java/edu/psu/swe/scim/memory/service/InMemoryUserService.java
+++ /dev/null
@@ -1,129 +0,0 @@
-package edu.psu.swe.scim.memory.service;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.annotation.PostConstruct;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Named;
-
-import edu.psu.swe.scim.memory.extensions.LuckyNumberExtension;
-import edu.psu.swe.scim.server.exception.UnableToUpdateResourceException;
-import edu.psu.swe.scim.server.provider.Provider;
-import edu.psu.swe.scim.server.provider.UpdateRequest;
-import edu.psu.swe.scim.spec.exception.InvalidExtensionException;
-import edu.psu.swe.scim.spec.protocol.filter.FilterResponse;
-import edu.psu.swe.scim.spec.protocol.search.Filter;
-import edu.psu.swe.scim.spec.protocol.search.PageRequest;
-import edu.psu.swe.scim.spec.protocol.search.SortRequest;
-import edu.psu.swe.scim.spec.resources.Email;
-import edu.psu.swe.scim.spec.resources.ScimExtension;
-import edu.psu.swe.scim.spec.resources.ScimGroup;
-import edu.psu.swe.scim.spec.resources.ScimUser;
-
-/**
- * Creates a singleton (effectively) Provider<User> with a memory-based
- * persistence layer.
- *
- * @author Chris Harm <crh5255@psu.edu>
- */
-@Named
-@ApplicationScoped
-public class InMemoryUserService implements Provider<ScimUser> {
-
- static final String DEFAULT_USER_ID = "1";
- static final String DEFAULT_USER_EXTERNAL_ID = "e" + DEFAULT_USER_ID;
- static final String DEFAULT_USER_DISPLAY_NAME = "User " + DEFAULT_USER_ID;
- static final String DEFAULT_USER_EMAIL_VALUE = "e1@example.com";
- static final String DEFAULT_USER_EMAIL_TYPE = "work";
- static final int DEFAULT_USER_LUCKY_NUMBER = 7;
-
- private Map<String, ScimUser> users = new HashMap<>();
-
- @PostConstruct
- public void init() {
- ScimUser user = new ScimUser();
- user.setId(DEFAULT_USER_ID);
- user.setExternalId(DEFAULT_USER_EXTERNAL_ID);
- user.setUserName(DEFAULT_USER_EXTERNAL_ID);
- user.setDisplayName(DEFAULT_USER_DISPLAY_NAME);
- Email email = new Email();
- email.setDisplay(DEFAULT_USER_EMAIL_VALUE);
- email.setValue(DEFAULT_USER_EMAIL_VALUE);
- email.setType(DEFAULT_USER_EMAIL_TYPE);
- email.setPrimary(true);
- user.setEmails(Arrays.asList(email));
-
- LuckyNumberExtension luckyNumberExtension = new LuckyNumberExtension();
- luckyNumberExtension.setLuckyNumber(DEFAULT_USER_LUCKY_NUMBER);
-
- user.addExtension(luckyNumberExtension);
-
- users.put(user.getId(), user);
- }
-
- /**
- * @see edu.psu.swe.scim.server.provider.Provider#create(java.lang.Object)
- */
- @Override
- public ScimUser create(ScimUser resource) {
- String resourceId = resource.getId();
- int idCandidate = resource.hashCode();
- String id = resourceId != null ? resourceId : Integer.toString(idCandidate);
-
- while (users.containsKey(id)) {
- id = Integer.toString(idCandidate);
- ++idCandidate;
- }
- users.put(id, resource);
- resource.setId(id);
- return resource;
- }
-
- /**
- * @see edu.psu.swe.scim.server.provider.Provider#update(java.lang.Object)
- */
- @Override
- public ScimUser update(UpdateRequest<ScimUser> updateRequest) throws UnableToUpdateResourceException {
- String id = updateRequest.getId();
- ScimUser resource = updateRequest.getResource();
- users.put(id, resource);
- return resource;
- }
-
- /**
- * @see edu.psu.swe.scim.server.provider.Provider#get(java.lang.String)
- */
- @Override
- public ScimUser get(String id) {
- return users.get(id);
- }
-
- /**
- * @see edu.psu.swe.scim.server.provider.Provider#delete(java.lang.String)
- */
- @Override
- public void delete(String id) {
- users.remove(id);
- }
-
- /**
- * @see edu.psu.swe.scim.server.provider.Provider#find(edu.psu.swe.scim.spec.protocol.search.Filter, edu.psu.swe.scim.spec.protocol.search.PageRequest, edu.psu.swe.scim.spec.protocol.search.SortRequest)
- */
- @Override
- public FilterResponse<ScimUser> find(Filter filter, PageRequest pageRequest, SortRequest sortRequest) {
- return new FilterResponse<ScimUser>(users.values(), pageRequest, users.size());
- }
-
- /**
- * @see edu.psu.swe.scim.server.provider.Provider#getExtensionList()
- */
- @Override
- public List<Class<? extends ScimExtension>> getExtensionList() {
- return Arrays.asList(LuckyNumberExtension.class);
- }
-
-}
diff --git a/scim-server/scim-server-example/scim-server-memory/src/main/java/edu/psu/swe/scim/memory/service/ScimConfigurator.java b/scim-server/scim-server-example/scim-server-memory/src/main/java/edu/psu/swe/scim/memory/service/ScimConfigurator.java
deleted file mode 100644
index 5e53fd8..0000000
--- a/scim-server/scim-server-example/scim-server-memory/src/main/java/edu/psu/swe/scim/memory/service/ScimConfigurator.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package edu.psu.swe.scim.memory.service;
-
-import javax.enterprise.inject.Instance;
-import javax.inject.Inject;
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-import javax.servlet.annotation.WebListener;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-
-import edu.psu.swe.scim.server.exception.InvalidProviderException;
-import edu.psu.swe.scim.server.exception.UnableToRetrieveExtensionsException;
-import edu.psu.swe.scim.server.provider.ProviderRegistry;
-import edu.psu.swe.scim.spec.resources.ScimGroup;
-import edu.psu.swe.scim.spec.resources.ScimUser;
-
-@WebListener
-public class ScimConfigurator implements ServletContextListener {
-
- public static final Logger LOG = LoggerFactory.getLogger(ScimConfigurator.class);
-
- @Inject
- private ProviderRegistry providerRegistry;
-
- @Inject
- private Instance<InMemoryUserService> userProviderInstance;
-
- @Inject
- private Instance<InMemoryGroupService> groupProviderInstance;
-
- @Override
- public void contextInitialized(ServletContextEvent sce) {
- try {
- providerRegistry.registerProvider(ScimUser.class, userProviderInstance);
- providerRegistry.registerProvider(ScimGroup.class, groupProviderInstance);
- } catch (InvalidProviderException | JsonProcessingException | UnableToRetrieveExtensionsException e) {
- e.printStackTrace();
- }
- }
-
- @Override
- public void contextDestroyed(ServletContextEvent arg0) {
- // NOOP
- }
-
-}
diff --git a/scim-server/scim-server-example/scim-server-memory/src/main/webapp/WEB-INF/beans.xml b/scim-server/scim-server-example/scim-server-memory/src/main/webapp/WEB-INF/beans.xml
deleted file mode 100644
index 0cdea6c..0000000
--- a/scim-server/scim-server-example/scim-server-memory/src/main/webapp/WEB-INF/beans.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
- version="1.1" bean-discovery-mode="all">
-
-</beans>
\ No newline at end of file
diff --git a/scim-server/scim-server-example/scim-server-memory/src/main/webapp/WEB-INF/web.xml b/scim-server/scim-server-example/scim-server-memory/src/main/webapp/WEB-INF/web.xml
deleted file mode 100644
index 8948851..0000000
--- a/scim-server/scim-server-example/scim-server-memory/src/main/webapp/WEB-INF/web.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
-
-</web-app>
diff --git a/scim-server/scim-server-example/scim-server-rdbms/.gitignore b/scim-server/scim-server-example/scim-server-rdbms/.gitignore
index 2bf230d..ae3c172 100644
--- a/scim-server/scim-server-example/scim-server-rdbms/.gitignore
+++ b/scim-server/scim-server-example/scim-server-rdbms/.gitignore
@@ -1,3 +1 @@
-/.apt_generated/
-.factorypath
-queries
+/bin/
diff --git a/scim-server/scim-server-example/scim-server-rdbms/pom.xml b/scim-server/scim-server-example/scim-server-rdbms/pom.xml
deleted file mode 100644
index 77a6728..0000000
--- a/scim-server/scim-server-example/scim-server-rdbms/pom.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<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/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>edu.psu.swe.scim</groupId>
- <artifactId>scim-server-examples</artifactId>
- <version>2.23-SNAPSHOT</version>
- </parent>
-
- <artifactId>scim-server-rdbms</artifactId>
- <name>SCIM - Server - RDBMS</name>
- <packaging>war</packaging>
-
- <dependencies>
- <dependency>
- <groupId>javax</groupId>
- <artifactId>javaee-api</artifactId>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>scim-server-common</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-jpamodelgen</artifactId>
- <version>5.2.0.Final</version>
- </dependency>
- <dependency>
- <groupId>edu.psu.swe.scim</groupId>
- <artifactId>scim-common</artifactId>
- </dependency>
- <dependency>
- <groupId>org.projectlombok</groupId>
- <artifactId>lombok</artifactId>
- <scope>provided</scope>
- </dependency>
- </dependencies>
-
-</project>
diff --git a/scim-server/scim-server-example/scim-server-rdbms/src/main/java/edu/psu/swe/scim/rdbms/filter/ExampleFilter.java b/scim-server/scim-server-example/scim-server-rdbms/src/main/java/edu/psu/swe/scim/rdbms/filter/ExampleFilter.java
deleted file mode 100644
index 61f1f5a..0000000
--- a/scim-server/scim-server-example/scim-server-rdbms/src/main/java/edu/psu/swe/scim/rdbms/filter/ExampleFilter.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package edu.psu.swe.scim.rdbms.filter;
-
-import java.io.IOException;
-import java.util.HashSet;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-import javax.enterprise.inject.Instance;
-import javax.enterprise.inject.spi.CDI;
-import javax.inject.Inject;
-import javax.ws.rs.core.Response.Status;
-
-import edu.psu.swe.scim.server.exception.AttributeDoesNotExistException;
-import edu.psu.swe.scim.server.provider.extensions.AttributeFilterExtension;
-import edu.psu.swe.scim.server.provider.extensions.ScimRequestContext;
-import edu.psu.swe.scim.server.provider.extensions.exceptions.ClientFilterException;
-import edu.psu.swe.scim.server.utility.AttributeUtil;
-import edu.psu.swe.scim.spec.protocol.attribute.AttributeReference;
-import edu.psu.swe.scim.spec.resources.ScimResource;
-import lombok.extern.slf4j.Slf4j;
-
-@Slf4j
-public class ExampleFilter implements AttributeFilterExtension {
-
- @Inject
- Instance<AttributeUtil> attributeUtil;
-
- private static final Set<String> allowedAttributes = new HashSet<>();
- private static final Set<AttributeReference> allowedReferences = new HashSet<>();
-
- static {
- allowedAttributes.add("name.givenName");
- allowedAttributes.add("name.familyName");
- allowedAttributes.add("userName");
- allowedAttributes.add("emails");
- allowedAttributes.add("addresses.streetAddress");
-
- allowedReferences.add(new AttributeReference("name.givenName"));
- allowedReferences.add(new AttributeReference("name.familyName"));
- allowedReferences.add(new AttributeReference("userName"));
- allowedReferences.add(new AttributeReference("emails"));
- allowedReferences.add(new AttributeReference("addresses.streetAddress"));
- }
-
- @Override
- public ScimResource filterAttributes(ScimResource scimResource, ScimRequestContext scimRequestContext) throws ClientFilterException {
-
- log.info("###### ----> In FilterAttributes");
- Set<AttributeReference> references = scimRequestContext.getAttributeReferences();
-
- if (!references.isEmpty()) {
- references = scimRequestContext.getAttributeReferences();
-
- log.info("###### -----> We have attributes through the web interface");
- Set<String> incomingAttributes = references.stream()
- .map(ar -> ar.getFullAttributeName())
- .collect(Collectors.toCollection(HashSet::new));
-
- for (AttributeReference ar : references) {
- incomingAttributes.add(ar.getFullAttributeName());
- }
-
- incomingAttributes.removeAll(allowedAttributes);
- if (!incomingAttributes.isEmpty()) {
- throw new ClientFilterException(Status.FORBIDDEN, "Request included parameters not allowed for this requestor");
- }
- }
-
- log.info("####### -----> Request is legal, strip down to the allowed references");
- try {
- return CDI.current().select(AttributeUtil.class).get().setAttributesForDisplay(scimResource, allowedReferences);
- } catch (IllegalArgumentException | AttributeDoesNotExistException e) {
- throw new ClientFilterException(Status.BAD_REQUEST, e.getMessage());
- } catch (IllegalAccessException | IOException e) {
- throw new ClientFilterException(Status.INTERNAL_SERVER_ERROR, e.getMessage());
- }
- }
-}
diff --git a/scim-server/scim-server-example/scim-server-rdbms/src/main/java/edu/psu/swe/scim/rdbms/model/Address.java b/scim-server/scim-server-example/scim-server-rdbms/src/main/java/edu/psu/swe/scim/rdbms/model/Address.java
deleted file mode 100644
index 215cdbf..0000000
--- a/scim-server/scim-server-example/scim-server-rdbms/src/main/java/edu/psu/swe/scim/rdbms/model/Address.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package edu.psu.swe.scim.rdbms.model;
-
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-
-import lombok.Data;
-
-@Entity
-@Data
-public class Address {
-
- @Id
- @Column(name="address_id")
- private long addressId;
-
- @Column(name="Street_address")
- private String streetAddress;
-
- @Column(name="city")
- private String city;
-
- @Column(name="state")
- private String state;
-
- @Column(name="country")
- private String countryCode;
-
- //Intentionally not named postalCode
- @Column(name="zip_code")
- private String zipCode;
-
- @ManyToOne(fetch=FetchType.LAZY)
- @JoinColumn(name="person_id")
- private Person person;
-}
diff --git a/scim-server/scim-server-example/scim-server-rdbms/src/main/java/edu/psu/swe/scim/rdbms/model/Person.java b/scim-server/scim-server-example/scim-server-rdbms/src/main/java/edu/psu/swe/scim/rdbms/model/Person.java
deleted file mode 100644
index 160ff20..0000000
--- a/scim-server/scim-server-example/scim-server-rdbms/src/main/java/edu/psu/swe/scim/rdbms/model/Person.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package edu.psu.swe.scim.rdbms.model;
-
-import java.util.List;
-
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.Id;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-
-import lombok.Data;
-
-// The names in this class intentionally don't match scim names.
-// This will be used to illustrate name mapping
-
-@Entity
-@Data
-@NamedQueries({ @NamedQuery(name="Person.getAll", query="Select p from Person p") })
-public class Person {
-
- @Id
- @Column(name="person_id")
- private long personId;
-
- @Column(name="first_name")
- private String firstName;
-
- @Column(name="last_name")
- private String lastName;
-
- @Column(name="middle_name")
- private String middleName;
-
- @Column(name="active")
- private boolean active;
-
- @OneToMany(fetch=FetchType.EAGER, mappedBy="person")
- List<Address> addressList;
-
- @OneToMany(fetch=FetchType.EAGER, mappedBy="person")
- List<Phone> phoneList;
-}
diff --git a/scim-server/scim-server-example/scim-server-rdbms/src/main/java/edu/psu/swe/scim/rdbms/model/Phone.java b/scim-server/scim-server-example/scim-server-rdbms/src/main/java/edu/psu/swe/scim/rdbms/model/Phone.java
deleted file mode 100644
index 854481f..0000000
--- a/scim-server/scim-server-example/scim-server-rdbms/src/main/java/edu/psu/swe/scim/rdbms/model/Phone.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package edu.psu.swe.scim.rdbms.model;
-
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-
-import lombok.Data;
-
-@Entity
-@Data
-public class Phone {
-
- @Id
- @Column(name="phone_id")
- private long phoneId;
-
- @Column(name="phone_type")
- private String type;
-
- @Column(name="international_prefix")
- private Integer internationalPrefix;
-
- @Column(name="number")
- private String number;
-
- @Column(name="extension")
- private String extension;
-
- @ManyToOne(fetch=FetchType.LAZY)
- @JoinColumn(name="person_id")
- private Person person;
-
- @Override
- public String toString() {
- StringBuilder sb = new StringBuilder();
-
- sb.append("tel:");
- if (internationalPrefix != null) {
- sb.append("+");
- sb.append(internationalPrefix);
- sb.append(" ");
- }
-
- sb.append(number);
- if (extension != null) {
- sb.append(";ext=");
- sb.append(extension);
- }
-
- return sb.toString();
- }
-}
diff --git a/scim-server/scim-server-example/scim-server-rdbms/src/main/java/edu/psu/swe/scim/rdbms/rest/ScimRdbmsApplication.java b/scim-server/scim-server-example/scim-server-rdbms/src/main/java/edu/psu/swe/scim/rdbms/rest/ScimRdbmsApplication.java
deleted file mode 100644
index 9f991ec..0000000
--- a/scim-server/scim-server-example/scim-server-rdbms/src/main/java/edu/psu/swe/scim/rdbms/rest/ScimRdbmsApplication.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package edu.psu.swe.scim.rdbms.rest;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import javax.ws.rs.ApplicationPath;
-import javax.ws.rs.core.Application;
-
-import edu.psu.swe.scim.server.rest.ScimResourceHelper;
-
-@ApplicationPath("v2")
-public class ScimRdbmsApplication extends Application {
-
- @Override
- public Set<Class<?>> getClasses() {
- Set<Class<?>> clazzes = new HashSet<Class<?>>();
-
- clazzes.addAll(ScimResourceHelper.getScimClassesToLoad());
- clazzes.addAll(ScimResourceHelper.getSwaggerClassesToLoad());
-
- return clazzes;
- }
-}
diff --git a/scim-server/scim-server-example/scim-server-rdbms/src/main/java/edu/psu/swe/scim/rdbms/service/ScimConfigurator.java b/scim-server/scim-server-example/scim-server-rdbms/src/main/java/edu/psu/swe/scim/rdbms/service/ScimConfigurator.java
deleted file mode 100644
index ba9e392..0000000
--- a/scim-server/scim-server-example/scim-server-rdbms/src/main/java/edu/psu/swe/scim/rdbms/service/ScimConfigurator.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package edu.psu.swe.scim.rdbms.service;
-
-import javax.enterprise.inject.Instance;
-import javax.inject.Inject;
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-import javax.servlet.annotation.WebListener;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-
-import edu.psu.swe.scim.server.exception.InvalidProviderException;
-import edu.psu.swe.scim.server.exception.UnableToRetrieveExtensionsException;
-import edu.psu.swe.scim.server.provider.ProviderRegistry;
-import edu.psu.swe.scim.spec.resources.ScimGroup;
-import edu.psu.swe.scim.spec.resources.ScimUser;
-
-@WebListener
-public class ScimConfigurator implements ServletContextListener {
-
- public static final Logger LOG = LoggerFactory.getLogger(ScimConfigurator.class);
-
- @Inject
- private ProviderRegistry providerRegistry;
-
- @Inject
- private Instance<ScimRdbmsService> userProviderInstance;
-
- @Override
- public void contextInitialized(ServletContextEvent sce) {
- try {
- providerRegistry.registerProvider(ScimUser.class, userProviderInstance);
- } catch (InvalidProviderException | JsonProcessingException | UnableToRetrieveExtensionsException e) {
- e.printStackTrace();
- }
- }
-
- @Override
- public void contextDestroyed(ServletContextEvent arg0) {
- // NOOP
- }
-
-}
diff --git a/scim-server/scim-server-example/scim-server-rdbms/src/main/java/edu/psu/swe/scim/rdbms/service/ScimRdbmsService.java b/scim-server/scim-server-example/scim-server-rdbms/src/main/java/edu/psu/swe/scim/rdbms/service/ScimRdbmsService.java
deleted file mode 100644
index ff553d5..0000000
--- a/scim-server/scim-server-example/scim-server-rdbms/src/main/java/edu/psu/swe/scim/rdbms/service/ScimRdbmsService.java
+++ /dev/null
@@ -1,415 +0,0 @@
-package edu.psu.swe.scim.rdbms.service;
-
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.annotation.PostConstruct;
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-import javax.persistence.TypedQuery;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Join;
-import javax.persistence.criteria.JoinType;
-import javax.persistence.criteria.ListJoin;
-import javax.persistence.criteria.Path;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-import javax.persistence.metamodel.SingularAttribute;
-import javax.ws.rs.core.Response.Status;
-
-import edu.psu.swe.scim.common.ScimUtils;
-import edu.psu.swe.scim.rdbms.filter.ExampleFilter;
-import edu.psu.swe.scim.rdbms.model.Address;
-import edu.psu.swe.scim.rdbms.model.Address_;
-import edu.psu.swe.scim.rdbms.model.Person;
-import edu.psu.swe.scim.rdbms.model.Person_;
-import edu.psu.swe.scim.rdbms.model.Phone;
-import edu.psu.swe.scim.rdbms.model.Phone_;
-import edu.psu.swe.scim.server.exception.UnableToCreateResourceException;
-import edu.psu.swe.scim.server.exception.UnableToDeleteResourceException;
-import edu.psu.swe.scim.server.exception.UnableToRetrieveExtensionsException;
-import edu.psu.swe.scim.server.exception.UnableToRetrieveResourceException;
-import edu.psu.swe.scim.server.exception.UnableToUpdateResourceException;
-import edu.psu.swe.scim.server.provider.Provider;
-import edu.psu.swe.scim.server.provider.UpdateRequest;
-import edu.psu.swe.scim.server.provider.annotations.ScimProcessingExtension;
-import edu.psu.swe.scim.spec.phonenumber.PhoneNumberParseException;
-import edu.psu.swe.scim.spec.protocol.attribute.AttributeReference;
-import edu.psu.swe.scim.spec.protocol.filter.AttributeComparisonExpression;
-import edu.psu.swe.scim.spec.protocol.filter.FilterExpression;
-import edu.psu.swe.scim.spec.protocol.filter.FilterResponse;
-import edu.psu.swe.scim.spec.protocol.filter.LogicalExpression;
-import edu.psu.swe.scim.spec.protocol.filter.LogicalOperator;
-import edu.psu.swe.scim.spec.protocol.search.Filter;
-import edu.psu.swe.scim.spec.protocol.search.PageRequest;
-import edu.psu.swe.scim.spec.protocol.search.SortRequest;
-import edu.psu.swe.scim.spec.resources.Name;
-import edu.psu.swe.scim.spec.resources.PhoneNumber;
-import edu.psu.swe.scim.spec.resources.ScimExtension;
-import edu.psu.swe.scim.spec.resources.ScimUser;
-import lombok.AllArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-
-@Slf4j
-@SuppressWarnings({ "rawtypes", "unchecked" })
-@ScimProcessingExtension(ExampleFilter.class)
-public class ScimRdbmsService implements Provider<ScimUser> {
-
- @PersistenceContext(name = "ExampleDS")
- EntityManager entityManager;
-
- // static Map<String, SingularAttribute<?,?>> tableAliasMap = new HashMap<>();
- static Map<String, AttributeType> tableAliasMap = new HashMap<>();
-
- @AllArgsConstructor
- static class AttributeType<T> {
- SingularAttribute<?, T> attribute;
- Class<T> clazz;
- }
-
- static {
-
- AttributeType at = new AttributeType<String>(Address_.streetAddress, String.class);
- tableAliasMap.put("addresses.streetAddress", at);
- tableAliasMap.put(ScimUser.SCHEMA_URI + "addresses.streetAddress", at);
-
- at = new AttributeType<String>(Address_.city, String.class);
- tableAliasMap.put("addresses.locality", at);
- tableAliasMap.put(ScimUser.SCHEMA_URI + "addresses.locality", at);
-
- at = new AttributeType<String>(Address_.state, String.class);
- tableAliasMap.put("addresses.region", at);
- tableAliasMap.put(ScimUser.SCHEMA_URI + "addresses.region", at);
-
- at = new AttributeType<String>(Address_.zipCode, String.class);
- tableAliasMap.put("addresses.postalCode", at);
- tableAliasMap.put(ScimUser.SCHEMA_URI + "addresses.postalCode", at);
-
- at = new AttributeType<String>(Address_.countryCode, String.class);
- tableAliasMap.put("addresses.country", at);
- tableAliasMap.put(ScimUser.SCHEMA_URI + "addresses.country", at);
-
- at = new AttributeType<String>(Phone_.type, String.class);
- tableAliasMap.put("phoneNumbers.type", at);
- tableAliasMap.put(ScimUser.SCHEMA_URI + "phoneNumbers.type", at);
-
- at = new AttributeType<String>(Phone_.number, String.class);
- tableAliasMap.put("phoneNumbers.value", at);
- tableAliasMap.put(ScimUser.SCHEMA_URI + "phoneNumbers.value", at);
-
- at = new AttributeType<String>(Person_.lastName, String.class);
- tableAliasMap.put("name.familyName", at);
- tableAliasMap.put(ScimUser.SCHEMA_URI + "name.familyName", at);
-
- at = new AttributeType<String>(Person_.firstName, String.class);
- tableAliasMap.put("name.givenName", at);
- tableAliasMap.put(ScimUser.SCHEMA_URI + "name.givenName", at);
-
- at = new AttributeType<String>(Person_.middleName, String.class);
- tableAliasMap.put("name.middleName", at);
- tableAliasMap.put(ScimUser.SCHEMA_URI + "name.middleName", at);
-
- at = new AttributeType<Boolean>(Person_.active, Boolean.class);
- tableAliasMap.put("active", at);
- tableAliasMap.put(ScimUser.SCHEMA_URI + "active", at);
-
- at = new AttributeType<Long>(Person_.personId, long.class);
- tableAliasMap.put("person_id", at);
- }
-
- CriteriaBuilder criteriaBuilder = null;
- CriteriaQuery<Person> criteriaQuery = null;
- Root<Person> queryRoot = null;
- ListJoin<Person, Address> addressJoin = null;
- ListJoin<Person, Phone> phoneJoin = null;
-
- Map<String, Join> joinMap = null;
-
- @Override
- public ScimUser create(ScimUser resource) throws UnableToCreateResourceException {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public ScimUser update(UpdateRequest<ScimUser> updateRequest) throws UnableToUpdateResourceException {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public ScimUser get(String id) throws UnableToRetrieveResourceException {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public FilterResponse<ScimUser> find(Filter filter, PageRequest pageRequest, SortRequest sortRequest) throws UnableToRetrieveResourceException {
- log.info("@@@@@@@ In find");
-
- List<Person> personList = new ArrayList<>();
-
- if (filter != null) {
- FilterExpression expression = filter.getExpression();
-
- log.info("Processing filter " + filter.getFilter());
-
- criteriaQuery.select(queryRoot);
-
- Predicate predicate = processExpression(expression, criteriaBuilder);
- criteriaQuery.where(predicate).distinct(true);
-
- TypedQuery<Person> tq = entityManager.createQuery(criteriaQuery);
- personList = tq.getResultList();
- log.info("---> Query executed, " + personList.size() + " returns");
- } else {
- TypedQuery<Person> tq = entityManager.createNamedQuery("Person.getAll", Person.class);
- personList = tq.getResultList();
- }
-
- List<ScimUser> scimUserList = new ArrayList<>();
-
- for (Person p : personList) {
- ScimUser su = new ScimUser();
- List<edu.psu.swe.scim.spec.resources.Address> scimAddressList = new ArrayList<>();
-
- for (Address a : p.getAddressList()) {
- edu.psu.swe.scim.spec.resources.Address sa = new edu.psu.swe.scim.spec.resources.Address();
- sa.setPostalCode(a.getZipCode());
- sa.setStreetAddress(a.getStreetAddress());
- sa.setLocality(a.getCity());
- sa.setRegion(a.getState());
- sa.setCountry(a.getCountryCode());
- scimAddressList.add(sa);
- }
-
- su.setAddresses(scimAddressList);
-
- List<edu.psu.swe.scim.spec.resources.PhoneNumber> scimPhoneList = new ArrayList<>();
- for (Phone phone : p.getPhoneList()) {
- PhoneNumber pn = new PhoneNumber();
- try {
- pn.setValue(phone.getNumber());
- } catch (PhoneNumberParseException e) {
- throw new UnableToRetrieveResourceException(Status.INTERNAL_SERVER_ERROR, e.getMessage());
- }
- scimPhoneList.add(pn);
- }
-
- su.setPhoneNumbers(scimPhoneList);
-
- Name name = new Name();
- name.setFamilyName(p.getLastName());
- name.setGivenName(p.getFirstName());
- name.setMiddleName(p.getMiddleName());
- su.setName(name);
- scimUserList.add(su);
- }
-
- FilterResponse<ScimUser> response = new FilterResponse<>();
- response.setResources(scimUserList);
- PageRequest pr = new PageRequest();
- pr.setCount(scimUserList.size());
- pr.setStartIndex(0);
- response.setPageRequest(pr);
- response.setTotalResults(scimUserList.size());
-
- return response;
- }
-
- private Predicate processExpression(FilterExpression expression, CriteriaBuilder criteriaBuilder) throws UnableToRetrieveResourceException {
-
- if (expression instanceof LogicalExpression) {
- LogicalExpression le = (LogicalExpression) expression;
- Predicate p1 = processExpression(le.getLeft(), criteriaBuilder);
- Predicate p2 = processExpression(le.getRight(), criteriaBuilder);
-
- if (le.getOperator().equals(LogicalOperator.AND)) {
- return criteriaBuilder.and(p1, p2);
- } else if (le.getOperator().equals(LogicalOperator.OR)) {
- return criteriaBuilder.or(p1, p2);
- }
- } else if (expression instanceof AttributeComparisonExpression) {
-
- AttributeComparisonExpression ace = (AttributeComparisonExpression) expression;
-
- String attributeBase = ace.getAttributePath().getAttributeBase();
-
- Join join = joinMap.get(attributeBase);
- Path path = null;
-
- AttributeType attributeType = tableAliasMap.get(ace.getAttributePath().getFullAttributeName());
-
- if (attributeType == null) {
- throw new UnableToRetrieveResourceException(Status.BAD_REQUEST, "Unable to map filter attribute " + ace.getAttributePath().getFullAttributeName());
- }
-
- if (join == null) {
- AttributeReference attributePath = ace.getAttributePath();
- path = queryRoot.get((SingularAttribute<? super Person, ?>) attributeType.attribute);
- } else {
- path = join.get(attributeType.attribute);
- }
-
- if (path == null) {
- throw new UnableToRetrieveResourceException(Status.BAD_REQUEST, "Unable to map filter attribute " + ace.getAttributePath().getFullAttributeName());
- }
-
- switch (ace.getOperation()) {
- case EQ:
- return criteriaBuilder.equal(path, ace.getCompareValue());
- case CO:
- return criteriaBuilder.like(path, "%" + ace.getCompareValue() + "%");
- case EW:
- return criteriaBuilder.like(path, "%" + ace.getCompareValue());
- case GE:
- if (attributeType.clazz.equals(Long.class) || attributeType.clazz.equals(long.class)) {
- Long l = Long.parseLong((String) ace.getCompareValue());
- return criteriaBuilder.greaterThanOrEqualTo(path, l);
- } else if (attributeType.clazz.equals(Integer.class) || attributeType.clazz.equals(int.class)) {
- Integer i = Integer.parseInt(((String) ace.getCompareValue()));
- return criteriaBuilder.greaterThanOrEqualTo(path, i);
- } else if (attributeType.clazz.equals(Float.class) || attributeType.clazz.equals(float.class)) {
- Float f = Float.parseFloat(((String) ace.getCompareValue()));
- return criteriaBuilder.greaterThanOrEqualTo(path, f);
- } else if (attributeType.clazz.equals(Double.class) || attributeType.clazz.equals(double.class)) {
- Double d = Double.parseDouble(((String) ace.getCompareValue()));
- return criteriaBuilder.greaterThanOrEqualTo(path, d);
- } else if (attributeType.clazz.equals(Date.class)) {
- String d = ScimUtils.toDateTimeString((Date) ace.getCompareValue());
- return criteriaBuilder.greaterThanOrEqualTo(path, d);
- } else if (attributeType.clazz.equals(LocalDate.class)) {
- String d = ScimUtils.toDateString((LocalDate) ace.getCompareValue());
- return criteriaBuilder.greaterThanOrEqualTo(path, d);
- } else if (attributeType.clazz.equals(LocalDateTime.class)) {
- String d = ScimUtils.toDateTimeString((LocalDateTime) ace.getCompareValue());
- return criteriaBuilder.greaterThanOrEqualTo(path, d);
- } else {
- throw new UnableToRetrieveResourceException(Status.BAD_REQUEST, "Invalid value type for boolean evaluation (GT), " + ace.getAttributePath().getFullAttributeName());
- }
- case GT:
- if (attributeType.clazz.equals(Long.class) || attributeType.clazz.equals(long.class)) {
- Long l = Long.parseLong((String) ace.getCompareValue());
- return criteriaBuilder.greaterThan(path, l);
- } else if (attributeType.clazz.equals(Integer.class) || attributeType.clazz.equals(int.class)) {
- Integer i = Integer.parseInt(((String) ace.getCompareValue()));
- return criteriaBuilder.greaterThan(path, i);
- } else if (attributeType.clazz.equals(Float.class) || attributeType.clazz.equals(float.class)) {
- Float f = Float.parseFloat(((String) ace.getCompareValue()));
- return criteriaBuilder.greaterThan(path, f);
- } else if (attributeType.clazz.equals(Double.class) || attributeType.clazz.equals(double.class)) {
- Double d = Double.parseDouble(((String) ace.getCompareValue()));
- return criteriaBuilder.greaterThan(path, d);
- } else if (attributeType.clazz.equals(Date.class)) {
- String d = ScimUtils.toDateTimeString((Date) ace.getCompareValue());
- return criteriaBuilder.greaterThan(path, d);
- } else if (attributeType.clazz.equals(LocalDate.class)) {
- String d = ScimUtils.toDateString((LocalDate) ace.getCompareValue());
- return criteriaBuilder.greaterThan(path, d);
- } else if (attributeType.clazz.equals(LocalDateTime.class)) {
- String d = ScimUtils.toDateTimeString((LocalDateTime) ace.getCompareValue());
- return criteriaBuilder.greaterThan(path, d);
- } else {
- throw new UnableToRetrieveResourceException(Status.BAD_REQUEST, "Invalid value type for boolean evaluation (GT), " + ace.getAttributePath().getFullAttributeName());
- }
- case LE:
- if (attributeType.clazz.equals(Long.class) || attributeType.clazz.equals(long.class)) {
- Long l = Long.parseLong((String) ace.getCompareValue());
- return criteriaBuilder.lessThanOrEqualTo(path, l);
- } else if (attributeType.clazz.equals(Integer.class) || attributeType.clazz.equals(int.class)) {
- Integer i = Integer.parseInt(((String) ace.getCompareValue()));
- return criteriaBuilder.lessThanOrEqualTo(path, i);
- } else if (attributeType.clazz.equals(Float.class) || attributeType.clazz.equals(float.class)) {
- Float f = Float.parseFloat(((String) ace.getCompareValue()));
- return criteriaBuilder.lessThanOrEqualTo(path, f);
- } else if (attributeType.clazz.equals(Double.class) || attributeType.clazz.equals(double.class)) {
- Double d = Double.parseDouble(((String) ace.getCompareValue()));
- return criteriaBuilder.lessThanOrEqualTo(path, d);
- } else if (attributeType.clazz.equals(Date.class)) {
- String d = ScimUtils.toDateTimeString((Date) ace.getCompareValue());
- return criteriaBuilder.lessThanOrEqualTo(path, d);
- } else if (attributeType.clazz.equals(LocalDate.class)) {
- String d = ScimUtils.toDateString((LocalDate) ace.getCompareValue());
- return criteriaBuilder.lessThanOrEqualTo(path, d);
- } else if (attributeType.clazz.equals(LocalDateTime.class)) {
- String d = ScimUtils.toDateTimeString((LocalDateTime) ace.getCompareValue());
- return criteriaBuilder.lessThanOrEqualTo(path, d);
- } else {
- throw new UnableToRetrieveResourceException(Status.BAD_REQUEST, "Invalid value type for boolean evaluation (GT), " + ace.getAttributePath().getFullAttributeName());
- }
- case LT:
- if (attributeType.clazz.equals(Long.class) || attributeType.clazz.equals(long.class)) {
- Long l = Long.parseLong((String) ace.getCompareValue());
- return criteriaBuilder.lessThan(path, l);
- } else if (attributeType.clazz.equals(Integer.class) || attributeType.clazz.equals(int.class)) {
- Integer i = Integer.parseInt(((String) ace.getCompareValue()));
- return criteriaBuilder.lessThan(path, i);
- } else if (attributeType.clazz.equals(Float.class) || attributeType.clazz.equals(float.class)) {
- Float f = Float.parseFloat(((String) ace.getCompareValue()));
- return criteriaBuilder.lessThan(path, f);
- } else if (attributeType.clazz.equals(Double.class) || attributeType.clazz.equals(double.class)) {
- Double d = Double.parseDouble(((String) ace.getCompareValue()));
- return criteriaBuilder.lessThan(path, d);
- } else if (attributeType.clazz.equals(Date.class)) {
- String d = ScimUtils.toDateTimeString((Date) ace.getCompareValue());
- return criteriaBuilder.lessThan(path, d);
- } else if (attributeType.clazz.equals(LocalDate.class)) {
- String d = ScimUtils.toDateString((LocalDate) ace.getCompareValue());
- return criteriaBuilder.lessThan(path, d);
- } else if (attributeType.clazz.equals(LocalDateTime.class)) {
- String d = ScimUtils.toDateTimeString((LocalDateTime) ace.getCompareValue());
- return criteriaBuilder.lessThan(path, d);
- } else {
- throw new UnableToRetrieveResourceException(Status.BAD_REQUEST, "Invalid value type for boolean evaluation (GT), " + ace.getAttributePath().getFullAttributeName());
- }
- case NE:
- // return criteriaBuilder.notEqual(x, y);
- break;
- case SW:
- return criteriaBuilder.like(path, ace.getCompareValue() + "%");
- default:
- break;
- }
- }
-
- return null;
- // log.info("------> sql = " + sb.toString());// + '\n' + "-------->
- // query.toString() = " + query.toString());
- }
-
- @Override
- public void delete(String id) throws UnableToDeleteResourceException {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public List<Class<? extends ScimExtension>> getExtensionList() throws UnableToRetrieveExtensionsException {
- // TODO Auto-generated method stub
- return null;
- }
-
- private boolean processExpressionElement(FilterExpression expression, CriteriaBuilder builder) {
- return false;
- }
-
- @PostConstruct
- private void initialize() {
- criteriaBuilder = entityManager.getCriteriaBuilder();
- criteriaQuery = criteriaBuilder.createQuery(Person.class);
- queryRoot = criteriaQuery.from(Person.class);
- addressJoin = queryRoot.join(Person_.addressList, JoinType.LEFT);
- phoneJoin = queryRoot.join(Person_.phoneList, JoinType.LEFT);
-
- joinMap = new HashMap<>();
-
- joinMap.put("phones", phoneJoin);
- joinMap.put("addresses", addressJoin);
- }
-}
diff --git a/scim-server/scim-server-example/scim-server-rdbms/src/main/resources/META-INF/persistence.xml b/scim-server/scim-server-example/scim-server-rdbms/src/main/resources/META-INF/persistence.xml
deleted file mode 100644
index 6c816cc..0000000
--- a/scim-server/scim-server-example/scim-server-rdbms/src/main/resources/META-INF/persistence.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<persistence version="2.0"
- xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="
- http://java.sun.com/xml/ns/persistence
- http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
- <persistence-unit name="ExampleDS">
- <jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source>
- <class>edu.psu.swe.scim.rdbms.model.Person</class>
- <class>edu.psu.swe.scim.rdbms.model.Address</class>
- <class>edu.psu.swe.scim.rdbms.model.Phone</class>
- <exclude-unlisted-classes>true</exclude-unlisted-classes>
- <properties>
- <!-- Properties for Hibernate -->
- <property name="hibernate.hbm2ddl.auto" value="create-drop" />
- <property name="hibernate.show_sql" value="false" />
- </properties>
- </persistence-unit>
-</persistence>
diff --git a/scim-server/scim-server-example/scim-server-rdbms/src/main/resources/import.sql b/scim-server/scim-server-example/scim-server-rdbms/src/main/resources/import.sql
deleted file mode 100644
index 1a13396..0000000
--- a/scim-server/scim-server-example/scim-server-rdbms/src/main/resources/import.sql
+++ /dev/null
@@ -1,19 +0,0 @@
-
-insert into Person (person_id, first_name, last_name, middle_name, active) values (1, 'Bilbo', 'Baggins', 'Bongo', true);
-insert into Person (person_id, first_name, last_name, middle_name, active) values (2, 'Frodo', 'Baggins', 'Bongo', true);
-insert into Person (person_id, first_name, last_name, middle_name, active) values (3, 'Gandalf', 'Wizard', 'The', true);
-
-
-insert into Address (address_id, street_address, city, state, country, zip_code, person_id) values (1, '133 MacDuff Cir', 'Bellefonte', 'PA', 'US', '22144', 1);
-insert into Address (address_id, street_address, city, state, country, zip_code, person_id) values (2, '409B Kitts', 'China Lake', 'CA', 'US', '93555', 1);
-
-insert into Address (address_id, street_address, city, state, country, zip_code, person_id) values (3, 'Underhill', 'Hobbiton', 'WA', 'US', '12121', 2);
-insert into Address (address_id, street_address, city, state, country, zip_code, person_id) values (4, 'Overhill', 'Middle Earth', 'AJ', 'NZ', 'AE1023', 3);
-
-insert into Phone (phone_id, phone_type, international_prefix, number, extension, person_id) values (1, 'home', '44', 'tel=+44 1423 3482734;ext=23', '444', 1);
-insert into Phone (phone_id, phone_type, international_prefix, number, extension, person_id) values (2, 'work', '1', 'tel=+1 814 238 5069', null, 1);
-
-
-insert into Phone (phone_id, phone_type, international_prefix, number, extension, person_id) values (3, 'fax', '1', 'tel=+1 814 238 5069', null, 2);
-insert into Phone (phone_id, phone_type, international_prefix, number, extension, person_id) values (4, 'cell', '23', 'tel=+23 782938 2345', null, 3);
-
diff --git a/scim-server/scim-server-example/scim-server-rdbms/src/main/webapp/WEB-INF/beans.xml b/scim-server/scim-server-example/scim-server-rdbms/src/main/webapp/WEB-INF/beans.xml
deleted file mode 100644
index 1fe732f..0000000
--- a/scim-server/scim-server-example/scim-server-rdbms/src/main/webapp/WEB-INF/beans.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0"?>
-<beans xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://jboss.org/schema/cdi/beans_1_0.xsd"/>
diff --git a/scim-server/scim-server-example/scim-server-rdbms/src/main/webapp/WEB-INF/web.xml b/scim-server/scim-server-example/scim-server-rdbms/src/main/webapp/WEB-INF/web.xml
deleted file mode 100644
index 8948851..0000000
--- a/scim-server/scim-server-example/scim-server-rdbms/src/main/webapp/WEB-INF/web.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
-
-</web-app>
diff --git a/scim-spec/scim-spec-protocol/pom.xml b/scim-spec/scim-spec-protocol/pom.xml
index a417d03..08b77a8 100644
--- a/scim-spec/scim-spec-protocol/pom.xml
+++ b/scim-spec/scim-spec-protocol/pom.xml
@@ -1,95 +1,101 @@
-<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/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
+<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/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>edu.psu.swe.scim</groupId>
- <artifactId>scim-spec</artifactId>
- <version>2.23-SNAPSHOT</version>
- </parent>
+ <parent>
+ <groupId>edu.psu.swe.scim</groupId>
+ <artifactId>scim-spec</artifactId>
+ <version>2.23-SNAPSHOT</version>
+ </parent>
- <artifactId>scim-spec-protocol</artifactId>
- <name>SCIM - Specification - Protocol</name>
+ <artifactId>scim-spec-protocol</artifactId>
+ <name>SCIM - Specification - Protocol</name>
- <dependencies>
- <dependency>
- <groupId>javax</groupId>
- <artifactId>javaee-api</artifactId>
- </dependency>
- <dependency>
- <groupId>io.swagger</groupId>
- <artifactId>swagger-jaxrs</artifactId>
- <version>1.5.0</version>
- <exclusions>
- <exclusion>
- <groupId>com.fasterxml.jackson.dataformat</groupId>
- <artifactId>jackson-dataformat-xml</artifactId>
- </exclusion>
- <exclusion>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-core</artifactId>
- </exclusion>
- <exclusion>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-annotations</artifactId>
- </exclusion>
- <exclusion>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- </exclusion>
- <exclusion>
- <artifactId>jsr311-api</artifactId>
- <groupId>javax.ws.rs</groupId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>scim-spec-schema</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.projectlombok</groupId>
- <artifactId>lombok</artifactId>
- <scope>provided</scope>
- </dependency>
+ <dependencies>
+ <dependency>
+ <groupId>javax</groupId>
+ <artifactId>javaee-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>io.swagger</groupId>
+ <artifactId>swagger-jaxrs</artifactId>
+ <version>1.5.0</version>
+ <exclusions>
+ <exclusion>
+ <groupId>com.fasterxml.jackson.dataformat</groupId>
+ <artifactId>jackson-dataformat-xml</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-core</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-annotations</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.google.code.findbugs</groupId>
+ <artifactId>annotations</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-databind</artifactId>
+ </exclusion>
+ <exclusion>
+ <artifactId>jsr311-api</artifactId>
+ <groupId>javax.ws.rs</groupId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>scim-spec-schema</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.projectlombok</groupId>
+ <artifactId>lombok</artifactId>
+ <scope>provided</scope>
+ </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>pl.pragmatists</groupId>
- <artifactId>JUnitParams</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-simple</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.antlr</groupId>
- <artifactId>antlr4-runtime</artifactId>
- <version>4.5.3</version>
- </dependency>
- </dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>pl.pragmatists</groupId>
+ <artifactId>JUnitParams</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.antlr</groupId>
+ <artifactId>antlr4-runtime</artifactId>
+ <version>4.5.3</version>
+ </dependency>
+ </dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.antlr</groupId>
- <artifactId>antlr4-maven-plugin</artifactId>
- <version>4.5.3</version>
- <executions>
- <execution>
- <goals>
- <goal>antlr4</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.antlr</groupId>
+ <artifactId>antlr4-maven-plugin</artifactId>
+ <version>4.5.3</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>antlr4</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
</project>
diff --git a/scim-spec/scim-spec-schema/pom.xml b/scim-spec/scim-spec-schema/pom.xml
index 3ee3983..b42161e 100644
--- a/scim-spec/scim-spec-schema/pom.xml
+++ b/scim-spec/scim-spec-schema/pom.xml
@@ -66,6 +66,7 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
+ <version>3.7</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
diff --git a/scim-tools/pom.xml b/scim-tools/pom.xml
index 6f81cbf..00e64fa 100644
--- a/scim-tools/pom.xml
+++ b/scim-tools/pom.xml
@@ -12,9 +12,7 @@
<packaging>pom</packaging>
<modules>
- <module>scim-tools-cli</module>
<module>scim-tools-common</module>
- <module>scim-tools-studio</module>
</modules>
-</project>
\ No newline at end of file
+</project>
diff --git a/scim-tools/scim-tools-cli/pom.xml b/scim-tools/scim-tools-cli/pom.xml
deleted file mode 100644
index 1b05678..0000000
--- a/scim-tools/scim-tools-cli/pom.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<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/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>edu.psu.swe.scim</groupId>
- <artifactId>scim-tools</artifactId>
- <version>2.23-SNAPSHOT</version>
- </parent>
-
- <artifactId>scim-tools-cli</artifactId>
- <name>SCIM - Tools - CLI</name>
-
-</project>
\ No newline at end of file
diff --git a/scim-tools/scim-tools-studio/pom.xml b/scim-tools/scim-tools-studio/pom.xml
deleted file mode 100644
index d16aa9f..0000000
--- a/scim-tools/scim-tools-studio/pom.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<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/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>edu.psu.swe.scim</groupId>
- <artifactId>scim-tools</artifactId>
- <version>2.23-SNAPSHOT</version>
- </parent>
-
- <artifactId>scim-tools-studio</artifactId>
- <packaging>war</packaging>
- <name>SCIM - Tools - Studio</name>
-
-</project>
\ No newline at end of file
diff --git a/scim-tools/scim-tools-studio/src/main/webapp/WEB-INF/beans.xml b/scim-tools/scim-tools-studio/src/main/webapp/WEB-INF/beans.xml
deleted file mode 100644
index 1fe732f..0000000
--- a/scim-tools/scim-tools-studio/src/main/webapp/WEB-INF/beans.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0"?>
-<beans xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://jboss.org/schema/cdi/beans_1_0.xsd"/>
diff --git a/scim-tools/scim-tools-studio/src/main/webapp/WEB-INF/web.xml b/scim-tools/scim-tools-studio/src/main/webapp/WEB-INF/web.xml
deleted file mode 100644
index 8948851..0000000
--- a/scim-tools/scim-tools-studio/src/main/webapp/WEB-INF/web.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
-
-</web-app>