From 473bdbdd9f931ccf7319b0a15b079d869516b883 Mon Sep 17 00:00:00 2001 From: Jan Vansteenlandt Date: Sat, 4 Feb 2017 16:31:03 +0100 Subject: [PATCH 01/68] Small bugfixes for a logged in users' dataset view --- .../Core/Definitions/DefinitionController.php | 257 +++--------------- app/Tdt/Core/Ui/DatasetController.php | 116 ++++---- app/lang/en/htmlview.php | 22 +- app/lang/nl/htmlview.php | 22 +- public/css/error.css | 2 +- public/css/leaflet.css | 2 +- public/css/main.css | 2 +- public/js/admin.min.js | 2 +- public/js/datasets.min.js | 15 +- public/js/leaflet.min.js | 10 +- public/js/rdf2html.min.js | 10 +- public/js/script.min.js | 4 +- 12 files changed, 135 insertions(+), 329 deletions(-) diff --git a/app/Tdt/Core/Definitions/DefinitionController.php b/app/Tdt/Core/Definitions/DefinitionController.php index 2a11e1b4..0fae79e5 100755 --- a/app/Tdt/Core/Definitions/DefinitionController.php +++ b/app/Tdt/Core/Definitions/DefinitionController.php @@ -27,7 +27,9 @@ public function __construct(DefinitionRepositoryInterface $definitions) } /** - * Create and Link Job (elasticsearch): Get the class without the namespace + * Return a class without the namespace + * + * @return string */ private function getClass($obj) { @@ -53,8 +55,8 @@ private function validateParameters($type, $short_name, $params) $rules = $type::getCreateValidators(); foreach ($create_params as $key => $info) { - if (!array_key_exists($key, $params)) { - if (!empty($info['required']) && $info['required']) { + if (! array_key_exists($key, $params)) { + if (! empty($info['required']) && $info['required']) { if (strtolower($type) != 'job') { \App::abort( 400, @@ -68,7 +70,7 @@ private function validateParameters($type, $short_name, $params) $validated_params[$key] = @$info['default_value']; } else { - if (!empty($rules[$key])) { + if (! empty($rules[$key])) { $validator = \Validator::make( array($key => $params[$key]), array($key => $rules[$key]) @@ -97,9 +99,9 @@ private function getClassOfType($params, $ns) $type = @$params['type']; $type = ucfirst(mb_strtolower($type)); - $class_name = $ns . "\\" . $type; + $class_name = $ns . '\\' . $type; - if (!class_exists($class_name)) { + if (! class_exists($class_name)) { \App::abort(400, "The given type ($type) is not a $ns type."); } @@ -116,7 +118,12 @@ private function getClassOfType($params, $ns) } /** - * Create and Link Job (elasticsearch): Create a new job + * Create and and return the job linked to the new definition + * + * @param string $uri The URI of the datasource + * @param array $input The input of the request + * + * @return integer The ID of the job */ public function createLinkJob($uri, $input) { @@ -133,24 +140,21 @@ public function createLinkJob($uri, $input) $params['extract']['type'] = $input['original-dataset-type']; $params['extract']['uri'] = $input['uri']; - if ($params['extract']['type'] == "csv") { + if ($params['extract']['type'] == 'csv') { $params['extract']['delimiter'] = $input['delimiter']; $params['extract']['has_header_row'] = $input['has_header_row']; $params['extract']['encoding'] = 'UTF-8'; - } elseif ($params['extract']['type'] == "xml") { - $params['extract']['array_level']=$input['array_level']; + } elseif ($params['extract']['type'] == 'xml') { + $params['extract']['array_level'] = $input['array_level']; $params['extract']['encoding'] = 'UTF-8'; - } elseif ($params['extract']['type'] == "json") { - /* No extra fields */ } - // Load class construction (always elasticsearch) $params['load']['type'] = 'elasticsearch'; - $params['load']['host'] = $input['host']; - $params['load']['port'] = $input['port']; - $params['load']['es_index'] = $input['es_index']; - $params['load']['es_type'] = $collection_uri.'_'.$name; + $params['load']['host'] = \Config::get('database.connections.tdt_elasticsearch.host', 'localhost'); + $params['load']['port'] = \Config::get('database.connections.tdt_elasticsearch.port', 9200); + $params['load']['es_index'] = \Config::get('database.connections.tdt_elasticsearch.index', 'datatank'); + $params['load']['es_type'] = trim($collection_uri) . '_' . trim($name); $params['load']['username'] = $input['username']; $params['load']['password'] = $input['password']; @@ -203,7 +207,6 @@ public function createLinkJob($uri, $input) }); return $job->id; - } /** @@ -216,7 +219,6 @@ private function editLinkedJob($uri, $input) // Set permission Auth::requirePermissions('definition.update'); - $job = \Job::whereRaw("? like CONCAT(collection_uri, '/', name , '/', '%')", array($uri . '/')) ->with('extractor', 'loader')->first(); @@ -230,24 +232,23 @@ private function editLinkedJob($uri, $input) $params['extract']['type'] = $input['original-dataset-type']; $params['extract']['uri'] = $input['uri']; - if ($params['extract']['type'] == "csv") { + if ($params['extract']['type'] == 'csv') { $params['extract']['delimiter'] = $input['delimiter']; $params['extract']['has_header_row'] = $input['has_header_row']; $params['extract']['encoding'] = 'UTF-8'; - } elseif ($params['extract']['type'] == "xml") { - $params['extract']['array_level']=$input['array_level']; + } elseif ($params['extract']['type'] == 'xml') { + $params['extract']['array_level'] = $input['array_level']; $params['extract']['encoding'] = 'UTF-8'; - } elseif ($params['extract']['type'] == "json") { + } elseif ($params['extract']['type'] == 'json') { /* No extra fields */ } - // Load class construction (always elasticsearch) $params['load']['type'] = 'elasticsearch'; $params['load']['host'] = 'localhost'; $params['load']['port'] = 9200; $params['load']['es_index'] = ''; - $params['load']['es_type'] = $collection_uri.'_'.$name; + $params['load']['es_type'] = $collection_uri . '_' . $name; $params['load']['username'] = ''; $params['load']['password'] = ''; @@ -298,193 +299,6 @@ private function editLinkedJob($uri, $input) return $job->id; } - /** - * Create and Link Job (elasticsearch): Get the class without the namespace - */ - private function getClass($obj) - { - if (is_null($obj)) { - return null; - } - - $class_pieces = explode('\\', get_class($obj)); - $class = ucfirst(mb_strtolower(array_pop($class_pieces))); - - return implode('\\', $class_pieces) . '\\' . $class; - } - - /** - * Create and Link Job (elasticsearch): Validate the create parameters based on the rules of a certain job. - * If something goes wrong, abort the application and return a corresponding error message. - * - * @param string $type - * @param string $short_name - * @param array $params - * - * @return array - */ - private function validateParameters($type, $short_name, $params) - { - $validated_params = array(); - - $create_params = $type::getCreateProperties(); - $rules = $type::getCreateValidators(); - - foreach ($create_params as $key => $info) { - if (! array_key_exists($key, $params)) { - if (! empty($info['required']) && $info['required']) { - if (strtolower($type) != 'job') { - \App::abort( - 400, - "The parameter '$key' of the $short_name-part of the job configuration is required but was not passed." - ); - } else { - \App::abort(400, "The parameter '$key' is required to create a job but was not passed."); - } - } - - $validated_params[$key] = @$info['default_value']; - - } else { - if (! empty($rules[$key])) { - $validator = \Validator::make( - array($key => $params[$key]), - array($key => $rules[$key]) - ); - - if ($validator->fails()) { - \App::abort( - 400, - "The validation failed for parameter $key with value '$params[$key]', make sure the value is valid." - ); - } - } - - $validated_params[$key] = $params[$key]; - } - } - - return $validated_params; - } - - /** - * Create and Link Job (elasticsearch): Check if a given type of the ETL exists. - */ - private function getClassOfType($params, $ns) - { - $type = @$params['type']; - $type = ucfirst(mb_strtolower($type)); - - $class_name = $ns . '\\' . $type; - - if (! class_exists($class_name)) { - \App::abort(400, "The given type ($type) is not a $ns type."); - } - - $class = new $class_name(); - - // Validate the properties of the given type - $validated_params = $this->validateParameters($class, $type, $params); - - foreach ($validated_params as $key => $value) { - $class->$key = $value; - } - - return $class; - } - - /** - * Create and and return the job linked to the new definition - * - * @param string $uri The URI of the datasource - * @param array $input The input of the request - * - * @return integer The ID of the job - */ - public function createLinkJob($uri, $input) - { - // Set permission - Auth::requirePermissions('definition.create'); - - preg_match('/(.*)\/([^\/]*)$/', $uri, $matches); - - $collection_uri = @$matches[1]; - $name = @$matches[2]; - - // Extract class construction - $params = []; - $params['extract']['type'] = $input['original-dataset-type']; - $params['extract']['uri'] = $input['uri']; - - if ($params['extract']['type'] == 'csv') { - $params['extract']['delimiter'] = $input['delimiter']; - $params['extract']['has_header_row'] = $input['has_header_row']; - $params['extract']['encoding'] = 'UTF-8'; - } elseif ($params['extract']['type'] == 'xml') { - $params['extract']['array_level'] = $input['array_level']; - $params['extract']['encoding'] = 'UTF-8'; - } - - // Load class construction (always elasticsearch) - $params['load']['type'] = 'elasticsearch'; - $params['load']['host'] = \Config::get('database.connections.tdt_elasticsearch.host', 'localhost'); - $params['load']['port'] = \Config::get('database.connections.tdt_elasticsearch.port', 9200); - $params['load']['es_index'] = \Config::get('database.connections.tdt_elasticsearch.index', 'datatank'); - $params['load']['es_type'] = trim($collection_uri) . '_' . trim($name); - $params['load']['username'] = $input['username']; - $params['load']['password'] = $input['password']; - - // Add schedule - $params['schedule'] = $input['schedule']; - - // Validate the job properties - $job_params = $this->validateParameters('Job', 'job', $params); - - $extract = @$params['extract']; - $load = @$params['load']; - - // Check for every emlp part if the type is supported - $extractor = $this->getClassOfType(@$extract, 'Extract'); - $loader = $this->getClassOfType(@$load, 'Load'); - - // Save the emlp models - $extractor->save(); - $loader->save(); - - // Create the job associated with emlp relations - $job = new \Job(); - $job->collection_uri = $collection_uri; - $job->name = $name; - - // Add the validated job params - foreach ($job_params as $key => $value) { - $job->$key = $value; - } - - $job->extractor_id = $extractor->id; - $job->extractor_type = $this->getClass($extractor); - - $job->loader_id = $loader->id; - $job->loader_type = $this->getClass($loader); - $job->save(); - - // Execute the job for a first time - $job->date_executed = time(); - $job->save(); - - $job_name = $job->collection_uri . '/' . $job->name; - - \Queue::push(function ($queued_job) use ($job_name) { - \Artisan::call('input:execute', [ - 'jobname' => $job_name - ]); - - $queued_job->delete(); - }); - - return $job->id; - } - /** * Create a new definition based on the PUT parameters given and content-type */ @@ -514,16 +328,16 @@ public function put($uri) $input['resource_name'] = @$matches[2]; // Add uploaded file and change uri. - if (isset($input['fileupload']) && $input['fileupload'] !='') { - $input['uri'] = 'file://'.$input['fileupload']; + if (isset($input['fileupload']) && $input['fileupload'] != '') { + $input['uri'] = 'file://' . $input['fileupload']; } // Check if dataset should be indexed if (isset($input['to_be_indexed']) && $input['to_be_indexed'] == 1) { - $input['es_type'] = $input['collection_uri'].'_'.$input['resource_name']; + $input['es_type'] = $input['collection_uri'] . '_' . $input['resource_name']; //if a new job is stored and it needs to be indexed, set the draft flag to true - $input['draft_flag']= 1; + $input['draft_flag'] = 1; } // Validate the input @@ -544,8 +358,7 @@ public function put($uri) $job_id = $this->createLinkJob($uri, $input); //when a job is done, the definition needs to be checked, if the draft is set to true, set it to false. - $input['draft_flag']= 0; - + $input['draft_flag'] = 0; // Link job with definition through job_id column. $input['job_id'] = $job_id; @@ -624,8 +437,8 @@ public function patch($uri) $input['resource_name'] = @$matches[2]; // Add uploaded file and change uri. // TODO: Validate file extension based on selected dataset/definition. - if(isset($input['fileupload']) && $input['fileupload'] !='') { - $input['uri'] = 'file://'.$input['fileupload']; + if(isset($input['fileupload']) && $input['fileupload'] != '') { + $input['uri'] = 'file://' . $input['fileupload']; } // Add uploaded file and change uri. @@ -653,8 +466,8 @@ public function patch($uri) ); // Check if dataset has a linked job (for updating purposes only if uri dataset field has been modified) - if ($definition['job_id'] != null && isset($input['fileupload']) && $input['fileupload'] !='') { - $input['original-dataset-type'] = strtolower(chop($definition['source_type'],"Definition")); + if ($definition['job_id'] != null && isset($input['fileupload']) && $input['fileupload'] != '') { + $input['original-dataset-type'] = strtolower(chop($definition['source_type'],'Definition')); $job_id = $this->editLinkedJob($uri, $input); } diff --git a/app/Tdt/Core/Ui/DatasetController.php b/app/Tdt/Core/Ui/DatasetController.php index 127db9c1..dcddf366 100755 --- a/app/Tdt/Core/Ui/DatasetController.php +++ b/app/Tdt/Core/Ui/DatasetController.php @@ -14,7 +14,6 @@ class DatasetController extends UiController { - /** * Admin.dataset.view */ @@ -23,39 +22,39 @@ public function getIndex() // Set permission Auth::requirePermissions('admin.dataset.view'); - // Check user id - $user = \Sentry::getUser(); - + // Check user id + $user = \Sentry::getUser(); + // Get created definitions - //$definitions = \Definition::all(); - $definitions = \Definition::where('user_id', $user->id)->get(); - + $definitions = \Definition::where('user_id', $user->id)->get(); + // Get updated definitions - $defupdated_ids = \DB::table('definitions_updates') - ->join('definitions', 'definitions.username', '=', 'definitions_updates.username') - ->where('definitions_updates.username', $user->email) - ->select('definitions_updates.definition_id') + $updatedDefinitionIds = \DB::table('definitions_updates') + ->where('definitions_updates.user_id', $user->id) + ->select('definitions_updates.definition_id') ->get(); - - $updateddeflist = array(); - foreach ($defupdated_ids as $defid) { - $updateddeflist[] = $defid->definition_id; - } - - $definitions_updated = null; - if (!empty($updateddeflist)){ - $definitions_updated = \Definition::whereIn('id', $updateddeflist) - ->get(); - } - - // Get other definitions - $definitions_others = \Definition::where('user_id', '!=' , $user->id)->get(); - + + $updatedDefinitions = array(); + + foreach ($updatedDefinitionIds as $defid) { + $updatedDefinitions[] = $defid->definition_id; + } + + $definitions_updated = null; + + if (! empty($updatedDefinitions)) { + $definitions_updated = \Definition::whereIn('id', $updatedDefinitions) + ->get(); + } + + // Get other definitions + $definitions_others = \Definition::where('user_id', '!=', $user->id)->whereNotIn('id', $updatedDefinitions)->get(); + return \View::make('ui.datasets.list') ->with('title', 'Dataset management (Created/Updated/Others) | The Datatank') ->with('definitions', $definitions) - ->with('definitions_updated', $definitions_updated) - ->with('definitions_others', $definitions_others); + ->with('definitions_updated', $definitions_updated) + ->with('definitions_others', $definitions_others); } /** @@ -87,7 +86,7 @@ public function getAdd() // Filter array type parameters if (empty($object->parameters)) { // Filter Dublin core parameters - if (!empty($object->group) && $object->group == 'dc') { + if (! empty($object->group) && $object->group == 'dc') { // Fetch autocomplete DC fields if ($object->type == 'list') { $uri = $object->list; @@ -98,7 +97,7 @@ public function getAdd() $data_set = array(); foreach ($data as $o) { - if (!empty($o->{$object->list_option})) { + if (! empty($o->{$object->list_option})) { $data_set[] = $o->{$object->list_option}; } } @@ -112,7 +111,7 @@ public function getAdd() $parameters_dc[$parameter] = $object; - } elseif (!empty($object->group) && $object->group == 'geodcat') { + } elseif (! empty($object->group) && $object->group == 'geodcat') { // Filter Geo params $parameters_geodcat[$parameter] = $object; } else { @@ -128,7 +127,7 @@ public function getAdd() $data_set = array(); foreach ($data as $o) { - if (!empty($o->{$object->list_option})) { + if (! empty($o->{$object->list_option})) { $data_set[] = $o->{$object->list_option}; } } @@ -169,10 +168,10 @@ public function getAdd() // TODO special treatment for caching unset($parameters_optional['draft']); - unset($parameters_optional['draft_flag']); - unset($parameters_required['username']); - unset($parameters_required['user_id']); - unset($parameters_optional['job_id']); + unset($parameters_optional['draft_flag']); + unset($parameters_required['username']); + unset($parameters_required['user_id']); + unset($parameters_optional['job_id']); // Translate the parameters $parameters_required = $this->translateParameters($parameters_required, $mediatype); @@ -197,7 +196,6 @@ public function getAdd() return \Response::make($view); } - /** * Admin.dataset.update */ @@ -226,12 +224,12 @@ public function getEdit($id) $parameters_dc = array(); $parameters_geodcat = array(); $lists = array(); - + foreach ($mediatype->parameters as $parameter => $object) { // Filter array type parameters if (empty($object->parameters)) { // Filter Dublin core parameters - if (!empty($object->group) && $object->group == 'dc') { + if (! empty($object->group) && $object->group == 'dc') { // Fetch autocomplete DC fields if ($object->type == 'list') { $uri = $object->list; @@ -242,7 +240,7 @@ public function getEdit($id) $data_set = array(); foreach ($data as $o) { - if (!empty($o->{$object->list_option})) { + if (! empty($o->{$object->list_option})) { $data_set[] = $o->{$object->list_option}; } } @@ -255,7 +253,7 @@ public function getEdit($id) } $parameters_dc[$parameter] = $object; - } elseif (!empty($object->group) && $object->group == 'geodcat') { + } elseif (! empty($object->group) && $object->group == 'geodcat') { // Filter Geo params $parameters_geodcat[$parameter] = $object; } else { @@ -272,7 +270,7 @@ public function getEdit($id) $data_set = array(); foreach ($data as $o) { - if (!empty($o->{$object->list_option})) { + if (! empty($o->{$object->list_option})) { $data_set[] = $o->{$object->list_option}; } } @@ -292,18 +290,18 @@ public function getEdit($id) // Filter on unnecessary optional parameters unset($parameters_optional['cache_minutes']); unset($parameters_optional['draft']); - unset($parameters_optional['draft_flag']); - unset($parameters_optional['username']); - unset($parameters_optional['user_id']); - unset($parameters_optional['job_id']); - - // Get dataset updates information - $updates_info = \DB::table('definitions_updates') - ->where('definition_id', $id) - ->select('username','updated_at') - ->orderBy('updated_at', 'desc') - ->limit(10) - ->get(); + unset($parameters_optional['draft_flag']); + unset($parameters_optional['username']); + unset($parameters_optional['user_id']); + unset($parameters_optional['job_id']); + + // Get dataset updates information + $updates_info = \DB::table('definitions_updates') + ->where('definition_id', $id) + ->select('username','updated_at') + ->orderBy('updated_at', 'desc') + ->limit(10) + ->get(); return \View::make('ui.datasets.edit') ->with('title', 'Edit a dataset | The Datatank') @@ -314,7 +312,7 @@ public function getEdit($id) ->with('parameters_dc', $parameters_dc) ->with('parameters_geodcat', $parameters_geodcat) ->with('source_definition', $source_definition) - ->with('updates_info', $updates_info); + ->with('updates_info', $updates_info); return \Response::make($view); } else { @@ -327,7 +325,7 @@ public function getEdit($id) */ public function getDelete($id) { - //\App::abort(400, "Deleting dataset."); + //\App::abort(400, "Deleting dataset."); // Set permission Auth::requirePermissions('admin.dataset.delete'); @@ -335,9 +333,9 @@ public function getDelete($id) if (is_numeric($id)) { $definition = \Definition::find($id); if ($definition) { - // Delete definition updates - \DB::table('definitions_updates')->where('definition_id', $id)->delete(); - + // Delete definition updates + \DB::table('definitions_updates')->where('definition_id', $id)->delete(); + // Delete it (with cascade) $definition->delete(); } diff --git a/app/lang/en/htmlview.php b/app/lang/en/htmlview.php index 03d77325..b32df45b 100644 --- a/app/lang/en/htmlview.php +++ b/app/lang/en/htmlview.php @@ -1,15 +1,15 @@ "Formats", - "description" => "Description", - "source_type" => "Source type", - "license" => "License", - "contact" => "Contact", - "publisher" => "Publisher", - "keywords" => "Keywords", - "spatial" => "Geographic context", - "original_file" => "Original file", - "created_by" => "Created by", - "updated_by" => "Updated by" + 'formats' => 'Formats', + 'description' => 'Description', + 'source_type' => 'Source type', + 'license' => 'License', + 'contact' => 'Contact', + 'publisher' => 'Publisher', + 'keywords' => 'Keywords', + 'spatial' => 'Geographic context', + 'original_file' => 'Original file', + 'created_by' => 'Created by', + 'updated_by' => 'Last updates made by' ]; diff --git a/app/lang/nl/htmlview.php b/app/lang/nl/htmlview.php index c6067cfa..0a135bac 100644 --- a/app/lang/nl/htmlview.php +++ b/app/lang/nl/htmlview.php @@ -1,15 +1,15 @@ "Formaten", - "description" => "Beschrijving", - "source_type" => "Bronbestand", - "license" => "Licentie", - "contact" => "Contact", - "publisher" => "Uitgever", - "keywords" => "Trefwoorden", - "spatial" => "Geografische context", - "original_file" => "Origineel bestand", - "created_by" => "Gemaakt door", - "updated_by" => "Geactualiseerd door" + 'formats' => 'Formaten', + 'description' => 'Beschrijving', + 'source_type' => 'Bronbestand', + 'license' => 'Licentie', + 'contact' => 'Contact', + 'publisher' => 'Uitgever', + 'keywords' => 'Trefwoorden', + 'spatial' => 'Geografische context', + 'original_file' => 'Origineel bestand', + 'created_by' => 'Gemaakt door', + 'updated_by' => 'Laatst aangepast door' ]; diff --git a/public/css/error.css b/public/css/error.css index eb4f721c..fdd670fd 100644 --- a/public/css/error.css +++ b/public/css/error.css @@ -1 +1 @@ -article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:active,a:hover{outline:0}h1{margin:.67em 0}b,strong{font-weight:700}dfn{font-style:italic}hr{box-sizing:content-box;height:0}mark{background:#ff0;color:#000}kbd,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}button,input,select,textarea{margin:0}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}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}*,:after,:before{box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:transparent}body{line-height:1.428571429}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}button,input,select[multiple],textarea{background-image:none}a:focus{outline:#333 dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded,.img-thumbnail{border-radius:0}.img-thumbnail{padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;-webkit-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}@media print{*{text-shadow:none!important;color:#000!important;background:0 0!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href)")"}abbr[title]:after{content:" (" attr(title)")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:2cm .5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16.1px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small{font-size:85%}cite{font-style:normal}.text-muted{color:#999}.text-primary{color:#428bca}.text-warning{color:#c09853}.text-danger{color:#b94a48}.text-success{color:#468847}.text-info{color:#3a87ad}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h4,h5,h6{font-weight:500;line-height:1.1}.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:400;line-height:1;color:#999}h2{margin-bottom:10px}h2,h3{margin-top:20px}h4,h5,h6{margin-top:10px;margin-bottom:10px}.h1{font-size:36px}.h2,h2{font-size:30px}.h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}.h1 small,h1 small{font-size:24px}.h2 small,h2 small{font-size:18px}.h3 small,.h4 small,h3 small,h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-bottom:20px}dd,dt{line-height:1.428571429}dt{font-weight:700}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}.dl-horizontal dd:after,.dl-horizontal dd:before{content:" ";display:table}.dl-horizontal dd:after{clear:both}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{font-size:17.5px;font-weight:300;line-height:1.25}blockquote p:last-child{margin-bottom:0}blockquote small{display:block;line-height:1.428571429;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}blockquote:after,blockquote:before,q:after,q:before{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:1.428571429}code,pre{font-family:Monaco,Menlo,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap}code,pre{border-radius:0}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc}pre.prettyprint{margin-bottom:20px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.container:after,.container:before{content:" ";display:table}.container:after{clear:both}.row{margin-left:-15px;margin-right:-15px}.row:after,.row:before{content:" ";display:table}.row:after{clear:both}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.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-md-1,.col-md-10,.col-md-11,.col-md-12,.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-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.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-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-1{width:8.333333333333332%}.col-xs-2{width:16.666666666666664%}.col-xs-3{width:25%}.col-xs-4{width:33.33333333333333%}.col-xs-5{width:41.66666666666667%}.col-xs-6{width:50%}.col-xs-7{width:58.333333333333336%}.col-xs-8{width:66.66666666666666%}.col-xs-9{width:75%}.col-xs-10{width:83.33333333333334%}.col-xs-11{width:91.66666666666666%}.col-xs-12{width:100%}@media (min-width:768px){.container{max-width:750px}.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-1{width:8.333333333333332%}.col-sm-2{width:16.666666666666664%}.col-sm-3{width:25%}.col-sm-4{width:33.33333333333333%}.col-sm-5{width:41.66666666666667%}.col-sm-6{width:50%}.col-sm-7{width:58.333333333333336%}.col-sm-8{width:66.66666666666666%}.col-sm-9{width:75%}.col-sm-10{width:83.33333333333334%}.col-sm-11{width:91.66666666666666%}.col-sm-12{width:100%}.col-sm-push-1{left:8.333333333333332%}.col-sm-push-2{left:16.666666666666664%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.33333333333333%}.col-sm-push-5{left:41.66666666666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.333333333333336%}.col-sm-push-8{left:66.66666666666666%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.33333333333334%}.col-sm-push-11{left:91.66666666666666%}.col-sm-pull-1{right:8.333333333333332%}.col-sm-pull-2{right:16.666666666666664%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.33333333333333%}.col-sm-pull-5{right:41.66666666666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.333333333333336%}.col-sm-pull-8{right:66.66666666666666%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.33333333333334%}.col-sm-pull-11{right:91.66666666666666%}.col-sm-offset-1{margin-left:8.333333333333332%}.col-sm-offset-2{margin-left:16.666666666666664%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333333333333%}.col-sm-offset-5{margin-left:41.66666666666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.333333333333336%}.col-sm-offset-8{margin-left:66.66666666666666%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333333333334%}.col-sm-offset-11{margin-left:91.66666666666666%}}@media (min-width:992px){.container{max-width:970px}.col-md-1,.col-md-10,.col-md-11,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-1{width:8.333333333333332%}.col-md-2{width:16.666666666666664%}.col-md-3{width:25%}.col-md-4{width:33.33333333333333%}.col-md-5{width:41.66666666666667%}.col-md-6{width:50%}.col-md-7{width:58.333333333333336%}.col-md-8{width:66.66666666666666%}.col-md-9{width:75%}.col-md-10{width:83.33333333333334%}.col-md-11{width:91.66666666666666%}.col-md-12{width:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.333333333333332%}.col-md-push-2{left:16.666666666666664%}.col-md-push-3{left:25%}.col-md-push-4{left:33.33333333333333%}.col-md-push-5{left:41.66666666666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.333333333333336%}.col-md-push-8{left:66.66666666666666%}.col-md-push-9{left:75%}.col-md-push-10{left:83.33333333333334%}.col-md-push-11{left:91.66666666666666%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.333333333333332%}.col-md-pull-2{right:16.666666666666664%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.33333333333333%}.col-md-pull-5{right:41.66666666666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.333333333333336%}.col-md-pull-8{right:66.66666666666666%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.33333333333334%}.col-md-pull-11{right:91.66666666666666%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.333333333333332%}.col-md-offset-2{margin-left:16.666666666666664%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333333333333%}.col-md-offset-5{margin-left:41.66666666666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.333333333333336%}.col-md-offset-8{margin-left:66.66666666666666%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333333333334%}.col-md-offset-11{margin-left:91.66666666666666%}}@media (min-width:1200px){.container{max-width:1170px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-1{width:8.333333333333332%}.col-lg-2{width:16.666666666666664%}.col-lg-3{width:25%}.col-lg-4{width:33.33333333333333%}.col-lg-5{width:41.66666666666667%}.col-lg-6{width:50%}.col-lg-7{width:58.333333333333336%}.col-lg-8{width:66.66666666666666%}.col-lg-9{width:75%}.col-lg-10{width:83.33333333333334%}.col-lg-11{width:91.66666666666666%}.col-lg-12{width:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.333333333333332%}.col-lg-push-2{left:16.666666666666664%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.33333333333333%}.col-lg-push-5{left:41.66666666666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.333333333333336%}.col-lg-push-8{left:66.66666666666666%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.33333333333334%}.col-lg-push-11{left:91.66666666666666%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.333333333333332%}.col-lg-pull-2{right:16.666666666666664%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.33333333333333%}.col-lg-pull-5{right:41.66666666666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.333333333333336%}.col-lg-pull-8{right:66.66666666666666%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.33333333333334%}.col-lg-pull-11{right:91.66666666666666%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.333333333333332%}.col-lg-offset-2{margin-left:16.666666666666664%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333333333333%}.col-lg-offset-5{margin-left:41.66666666666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.333333333333336%}.col-lg-offset-8{margin-left:66.66666666666666%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333333333334%}.col-lg-offset-11{margin-left:91.66666666666666%}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table thead>tr>th{padding:8px;line-height:1.428571429;border-top:1px solid #ddd}.table tbody>tr>td,.table tbody>tr>th,.table tfoot>tr>td,.table tfoot>tr>th,.table thead>tr>td{padding:8px;line-height:1.428571429;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 td,.table caption+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table thead:first-child tr:first-child td,.table thead:first-child tr:first-child th{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed tbody>tr>td,.table-condensed tbody>tr>th,.table-condensed tfoot>tr>td,.table-condensed tfoot>tr>th,.table-condensed thead>tr>td,.table-condensed thead>tr>th{padding:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*=col-]{float:none;display:table-column}table td[class*=col-],table th[class*=col-]{float:none;display:table-cell}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8;border-color:#d6e9c6}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6;border-color:#c9e2b3}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede;border-color:#eed3d7}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc;border-color:#e6c1c7}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3;border-color:#fbeed5}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc;border-color:#f8e5be}@media (max-width:768px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:scroll;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0;background-color:#fff}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>thead>tr:last-child>td,.table-responsive>.table-bordered>thead>tr:last-child>th{border-bottom:0}}fieldset{padding:0;margin:0;border: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;margin-bottom:5px;font-weight:700}input[type=search]{box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;line-height:normal}input[type=file]{display:block}select[multiple],select[size]{height:auto}select optgroup{font-size:inherit;font-style:inherit;font-family:inherit}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:#333 dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}.form-control:-moz-placeholder,.form-control::-moz-placeholder{color:#999}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle;background-color:#fff;border:1px solid #ccc;border-radius:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-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;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}textarea.form-control{height:auto}.form-group{margin-bottom:15px}.checkbox,.radio{display:block;min-height:20px;margin-top:10px;margin-bottom:10px;padding-left:20px;vertical-align:middle}.checkbox label,.radio label{display:inline;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{float:left;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.checkbox-inline[disabled],.checkbox[disabled],.radio-inline[disabled],.radio[disabled],fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:0}select.input-sm{height:30px;line-height:30px}textarea.input-sm{height:auto}.input-lg{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:0}select.input-lg{height:45px;line-height:45px}textarea.input-lg{height:auto}.has-warning .control-label,.has-warning .help-block{color:#c09853}.has-warning .form-control{border-color:#c09853;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#a47e3c;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #dbc59e}.has-warning .input-group-addon{color:#c09853;border-color:#c09853;background-color:#fcf8e3}.has-error .control-label,.has-error .help-block{color:#b94a48}.has-error .form-control{border-color:#b94a48;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#953b39;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #d59392}.has-error .input-group-addon{color:#b94a48;border-color:#b94a48;background-color:#f2dede}.has-success .control-label,.has-success .help-block{color:#468847}.has-success .form-control{border-color:#468847;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#356635;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7aba7b}.has-success .input-group-addon{color:#468847;border-color:#468847;background-color:#dff0d8}.form-control-static{margin-bottom:0;padding-top:7px}.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}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{float:none;margin-left:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-group:before{content:" ";display:table}.form-horizontal .form-group:after{content:" ";display:table;clear:both}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.428571429;text-align:center;vertical-align:middle;cursor:pointer;border:1px solid transparent;border-radius:0;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.btn:focus{outline:#333 dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{outline:0;background-image:none;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.active,.btn-default:active,.btn-default:focus,.btn-default:hover,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default.active,.btn-default:active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary.active,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary.active,.btn-primary:active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#428bca;border-color:#357ebd}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.active,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.active,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.active,.btn-success:active,.btn-success:focus,.btn-success:hover,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success.active,.btn-success:active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.active,.btn-info:active,.btn-info:focus,.btn-info:hover,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info.active,.btn-info:active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-link{color:#428bca;font-weight:400;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#999;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:0}.btn-sm{padding:5px 10px}.btn-sm,.btn-xs{font-size:12px;line-height:1.5;border-radius:0}.btn-xs{padding:1px 5px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.btn-default .caret{border-top-color:#333}.btn-danger .caret,.btn-info .caret,.btn-primary .caret,.btn-success .caret,.btn-warning .caret{border-top-color:#fff}.dropup .btn-default .caret{border-bottom-color:#333}.dropup .btn-danger .caret,.dropup .btn-info .caret,.dropup .btn-primary .caret,.dropup .btn-success .caret,.dropup .btn-warning .caret{border-bottom-color:#fff}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn{float:left}.btn-group-vertical>.btn,.btn-group>.btn{position:relative}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group-vertical>.btn:focus,.btn-group>.btn:focus{outline:0}.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:after,.btn-toolbar:before{content:" ";display:table}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group{float:left}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn-group+.btn-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>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-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-xs>.btn{padding:1px 5px}.btn-group-sm>.btn,.btn-group-xs>.btn{font-size:12px;line-height:1.5;border-radius:0}.btn-group-sm>.btn{padding:5px 10px}.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius: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{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before{content:" ";display:table}.btn-group-vertical>.btn-group:after{content:" ";display:table;clear:both}.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:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:0;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>.btn:last-child,.btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-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{float:none;display:table-cell;width:1%}[data-toggle=buttons]>.btn>input[type=checkbox],[data-toggle=buttons]>.btn>input[type=radio]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group.col{float:none;padding-left:0;padding-right:0}.input-group .form-control{width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:0}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:45px;line-height:45px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.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:0}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{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon{white-space:nowrap}.input-group-addon,.input-group-btn{width:1%;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:0}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:0}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:0}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{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>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){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:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.dropdown-toggle{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{white-space:nowrap}.input-group-btn,.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-4px}.input-group-btn>.btn:active,.input-group-btn>.btn:hover{z-index:2}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav:after,.nav:before{content:" ";display:table}.nav:after{clear:both}.nav>li,.nav>li>a{position:relative;display:block}.nav>li>a{padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#428bca}.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.428571429;border:1px solid transparent;border-radius:0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{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;border-bottom:1px solid #ddd;margin-right:0}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}}.nav-tabs.nav-justified>.active>a{border-bottom-color:#fff}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:5px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#428bca}.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}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;margin-right:0}.nav-tabs-justified>.active>a{border-bottom-color:#fff}.tabbable:after,.tabbable:before{content:" ";display:table}.tabbable:after{clear:both}.pill-content>.pill-pane,.tab-content>.tab-pane{display:none}.pill-content>.active,.tab-content>.active{display:block}.nav .caret{border-top-color:#428bca;border-bottom-color:#428bca}.nav a:hover .caret{border-top-color:#2a6496;border-bottom-color:#2a6496}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;z-index:1000;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar:after,.navbar:before{content:" ";display:table}.navbar:after{clear:both}@media (min-width:768px){.navbar{border-radius:0}}.navbar-header:after,.navbar-header:before{content:" ";display:table}.navbar-header:after{clear:both}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse:after,.navbar-collapse:before{content:" ";display:table}.navbar-collapse:after{clear:both}.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;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-collapse .navbar-nav.navbar-left:first-child{margin-left:-15px}.navbar-collapse .navbar-nav.navbar-right:last-child{margin-right:-15px}.navbar-collapse .navbar-text:last-child{margin-right:0}}.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;border-width:0 0 1px}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{z-index:1030;top:0}.navbar-fixed-bottom{bottom:0;margin-bottom:0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius: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:7.5px -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 .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin:8px -15px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{float:none;margin-left:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;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{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-nav.pull-right>li>.dropdown-menu,.navbar-nav>li>.dropdown-menu.pull-right{left:auto;right:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-text{float:left;margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{margin-left:15px;margin-right:15px}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-nav>li>a,.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e6e6e6}.navbar-default .navbar-nav>.dropdown>a:focus .caret,.navbar-default .navbar-nav>.dropdown>a:hover .caret{border-top-color:#333;border-bottom-color:#333}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{background-color:#e7e7e7;color:#555}.navbar-default .navbar-nav>.open>a .caret,.navbar-default .navbar-nav>.open>a:focus .caret,.navbar-default .navbar-nav>.open>a:hover .caret{border-top-color:#555;border-bottom-color:#555}.navbar-default .navbar-nav>.dropdown>a .caret{border-top-color:#777;border-bottom-color:#777}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>li>a,.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{background-color:#080808;color:#fff}.navbar-inverse .navbar-nav>.dropdown>a:hover .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-nav>.dropdown>a .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .navbar-nav>.open>a .caret,.navbar-inverse .navbar-nav>.open>a:focus .caret,.navbar-inverse .navbar-nav>.open>a:hover .caret{border-top-color:#fff;border-bottom-color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:0}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:0}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.428571429;text-decoration:none;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:0;border-top-left-radius:0}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{background-color:#eee}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span{color:#999;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:0;border-top-left-radius:0}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.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:0;border-top-left-radius:0}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager:after,.pager:before{content:" ";display:table}.pager:after{clear:both}.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:focus,.pager li>a:hover{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:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:focus,.label[href]:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.label-default{background-color:#999}.label-default[href]:focus,.label-default[href]:hover{background-color:gray}.label-primary{background-color:#428bca}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;border-radius:10px}.badge:empty{display:none}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.btn .badge{position:relative;top:-1px}.nav-pills>.active>a>.badge,a.list-group-item.active>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.thumbnail{padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:0;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail,.thumbnail>img{display:block;max-width:100%;height:auto}a.thumbnail:focus,a.thumbnail:hover{border-color:#428bca}.thumbnail>img{margin-left:auto;margin-right:auto}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:0}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#356635}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#2d6987}.alert-warning{background-color:#fcf8e3;border-color:#fbeed5;color:#c09853}.alert-warning hr{border-top-color:#f8e5be}.alert-warning .alert-link{color:#a47e3c}.alert-danger{background-color:#f2dede;border-color:#eed3d7;color:#b94a48}.alert-danger hr{border-top-color:#e6c1c7}.alert-danger .alert-link{color:#953b39}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.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:0;border-top-left-radius:0}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover{text-decoration:none;background-color:#f5f5f5}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#e1edf7}.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:#fff;border:1px solid transparent;border-radius:0;box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-body:after,.panel-body:before{content:" ";display:table}.panel-body:after{clear:both}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0}.panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel>.list-group .list-group-item:last-child{border-bottom:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table{margin-bottom:0}.panel>.panel-body+.table{border-top:1px solid #ddd}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:-1px;border-top-left-radius:-1px}.panel-title{margin-top:0;margin-bottom:0;font-size:16px}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:-1px;border-bottom-left-radius:-1px}.panel-group .panel{margin-bottom:0;border-radius:0;overflow:hidden}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{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:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-warning{border-color:#fbeed5}.panel-warning>.panel-heading{color:#c09853;background-color:#fcf8e3;border-color:#fbeed5}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#fbeed5}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#fbeed5}.panel-danger{border-color:#eed3d7}.panel-danger>.panel-heading{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#eed3d7}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#eed3d7}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:0}.well-sm{padding:9px;border-radius:0}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;border-bottom:0 dotted;content:""}.dropdown{position:relative}.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;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:0;box-shadow:0 6px 12px rgba(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:400;line-height:1.428571429;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{text-decoration:none;color:#fff;background-color:#428bca}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#999}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{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-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.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 dotted;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:12px;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:0}.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;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right: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;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:0;box-shadow:0 5px 10px rgba(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;font-weight:400;line-height:18px;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,.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,.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,.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,.25)}.popover.left .arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.modal-open{overflow:hidden}.modal-open .navbar-fixed-bottom,.modal-open .navbar-fixed-top,body.modal-open{margin-right:15px}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{margin-left:auto;margin-right:auto;width:auto;padding:10px;z-index:1050}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:0;box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;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.43px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.428571429}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:after,.modal-footer:before{content:" ";display:table}.modal-footer:after{clear:both}.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}@media screen and (min-width:768px){.modal-dialog{left:50%;right:auto;width:600px;padding-top:30px;padding-bottom:30px}.modal-content{box-shadow:0 5px 15px rgba(0,0,0,.5)}}.clearfix:after,.clearfix:before{content:" ";display:table}.clearfix:after{clear:both}.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}.affix{position:fixed}@-ms-viewport{width:device-width}@media screen and (max-width:400px){@-ms-viewport{width:320px}}.hidden{visibility:hidden!important}.hidden,.visible-lg,.visible-md,.visible-sm,.visible-xs,td.visible-lg,td.visible-md,td.visible-sm,td.visible-xs,th.visible-lg,th.visible-md,th.visible-sm,th.visible-xs,tr.visible-lg,tr.visible-md,tr.visible-sm,tr.visible-xs{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-xs.visible-sm{display:block!important}tr.visible-xs.visible-sm{display:table-row!important}td.visible-xs.visible-sm,th.visible-xs.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-xs.visible-md{display:block!important}tr.visible-xs.visible-md{display:table-row!important}td.visible-xs.visible-md,th.visible-xs.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-xs.visible-lg{display:block!important}tr.visible-xs.visible-lg{display:table-row!important}td.visible-xs.visible-lg,th.visible-xs.visible-lg{display:table-cell!important}}@media (max-width:767px){.visible-sm.visible-xs{display:block!important}tr.visible-sm.visible-xs{display:table-row!important}td.visible-sm.visible-xs,th.visible-sm.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-sm.visible-md{display:block!important}tr.visible-sm.visible-md{display:table-row!important}td.visible-sm.visible-md,th.visible-sm.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-sm.visible-lg{display:block!important}tr.visible-sm.visible-lg{display:table-row!important}td.visible-sm.visible-lg,th.visible-sm.visible-lg{display:table-cell!important}}@media (max-width:767px){.visible-md.visible-xs{display:block!important}tr.visible-md.visible-xs{display:table-row!important}td.visible-md.visible-xs,th.visible-md.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-md.visible-sm{display:block!important}tr.visible-md.visible-sm{display:table-row!important}td.visible-md.visible-sm,th.visible-md.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-md.visible-lg{display:block!important}tr.visible-md.visible-lg{display:table-row!important}td.visible-md.visible-lg,th.visible-md.visible-lg{display:table-cell!important}}@media (max-width:767px){.visible-lg.visible-xs{display:block!important}tr.visible-lg.visible-xs{display:table-row!important}td.visible-lg.visible-xs,th.visible-lg.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-lg.visible-sm{display:block!important}tr.visible-lg.visible-sm{display:table-row!important}td.visible-lg.visible-sm,th.visible-lg.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-lg.visible-md{display:block!important}tr.visible-lg.visible-md{display:table-row!important}td.visible-lg.visible-md,th.visible-lg.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-lg{display:block!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}.hidden-xs{display:block!important}tr.hidden-xs{display:table-row!important}td.hidden-xs,th.hidden-xs{display:table-cell!important}@media (max-width:767px){.hidden-xs,td.hidden-xs,th.hidden-xs,tr.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-xs.hidden-sm,td.hidden-xs.hidden-sm,th.hidden-xs.hidden-sm,tr.hidden-xs.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-xs.hidden-md,td.hidden-xs.hidden-md,th.hidden-xs.hidden-md,tr.hidden-xs.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-xs.hidden-lg,td.hidden-xs.hidden-lg,th.hidden-xs.hidden-lg,tr.hidden-xs.hidden-lg{display:none!important}}.hidden-sm{display:block!important}tr.hidden-sm{display:table-row!important}td.hidden-sm,th.hidden-sm{display:table-cell!important}@media (max-width:767px){.hidden-sm.hidden-xs,td.hidden-sm.hidden-xs,th.hidden-sm.hidden-xs,tr.hidden-sm.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm,td.hidden-sm,th.hidden-sm,tr.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-sm.hidden-md,td.hidden-sm.hidden-md,th.hidden-sm.hidden-md,tr.hidden-sm.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-sm.hidden-lg,td.hidden-sm.hidden-lg,th.hidden-sm.hidden-lg,tr.hidden-sm.hidden-lg{display:none!important}}.hidden-md{display:block!important}tr.hidden-md{display:table-row!important}td.hidden-md,th.hidden-md{display:table-cell!important}@media (max-width:767px){.hidden-md.hidden-xs,td.hidden-md.hidden-xs,th.hidden-md.hidden-xs,tr.hidden-md.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-md.hidden-sm,td.hidden-md.hidden-sm,th.hidden-md.hidden-sm,tr.hidden-md.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md,td.hidden-md,th.hidden-md,tr.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-md.hidden-lg,td.hidden-md.hidden-lg,th.hidden-md.hidden-lg,tr.hidden-md.hidden-lg{display:none!important}}.hidden-lg{display:block!important}tr.hidden-lg{display:table-row!important}td.hidden-lg,th.hidden-lg{display:table-cell!important}@media (max-width:767px){.hidden-lg.hidden-xs,td.hidden-lg.hidden-xs,th.hidden-lg.hidden-xs,tr.hidden-lg.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-lg.hidden-sm,td.hidden-lg.hidden-sm,th.hidden-lg.hidden-sm,tr.hidden-lg.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-lg.hidden-md,td.hidden-lg.hidden-md,th.hidden-lg.hidden-md,tr.hidden-lg.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg,td.hidden-lg,th.hidden-lg,tr.hidden-lg{display:none!important}}.visible-print,td.visible-print,th.visible-print,tr.visible-print{display:none!important}@media print{.visible-print{display:block!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}.hidden-print,td.hidden-print,th.hidden-print,tr.hidden-print{display:none!important}}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:FontAwesome;src:url(../fonts/fontawesome-webfont.eot?v=4.1.0);src:url(../fonts/fontawesome-webfont.eot?#iefix&v=4.1.0) format("embedded-opentype"),url(../fonts/fontawesome-webfont.woff?v=4.1.0) format("woff"),url(../fonts/fontawesome-webfont.ttf?v=4.1.0) format("truetype"),url(../fonts/fontawesome-webfont.svg?v=4.1.0#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1;-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:.08em solid #eee;border-radius:.1em}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@keyframes 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);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-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);transform:scale(1,-1)}.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-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-cog:before,.fa-gear: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-repeat:before,.fa-rotate-right: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-image:before,.fa-photo: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-exclamation-triangle:before,.fa-warning: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{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-cogs:before,.fa-gears: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:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.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-floppy-o:before,.fa-save:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-bars:before,.fa-navicon:before,.fa-reorder: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-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-bolt:before,.fa-flash:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-clipboard:before,.fa-paste: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-chain-broken:before,.fa-unlink: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-caret-square-o-down:before,.fa-toggle-down:before{content:"\f150"}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:"\f151"}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:"\f152"}.fa-eur:before,.fa-euro:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-inr:before,.fa-rupee:before{content:"\f156"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:"\f158"}.fa-krw:before,.fa-won: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{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-caret-square-o-left:before,.fa-toggle-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-try:before,.fa-turkish-lira: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-bank:before,.fa-institution:before,.fa-university:before{content:"\f19c"}.fa-graduation-cap:before,.fa-mortar-board: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-square:before,.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-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:"\f1c5"}.fa-file-archive-o:before,.fa-file-zip-o:before{content:"\f1c6"}.fa-file-audio-o:before,.fa-file-sound-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-ring:before,.fa-life-saver:before,.fa-support:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-empire:before,.fa-ge:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.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-paper-plane:before,.fa-send:before{content:"\f1d8"}.fa-paper-plane-o:before,.fa-send-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"}*{outline:0!important}body,html{height:100%}*{padding:0;margin:0;box-sizing:border-box;word-wrap:break-word}body{background-color:#183440;color:#fff;font-family:'Open Sans',Oswald,sans-serif;font-weight:100;font-size:14px}p{line-height:20px}h1{font-size:40px;margin-top:25px}h1,h3{margin-bottom:15px}h3{line-height:20px;font-size:20px;font-weight:400}.wrapper{min-height:100%;height:auto!important;height:100%;margin-bottom:-60px}footer{line-height:60px;font-size:11px;padding:0 25px;text-align:center}.push,footer{height:60px;width:100%}a{color:#fff;text-decoration:none;border:0}a:focus,a:hover{text-decoration:none;color:#fff}a i{margin-right:5px}.badge{background-color:#fff;color:#183440}.error{padding-top:100px}.error .logo{position:relative}.error .logo img{max-width:160px}@media (max-width:767px){.error{padding-top:20px}} \ No newline at end of file +article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:active,a:hover{outline:0}h1{margin:.67em 0}b,strong{font-weight:700}dfn{font-style:italic}hr{box-sizing:content-box;height:0}mark{background:#ff0;color:#000}kbd,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}button,input,select,textarea{margin:0}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}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}*,:after,:before{box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:transparent}body{line-height:1.428571429}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}button,input,select[multiple],textarea{background-image:none}a:focus{outline:#333 dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded,.img-thumbnail{border-radius:0}.img-thumbnail{padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;-webkit-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}@media print{*{text-shadow:none!important;color:#000!important;background:0 0!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href)")"}abbr[title]:after{content:" (" attr(title)")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:2cm .5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16.1px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small{font-size:85%}cite{font-style:normal}.text-muted{color:#999}.text-primary{color:#428bca}.text-warning{color:#c09853}.text-danger{color:#b94a48}.text-success{color:#468847}.text-info{color:#3a87ad}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h4,h5,h6{font-weight:500;line-height:1.1}.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:400;line-height:1;color:#999}h2{margin-bottom:10px}h2,h3{margin-top:20px}h4,h5,h6{margin-top:10px;margin-bottom:10px}.h1{font-size:36px}.h2,h2{font-size:30px}.h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}.h1 small,h1 small{font-size:24px}.h2 small,h2 small{font-size:18px}.h3 small,.h4 small,h3 small,h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-bottom:20px}dd,dt{line-height:1.428571429}dt{font-weight:700}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}.dl-horizontal dd:after,.dl-horizontal dd:before{content:" ";display:table}.dl-horizontal dd:after{clear:both}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{font-size:17.5px;font-weight:300;line-height:1.25}blockquote p:last-child{margin-bottom:0}blockquote small{display:block;line-height:1.428571429;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}blockquote:after,blockquote:before,q:after,q:before{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:1.428571429}code,pre{font-family:Monaco,Menlo,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap}code,pre{border-radius:0}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc}pre.prettyprint{margin-bottom:20px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.container:after,.container:before{content:" ";display:table}.container:after{clear:both}.row{margin-left:-15px;margin-right:-15px}.row:after,.row:before{content:" ";display:table}.row:after{clear:both}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.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-md-1,.col-md-10,.col-md-11,.col-md-12,.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-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.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-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-1{width:8.333333333333332%}.col-xs-2{width:16.666666666666664%}.col-xs-3{width:25%}.col-xs-4{width:33.33333333333333%}.col-xs-5{width:41.66666666666667%}.col-xs-6{width:50%}.col-xs-7{width:58.333333333333336%}.col-xs-8{width:66.66666666666666%}.col-xs-9{width:75%}.col-xs-10{width:83.33333333333334%}.col-xs-11{width:91.66666666666666%}.col-xs-12{width:100%}@media (min-width:768px){.container{max-width:750px}.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-1{width:8.333333333333332%}.col-sm-2{width:16.666666666666664%}.col-sm-3{width:25%}.col-sm-4{width:33.33333333333333%}.col-sm-5{width:41.66666666666667%}.col-sm-6{width:50%}.col-sm-7{width:58.333333333333336%}.col-sm-8{width:66.66666666666666%}.col-sm-9{width:75%}.col-sm-10{width:83.33333333333334%}.col-sm-11{width:91.66666666666666%}.col-sm-12{width:100%}.col-sm-push-1{left:8.333333333333332%}.col-sm-push-2{left:16.666666666666664%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.33333333333333%}.col-sm-push-5{left:41.66666666666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.333333333333336%}.col-sm-push-8{left:66.66666666666666%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.33333333333334%}.col-sm-push-11{left:91.66666666666666%}.col-sm-pull-1{right:8.333333333333332%}.col-sm-pull-2{right:16.666666666666664%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.33333333333333%}.col-sm-pull-5{right:41.66666666666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.333333333333336%}.col-sm-pull-8{right:66.66666666666666%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.33333333333334%}.col-sm-pull-11{right:91.66666666666666%}.col-sm-offset-1{margin-left:8.333333333333332%}.col-sm-offset-2{margin-left:16.666666666666664%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333333333333%}.col-sm-offset-5{margin-left:41.66666666666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.333333333333336%}.col-sm-offset-8{margin-left:66.66666666666666%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333333333334%}.col-sm-offset-11{margin-left:91.66666666666666%}}@media (min-width:992px){.container{max-width:970px}.col-md-1,.col-md-10,.col-md-11,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-1{width:8.333333333333332%}.col-md-2{width:16.666666666666664%}.col-md-3{width:25%}.col-md-4{width:33.33333333333333%}.col-md-5{width:41.66666666666667%}.col-md-6{width:50%}.col-md-7{width:58.333333333333336%}.col-md-8{width:66.66666666666666%}.col-md-9{width:75%}.col-md-10{width:83.33333333333334%}.col-md-11{width:91.66666666666666%}.col-md-12{width:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.333333333333332%}.col-md-push-2{left:16.666666666666664%}.col-md-push-3{left:25%}.col-md-push-4{left:33.33333333333333%}.col-md-push-5{left:41.66666666666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.333333333333336%}.col-md-push-8{left:66.66666666666666%}.col-md-push-9{left:75%}.col-md-push-10{left:83.33333333333334%}.col-md-push-11{left:91.66666666666666%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.333333333333332%}.col-md-pull-2{right:16.666666666666664%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.33333333333333%}.col-md-pull-5{right:41.66666666666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.333333333333336%}.col-md-pull-8{right:66.66666666666666%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.33333333333334%}.col-md-pull-11{right:91.66666666666666%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.333333333333332%}.col-md-offset-2{margin-left:16.666666666666664%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333333333333%}.col-md-offset-5{margin-left:41.66666666666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.333333333333336%}.col-md-offset-8{margin-left:66.66666666666666%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333333333334%}.col-md-offset-11{margin-left:91.66666666666666%}}@media (min-width:1200px){.container{max-width:1170px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-1{width:8.333333333333332%}.col-lg-2{width:16.666666666666664%}.col-lg-3{width:25%}.col-lg-4{width:33.33333333333333%}.col-lg-5{width:41.66666666666667%}.col-lg-6{width:50%}.col-lg-7{width:58.333333333333336%}.col-lg-8{width:66.66666666666666%}.col-lg-9{width:75%}.col-lg-10{width:83.33333333333334%}.col-lg-11{width:91.66666666666666%}.col-lg-12{width:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.333333333333332%}.col-lg-push-2{left:16.666666666666664%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.33333333333333%}.col-lg-push-5{left:41.66666666666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.333333333333336%}.col-lg-push-8{left:66.66666666666666%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.33333333333334%}.col-lg-push-11{left:91.66666666666666%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.333333333333332%}.col-lg-pull-2{right:16.666666666666664%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.33333333333333%}.col-lg-pull-5{right:41.66666666666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.333333333333336%}.col-lg-pull-8{right:66.66666666666666%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.33333333333334%}.col-lg-pull-11{right:91.66666666666666%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.333333333333332%}.col-lg-offset-2{margin-left:16.666666666666664%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333333333333%}.col-lg-offset-5{margin-left:41.66666666666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.333333333333336%}.col-lg-offset-8{margin-left:66.66666666666666%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333333333334%}.col-lg-offset-11{margin-left:91.66666666666666%}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table thead>tr>th{padding:8px;line-height:1.428571429;border-top:1px solid #ddd}.table tbody>tr>td,.table tbody>tr>th,.table tfoot>tr>td,.table tfoot>tr>th,.table thead>tr>td{padding:8px;line-height:1.428571429;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 td,.table caption+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table thead:first-child tr:first-child td,.table thead:first-child tr:first-child th{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed tbody>tr>td,.table-condensed tbody>tr>th,.table-condensed tfoot>tr>td,.table-condensed tfoot>tr>th,.table-condensed thead>tr>td,.table-condensed thead>tr>th{padding:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*=col-]{float:none;display:table-column}table td[class*=col-],table th[class*=col-]{float:none;display:table-cell}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8;border-color:#d6e9c6}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6;border-color:#c9e2b3}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede;border-color:#eed3d7}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc;border-color:#e6c1c7}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3;border-color:#fbeed5}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc;border-color:#f8e5be}@media (max-width:768px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:scroll;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0;background-color:#fff}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>thead>tr:last-child>td,.table-responsive>.table-bordered>thead>tr:last-child>th{border-bottom:0}}fieldset{padding:0;margin:0;border: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;margin-bottom:5px;font-weight:700}input[type=search]{box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;line-height:normal}input[type=file]{display:block}select[multiple],select[size]{height:auto}select optgroup{font-size:inherit;font-style:inherit;font-family:inherit}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:#333 dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}.form-control:-moz-placeholder,.form-control::-moz-placeholder{color:#999}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle;background-color:#fff;border:1px solid #ccc;border-radius:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-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;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}textarea.form-control{height:auto}.form-group{margin-bottom:15px}.checkbox,.radio{display:block;min-height:20px;margin-top:10px;margin-bottom:10px;padding-left:20px;vertical-align:middle}.checkbox label,.radio label{display:inline;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{float:left;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.checkbox-inline[disabled],.checkbox[disabled],.radio-inline[disabled],.radio[disabled],fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:0}select.input-sm{height:30px;line-height:30px}textarea.input-sm{height:auto}.input-lg{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:0}select.input-lg{height:45px;line-height:45px}textarea.input-lg{height:auto}.has-warning .control-label,.has-warning .help-block{color:#c09853}.has-warning .form-control{border-color:#c09853;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#a47e3c;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #dbc59e}.has-warning .input-group-addon{color:#c09853;border-color:#c09853;background-color:#fcf8e3}.has-error .control-label,.has-error .help-block{color:#b94a48}.has-error .form-control{border-color:#b94a48;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#953b39;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #d59392}.has-error .input-group-addon{color:#b94a48;border-color:#b94a48;background-color:#f2dede}.has-success .control-label,.has-success .help-block{color:#468847}.has-success .form-control{border-color:#468847;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#356635;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7aba7b}.has-success .input-group-addon{color:#468847;border-color:#468847;background-color:#dff0d8}.form-control-static{margin-bottom:0;padding-top:7px}.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}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{float:none;margin-left:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-group:before{content:" ";display:table}.form-horizontal .form-group:after{content:" ";display:table;clear:both}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.428571429;text-align:center;vertical-align:middle;cursor:pointer;border:1px solid transparent;border-radius:0;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.btn:focus{outline:#333 dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{outline:0;background-image:none;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.active,.btn-default:active,.btn-default:focus,.btn-default:hover,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default.active,.btn-default:active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary.active,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary.active,.btn-primary:active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#428bca;border-color:#357ebd}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.active,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.active,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.active,.btn-success:active,.btn-success:focus,.btn-success:hover,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success.active,.btn-success:active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.active,.btn-info:active,.btn-info:focus,.btn-info:hover,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info.active,.btn-info:active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-link{color:#428bca;font-weight:400;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#999;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:0}.btn-sm{padding:5px 10px}.btn-sm,.btn-xs{font-size:12px;line-height:1.5;border-radius:0}.btn-xs{padding:1px 5px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.btn-default .caret{border-top-color:#333}.btn-danger .caret,.btn-info .caret,.btn-primary .caret,.btn-success .caret,.btn-warning .caret{border-top-color:#fff}.dropup .btn-default .caret{border-bottom-color:#333}.dropup .btn-danger .caret,.dropup .btn-info .caret,.dropup .btn-primary .caret,.dropup .btn-success .caret,.dropup .btn-warning .caret{border-bottom-color:#fff}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn{float:left}.btn-group-vertical>.btn,.btn-group>.btn{position:relative}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group-vertical>.btn:focus,.btn-group>.btn:focus{outline:0}.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:after,.btn-toolbar:before{content:" ";display:table}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group{float:left}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn-group+.btn-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>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-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-xs>.btn{padding:1px 5px}.btn-group-sm>.btn,.btn-group-xs>.btn{font-size:12px;line-height:1.5;border-radius:0}.btn-group-sm>.btn{padding:5px 10px}.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius: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{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before{content:" ";display:table}.btn-group-vertical>.btn-group:after{content:" ";display:table;clear:both}.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:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:0;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>.btn:last-child,.btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-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{float:none;display:table-cell;width:1%}[data-toggle=buttons]>.btn>input[type=checkbox],[data-toggle=buttons]>.btn>input[type=radio]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group.col{float:none;padding-left:0;padding-right:0}.input-group .form-control{width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:0}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:45px;line-height:45px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.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:0}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{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon{white-space:nowrap}.input-group-addon,.input-group-btn{width:1%;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:0}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:0}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:0}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{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>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){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:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.dropdown-toggle{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{white-space:nowrap}.input-group-btn,.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-4px}.input-group-btn>.btn:active,.input-group-btn>.btn:hover{z-index:2}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav:after,.nav:before{content:" ";display:table}.nav:after{clear:both}.nav>li,.nav>li>a{position:relative;display:block}.nav>li>a{padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#428bca}.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.428571429;border:1px solid transparent;border-radius:0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{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;border-bottom:1px solid #ddd;margin-right:0}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}}.nav-tabs.nav-justified>.active>a{border-bottom-color:#fff}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:5px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#428bca}.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}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;margin-right:0}.nav-tabs-justified>.active>a{border-bottom-color:#fff}.tabbable:after,.tabbable:before{content:" ";display:table}.tabbable:after{clear:both}.pill-content>.pill-pane,.tab-content>.tab-pane{display:none}.pill-content>.active,.tab-content>.active{display:block}.nav .caret{border-top-color:#428bca;border-bottom-color:#428bca}.nav a:hover .caret{border-top-color:#2a6496;border-bottom-color:#2a6496}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;z-index:1000;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar:after,.navbar:before{content:" ";display:table}.navbar:after{clear:both}@media (min-width:768px){.navbar{border-radius:0}}.navbar-header:after,.navbar-header:before{content:" ";display:table}.navbar-header:after{clear:both}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse:after,.navbar-collapse:before{content:" ";display:table}.navbar-collapse:after{clear:both}.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;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-collapse .navbar-nav.navbar-left:first-child{margin-left:-15px}.navbar-collapse .navbar-nav.navbar-right:last-child{margin-right:-15px}.navbar-collapse .navbar-text:last-child{margin-right:0}}.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;border-width:0 0 1px}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{z-index:1030;top:0}.navbar-fixed-bottom{bottom:0;margin-bottom:0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius: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:7.5px -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 .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin:8px -15px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{float:none;margin-left:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;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{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-nav.pull-right>li>.dropdown-menu,.navbar-nav>li>.dropdown-menu.pull-right{left:auto;right:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-text{float:left;margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{margin-left:15px;margin-right:15px}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-nav>li>a,.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e6e6e6}.navbar-default .navbar-nav>.dropdown>a:focus .caret,.navbar-default .navbar-nav>.dropdown>a:hover .caret{border-top-color:#333;border-bottom-color:#333}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{background-color:#e7e7e7;color:#555}.navbar-default .navbar-nav>.open>a .caret,.navbar-default .navbar-nav>.open>a:focus .caret,.navbar-default .navbar-nav>.open>a:hover .caret{border-top-color:#555;border-bottom-color:#555}.navbar-default .navbar-nav>.dropdown>a .caret{border-top-color:#777;border-bottom-color:#777}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>li>a,.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{background-color:#080808;color:#fff}.navbar-inverse .navbar-nav>.dropdown>a:hover .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-nav>.dropdown>a .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .navbar-nav>.open>a .caret,.navbar-inverse .navbar-nav>.open>a:focus .caret,.navbar-inverse .navbar-nav>.open>a:hover .caret{border-top-color:#fff;border-bottom-color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:0}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:0}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.428571429;text-decoration:none;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:0;border-top-left-radius:0}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{background-color:#eee}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span{color:#999;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:0;border-top-left-radius:0}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.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:0;border-top-left-radius:0}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager:after,.pager:before{content:" ";display:table}.pager:after{clear:both}.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:focus,.pager li>a:hover{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:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:focus,.label[href]:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.label-default{background-color:#999}.label-default[href]:focus,.label-default[href]:hover{background-color:gray}.label-primary{background-color:#428bca}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;border-radius:10px}.badge:empty{display:none}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.btn .badge{position:relative;top:-1px}.nav-pills>.active>a>.badge,a.list-group-item.active>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.thumbnail{padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:0;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail,.thumbnail>img{display:block;max-width:100%;height:auto}a.thumbnail:focus,a.thumbnail:hover{border-color:#428bca}.thumbnail>img{margin-left:auto;margin-right:auto}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:0}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#356635}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#2d6987}.alert-warning{background-color:#fcf8e3;border-color:#fbeed5;color:#c09853}.alert-warning hr{border-top-color:#f8e5be}.alert-warning .alert-link{color:#a47e3c}.alert-danger{background-color:#f2dede;border-color:#eed3d7;color:#b94a48}.alert-danger hr{border-top-color:#e6c1c7}.alert-danger .alert-link{color:#953b39}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.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:0;border-top-left-radius:0}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover{text-decoration:none;background-color:#f5f5f5}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#e1edf7}.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:#fff;border:1px solid transparent;border-radius:0;box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-body:after,.panel-body:before{content:" ";display:table}.panel-body:after{clear:both}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0}.panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel>.list-group .list-group-item:last-child{border-bottom:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table{margin-bottom:0}.panel>.panel-body+.table{border-top:1px solid #ddd}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:-1px;border-top-left-radius:-1px}.panel-title{margin-top:0;margin-bottom:0;font-size:16px}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:-1px;border-bottom-left-radius:-1px}.panel-group .panel{margin-bottom:0;border-radius:0;overflow:hidden}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{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:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-warning{border-color:#fbeed5}.panel-warning>.panel-heading{color:#c09853;background-color:#fcf8e3;border-color:#fbeed5}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#fbeed5}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#fbeed5}.panel-danger{border-color:#eed3d7}.panel-danger>.panel-heading{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#eed3d7}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#eed3d7}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:0}.well-sm{padding:9px;border-radius:0}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;border-bottom:0 dotted;content:""}.dropdown{position:relative}.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;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:0;box-shadow:0 6px 12px rgba(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:400;line-height:1.428571429;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{text-decoration:none;color:#fff;background-color:#428bca}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#999}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{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-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.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 dotted;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:12px;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:0}.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;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right: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;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:0;box-shadow:0 5px 10px rgba(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;font-weight:400;line-height:18px;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,.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,.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,.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,.25)}.popover.left .arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.modal-open{overflow:hidden}.modal-open .navbar-fixed-bottom,.modal-open .navbar-fixed-top,body.modal-open{margin-right:15px}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{margin-left:auto;margin-right:auto;width:auto;padding:10px;z-index:1050}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:0;box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;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.43px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.428571429}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:after,.modal-footer:before{content:" ";display:table}.modal-footer:after{clear:both}.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}@media screen and (min-width:768px){.modal-dialog{left:50%;right:auto;width:600px;padding-top:30px;padding-bottom:30px}.modal-content{box-shadow:0 5px 15px rgba(0,0,0,.5)}}.clearfix:after,.clearfix:before{content:" ";display:table}.clearfix:after{clear:both}.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}.affix{position:fixed}@-ms-viewport{width:device-width}@media screen and (max-width:400px){@-ms-viewport{width:320px}}.hidden{visibility:hidden!important}.hidden,.visible-lg,.visible-md,.visible-sm,.visible-xs,td.visible-lg,td.visible-md,td.visible-sm,td.visible-xs,th.visible-lg,th.visible-md,th.visible-sm,th.visible-xs,tr.visible-lg,tr.visible-md,tr.visible-sm,tr.visible-xs{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-xs.visible-sm{display:block!important}tr.visible-xs.visible-sm{display:table-row!important}td.visible-xs.visible-sm,th.visible-xs.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-xs.visible-md{display:block!important}tr.visible-xs.visible-md{display:table-row!important}td.visible-xs.visible-md,th.visible-xs.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-xs.visible-lg{display:block!important}tr.visible-xs.visible-lg{display:table-row!important}td.visible-xs.visible-lg,th.visible-xs.visible-lg{display:table-cell!important}}@media (max-width:767px){.visible-sm.visible-xs{display:block!important}tr.visible-sm.visible-xs{display:table-row!important}td.visible-sm.visible-xs,th.visible-sm.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-sm.visible-md{display:block!important}tr.visible-sm.visible-md{display:table-row!important}td.visible-sm.visible-md,th.visible-sm.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-sm.visible-lg{display:block!important}tr.visible-sm.visible-lg{display:table-row!important}td.visible-sm.visible-lg,th.visible-sm.visible-lg{display:table-cell!important}}@media (max-width:767px){.visible-md.visible-xs{display:block!important}tr.visible-md.visible-xs{display:table-row!important}td.visible-md.visible-xs,th.visible-md.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-md.visible-sm{display:block!important}tr.visible-md.visible-sm{display:table-row!important}td.visible-md.visible-sm,th.visible-md.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-md.visible-lg{display:block!important}tr.visible-md.visible-lg{display:table-row!important}td.visible-md.visible-lg,th.visible-md.visible-lg{display:table-cell!important}}@media (max-width:767px){.visible-lg.visible-xs{display:block!important}tr.visible-lg.visible-xs{display:table-row!important}td.visible-lg.visible-xs,th.visible-lg.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-lg.visible-sm{display:block!important}tr.visible-lg.visible-sm{display:table-row!important}td.visible-lg.visible-sm,th.visible-lg.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-lg.visible-md{display:block!important}tr.visible-lg.visible-md{display:table-row!important}td.visible-lg.visible-md,th.visible-lg.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-lg{display:block!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}.hidden-xs{display:block!important}tr.hidden-xs{display:table-row!important}td.hidden-xs,th.hidden-xs{display:table-cell!important}@media (max-width:767px){.hidden-xs,td.hidden-xs,th.hidden-xs,tr.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-xs.hidden-sm,td.hidden-xs.hidden-sm,th.hidden-xs.hidden-sm,tr.hidden-xs.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-xs.hidden-md,td.hidden-xs.hidden-md,th.hidden-xs.hidden-md,tr.hidden-xs.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-xs.hidden-lg,td.hidden-xs.hidden-lg,th.hidden-xs.hidden-lg,tr.hidden-xs.hidden-lg{display:none!important}}.hidden-sm{display:block!important}tr.hidden-sm{display:table-row!important}td.hidden-sm,th.hidden-sm{display:table-cell!important}@media (max-width:767px){.hidden-sm.hidden-xs,td.hidden-sm.hidden-xs,th.hidden-sm.hidden-xs,tr.hidden-sm.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm,td.hidden-sm,th.hidden-sm,tr.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-sm.hidden-md,td.hidden-sm.hidden-md,th.hidden-sm.hidden-md,tr.hidden-sm.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-sm.hidden-lg,td.hidden-sm.hidden-lg,th.hidden-sm.hidden-lg,tr.hidden-sm.hidden-lg{display:none!important}}.hidden-md{display:block!important}tr.hidden-md{display:table-row!important}td.hidden-md,th.hidden-md{display:table-cell!important}@media (max-width:767px){.hidden-md.hidden-xs,td.hidden-md.hidden-xs,th.hidden-md.hidden-xs,tr.hidden-md.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-md.hidden-sm,td.hidden-md.hidden-sm,th.hidden-md.hidden-sm,tr.hidden-md.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md,td.hidden-md,th.hidden-md,tr.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-md.hidden-lg,td.hidden-md.hidden-lg,th.hidden-md.hidden-lg,tr.hidden-md.hidden-lg{display:none!important}}.hidden-lg{display:block!important}tr.hidden-lg{display:table-row!important}td.hidden-lg,th.hidden-lg{display:table-cell!important}@media (max-width:767px){.hidden-lg.hidden-xs,td.hidden-lg.hidden-xs,th.hidden-lg.hidden-xs,tr.hidden-lg.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-lg.hidden-sm,td.hidden-lg.hidden-sm,th.hidden-lg.hidden-sm,tr.hidden-lg.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-lg.hidden-md,td.hidden-lg.hidden-md,th.hidden-lg.hidden-md,tr.hidden-lg.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg,td.hidden-lg,th.hidden-lg,tr.hidden-lg{display:none!important}}.visible-print,td.visible-print,th.visible-print,tr.visible-print{display:none!important}@media print{.visible-print{display:block!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}.hidden-print,td.hidden-print,th.hidden-print,tr.hidden-print{display:none!important}}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:FontAwesome;src:url(../fonts/fontawesome-webfont.eot?v=4.1.0);src:url(../fonts/fontawesome-webfont.eot?#iefix&v=4.1.0) format("embedded-opentype"),url(../fonts/fontawesome-webfont.woff?v=4.1.0) format("woff"),url(../fonts/fontawesome-webfont.ttf?v=4.1.0) format("truetype"),url(../fonts/fontawesome-webfont.svg?v=4.1.0#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1;-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:.08em solid #eee;border-radius:.1em}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@keyframes 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)}.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-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-cog:before,.fa-gear: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-repeat:before,.fa-rotate-right: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-image:before,.fa-photo: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-exclamation-triangle:before,.fa-warning: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{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-cogs:before,.fa-gears: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:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.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-floppy-o:before,.fa-save:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-bars:before,.fa-navicon:before,.fa-reorder: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-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-bolt:before,.fa-flash:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-clipboard:before,.fa-paste: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-chain-broken:before,.fa-unlink: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-caret-square-o-down:before,.fa-toggle-down:before{content:"\f150"}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:"\f151"}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:"\f152"}.fa-eur:before,.fa-euro:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-inr:before,.fa-rupee:before{content:"\f156"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:"\f158"}.fa-krw:before,.fa-won: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{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-caret-square-o-left:before,.fa-toggle-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-try:before,.fa-turkish-lira: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-bank:before,.fa-institution:before,.fa-university:before{content:"\f19c"}.fa-graduation-cap:before,.fa-mortar-board: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-square:before,.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-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:"\f1c5"}.fa-file-archive-o:before,.fa-file-zip-o:before{content:"\f1c6"}.fa-file-audio-o:before,.fa-file-sound-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-ring:before,.fa-life-saver:before,.fa-support:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-empire:before,.fa-ge:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.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-paper-plane:before,.fa-send:before{content:"\f1d8"}.fa-paper-plane-o:before,.fa-send-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"}*{outline:0!important}body,html{height:100%}*{padding:0;margin:0;box-sizing:border-box;word-wrap:break-word}body{background-color:#183440;color:#fff;font-family:'Open Sans',Oswald,sans-serif;font-weight:100;font-size:14px}p{line-height:20px}h1{font-size:40px;margin-top:25px}h1,h3{margin-bottom:15px}h3{line-height:20px;font-size:20px;font-weight:400}.wrapper{min-height:100%;height:auto!important;height:100%;margin-bottom:-60px}footer{line-height:60px;font-size:11px;padding:0 25px;text-align:center}.push,footer{height:60px;width:100%}a{color:#fff;text-decoration:none;border:0}a:focus,a:hover{text-decoration:none;color:#fff}a i{margin-right:5px}.badge{background-color:#fff;color:#183440}.error{padding-top:100px}.error .logo{position:relative}.error .logo img{max-width:160px}@media (max-width:767px){.error{padding-top:20px}} \ No newline at end of file diff --git a/public/css/leaflet.css b/public/css/leaflet.css index ef1e81df..4c6968c6 100644 --- a/public/css/leaflet.css +++ b/public/css/leaflet.css @@ -1 +1 @@ -.leaflet-image-layer,.leaflet-layer,.leaflet-map-pane canvas,.leaflet-map-pane svg,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-pane,.leaflet-tile,.leaflet-tile-container,.leaflet-zoom-box{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden;-ms-touch-action:none;touch-action:none}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg,.leaflet-container .leaflet-tile-pane img{max-width:none!important}.leaflet-container img.leaflet-image-layer{max-width:15000px!important}.leaflet-tile{-webkit-filter:inherit;filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;box-sizing:border-box;z-index:8}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:4}.leaflet-tile-pane{z-index:2}.leaflet-overlay-pane{z-index:4}.leaflet-shadow-pane{z-index:5}.leaflet-marker-pane{z-index:6}.leaflet-popup-pane{z-index:7}.leaflet-map-pane canvas{z-index:1}.leaflet-map-pane svg{z-index:2}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:7;pointer-events:auto}.leaflet-bottom,.leaflet-top{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-tile{will-change:opacity}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-anim .leaflet-zoom-animated{will-change:transform;-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-pan-anim .leaflet-tile,.leaflet-zoom-anim .leaflet-tile{-webkit-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-moz-grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-control,.leaflet-popup-pane{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-moz-grabbing}.leaflet-container{background:#ddd;outline:0}.leaflet-container a{color:#0078A8}.leaflet-container a.leaflet-active{outline:orange solid 2px}.leaflet-zoom-box{border:2px dotted #38f;background:rgba(255,255,255,.5)}.leaflet-container{font:12px/1.5 "Helvetica Neue",Arial,Helvetica,sans-serif}.leaflet-bar{box-shadow:0 1px 5px rgba(0,0,0,.65);border-radius:4px}.leaflet-bar a,.leaflet-bar a:hover{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px 'Lucida Console',Monaco,monospace;text-indent:1px}.leaflet-control-zoom-out{font-size:20px}.leaflet-touch .leaflet-control-zoom-in{font-size:22px}.leaflet-touch .leaflet-control-zoom-out{font-size:24px}.leaflet-control-layers{box-shadow:0 1px 5px rgba(0,0,0,.4);background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(images/layers.png);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(images/layers-2x.png);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-container .leaflet-control-attribution{background:#fff;background:rgba(255,255,255,.7);margin:0}.leaflet-control-attribution{padding:0 5px;color:#333}.leaflet-control-scale-line{color:#333}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover{text-decoration:underline}.leaflet-container .leaflet-control-attribution,.leaflet-container .leaflet-control-scale{font-size:11px}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;font-size:11px;white-space:nowrap;overflow:hidden;box-sizing:content-box;background:#fff;background:rgba(255,255,255,.5)}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers{box-shadow:none}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-layers{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:0}.leaflet-popup-content{margin:13px 19px;line-height:1.4}.leaflet-popup-content p{margin:18px 0}.leaflet-popup-tip-container{margin:0 auto;width:40px;height:20px;position:relative;overflow:hidden}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px rgba(0,0,0,.4)}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;padding:4px 4px 0 0;text-align:center;width:18px;height:14px;font:16px/14px Tahoma,Verdana,sans-serif;color:#c3c3c3;text-decoration:none;font-weight:700;background:0 0}.leaflet-container a.leaflet-popup-close-button:hover{color:#999}.leaflet-popup-scrolled{overflow:auto;border-bottom:1px solid #ddd;border-top:1px solid #ddd}.leaflet-oldie .leaflet-popup-content-wrapper{zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678, M12=.70710678, M21=-.70710678, M22=.70710678)}.leaflet-oldie .leaflet-popup-tip-container{margin-top:-1px}.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-popup{z-index:99999}.leaflet-popup-content{padding-right:10px}.leaflet-popup strong{display:inline-block} \ No newline at end of file +.leaflet-image-layer,.leaflet-layer,.leaflet-map-pane canvas,.leaflet-map-pane svg,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-pane,.leaflet-tile,.leaflet-tile-container,.leaflet-zoom-box{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden;-ms-touch-action:none;touch-action:none}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg,.leaflet-container .leaflet-tile-pane img{max-width:none!important}.leaflet-container img.leaflet-image-layer{max-width:15000px!important}.leaflet-tile{-webkit-filter:inherit;filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;box-sizing:border-box;z-index:8}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:4}.leaflet-tile-pane{z-index:2}.leaflet-overlay-pane{z-index:4}.leaflet-shadow-pane{z-index:5}.leaflet-marker-pane{z-index:6}.leaflet-popup-pane{z-index:7}.leaflet-map-pane canvas{z-index:1}.leaflet-map-pane svg{z-index:2}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:7;pointer-events:auto}.leaflet-bottom,.leaflet-top{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-tile{will-change:opacity}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-anim .leaflet-zoom-animated{will-change:transform;-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-pan-anim .leaflet-tile,.leaflet-zoom-anim .leaflet-tile{-webkit-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-control,.leaflet-popup-pane{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing}.leaflet-container{background:#ddd;outline:0}.leaflet-container a{color:#0078A8}.leaflet-container a.leaflet-active{outline:orange solid 2px}.leaflet-zoom-box{border:2px dotted #38f;background:rgba(255,255,255,.5)}.leaflet-container{font:12px/1.5 "Helvetica Neue",Arial,Helvetica,sans-serif}.leaflet-bar{box-shadow:0 1px 5px rgba(0,0,0,.65);border-radius:4px}.leaflet-bar a,.leaflet-bar a:hover{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px 'Lucida Console',Monaco,monospace;text-indent:1px}.leaflet-control-zoom-out{font-size:20px}.leaflet-touch .leaflet-control-zoom-in{font-size:22px}.leaflet-touch .leaflet-control-zoom-out{font-size:24px}.leaflet-control-layers{box-shadow:0 1px 5px rgba(0,0,0,.4);background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(images/layers.png);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(images/layers-2x.png);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-container .leaflet-control-attribution{background:#fff;background:rgba(255,255,255,.7);margin:0}.leaflet-control-attribution{padding:0 5px;color:#333}.leaflet-control-scale-line{color:#333}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover{text-decoration:underline}.leaflet-container .leaflet-control-attribution,.leaflet-container .leaflet-control-scale{font-size:11px}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;font-size:11px;white-space:nowrap;overflow:hidden;box-sizing:content-box;background:#fff;background:rgba(255,255,255,.5)}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers{box-shadow:none}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-layers{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:0}.leaflet-popup-content{margin:13px 19px;line-height:1.4}.leaflet-popup-content p{margin:18px 0}.leaflet-popup-tip-container{margin:0 auto;width:40px;height:20px;position:relative;overflow:hidden}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px rgba(0,0,0,.4)}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;padding:4px 4px 0 0;text-align:center;width:18px;height:14px;font:16px/14px Tahoma,Verdana,sans-serif;color:#c3c3c3;text-decoration:none;font-weight:700;background:0 0}.leaflet-container a.leaflet-popup-close-button:hover{color:#999}.leaflet-popup-scrolled{overflow:auto;border-bottom:1px solid #ddd;border-top:1px solid #ddd}.leaflet-oldie .leaflet-popup-content-wrapper{zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678, M12=.70710678, M21=-.70710678, M22=.70710678)}.leaflet-oldie .leaflet-popup-tip-container{margin-top:-1px}.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-popup{z-index:99999}.leaflet-popup-content{padding-right:10px}.leaflet-popup strong{display:inline-block} \ No newline at end of file diff --git a/public/css/main.css b/public/css/main.css index 6dfd8460..e0310c3e 100644 --- a/public/css/main.css +++ b/public/css/main.css @@ -1 +1 @@ -article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:active,a:hover{outline:0}h1{margin:.67em 0}b,strong{font-weight:700}dfn{font-style:italic}hr{box-sizing:content-box;height:0}mark{background:#ff0;color:#000}kbd,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}button,input{margin:0}select,textarea{margin:0}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}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}*,:after,:before{box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:transparent}body{line-height:1.428571429}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}button,input,select[multiple],textarea{background-image:none}a{text-decoration:none}a:focus{outline:#333 dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded,.img-thumbnail{border-radius:0}.img-thumbnail{padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;-webkit-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}@media print{*{text-shadow:none!important;color:#000!important;background:0 0!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href)")"}abbr[title]:after{content:" (" attr(title)")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:2cm .5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16.1px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small{font-size:85%}cite{font-style:normal}.text-muted{color:#999}.text-primary{color:#428bca}.text-warning{color:#c09853}.text-danger{color:#b94a48}.text-success{color:#468847}.text-info{color:#3a87ad}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2{font-weight:500}h1,h2,h3{line-height:1.1}.h1,.h2,.h3,.h4,.h5,.h6,h4,h5,h6{font-weight:500;line-height:1.1}.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:400;line-height:1;color:#999}h1,h2,h3{margin-top:20px;margin-bottom:10px}h4,h5,h6{margin-top:10px;margin-bottom:10px}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3{font-size:24px}.h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}.h1 small,h1 small{font-size:24px}.h2 small,h2 small{font-size:18px}.h3 small,.h4 small,h3 small,h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-bottom:20px}dd,dt{line-height:1.428571429}dt{font-weight:700}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}.dl-horizontal dd:after,.dl-horizontal dd:before{content:" ";display:table}.dl-horizontal dd:after{clear:both}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{font-size:17.5px;font-weight:300;line-height:1.25}blockquote p:last-child{margin-bottom:0}blockquote small{display:block;line-height:1.428571429;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}blockquote:after,blockquote:before,q:after,q:before{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:1.428571429}code,pre{font-family:Monaco,Menlo,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap}code,pre{border-radius:0}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc}pre.prettyprint{margin-bottom:20px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.container:after,.container:before{content:" ";display:table}.container:after{clear:both}.row:after,.row:before{content:" ";display:table}.row:after{clear:both}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.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-md-1,.col-md-10,.col-md-11,.col-md-12,.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-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.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-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-1{width:8.333333333333332%}.col-xs-2{width:16.666666666666664%}.col-xs-3{width:25%}.col-xs-4{width:33.33333333333333%}.col-xs-5{width:41.66666666666667%}.col-xs-6{width:50%}.col-xs-7{width:58.333333333333336%}.col-xs-8{width:66.66666666666666%}.col-xs-9{width:75%}.col-xs-10{width:83.33333333333334%}.col-xs-11{width:91.66666666666666%}.col-xs-12{width:100%}@media (min-width:768px){.container{max-width:750px}.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-1{width:8.333333333333332%}.col-sm-2{width:16.666666666666664%}.col-sm-3{width:25%}.col-sm-4{width:33.33333333333333%}.col-sm-5{width:41.66666666666667%}.col-sm-6{width:50%}.col-sm-7{width:58.333333333333336%}.col-sm-8{width:66.66666666666666%}.col-sm-9{width:75%}.col-sm-10{width:83.33333333333334%}.col-sm-11{width:91.66666666666666%}.col-sm-12{width:100%}.col-sm-push-1{left:8.333333333333332%}.col-sm-push-2{left:16.666666666666664%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.33333333333333%}.col-sm-push-5{left:41.66666666666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.333333333333336%}.col-sm-push-8{left:66.66666666666666%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.33333333333334%}.col-sm-push-11{left:91.66666666666666%}.col-sm-pull-1{right:8.333333333333332%}.col-sm-pull-2{right:16.666666666666664%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.33333333333333%}.col-sm-pull-5{right:41.66666666666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.333333333333336%}.col-sm-pull-8{right:66.66666666666666%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.33333333333334%}.col-sm-pull-11{right:91.66666666666666%}.col-sm-offset-1{margin-left:8.333333333333332%}.col-sm-offset-2{margin-left:16.666666666666664%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333333333333%}.col-sm-offset-5{margin-left:41.66666666666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.333333333333336%}.col-sm-offset-8{margin-left:66.66666666666666%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333333333334%}.col-sm-offset-11{margin-left:91.66666666666666%}}@media (min-width:992px){.container{max-width:970px}.col-md-1,.col-md-10,.col-md-11,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-1{width:8.333333333333332%}.col-md-2{width:16.666666666666664%}.col-md-3{width:25%}.col-md-4{width:33.33333333333333%}.col-md-5{width:41.66666666666667%}.col-md-6{width:50%}.col-md-7{width:58.333333333333336%}.col-md-8{width:66.66666666666666%}.col-md-9{width:75%}.col-md-10{width:83.33333333333334%}.col-md-11{width:91.66666666666666%}.col-md-12{width:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.333333333333332%}.col-md-push-2{left:16.666666666666664%}.col-md-push-3{left:25%}.col-md-push-4{left:33.33333333333333%}.col-md-push-5{left:41.66666666666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.333333333333336%}.col-md-push-8{left:66.66666666666666%}.col-md-push-9{left:75%}.col-md-push-10{left:83.33333333333334%}.col-md-push-11{left:91.66666666666666%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.333333333333332%}.col-md-pull-2{right:16.666666666666664%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.33333333333333%}.col-md-pull-5{right:41.66666666666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.333333333333336%}.col-md-pull-8{right:66.66666666666666%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.33333333333334%}.col-md-pull-11{right:91.66666666666666%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.333333333333332%}.col-md-offset-2{margin-left:16.666666666666664%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333333333333%}.col-md-offset-5{margin-left:41.66666666666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.333333333333336%}.col-md-offset-8{margin-left:66.66666666666666%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333333333334%}.col-md-offset-11{margin-left:91.66666666666666%}}@media (min-width:1200px){.container{max-width:1170px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-1{width:8.333333333333332%}.col-lg-2{width:16.666666666666664%}.col-lg-3{width:25%}.col-lg-4{width:33.33333333333333%}.col-lg-5{width:41.66666666666667%}.col-lg-6{width:50%}.col-lg-7{width:58.333333333333336%}.col-lg-8{width:66.66666666666666%}.col-lg-9{width:75%}.col-lg-10{width:83.33333333333334%}.col-lg-11{width:91.66666666666666%}.col-lg-12{width:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.333333333333332%}.col-lg-push-2{left:16.666666666666664%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.33333333333333%}.col-lg-push-5{left:41.66666666666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.333333333333336%}.col-lg-push-8{left:66.66666666666666%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.33333333333334%}.col-lg-push-11{left:91.66666666666666%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.333333333333332%}.col-lg-pull-2{right:16.666666666666664%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.33333333333333%}.col-lg-pull-5{right:41.66666666666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.333333333333336%}.col-lg-pull-8{right:66.66666666666666%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.33333333333334%}.col-lg-pull-11{right:91.66666666666666%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.333333333333332%}.col-lg-offset-2{margin-left:16.666666666666664%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333333333333%}.col-lg-offset-5{margin-left:41.66666666666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.333333333333336%}.col-lg-offset-8{margin-left:66.66666666666666%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333333333334%}.col-lg-offset-11{margin-left:91.66666666666666%}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table thead>tr>th{padding:8px;line-height:1.428571429;border-top:1px solid #ddd}.table tbody>tr>td,.table tbody>tr>th,.table tfoot>tr>td,.table tfoot>tr>th,.table thead>tr>td{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.table thead>tr>th{vertical-align:bottom}.table caption+thead tr:first-child td,.table caption+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table thead:first-child tr:first-child td,.table thead:first-child tr:first-child th{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed tbody>tr>td,.table-condensed tbody>tr>th,.table-condensed tfoot>tr>td,.table-condensed tfoot>tr>th,.table-condensed thead>tr>td,.table-condensed thead>tr>th{padding:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*=col-]{float:none;display:table-column}table td[class*=col-],table th[class*=col-]{float:none;display:table-cell}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8;border-color:#d6e9c6}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6;border-color:#c9e2b3}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede;border-color:#eed3d7}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc;border-color:#e6c1c7}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3;border-color:#fbeed5}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc;border-color:#f8e5be}@media (max-width:768px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:scroll;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0;background-color:#fff}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>thead>tr:last-child>td,.table-responsive>.table-bordered>thead>tr:last-child>th{border-bottom:0}}fieldset{padding:0;margin:0;border: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;margin-bottom:5px;font-weight:700}input[type=search]{box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;line-height:normal}input[type=file]{display:block}select[multiple],select[size]{height:auto}select optgroup{font-size:inherit;font-style:inherit;font-family:inherit}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:#333 dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}.form-control:-moz-placeholder,.form-control::-moz-placeholder{color:#999}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control{display:block;width:100%;height:34px;line-height:1.428571429;color:#555;vertical-align:middle;background-color:#fff;border:1px solid #ccc;border-radius:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-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;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}textarea.form-control{height:auto}.form-group{margin-bottom:15px}.checkbox,.radio{display:block;min-height:20px;margin-top:10px;margin-bottom:10px;padding-left:20px;vertical-align:middle}.checkbox label,.radio label{display:inline;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{float:left;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.checkbox-inline[disabled],.checkbox[disabled],.radio-inline[disabled],.radio[disabled],fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:0}select.input-sm{height:30px;line-height:30px}textarea.input-sm{height:auto}.input-lg{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:0}select.input-lg{height:45px;line-height:45px}textarea.input-lg{height:auto}.has-warning .control-label,.has-warning .help-block{color:#c09853}.has-warning .form-control{border-color:#c09853;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#a47e3c;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #dbc59e}.has-warning .input-group-addon{color:#c09853;border-color:#c09853;background-color:#fcf8e3}.has-error .control-label,.has-error .help-block{color:#b94a48}.has-error .form-control{border-color:#b94a48;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#953b39;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #d59392}.has-error .input-group-addon{color:#b94a48;border-color:#b94a48;background-color:#f2dede}.has-success .control-label,.has-success .help-block{color:#468847}.has-success .form-control{border-color:#468847;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#356635;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7aba7b}.has-success .input-group-addon{color:#468847;border-color:#468847;background-color:#dff0d8}.form-control-static{margin-bottom:0;padding-top:7px}.help-block{display:block;margin-top:5px;margin-bottom:10px}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{float:none;margin-left:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-group:before{content:" ";display:table}.form-horizontal .form-group:after{content:" ";display:table;clear:both}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-weight:400;line-height:1.428571429;text-align:center;vertical-align:middle;cursor:pointer;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.btn:focus{outline:#333 dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{outline:0;background-image:none;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.active,.btn-default:active,.btn-default:focus,.btn-default:hover,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default.active,.btn-default:active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary.active,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary.active,.btn-primary:active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#428bca;border-color:#357ebd}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.active,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.active,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.active,.btn-success:active,.btn-success:focus,.btn-success:hover,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success.active,.btn-success:active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.active,.btn-info:active,.btn-info:focus,.btn-info:hover,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info.active,.btn-info:active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-link{color:#428bca;font-weight:400;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#999;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:0}.btn-sm{padding:5px 10px}.btn-sm,.btn-xs{font-size:12px;line-height:1.5;border-radius:0}.btn-xs{padding:1px 5px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.btn-default .caret{border-top-color:#333}.btn-danger .caret,.btn-info .caret,.btn-primary .caret,.btn-success .caret,.btn-warning .caret{border-top-color:#fff}.dropup .btn-default .caret{border-bottom-color:#333}.dropup .btn-danger .caret,.dropup .btn-info .caret,.dropup .btn-primary .caret,.dropup .btn-success .caret,.dropup .btn-warning .caret{border-bottom-color:#fff}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn{float:left}.btn-group-vertical>.btn,.btn-group>.btn{position:relative}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group-vertical>.btn:focus,.btn-group>.btn:focus{outline:0}.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:after,.btn-toolbar:before{content:" ";display:table}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group{float:left}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn-group+.btn-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>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-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-xs>.btn{padding:1px 5px}.btn-group-sm>.btn,.btn-group-xs>.btn{font-size:12px;line-height:1.5;border-radius:0}.btn-group-sm>.btn{padding:5px 10px}.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius: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{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before{content:" ";display:table}.btn-group-vertical>.btn-group:after{content:" ";display:table;clear:both}.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:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:0;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>.btn:last-child,.btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-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{float:none;display:table-cell;width:1%}[data-toggle=buttons]>.btn>input[type=checkbox],[data-toggle=buttons]>.btn>input[type=radio]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group.col{float:none;padding-left:0;padding-right:0}.input-group .form-control{width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:0}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:45px;line-height:45px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.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:0}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{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon{white-space:nowrap}.input-group-addon,.input-group-btn{width:1%;vertical-align:middle}.input-group-addon{font-weight:400;line-height:1;text-align:center;background-color:#eee;border-radius:0}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:0}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:0}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{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>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){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:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.dropdown-toggle{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{white-space:nowrap}.input-group-btn,.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-4px}.input-group-btn>.btn:active,.input-group-btn>.btn:hover{z-index:2}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav:after,.nav:before{content:" ";display:table}.nav:after{clear:both}.nav>li,.nav>li>a{position:relative;display:block}.nav>li>a{padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#428bca}.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.428571429;border:1px solid transparent;border-radius:0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{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;border-bottom:1px solid #ddd;margin-right:0}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}}.nav-tabs.nav-justified>.active>a{border-bottom-color:#fff}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:5px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#428bca}.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}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;margin-right:0}.nav-tabs-justified>.active>a{border-bottom-color:#fff}.tabbable:after,.tabbable:before{content:" ";display:table}.tabbable:after{clear:both}.pill-content>.pill-pane,.tab-content>.tab-pane{display:none}.pill-content>.active,.tab-content>.active{display:block}.nav .caret{border-top-color:#428bca;border-bottom-color:#428bca}.nav a:hover .caret{border-top-color:#2a6496;border-bottom-color:#2a6496}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;z-index:1000;border:1px solid transparent}.navbar:after,.navbar:before{content:" ";display:table}.navbar:after{clear:both}@media (min-width:768px){.navbar{border-radius:0}}.navbar-header:after,.navbar-header:before{content:" ";display:table}.navbar-header:after{clear:both}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse:after,.navbar-collapse:before{content:" ";display:table}.navbar-collapse:after{clear:both}.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;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-collapse .navbar-nav.navbar-left:first-child{margin-left:-15px}.navbar-collapse .navbar-nav.navbar-right:last-child{margin-right:-15px}.navbar-collapse .navbar-text:last-child{margin-right:0}}.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;border-width:0 0 1px}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{z-index:1030;top:0}.navbar-fixed-bottom{bottom:0;margin-bottom:0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius: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:7.5px -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 .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin:8px -15px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{float:none;margin-left:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;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{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-nav.pull-right>li>.dropdown-menu,.navbar-nav>li>.dropdown-menu.pull-right{left:auto;right:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-text{float:left;margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{margin-left:15px;margin-right:15px}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-nav>li>a,.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e6e6e6}.navbar-default .navbar-nav>.dropdown>a:focus .caret,.navbar-default .navbar-nav>.dropdown>a:hover .caret{border-top-color:#333;border-bottom-color:#333}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{background-color:#e7e7e7;color:#555}.navbar-default .navbar-nav>.open>a .caret,.navbar-default .navbar-nav>.open>a:focus .caret,.navbar-default .navbar-nav>.open>a:hover .caret{border-top-color:#555;border-bottom-color:#555}.navbar-default .navbar-nav>.dropdown>a .caret{border-top-color:#777;border-bottom-color:#777}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>li>a,.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{background-color:#080808;color:#fff}.navbar-inverse .navbar-nav>.dropdown>a:hover .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-nav>.dropdown>a .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .navbar-nav>.open>a .caret,.navbar-inverse .navbar-nav>.open>a:focus .caret,.navbar-inverse .navbar-nav>.open>a:hover .caret{border-top-color:#fff;border-bottom-color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:0}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:0}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.428571429;text-decoration:none;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:0;border-top-left-radius:0}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{background-color:#eee}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span{color:#999;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:0;border-top-left-radius:0}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.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:0;border-top-left-radius:0}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager:after,.pager:before{content:" ";display:table}.pager:after{clear:both}.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:focus,.pager li>a:hover{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:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:focus,.label[href]:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.label-default{background-color:#999}.label-default[href]:focus,.label-default[href]:hover{background-color:gray}.label-primary{background-color:#428bca}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.badge:empty{display:none}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.btn .badge{position:relative;top:-1px}.nav-pills>.active>a>.badge,a.list-group-item.active>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.thumbnail{padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:0;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail,.thumbnail>img{display:block;max-width:100%;height:auto}a.thumbnail:focus,a.thumbnail:hover{border-color:#428bca}.thumbnail>img{margin-left:auto;margin-right:auto}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border-radius:0}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#356635}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#2d6987}.alert-warning{background-color:#fcf8e3;border-color:#fbeed5;color:#c09853}.alert-warning hr{border-top-color:#f8e5be}.alert-warning .alert-link{color:#a47e3c}.alert-danger{background-color:#f2dede;border-color:#eed3d7;color:#b94a48}.alert-danger hr{border-top-color:#e6c1c7}.alert-danger .alert-link{color:#953b39}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.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:0;border-top-left-radius:0}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover{text-decoration:none;background-color:#f5f5f5}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#e1edf7}.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:#fff;border:1px solid transparent;border-radius:0;box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-body:after,.panel-body:before{content:" ";display:table}.panel-body:after{clear:both}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0}.panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel>.list-group .list-group-item:last-child{border-bottom:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table{margin-bottom:0}.panel>.panel-body+.table{border-top:1px solid #ddd}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:-1px;border-top-left-radius:-1px}.panel-title{margin-top:0;margin-bottom:0;font-size:16px}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:-1px;border-bottom-left-radius:-1px}.panel-group .panel{margin-bottom:0;border-radius:0;overflow:hidden}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{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:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-warning{border-color:#fbeed5}.panel-warning>.panel-heading{color:#c09853;background-color:#fcf8e3;border-color:#fbeed5}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#fbeed5}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#fbeed5}.panel-danger{border-color:#eed3d7}.panel-danger>.panel-heading{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#eed3d7}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#eed3d7}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border-radius:0}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:0}.well-sm{padding:9px;border-radius:0}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;border-bottom:0 dotted;content:""}.dropdown{position:relative}.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;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:0;box-shadow:0 6px 12px rgba(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:400;line-height:1.428571429;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{text-decoration:none;color:#fff;background-color:#428bca}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#999}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{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-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.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 dotted;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:12px;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:0}.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;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right: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;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:0;box-shadow:0 5px 10px rgba(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;font-weight:400;line-height:18px;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,.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,.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,.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,.25)}.popover.left .arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.modal-open{overflow:hidden}.modal-open .navbar-fixed-bottom,.modal-open .navbar-fixed-top,body.modal-open{margin-right:15px}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{margin-left:auto;margin-right:auto;width:auto;padding:10px;z-index:1050}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:0;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;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.43px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.428571429}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:after,.modal-footer:before{content:" ";display:table}.modal-footer:after{clear:both}.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}@media screen and (min-width:768px){.modal-dialog{left:50%;right:auto;width:600px;padding-top:30px;padding-bottom:30px}.modal-content{box-shadow:0 5px 15px rgba(0,0,0,.5)}}.clearfix:after,.clearfix:before{content:" ";display:table}.clearfix:after{clear:both}.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}.affix{position:fixed}@-ms-viewport{width:device-width}@media screen and (max-width:400px){@-ms-viewport{width:320px}}.hidden{visibility:hidden!important}.hidden,.visible-lg,.visible-md,.visible-sm,.visible-xs,td.visible-lg,td.visible-md,td.visible-sm,td.visible-xs,th.visible-lg,th.visible-md,th.visible-sm,th.visible-xs,tr.visible-lg,tr.visible-md,tr.visible-sm,tr.visible-xs{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-xs.visible-sm{display:block!important}tr.visible-xs.visible-sm{display:table-row!important}td.visible-xs.visible-sm,th.visible-xs.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-xs.visible-md{display:block!important}tr.visible-xs.visible-md{display:table-row!important}td.visible-xs.visible-md,th.visible-xs.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-xs.visible-lg{display:block!important}tr.visible-xs.visible-lg{display:table-row!important}td.visible-xs.visible-lg,th.visible-xs.visible-lg{display:table-cell!important}}@media (max-width:767px){.visible-sm.visible-xs{display:block!important}tr.visible-sm.visible-xs{display:table-row!important}td.visible-sm.visible-xs,th.visible-sm.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-sm.visible-md{display:block!important}tr.visible-sm.visible-md{display:table-row!important}td.visible-sm.visible-md,th.visible-sm.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-sm.visible-lg{display:block!important}tr.visible-sm.visible-lg{display:table-row!important}td.visible-sm.visible-lg,th.visible-sm.visible-lg{display:table-cell!important}}@media (max-width:767px){.visible-md.visible-xs{display:block!important}tr.visible-md.visible-xs{display:table-row!important}td.visible-md.visible-xs,th.visible-md.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-md.visible-sm{display:block!important}tr.visible-md.visible-sm{display:table-row!important}td.visible-md.visible-sm,th.visible-md.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-md.visible-lg{display:block!important}tr.visible-md.visible-lg{display:table-row!important}td.visible-md.visible-lg,th.visible-md.visible-lg{display:table-cell!important}}@media (max-width:767px){.visible-lg.visible-xs{display:block!important}tr.visible-lg.visible-xs{display:table-row!important}td.visible-lg.visible-xs,th.visible-lg.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-lg.visible-sm{display:block!important}tr.visible-lg.visible-sm{display:table-row!important}td.visible-lg.visible-sm,th.visible-lg.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-lg.visible-md{display:block!important}tr.visible-lg.visible-md{display:table-row!important}td.visible-lg.visible-md,th.visible-lg.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-lg{display:block!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}.hidden-xs{display:block!important}tr.hidden-xs{display:table-row!important}td.hidden-xs,th.hidden-xs{display:table-cell!important}@media (max-width:767px){.hidden-xs,td.hidden-xs,th.hidden-xs,tr.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-xs.hidden-sm,td.hidden-xs.hidden-sm,th.hidden-xs.hidden-sm,tr.hidden-xs.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-xs.hidden-md,td.hidden-xs.hidden-md,th.hidden-xs.hidden-md,tr.hidden-xs.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-xs.hidden-lg,td.hidden-xs.hidden-lg,th.hidden-xs.hidden-lg,tr.hidden-xs.hidden-lg{display:none!important}}.hidden-sm{display:block!important}tr.hidden-sm{display:table-row!important}td.hidden-sm,th.hidden-sm{display:table-cell!important}@media (max-width:767px){.hidden-sm.hidden-xs,td.hidden-sm.hidden-xs,th.hidden-sm.hidden-xs,tr.hidden-sm.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm,td.hidden-sm,th.hidden-sm,tr.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-sm.hidden-md,td.hidden-sm.hidden-md,th.hidden-sm.hidden-md,tr.hidden-sm.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-sm.hidden-lg,td.hidden-sm.hidden-lg,th.hidden-sm.hidden-lg,tr.hidden-sm.hidden-lg{display:none!important}}.hidden-md{display:block!important}tr.hidden-md{display:table-row!important}td.hidden-md,th.hidden-md{display:table-cell!important}@media (max-width:767px){.hidden-md.hidden-xs,td.hidden-md.hidden-xs,th.hidden-md.hidden-xs,tr.hidden-md.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-md.hidden-sm,td.hidden-md.hidden-sm,th.hidden-md.hidden-sm,tr.hidden-md.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md,td.hidden-md,th.hidden-md,tr.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-md.hidden-lg,td.hidden-md.hidden-lg,th.hidden-md.hidden-lg,tr.hidden-md.hidden-lg{display:none!important}}.hidden-lg{display:block!important}tr.hidden-lg{display:table-row!important}td.hidden-lg,th.hidden-lg{display:table-cell!important}@media (max-width:767px){.hidden-lg.hidden-xs,td.hidden-lg.hidden-xs,th.hidden-lg.hidden-xs,tr.hidden-lg.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-lg.hidden-sm,td.hidden-lg.hidden-sm,th.hidden-lg.hidden-sm,tr.hidden-lg.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-lg.hidden-md,td.hidden-lg.hidden-md,th.hidden-lg.hidden-md,tr.hidden-lg.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg,td.hidden-lg,th.hidden-lg,tr.hidden-lg{display:none!important}}.visible-print,td.visible-print,th.visible-print,tr.visible-print{display:none!important}@media print{.visible-print{display:block!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}.hidden-print,td.hidden-print,th.hidden-print,tr.hidden-print{display:none!important}}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:FontAwesome;src:url(../fonts/fontawesome-webfont.eot?v=4.1.0);src:url(../fonts/fontawesome-webfont.eot?#iefix&v=4.1.0) format("embedded-opentype"),url(../fonts/fontawesome-webfont.woff?v=4.1.0) format("woff"),url(../fonts/fontawesome-webfont.ttf?v=4.1.0) format("truetype"),url(../fonts/fontawesome-webfont.svg?v=4.1.0#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1;-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:.08em solid #eee;border-radius:.1em}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@keyframes 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);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-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);transform:scale(1,-1)}.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-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-cog:before,.fa-gear: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-repeat:before,.fa-rotate-right: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-image:before,.fa-photo: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-exclamation-triangle:before,.fa-warning: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{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-cogs:before,.fa-gears: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:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.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-floppy-o:before,.fa-save:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-bars:before,.fa-navicon:before,.fa-reorder: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-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-bolt:before,.fa-flash:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-clipboard:before,.fa-paste: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-chain-broken:before,.fa-unlink: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-caret-square-o-down:before,.fa-toggle-down:before{content:"\f150"}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:"\f151"}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:"\f152"}.fa-eur:before,.fa-euro:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-inr:before,.fa-rupee:before{content:"\f156"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:"\f158"}.fa-krw:before,.fa-won: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{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-caret-square-o-left:before,.fa-toggle-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-try:before,.fa-turkish-lira: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-bank:before,.fa-institution:before,.fa-university:before{content:"\f19c"}.fa-graduation-cap:before,.fa-mortar-board: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-square:before,.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-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:"\f1c5"}.fa-file-archive-o:before,.fa-file-zip-o:before{content:"\f1c6"}.fa-file-audio-o:before,.fa-file-sound-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-ring:before,.fa-life-saver:before,.fa-support:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-empire:before,.fa-ge:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.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-paper-plane:before,.fa-send:before{content:"\f1d8"}.fa-paper-plane-o:before,.fa-send-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"}.introjs-overlay{position:absolute;z-index:999999;opacity:0;background:-webkit-gradient(radial,center center,0,center center,100%,color-stop(0,rgba(0,0,0,.4)),color-stop(100%,rgba(0,0,0,.9)));background:-webkit-radial-gradient(center,ellipse cover,rgba(0,0,0,.4)0,rgba(0,0,0,.9)100%);background:radial-gradient(center,ellipse cover,rgba(0,0,0,.4)0,rgba(0,0,0,.9)100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#66000000', endColorstr='#e6000000', GradientType=1);-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";filter:alpha(opacity=50);-webkit-transition:all .3s ease-out;transition:all .3s ease-out}.introjs-fixParent{z-index:auto!important}.introjs-showElement{z-index:9999999!important}.introjs-relativePosition{position:relative}.introjs-helperLayer{position:absolute;z-index:9999998;background-color:#FFF;background-color:rgba(255,255,255,.9);border:1px solid #777;border:1px solid rgba(0,0,0,.5);box-shadow:0 2px 15px rgba(0,0,0,.4);-webkit-transition:all .3s ease-out;transition:all .3s ease-out}.introjs-helperNumberLayer{position:absolute;z-index:9999999999!important;padding:2px;font-family:Arial,verdana,tahoma;font-size:13px;font-weight:700;color:#fff;text-align:center;text-shadow:1px 1px 1px rgba(0,0,0,.3);background:#36ab70;width:20px;height:20px;border-radius:50%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3019', endColorstr='#cf0404', GradientType=0);filter:progid:DXImageTransform.Microsoft.Shadow(direction=135, strength=2, color=ff0000);box-shadow:0 2px 5px rgba(0,0,0,.4)}.introjs-arrow{border:5px solid #fff;content:'';position:absolute}.introjs-arrow.top{top:-10px;border-bottom-color:#fff;border-left-color:transparent}.introjs-arrow.right,.introjs-arrow.top{border-top-color:transparent;border-right-color:transparent}.introjs-arrow.right{right:-10px;top:10px;border-bottom-color:transparent;border-left-color:#fff}.introjs-arrow.bottom{bottom:-10px;border-top-color:#fff;border-right-color:transparent}.introjs-arrow.bottom,.introjs-arrow.left{border-bottom-color:transparent;border-left-color:transparent}.introjs-arrow.left{left:-10px;top:10px;border-top-color:transparent;border-right-color:#fff}.introjs-tooltip{position:absolute;padding:10px;background-color:#fff;min-width:200px;max-width:300px;box-shadow:0 1px 10px rgba(0,0,0,.4);-webkit-transition:opacity .1s ease-out;transition:opacity .1s ease-out}.introjs-tooltipbuttons{text-align:right}.introjs-button{position:relative;overflow:visible;display:inline-block;padding:.3em .8em;border:1px solid #d4d4d4;text-decoration:none;text-shadow:1px 1px 0 #fff;font:11px sans-serif;color:#333;white-space:nowrap;cursor:pointer;outline:0;background-color:#ececec;background-image:-webkit-gradient(linear,0 0,0 100%,from(#f4f4f4),to(#ececec));background-image:-webkit-linear-gradient(#f4f4f4,#ececec);background-image:linear-gradient(#f4f4f4,#ececec);-webkit-background-clip:padding;-moz-background-clip:padding;-o-background-clip:padding-box;zoom:1;margin:10px 0 0}.introjs-button:hover{border-color:#bcbcbc;text-decoration:none;box-shadow:0 1px 1px #e3e3e3}.introjs-button:active,.introjs-button:focus{background-image:-webkit-gradient(linear,0 0,0 100%,from(#ececec),to(#f4f4f4));background-image:-webkit-linear-gradient(#ececec,#f4f4f4);background-image:linear-gradient(#ececec,#f4f4f4)}.introjs-button::-moz-focus-inner{padding:0;border:0}.introjs-skipbutton{margin-right:5px;color:#7a7a7a}.introjs-prevbutton{border-right:none}.introjs-disabled,.introjs-disabled:focus,.introjs-disabled:hover{color:#9a9a9a;border-color:#d4d4d4;box-shadow:none;cursor:default;background-color:#f4f4f4;background-image:none;text-decoration:none}.introjs-bullets{text-align:center}.introjs-bullets ul{clear:both;margin:15px auto 0;padding:0;display:inline-block}.introjs-bullets ul li{list-style:none;float:left;margin:0 2px}.introjs-bullets ul li a{display:block;width:6px;height:6px;background:#ccc;border-radius:10px;-moz-border-radius:10px;-webkit-border-radius:10px;text-decoration:none}.introjs-bullets ul li a.active,.introjs-bullets ul li a:hover{background:#999}.introjs-helperNumberLayer{border:0!important;line-height:16px;top:-10px;left:-10px}.com{color:#a3b3ba}.lit{color:#195f91}.clo,.opn,.pun{color:#666}.fun{color:#dc322f}.atv,.str{color:#3C606E}.kwd,.prettyprint .tag{color:#1e347b}.atn,.dec,.typ,.var{color:teal}.pln{color:#666}.prettyprint{padding:2px;font-size:11px;border:1px solid #dbe4e7;background:rgba(255,255,255,.2);box-shadow:none;max-height:calc(100vh - 125px);overflow-y:auto;position:relative}.prettyprint ol{width:auto}.prettyprint li{padding-left:12px;color:#bebec5;line-height:20px;font-size:11px;width:100%}.prettyprint li:nth-child(odd){background-color:#fff}.prettyprint li:nth-child(even){background-color:#f6f9fa}ol.linenums{margin:0 0 0 20px}.panel.panel-filter .panel-body{padding:15px 15px 0}.filter-list{-webkit-transition:max-height .3s;transition:max-height .3s;position:relative;margin-bottom:15px;overflow:hidden}.filter-title{font-weight:700;font-size:14px;margin:5px 0}.filter-btn{display:none}.filter-collapsed{position:relative;max-height:145px!important;overflow:hidden}.filter-collapsed>.filter-btn{display:block;position:absolute;bottom:0;width:100%;border-color:transparent;padding-left:20px;text-align:left;font-weight:700;background-color:#fff;color:#888}.filter-option{margin:0;padding:5px 0 5px 20px;font-weight:inherit;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.filter-option::after{margin-left:10px;opacity:.6;content:"(" attr(data-count)")"}input[type=checkbox],input[type=radio]{margin-top:2px}.filter-search{position:relative;margin-bottom:15px}.filter-search input{padding-left:16px;border-radius:16px}.filter-search input:focus,.filter-search input:hover{border:1px solid #d2dde1!important;background-color:#f6f9fa}.filter-search input::-webkit-input-placeholder{line-height:15px;color:#71929f}.filter-search input:-moz-placeholder,.filter-search input::-moz-placeholder{line-height:15px;color:#71929f}.filter-search input:-ms-input-placeholder{line-height:15px;color:#71929f}.filter-search i{position:absolute;right:15px;top:50%;margin-top:-15px;height:30px;line-height:30px;color:#183440;pointer-events:none}*{outline:0!important}body,html{height:100%}body{background-color:#f6f9fa;font-family:'Open Sans',Oswald,sans-serif;font-size:12px;color:#3C606E;padding-top:40px}.wrapper{min-height:100%;height:auto!important;height:100%;margin-bottom:-35px}.content-wrapper{padding-top:20px}.navbar{background-color:#183440;box-shadow:0 none;height:40px;line-height:40px;margin-bottom:0;min-height:40px}.navbar .navbar-brand{padding-top:0;padding-bottom:0;margin-right:20px;font-family:'Varela Round';line-height:40px}.navbar .navbar-brand.admin{margin:0;background:#000;height:40px}.navbar .navbar-brand.admin:focus,.navbar .navbar-brand.admin:hover{background:#36ab70}.navbar .navbar-brand img{width:20px;height:20px;margin-right:5px;margin-top:-1px;display:inline-block}.navbar .navbar-brand h1{margin:0;display:inline-block;font-size:15px;color:#fff;line-height:40px;font-weight:100;text-transform:uppercase}.navbar ul.nav i{margin-right:5px}.navbar ul.nav li a{padding:0 20px;height:40px;line-height:40px;color:#fff}.navbar ul.nav li a:focus,.navbar ul.nav li a:hover{color:#fff;background-color:#1f4353}.navbar ul.nav li.active a,.navbar ul.nav li.active a:focus,.navbar ul.nav li.active a:hover{background-color:#3C606E}.navbar .search{height:40px;max-width:300px;display:inline-block;margin-right:15px;position:relative}.navbar .search input{height:28px;line-height:14px;padding:5px 35px 5px 15px;border:0;border-radius:30px;background:#3C606E;color:#fff!important}.navbar .search input:focus,.navbar .search input:hover{border:0!important;box-shadow:none;outline:0}.navbar .search input::-webkit-input-placeholder{line-height:15px;color:#71929f}.navbar .search input:-moz-placeholder,.navbar .search input::-moz-placeholder{line-height:15px;color:#71929f}.navbar .search input:-ms-input-placeholder{line-height:15px;color:#71929f}.navbar .search i{position:absolute;right:15px;top:5px;height:30px;line-height:30px;color:#fff}.navbar .pagination{height:40px;max-width:300px;display:inline-block;margin:5px;position:relative;float:right}.navbar .pagination li{padding-left:10px;display:inline-block;height:30px;color:#fff}.navbar .pagination a{border:0;background:#3C606E;color:#fff;height:30px}.navbar .pagination a:focus,.navbar .pagination a:hover{background:#4e7d8f}.anchor{display:block;position:relative;top:-40px;visibility:hidden}.header{line-height:60px;height:60px;border-bottom:1px solid #d2dde1;background:#fff}.header h3{margin:0;line-height:60px;font-size:16px}.header h3 a{padding:0;margin:0 10px 0 0;display:inline-block;color:#a3b3ba;font-weight:400}.header .nav-tabs{border:0}.header .nav-tabs li{margin:0}.header .nav-tabs li.active a{border-color:#d2dde1;border-top:0 none;border-bottom:0 none;background:#f6f9fa;z-index:99}.header .nav-tabs a{border:1px solid transparent;height:60px;line-height:60px;padding:0 20px;border-top:0 none;margin:0 0 0 -1px}.header .nav-tabs a:hover{background:0 0;border:1px solid #dbe4e7;border-top:0 none;border-bottom:0 none;color:inherit}.header .btn{margin-top:-4px}.header .input-group{display:block}h3{font-size:20px;font-weight:600}h4{font-size:16px}h4 i{margin-right:5px}#content h3:first-child{margin-top:0;display:inline-block}.btn-add-dataset{margin-top:-10px}.btn{background-color:#eceff0;border:1px solid #d2dde1;border-radius:0!important;color:#183440;font-size:13px}.btn.margin-left{margin-left:10px}.btn i{margin-right:5px}.btn i.icon-only{margin-right:0}.btn:focus,.btn:hover{background-color:#f7f9f9;border:1px solid #d2dde1}.btn.btn-primary{background-color:#183440;border:1px solid #183440;color:#fff;font-weight:700}.btn.btn-primary:focus,.btn.btn-primary:hover{background-color:#265265;border:1px solid #183440}.btn.btn-cta{color:#fff;font-weight:700;background-color:#36ab70;border:1px solid #36ab70}.btn.btn-cta:focus,.btn.btn-cta:hover{background-color:#3cbe7d;border:1px solid #3cbe7d}input,textarea{box-shadow:none!important;font-size:12px;border-color:#d2dde1!important}input:focus,textarea:focus{box-shadow:none!important;border:1px solid #d2dde1!important;border-bottom:1px solid #36ab70!important}textarea{resize:vertical}.add-dataset .identifier{padding:20px 0 40px}.add-dataset .alert{margin:20px}.add-dataset h3{margin-bottom:40px!important;display:block!important;text-align:center!important}.add-dataset .nav-tabs{margin:20px 20px 0}.add-dataset .tab-content{margin:0 20px 20px;background-color:#fff;display:block}.add-dataset .panel.dataset-parameters{margin-bottom:0;margin-top:-1px;border:0;border-left:1px solid #dbe4e7!important;border-right:1px solid #dbe4e7!important;box-shadow:none}.add-dataset .panel.dataset-parameters:last-child{margin-left:-1px}.form-control,.input-group-addon{font-size:12px;padding:6px 8px}.input-group-addon{background:#f3f7f8;color:#a3b3ba;border:1px solid #dbe4e7}.input-group-btn:last-child .btn{border-left:0 none}.input-medium{max-width:150px}a{color:#183440}a:focus,a:hover{text-decoration:none;color:#36ab70}h4>small{margin-left:.5em;font-size:12px}.well{border:1px solid #dbe4e7;background:#fff;box-shadow:none}footer{background-color:#fff;color:#a3b3ba;border-top:1px solid #d2dde1;line-height:34px;font-size:10px}.push,footer{height:35px;width:100%}.row{margin:0}.tab-content{background-color:#fff}.panel{border-color:#dbe4e7!important}.panel .row>div{padding:0}.panel.dataset-parameters{padding:10px 30px}.panel.users-information{padding:10px 30px;margin-bottom:0}.panel.collection:hover{background-color:#f3f7f8!important}.panel hr{margin-top:5px;border-color:#dbe4e7}.panel .panel-body{padding:12px 8px}.panel.dataset{clear:both;box-shadow:none!important;cursor:pointer;margin:-1px 0 0;font-size:12px}.panel.dataset:last-child{margin-bottom:20px}.panel.dataset.dataset-link .icon{line-height:18px}.panel.dataset.dataset-link h4{margin-bottom:0}.panel.dataset.dataset-link .panel-body{padding:7px 0 7px 7px}.panel.dataset.button-row .icon{line-height:24px}.panel.dataset.button-row h4{line-height:22px}.panel.dataset.button-row .panel-body{padding-bottom:0;line-height:24px}.panel.dataset.button-row .btn{height:25px;font-size:13px;padding:2px 10px;margin:0 -1px 0 0}.panel.dataset.button-row .btn:last-child{margin-right:0}.panel.dataset a:hover{color:inherit}.panel.dataset:hover{color:#183440;background-color:#f3f7f8}.panel.dataset h4{margin-top:0;margin-bottom:5px;font-size:14px;font-weight:700}.panel.dataset .icon{width:5%;height:100%;float:left;line-height:36px;text-align:center;margin-left:-15px}.panel.dataset .icon+div{width:95%;display:inline-block}.empty{margin-bottom:20px}.table,.table td{border-color:#dbe4e7!important}.table thead>tr>th{border-bottom:0 none}.table tbody tr:hover td{background-color:#f3f7f8!important}.table.triples{border:1px solid}.scroll-horizontal{border:1px solid #dbe4e7!important;overflow-x:auto;margin-bottom:15px}.scroll-horizontal .table{border:0!important;margin-bottom:0}.note{color:#a3b3ba}.map-container{width:100%;position:absolute;top:40px;bottom:35px}.map-container iframe{width:100%;height:100%;border:0}#geojson-map{margin-top:20px;width:100%;height:200px;min-height:200px;background:#ddd}@media (min-height:500px){#geojson-map{height:300px}}.modal .form-group:last-child{margin-bottom:0}.modal h4{font-size:16px}.modal .modal-footer{margin-top:0}.modal-backdrop{background:rgba(0,0,0,.3)}.modal-content{box-shadow:none!important}.hover-help{color:#a3b3ba}.edit-permissions{margin-bottom:14px!important}.permissions{margin-bottom:15px}.permissions>div>form>div{margin-bottom:10px}.permissions label{margin-left:5px;font-weight:400;margin-right:20px}.alert{border:0}.alert i{margin-right:5px;vertical-align:middle}.alert i.fa-2x{margin-top:-1px;margin-right:9px}.alert.alert-danger{background-color:#e74c3c;color:#fff}.introjs i{margin-bottom:20px}button.close{text-shadow:none;color:#fff!important;opacity:.8;margin-top:-3px;font-weight:400}.list-group{font-size:12px}.list-group h5{font-size:13px;font-weight:700;margin-bottom:8px}.list-group .list-group-item{border-color:#d2dde1}.help-block{color:#a3b3ba}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background:#f3f7f8;color:#a3b3ba}.formats .btn{font-size:10px;font-weight:700}.no-padding{padding:0}@media (max-width:768px){body{padding-top:0}.navbar{position:relative;height:auto;padding:0}.navbar .nav{margin:40px 0 0}.navbar .nav a{border-radius:0}.navbar .search{height:auto}.wrapper{padding:55px 0 0;margin-top:-41px}.panel.dataset .icon{width:15%;line-height:20px}.panel.dataset .icon+div{width:85%}}div.leaflet-container{min-height:450px}ul.nav-tabs+div.panel{margin-top:-1px}.nav-tabs li>a:hover{background-color:transparent!important}.nav-tabs li.active>a:hover{background-color:#fff!important}@media (max-width:500px){.navbar .search{width:80%}.navbar .search input{width:100%}}.lang-selector>a.active{font-weight:700}.lang-selector>a:after{content:'|';color:#CCC;margin:0 2px 0 4px}.lang-selector>a:last-child:after{margin:0;content:''}.profile-selector{float:right;margin-top:10px;line-height:20px}.profile{margin-left:15px}.geodcat-enabled .required .help-block::before{content:attr(requirement)": ";margin-left:2px;color:red}.geodcat-enabled .recommended .help-block::before{content:attr(requirement)": ";margin-left:2px;font-weight:700}.select-attribution{width:calc(100% - 150px)}.btn-attribution{float:right;width:130px}input[type=file]{display:block;border:none;margin-top:15px;padding:0}.nofloat{float:none} \ No newline at end of file +article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:active,a:hover{outline:0}h1{margin:.67em 0}b,strong{font-weight:700}dfn{font-style:italic}hr{box-sizing:content-box;height:0}mark{background:#ff0;color:#000}kbd,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}button,input{margin:0}select,textarea{margin:0}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}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}*,:after,:before{box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:transparent}body{line-height:1.428571429}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}button,input,select[multiple],textarea{background-image:none}a{text-decoration:none}a:focus{outline:#333 dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded,.img-thumbnail{border-radius:0}.img-thumbnail{padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;-webkit-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}@media print{*{text-shadow:none!important;color:#000!important;background:0 0!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href)")"}abbr[title]:after{content:" (" attr(title)")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:2cm .5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16.1px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small{font-size:85%}cite{font-style:normal}.text-muted{color:#999}.text-primary{color:#428bca}.text-warning{color:#c09853}.text-danger{color:#b94a48}.text-success{color:#468847}.text-info{color:#3a87ad}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2{font-weight:500}h1,h2,h3{line-height:1.1}.h1,.h2,.h3,.h4,.h5,.h6,h4,h5,h6{font-weight:500;line-height:1.1}.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:400;line-height:1;color:#999}h1,h2,h3{margin-top:20px;margin-bottom:10px}h4,h5,h6{margin-top:10px;margin-bottom:10px}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3{font-size:24px}.h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}.h1 small,h1 small{font-size:24px}.h2 small,h2 small{font-size:18px}.h3 small,.h4 small,h3 small,h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-bottom:20px}dd,dt{line-height:1.428571429}dt{font-weight:700}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}.dl-horizontal dd:after,.dl-horizontal dd:before{content:" ";display:table}.dl-horizontal dd:after{clear:both}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{font-size:17.5px;font-weight:300;line-height:1.25}blockquote p:last-child{margin-bottom:0}blockquote small{display:block;line-height:1.428571429;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}blockquote:after,blockquote:before,q:after,q:before{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:1.428571429}code,pre{font-family:Monaco,Menlo,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap}code,pre{border-radius:0}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc}pre.prettyprint{margin-bottom:20px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.container:after,.container:before{content:" ";display:table}.container:after{clear:both}.row:after,.row:before{content:" ";display:table}.row:after{clear:both}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.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-md-1,.col-md-10,.col-md-11,.col-md-12,.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-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.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-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-1{width:8.333333333333332%}.col-xs-2{width:16.666666666666664%}.col-xs-3{width:25%}.col-xs-4{width:33.33333333333333%}.col-xs-5{width:41.66666666666667%}.col-xs-6{width:50%}.col-xs-7{width:58.333333333333336%}.col-xs-8{width:66.66666666666666%}.col-xs-9{width:75%}.col-xs-10{width:83.33333333333334%}.col-xs-11{width:91.66666666666666%}.col-xs-12{width:100%}@media (min-width:768px){.container{max-width:750px}.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-1{width:8.333333333333332%}.col-sm-2{width:16.666666666666664%}.col-sm-3{width:25%}.col-sm-4{width:33.33333333333333%}.col-sm-5{width:41.66666666666667%}.col-sm-6{width:50%}.col-sm-7{width:58.333333333333336%}.col-sm-8{width:66.66666666666666%}.col-sm-9{width:75%}.col-sm-10{width:83.33333333333334%}.col-sm-11{width:91.66666666666666%}.col-sm-12{width:100%}.col-sm-push-1{left:8.333333333333332%}.col-sm-push-2{left:16.666666666666664%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.33333333333333%}.col-sm-push-5{left:41.66666666666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.333333333333336%}.col-sm-push-8{left:66.66666666666666%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.33333333333334%}.col-sm-push-11{left:91.66666666666666%}.col-sm-pull-1{right:8.333333333333332%}.col-sm-pull-2{right:16.666666666666664%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.33333333333333%}.col-sm-pull-5{right:41.66666666666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.333333333333336%}.col-sm-pull-8{right:66.66666666666666%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.33333333333334%}.col-sm-pull-11{right:91.66666666666666%}.col-sm-offset-1{margin-left:8.333333333333332%}.col-sm-offset-2{margin-left:16.666666666666664%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333333333333%}.col-sm-offset-5{margin-left:41.66666666666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.333333333333336%}.col-sm-offset-8{margin-left:66.66666666666666%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333333333334%}.col-sm-offset-11{margin-left:91.66666666666666%}}@media (min-width:992px){.container{max-width:970px}.col-md-1,.col-md-10,.col-md-11,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-1{width:8.333333333333332%}.col-md-2{width:16.666666666666664%}.col-md-3{width:25%}.col-md-4{width:33.33333333333333%}.col-md-5{width:41.66666666666667%}.col-md-6{width:50%}.col-md-7{width:58.333333333333336%}.col-md-8{width:66.66666666666666%}.col-md-9{width:75%}.col-md-10{width:83.33333333333334%}.col-md-11{width:91.66666666666666%}.col-md-12{width:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.333333333333332%}.col-md-push-2{left:16.666666666666664%}.col-md-push-3{left:25%}.col-md-push-4{left:33.33333333333333%}.col-md-push-5{left:41.66666666666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.333333333333336%}.col-md-push-8{left:66.66666666666666%}.col-md-push-9{left:75%}.col-md-push-10{left:83.33333333333334%}.col-md-push-11{left:91.66666666666666%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.333333333333332%}.col-md-pull-2{right:16.666666666666664%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.33333333333333%}.col-md-pull-5{right:41.66666666666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.333333333333336%}.col-md-pull-8{right:66.66666666666666%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.33333333333334%}.col-md-pull-11{right:91.66666666666666%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.333333333333332%}.col-md-offset-2{margin-left:16.666666666666664%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333333333333%}.col-md-offset-5{margin-left:41.66666666666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.333333333333336%}.col-md-offset-8{margin-left:66.66666666666666%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333333333334%}.col-md-offset-11{margin-left:91.66666666666666%}}@media (min-width:1200px){.container{max-width:1170px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-1{width:8.333333333333332%}.col-lg-2{width:16.666666666666664%}.col-lg-3{width:25%}.col-lg-4{width:33.33333333333333%}.col-lg-5{width:41.66666666666667%}.col-lg-6{width:50%}.col-lg-7{width:58.333333333333336%}.col-lg-8{width:66.66666666666666%}.col-lg-9{width:75%}.col-lg-10{width:83.33333333333334%}.col-lg-11{width:91.66666666666666%}.col-lg-12{width:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.333333333333332%}.col-lg-push-2{left:16.666666666666664%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.33333333333333%}.col-lg-push-5{left:41.66666666666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.333333333333336%}.col-lg-push-8{left:66.66666666666666%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.33333333333334%}.col-lg-push-11{left:91.66666666666666%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.333333333333332%}.col-lg-pull-2{right:16.666666666666664%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.33333333333333%}.col-lg-pull-5{right:41.66666666666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.333333333333336%}.col-lg-pull-8{right:66.66666666666666%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.33333333333334%}.col-lg-pull-11{right:91.66666666666666%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.333333333333332%}.col-lg-offset-2{margin-left:16.666666666666664%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333333333333%}.col-lg-offset-5{margin-left:41.66666666666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.333333333333336%}.col-lg-offset-8{margin-left:66.66666666666666%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333333333334%}.col-lg-offset-11{margin-left:91.66666666666666%}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table thead>tr>th{padding:8px;line-height:1.428571429;border-top:1px solid #ddd}.table tbody>tr>td,.table tbody>tr>th,.table tfoot>tr>td,.table tfoot>tr>th,.table thead>tr>td{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.table thead>tr>th{vertical-align:bottom}.table caption+thead tr:first-child td,.table caption+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table thead:first-child tr:first-child td,.table thead:first-child tr:first-child th{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed tbody>tr>td,.table-condensed tbody>tr>th,.table-condensed tfoot>tr>td,.table-condensed tfoot>tr>th,.table-condensed thead>tr>td,.table-condensed thead>tr>th{padding:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*=col-]{float:none;display:table-column}table td[class*=col-],table th[class*=col-]{float:none;display:table-cell}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8;border-color:#d6e9c6}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6;border-color:#c9e2b3}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede;border-color:#eed3d7}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc;border-color:#e6c1c7}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3;border-color:#fbeed5}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc;border-color:#f8e5be}@media (max-width:768px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:scroll;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0;background-color:#fff}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>thead>tr:last-child>td,.table-responsive>.table-bordered>thead>tr:last-child>th{border-bottom:0}}fieldset{padding:0;margin:0;border: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;margin-bottom:5px;font-weight:700}input[type=search]{box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;line-height:normal}input[type=file]{display:block}select[multiple],select[size]{height:auto}select optgroup{font-size:inherit;font-style:inherit;font-family:inherit}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:#333 dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}.form-control:-moz-placeholder,.form-control::-moz-placeholder{color:#999}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control{display:block;width:100%;height:34px;line-height:1.428571429;color:#555;vertical-align:middle;background-color:#fff;border:1px solid #ccc;border-radius:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-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;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}textarea.form-control{height:auto}.form-group{margin-bottom:15px}.checkbox,.radio{display:block;min-height:20px;margin-top:10px;margin-bottom:10px;padding-left:20px;vertical-align:middle}.checkbox label,.radio label{display:inline;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{float:left;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.checkbox-inline[disabled],.checkbox[disabled],.radio-inline[disabled],.radio[disabled],fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:0}select.input-sm{height:30px;line-height:30px}textarea.input-sm{height:auto}.input-lg{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:0}select.input-lg{height:45px;line-height:45px}textarea.input-lg{height:auto}.has-warning .control-label,.has-warning .help-block{color:#c09853}.has-warning .form-control{border-color:#c09853;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#a47e3c;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #dbc59e}.has-warning .input-group-addon{color:#c09853;border-color:#c09853;background-color:#fcf8e3}.has-error .control-label,.has-error .help-block{color:#b94a48}.has-error .form-control{border-color:#b94a48;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#953b39;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #d59392}.has-error .input-group-addon{color:#b94a48;border-color:#b94a48;background-color:#f2dede}.has-success .control-label,.has-success .help-block{color:#468847}.has-success .form-control{border-color:#468847;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#356635;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7aba7b}.has-success .input-group-addon{color:#468847;border-color:#468847;background-color:#dff0d8}.form-control-static{margin-bottom:0;padding-top:7px}.help-block{display:block;margin-top:5px;margin-bottom:10px}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{float:none;margin-left:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-group:before{content:" ";display:table}.form-horizontal .form-group:after{content:" ";display:table;clear:both}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-weight:400;line-height:1.428571429;text-align:center;vertical-align:middle;cursor:pointer;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.btn:focus{outline:#333 dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{outline:0;background-image:none;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.active,.btn-default:active,.btn-default:focus,.btn-default:hover,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default.active,.btn-default:active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary.active,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary.active,.btn-primary:active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#428bca;border-color:#357ebd}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.active,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.active,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.active,.btn-success:active,.btn-success:focus,.btn-success:hover,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success.active,.btn-success:active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.active,.btn-info:active,.btn-info:focus,.btn-info:hover,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info.active,.btn-info:active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-link{color:#428bca;font-weight:400;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#999;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:0}.btn-sm{padding:5px 10px}.btn-sm,.btn-xs{font-size:12px;line-height:1.5;border-radius:0}.btn-xs{padding:1px 5px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.btn-default .caret{border-top-color:#333}.btn-danger .caret,.btn-info .caret,.btn-primary .caret,.btn-success .caret,.btn-warning .caret{border-top-color:#fff}.dropup .btn-default .caret{border-bottom-color:#333}.dropup .btn-danger .caret,.dropup .btn-info .caret,.dropup .btn-primary .caret,.dropup .btn-success .caret,.dropup .btn-warning .caret{border-bottom-color:#fff}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn{float:left}.btn-group-vertical>.btn,.btn-group>.btn{position:relative}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group-vertical>.btn:focus,.btn-group>.btn:focus{outline:0}.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:after,.btn-toolbar:before{content:" ";display:table}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group{float:left}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn-group+.btn-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>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-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-xs>.btn{padding:1px 5px}.btn-group-sm>.btn,.btn-group-xs>.btn{font-size:12px;line-height:1.5;border-radius:0}.btn-group-sm>.btn{padding:5px 10px}.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius: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{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before{content:" ";display:table}.btn-group-vertical>.btn-group:after{content:" ";display:table;clear:both}.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:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:0;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>.btn:last-child,.btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-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{float:none;display:table-cell;width:1%}[data-toggle=buttons]>.btn>input[type=checkbox],[data-toggle=buttons]>.btn>input[type=radio]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group.col{float:none;padding-left:0;padding-right:0}.input-group .form-control{width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:0}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:45px;line-height:45px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.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:0}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{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon{white-space:nowrap}.input-group-addon,.input-group-btn{width:1%;vertical-align:middle}.input-group-addon{font-weight:400;line-height:1;text-align:center;background-color:#eee;border-radius:0}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:0}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:0}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{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>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){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:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.dropdown-toggle{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{white-space:nowrap}.input-group-btn,.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-4px}.input-group-btn>.btn:active,.input-group-btn>.btn:hover{z-index:2}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav:after,.nav:before{content:" ";display:table}.nav:after{clear:both}.nav>li,.nav>li>a{position:relative;display:block}.nav>li>a{padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#428bca}.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.428571429;border:1px solid transparent;border-radius:0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{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;border-bottom:1px solid #ddd;margin-right:0}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}}.nav-tabs.nav-justified>.active>a{border-bottom-color:#fff}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:5px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#428bca}.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}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;margin-right:0}.nav-tabs-justified>.active>a{border-bottom-color:#fff}.tabbable:after,.tabbable:before{content:" ";display:table}.tabbable:after{clear:both}.pill-content>.pill-pane,.tab-content>.tab-pane{display:none}.pill-content>.active,.tab-content>.active{display:block}.nav .caret{border-top-color:#428bca;border-bottom-color:#428bca}.nav a:hover .caret{border-top-color:#2a6496;border-bottom-color:#2a6496}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;z-index:1000;border:1px solid transparent}.navbar:after,.navbar:before{content:" ";display:table}.navbar:after{clear:both}@media (min-width:768px){.navbar{border-radius:0}}.navbar-header:after,.navbar-header:before{content:" ";display:table}.navbar-header:after{clear:both}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse:after,.navbar-collapse:before{content:" ";display:table}.navbar-collapse:after{clear:both}.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;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-collapse .navbar-nav.navbar-left:first-child{margin-left:-15px}.navbar-collapse .navbar-nav.navbar-right:last-child{margin-right:-15px}.navbar-collapse .navbar-text:last-child{margin-right:0}}.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;border-width:0 0 1px}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{z-index:1030;top:0}.navbar-fixed-bottom{bottom:0;margin-bottom:0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius: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:7.5px -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 .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin:8px -15px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{float:none;margin-left:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;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{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-nav.pull-right>li>.dropdown-menu,.navbar-nav>li>.dropdown-menu.pull-right{left:auto;right:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-text{float:left;margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{margin-left:15px;margin-right:15px}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-nav>li>a,.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e6e6e6}.navbar-default .navbar-nav>.dropdown>a:focus .caret,.navbar-default .navbar-nav>.dropdown>a:hover .caret{border-top-color:#333;border-bottom-color:#333}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{background-color:#e7e7e7;color:#555}.navbar-default .navbar-nav>.open>a .caret,.navbar-default .navbar-nav>.open>a:focus .caret,.navbar-default .navbar-nav>.open>a:hover .caret{border-top-color:#555;border-bottom-color:#555}.navbar-default .navbar-nav>.dropdown>a .caret{border-top-color:#777;border-bottom-color:#777}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>li>a,.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{background-color:#080808;color:#fff}.navbar-inverse .navbar-nav>.dropdown>a:hover .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-nav>.dropdown>a .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .navbar-nav>.open>a .caret,.navbar-inverse .navbar-nav>.open>a:focus .caret,.navbar-inverse .navbar-nav>.open>a:hover .caret{border-top-color:#fff;border-bottom-color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:0}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:0}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.428571429;text-decoration:none;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:0;border-top-left-radius:0}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{background-color:#eee}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span{color:#999;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:0;border-top-left-radius:0}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.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:0;border-top-left-radius:0}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager:after,.pager:before{content:" ";display:table}.pager:after{clear:both}.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:focus,.pager li>a:hover{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:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:focus,.label[href]:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.label-default{background-color:#999}.label-default[href]:focus,.label-default[href]:hover{background-color:gray}.label-primary{background-color:#428bca}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.badge:empty{display:none}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.btn .badge{position:relative;top:-1px}.nav-pills>.active>a>.badge,a.list-group-item.active>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.thumbnail{padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:0;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail,.thumbnail>img{display:block;max-width:100%;height:auto}a.thumbnail:focus,a.thumbnail:hover{border-color:#428bca}.thumbnail>img{margin-left:auto;margin-right:auto}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border-radius:0}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#356635}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#2d6987}.alert-warning{background-color:#fcf8e3;border-color:#fbeed5;color:#c09853}.alert-warning hr{border-top-color:#f8e5be}.alert-warning .alert-link{color:#a47e3c}.alert-danger{background-color:#f2dede;border-color:#eed3d7;color:#b94a48}.alert-danger hr{border-top-color:#e6c1c7}.alert-danger .alert-link{color:#953b39}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.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:0;border-top-left-radius:0}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover{text-decoration:none;background-color:#f5f5f5}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#e1edf7}.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:#fff;border:1px solid transparent;border-radius:0;box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-body:after,.panel-body:before{content:" ";display:table}.panel-body:after{clear:both}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0}.panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel>.list-group .list-group-item:last-child{border-bottom:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table{margin-bottom:0}.panel>.panel-body+.table{border-top:1px solid #ddd}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:-1px;border-top-left-radius:-1px}.panel-title{margin-top:0;margin-bottom:0;font-size:16px}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:-1px;border-bottom-left-radius:-1px}.panel-group .panel{margin-bottom:0;border-radius:0;overflow:hidden}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{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:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-warning{border-color:#fbeed5}.panel-warning>.panel-heading{color:#c09853;background-color:#fcf8e3;border-color:#fbeed5}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#fbeed5}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#fbeed5}.panel-danger{border-color:#eed3d7}.panel-danger>.panel-heading{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#eed3d7}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#eed3d7}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border-radius:0}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:0}.well-sm{padding:9px;border-radius:0}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;border-bottom:0 dotted;content:""}.dropdown{position:relative}.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;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:0;box-shadow:0 6px 12px rgba(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:400;line-height:1.428571429;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{text-decoration:none;color:#fff;background-color:#428bca}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#999}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{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-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.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 dotted;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:12px;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:0}.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;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right: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;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:0;box-shadow:0 5px 10px rgba(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;font-weight:400;line-height:18px;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,.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,.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,.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,.25)}.popover.left .arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.modal-open{overflow:hidden}.modal-open .navbar-fixed-bottom,.modal-open .navbar-fixed-top,body.modal-open{margin-right:15px}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{margin-left:auto;margin-right:auto;width:auto;padding:10px;z-index:1050}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:0;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;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.43px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.428571429}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:after,.modal-footer:before{content:" ";display:table}.modal-footer:after{clear:both}.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}@media screen and (min-width:768px){.modal-dialog{left:50%;right:auto;width:600px;padding-top:30px;padding-bottom:30px}.modal-content{box-shadow:0 5px 15px rgba(0,0,0,.5)}}.clearfix:after,.clearfix:before{content:" ";display:table}.clearfix:after{clear:both}.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}.affix{position:fixed}@-ms-viewport{width:device-width}@media screen and (max-width:400px){@-ms-viewport{width:320px}}.hidden{visibility:hidden!important}.hidden,.visible-lg,.visible-md,.visible-sm,.visible-xs,td.visible-lg,td.visible-md,td.visible-sm,td.visible-xs,th.visible-lg,th.visible-md,th.visible-sm,th.visible-xs,tr.visible-lg,tr.visible-md,tr.visible-sm,tr.visible-xs{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-xs.visible-sm{display:block!important}tr.visible-xs.visible-sm{display:table-row!important}td.visible-xs.visible-sm,th.visible-xs.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-xs.visible-md{display:block!important}tr.visible-xs.visible-md{display:table-row!important}td.visible-xs.visible-md,th.visible-xs.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-xs.visible-lg{display:block!important}tr.visible-xs.visible-lg{display:table-row!important}td.visible-xs.visible-lg,th.visible-xs.visible-lg{display:table-cell!important}}@media (max-width:767px){.visible-sm.visible-xs{display:block!important}tr.visible-sm.visible-xs{display:table-row!important}td.visible-sm.visible-xs,th.visible-sm.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-sm.visible-md{display:block!important}tr.visible-sm.visible-md{display:table-row!important}td.visible-sm.visible-md,th.visible-sm.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-sm.visible-lg{display:block!important}tr.visible-sm.visible-lg{display:table-row!important}td.visible-sm.visible-lg,th.visible-sm.visible-lg{display:table-cell!important}}@media (max-width:767px){.visible-md.visible-xs{display:block!important}tr.visible-md.visible-xs{display:table-row!important}td.visible-md.visible-xs,th.visible-md.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-md.visible-sm{display:block!important}tr.visible-md.visible-sm{display:table-row!important}td.visible-md.visible-sm,th.visible-md.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-md.visible-lg{display:block!important}tr.visible-md.visible-lg{display:table-row!important}td.visible-md.visible-lg,th.visible-md.visible-lg{display:table-cell!important}}@media (max-width:767px){.visible-lg.visible-xs{display:block!important}tr.visible-lg.visible-xs{display:table-row!important}td.visible-lg.visible-xs,th.visible-lg.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-lg.visible-sm{display:block!important}tr.visible-lg.visible-sm{display:table-row!important}td.visible-lg.visible-sm,th.visible-lg.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-lg.visible-md{display:block!important}tr.visible-lg.visible-md{display:table-row!important}td.visible-lg.visible-md,th.visible-lg.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-lg{display:block!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}.hidden-xs{display:block!important}tr.hidden-xs{display:table-row!important}td.hidden-xs,th.hidden-xs{display:table-cell!important}@media (max-width:767px){.hidden-xs,td.hidden-xs,th.hidden-xs,tr.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-xs.hidden-sm,td.hidden-xs.hidden-sm,th.hidden-xs.hidden-sm,tr.hidden-xs.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-xs.hidden-md,td.hidden-xs.hidden-md,th.hidden-xs.hidden-md,tr.hidden-xs.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-xs.hidden-lg,td.hidden-xs.hidden-lg,th.hidden-xs.hidden-lg,tr.hidden-xs.hidden-lg{display:none!important}}.hidden-sm{display:block!important}tr.hidden-sm{display:table-row!important}td.hidden-sm,th.hidden-sm{display:table-cell!important}@media (max-width:767px){.hidden-sm.hidden-xs,td.hidden-sm.hidden-xs,th.hidden-sm.hidden-xs,tr.hidden-sm.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm,td.hidden-sm,th.hidden-sm,tr.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-sm.hidden-md,td.hidden-sm.hidden-md,th.hidden-sm.hidden-md,tr.hidden-sm.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-sm.hidden-lg,td.hidden-sm.hidden-lg,th.hidden-sm.hidden-lg,tr.hidden-sm.hidden-lg{display:none!important}}.hidden-md{display:block!important}tr.hidden-md{display:table-row!important}td.hidden-md,th.hidden-md{display:table-cell!important}@media (max-width:767px){.hidden-md.hidden-xs,td.hidden-md.hidden-xs,th.hidden-md.hidden-xs,tr.hidden-md.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-md.hidden-sm,td.hidden-md.hidden-sm,th.hidden-md.hidden-sm,tr.hidden-md.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md,td.hidden-md,th.hidden-md,tr.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-md.hidden-lg,td.hidden-md.hidden-lg,th.hidden-md.hidden-lg,tr.hidden-md.hidden-lg{display:none!important}}.hidden-lg{display:block!important}tr.hidden-lg{display:table-row!important}td.hidden-lg,th.hidden-lg{display:table-cell!important}@media (max-width:767px){.hidden-lg.hidden-xs,td.hidden-lg.hidden-xs,th.hidden-lg.hidden-xs,tr.hidden-lg.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-lg.hidden-sm,td.hidden-lg.hidden-sm,th.hidden-lg.hidden-sm,tr.hidden-lg.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-lg.hidden-md,td.hidden-lg.hidden-md,th.hidden-lg.hidden-md,tr.hidden-lg.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg,td.hidden-lg,th.hidden-lg,tr.hidden-lg{display:none!important}}.visible-print,td.visible-print,th.visible-print,tr.visible-print{display:none!important}@media print{.visible-print{display:block!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}.hidden-print,td.hidden-print,th.hidden-print,tr.hidden-print{display:none!important}}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:FontAwesome;src:url(../fonts/fontawesome-webfont.eot?v=4.1.0);src:url(../fonts/fontawesome-webfont.eot?#iefix&v=4.1.0) format("embedded-opentype"),url(../fonts/fontawesome-webfont.woff?v=4.1.0) format("woff"),url(../fonts/fontawesome-webfont.ttf?v=4.1.0) format("truetype"),url(../fonts/fontawesome-webfont.svg?v=4.1.0#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1;-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:.08em solid #eee;border-radius:.1em}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@keyframes 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)}.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-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-cog:before,.fa-gear: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-repeat:before,.fa-rotate-right: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-image:before,.fa-photo: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-exclamation-triangle:before,.fa-warning: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{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-cogs:before,.fa-gears: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:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.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-floppy-o:before,.fa-save:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-bars:before,.fa-navicon:before,.fa-reorder: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-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-bolt:before,.fa-flash:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-clipboard:before,.fa-paste: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-chain-broken:before,.fa-unlink: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-caret-square-o-down:before,.fa-toggle-down:before{content:"\f150"}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:"\f151"}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:"\f152"}.fa-eur:before,.fa-euro:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-inr:before,.fa-rupee:before{content:"\f156"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:"\f158"}.fa-krw:before,.fa-won: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{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-caret-square-o-left:before,.fa-toggle-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-try:before,.fa-turkish-lira: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-bank:before,.fa-institution:before,.fa-university:before{content:"\f19c"}.fa-graduation-cap:before,.fa-mortar-board: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-square:before,.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-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:"\f1c5"}.fa-file-archive-o:before,.fa-file-zip-o:before{content:"\f1c6"}.fa-file-audio-o:before,.fa-file-sound-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-ring:before,.fa-life-saver:before,.fa-support:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-empire:before,.fa-ge:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.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-paper-plane:before,.fa-send:before{content:"\f1d8"}.fa-paper-plane-o:before,.fa-send-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"}.introjs-overlay{position:absolute;z-index:999999;opacity:0;background:-webkit-gradient(radial,center center,0,center center,100%,color-stop(0,rgba(0,0,0,.4)),color-stop(100%,rgba(0,0,0,.9)));background:-webkit-radial-gradient(center,ellipse cover,rgba(0,0,0,.4)0,rgba(0,0,0,.9)100%);background:radial-gradient(center,ellipse cover,rgba(0,0,0,.4)0,rgba(0,0,0,.9)100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#66000000', endColorstr='#e6000000', GradientType=1);-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";filter:alpha(opacity=50);-webkit-transition:all .3s ease-out;transition:all .3s ease-out}.introjs-fixParent{z-index:auto!important}.introjs-showElement{z-index:9999999!important}.introjs-relativePosition{position:relative}.introjs-helperLayer{position:absolute;z-index:9999998;background-color:#FFF;background-color:rgba(255,255,255,.9);border:1px solid #777;border:1px solid rgba(0,0,0,.5);box-shadow:0 2px 15px rgba(0,0,0,.4);-webkit-transition:all .3s ease-out;transition:all .3s ease-out}.introjs-helperNumberLayer{position:absolute;z-index:9999999999!important;padding:2px;font-family:Arial,verdana,tahoma;font-size:13px;font-weight:700;color:#fff;text-align:center;text-shadow:1px 1px 1px rgba(0,0,0,.3);background:#36ab70;width:20px;height:20px;border-radius:50%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3019', endColorstr='#cf0404', GradientType=0);filter:progid:DXImageTransform.Microsoft.Shadow(direction=135, strength=2, color=ff0000);box-shadow:0 2px 5px rgba(0,0,0,.4)}.introjs-arrow{border:5px solid #fff;content:'';position:absolute}.introjs-arrow.top{top:-10px;border-bottom-color:#fff;border-left-color:transparent}.introjs-arrow.right,.introjs-arrow.top{border-top-color:transparent;border-right-color:transparent}.introjs-arrow.right{right:-10px;top:10px;border-bottom-color:transparent;border-left-color:#fff}.introjs-arrow.bottom{bottom:-10px;border-top-color:#fff;border-right-color:transparent}.introjs-arrow.bottom,.introjs-arrow.left{border-bottom-color:transparent;border-left-color:transparent}.introjs-arrow.left{left:-10px;top:10px;border-top-color:transparent;border-right-color:#fff}.introjs-tooltip{position:absolute;padding:10px;background-color:#fff;min-width:200px;max-width:300px;box-shadow:0 1px 10px rgba(0,0,0,.4);-webkit-transition:opacity .1s ease-out;transition:opacity .1s ease-out}.introjs-tooltipbuttons{text-align:right}.introjs-button{position:relative;overflow:visible;display:inline-block;padding:.3em .8em;border:1px solid #d4d4d4;text-decoration:none;text-shadow:1px 1px 0 #fff;font:11px sans-serif;color:#333;white-space:nowrap;cursor:pointer;outline:0;background-color:#ececec;background-image:-webkit-gradient(linear,0 0,0 100%,from(#f4f4f4),to(#ececec));background-image:-webkit-linear-gradient(#f4f4f4,#ececec);background-image:linear-gradient(#f4f4f4,#ececec);-webkit-background-clip:padding;-moz-background-clip:padding;-o-background-clip:padding-box;zoom:1;margin:10px 0 0}.introjs-button:hover{border-color:#bcbcbc;text-decoration:none;box-shadow:0 1px 1px #e3e3e3}.introjs-button:active,.introjs-button:focus{background-image:-webkit-gradient(linear,0 0,0 100%,from(#ececec),to(#f4f4f4));background-image:-webkit-linear-gradient(#ececec,#f4f4f4);background-image:linear-gradient(#ececec,#f4f4f4)}.introjs-button::-moz-focus-inner{padding:0;border:0}.introjs-skipbutton{margin-right:5px;color:#7a7a7a}.introjs-prevbutton{border-right:none}.introjs-disabled,.introjs-disabled:focus,.introjs-disabled:hover{color:#9a9a9a;border-color:#d4d4d4;box-shadow:none;cursor:default;background-color:#f4f4f4;background-image:none;text-decoration:none}.introjs-bullets{text-align:center}.introjs-bullets ul{clear:both;margin:15px auto 0;padding:0;display:inline-block}.introjs-bullets ul li{list-style:none;float:left;margin:0 2px}.introjs-bullets ul li a{display:block;width:6px;height:6px;background:#ccc;border-radius:10px;-moz-border-radius:10px;-webkit-border-radius:10px;text-decoration:none}.introjs-bullets ul li a.active,.introjs-bullets ul li a:hover{background:#999}.introjs-helperNumberLayer{border:0!important;line-height:16px;top:-10px;left:-10px}.com{color:#a3b3ba}.lit{color:#195f91}.clo,.opn,.pun{color:#666}.fun{color:#dc322f}.atv,.str{color:#3C606E}.kwd,.prettyprint .tag{color:#1e347b}.atn,.dec,.typ,.var{color:teal}.pln{color:#666}.prettyprint{padding:2px;font-size:11px;border:1px solid #dbe4e7;background:rgba(255,255,255,.2);box-shadow:none;max-height:calc(100vh - 125px);overflow-y:auto;position:relative}.prettyprint ol{width:auto}.prettyprint li{padding-left:12px;color:#bebec5;line-height:20px;font-size:11px;width:100%}.prettyprint li:nth-child(odd){background-color:#fff}.prettyprint li:nth-child(even){background-color:#f6f9fa}ol.linenums{margin:0 0 0 20px}.panel.panel-filter .panel-body{padding:15px 15px 0}.filter-list{-webkit-transition:max-height .3s;transition:max-height .3s;position:relative;margin-bottom:15px;overflow:hidden}.filter-title{font-weight:700;font-size:14px;margin:5px 0}.filter-btn{display:none}.filter-collapsed{position:relative;max-height:145px!important;overflow:hidden}.filter-collapsed>.filter-btn{display:block;position:absolute;bottom:0;width:100%;border-color:transparent;padding-left:20px;text-align:left;font-weight:700;background-color:#fff;color:#888}.filter-option{margin:0;padding:5px 0 5px 20px;font-weight:inherit;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.filter-option::after{margin-left:10px;opacity:.6;content:"(" attr(data-count)")"}input[type=checkbox],input[type=radio]{margin-top:2px}.filter-search{position:relative;margin-bottom:15px}.filter-search input{padding-left:16px;border-radius:16px}.filter-search input:focus,.filter-search input:hover{border:1px solid #d2dde1!important;background-color:#f6f9fa}.filter-search input::-webkit-input-placeholder{line-height:15px;color:#71929f}.filter-search input:-moz-placeholder,.filter-search input::-moz-placeholder{line-height:15px;color:#71929f}.filter-search input:-ms-input-placeholder{line-height:15px;color:#71929f}.filter-search i{position:absolute;right:15px;top:50%;margin-top:-15px;height:30px;line-height:30px;color:#183440;pointer-events:none}*{outline:0!important}body,html{height:100%}body{background-color:#f6f9fa;font-family:'Open Sans',Oswald,sans-serif;font-size:12px;color:#3C606E;padding-top:40px}.wrapper{min-height:100%;height:auto!important;height:100%;margin-bottom:-35px}.content-wrapper{padding-top:20px}.navbar{background-color:#183440;box-shadow:0 none;height:40px;line-height:40px;margin-bottom:0;min-height:40px}.navbar .navbar-brand{padding-top:0;padding-bottom:0;margin-right:20px;font-family:'Varela Round';line-height:40px}.navbar .navbar-brand.admin{margin:0;background:#000;height:40px}.navbar .navbar-brand.admin:focus,.navbar .navbar-brand.admin:hover{background:#36ab70}.navbar .navbar-brand img{width:20px;height:20px;margin-right:5px;margin-top:-1px;display:inline-block}.navbar .navbar-brand h1{margin:0;display:inline-block;font-size:15px;color:#fff;line-height:40px;font-weight:100;text-transform:uppercase}.navbar ul.nav i{margin-right:5px}.navbar ul.nav li a{padding:0 20px;height:40px;line-height:40px;color:#fff}.navbar ul.nav li a:focus,.navbar ul.nav li a:hover{color:#fff;background-color:#1f4353}.navbar ul.nav li.active a,.navbar ul.nav li.active a:focus,.navbar ul.nav li.active a:hover{background-color:#3C606E}.navbar .search{height:40px;max-width:300px;display:inline-block;margin-right:15px;position:relative}.navbar .search input{height:28px;line-height:14px;padding:5px 35px 5px 15px;border:0;border-radius:30px;background:#3C606E;color:#fff!important}.navbar .search input:focus,.navbar .search input:hover{border:0!important;box-shadow:none;outline:0}.navbar .search input::-webkit-input-placeholder{line-height:15px;color:#71929f}.navbar .search input:-moz-placeholder,.navbar .search input::-moz-placeholder{line-height:15px;color:#71929f}.navbar .search input:-ms-input-placeholder{line-height:15px;color:#71929f}.navbar .search i{position:absolute;right:15px;top:5px;height:30px;line-height:30px;color:#fff}.navbar .pagination{height:40px;max-width:300px;display:inline-block;margin:5px;position:relative;float:right}.navbar .pagination li{padding-left:10px;display:inline-block;height:30px;color:#fff}.navbar .pagination a{border:0;background:#3C606E;color:#fff;height:30px}.navbar .pagination a:focus,.navbar .pagination a:hover{background:#4e7d8f}.anchor{display:block;position:relative;top:-40px;visibility:hidden}.header{line-height:60px;height:60px;border-bottom:1px solid #d2dde1;background:#fff}.header h3{margin:0;line-height:60px;font-size:16px}.header h3 a{padding:0;margin:0 10px 0 0;display:inline-block;color:#a3b3ba;font-weight:400}.header .nav-tabs{border:0}.header .nav-tabs li{margin:0}.header .nav-tabs li.active a{border-color:#d2dde1;border-top:0 none;border-bottom:0 none;background:#f6f9fa;z-index:99}.header .nav-tabs a{border:1px solid transparent;height:60px;line-height:60px;padding:0 20px;border-top:0 none;margin:0 0 0 -1px}.header .nav-tabs a:hover{background:0 0;border:1px solid #dbe4e7;border-top:0 none;border-bottom:0 none;color:inherit}.header .btn{margin-top:-4px}.header .input-group{display:block}h3{font-size:20px;font-weight:600}h4{font-size:16px}h4 i{margin-right:5px}#content h3:first-child{margin-top:0;display:inline-block}.btn-add-dataset{margin-top:-10px}.btn{background-color:#eceff0;border:1px solid #d2dde1;border-radius:0!important;color:#183440;font-size:13px}.btn.margin-left{margin-left:10px}.btn i{margin-right:5px}.btn i.icon-only{margin-right:0}.btn:focus,.btn:hover{background-color:#f7f9f9;border:1px solid #d2dde1}.btn.btn-primary{background-color:#183440;border:1px solid #183440;color:#fff;font-weight:700}.btn.btn-primary:focus,.btn.btn-primary:hover{background-color:#265265;border:1px solid #183440}.btn.btn-cta{color:#fff;font-weight:700;background-color:#36ab70;border:1px solid #36ab70}.btn.btn-cta:focus,.btn.btn-cta:hover{background-color:#3cbe7d;border:1px solid #3cbe7d}input,textarea{box-shadow:none!important;font-size:12px;border-color:#d2dde1!important}input:focus,textarea:focus{box-shadow:none!important;border:1px solid #d2dde1!important;border-bottom:1px solid #36ab70!important}textarea{resize:vertical}.add-dataset .identifier{padding:20px 0 40px}.add-dataset .alert{margin:20px}.add-dataset h3{margin-bottom:40px!important;display:block!important;text-align:center!important}.add-dataset .nav-tabs{margin:20px 20px 0}.add-dataset .tab-content{margin:0 20px 20px;background-color:#fff;display:block}.add-dataset .panel.dataset-parameters{margin-bottom:0;margin-top:-1px;border:0;border-left:1px solid #dbe4e7!important;border-right:1px solid #dbe4e7!important;box-shadow:none}.add-dataset .panel.dataset-parameters:last-child{margin-left:-1px}.form-control,.input-group-addon{font-size:12px;padding:6px 8px}.input-group-addon{background:#f3f7f8;color:#a3b3ba;border:1px solid #dbe4e7}.input-group-btn:last-child .btn{border-left:0 none}.input-medium{max-width:150px}a{color:#183440}a:focus,a:hover{text-decoration:none;color:#36ab70}h4>small{margin-left:.5em;font-size:12px}.well{border:1px solid #dbe4e7;background:#fff;box-shadow:none}footer{background-color:#fff;color:#a3b3ba;border-top:1px solid #d2dde1;line-height:34px;font-size:10px}.push,footer{height:35px;width:100%}.row{margin:0}.tab-content{background-color:#fff}.panel{border-color:#dbe4e7!important}.panel .row>div{padding:0}.panel.dataset-parameters{padding:10px 30px}.panel.users-information{padding:10px 30px;margin-bottom:0}.panel.collection:hover{background-color:#f3f7f8!important}.panel hr{margin-top:5px;border-color:#dbe4e7}.panel .panel-body{padding:12px 8px}.panel.dataset{clear:both;box-shadow:none!important;cursor:pointer;margin:-1px 0 0;font-size:12px}.panel.dataset:last-child{margin-bottom:20px}.panel.dataset.dataset-link .icon{line-height:18px}.panel.dataset.dataset-link h4{margin-bottom:0}.panel.dataset.dataset-link .panel-body{padding:7px 0 7px 7px}.panel.dataset.button-row .icon{line-height:24px}.panel.dataset.button-row h4{line-height:22px}.panel.dataset.button-row .panel-body{padding-bottom:0;line-height:24px}.panel.dataset.button-row .btn{height:25px;font-size:13px;padding:2px 10px;margin:0 -1px 0 0}.panel.dataset.button-row .btn:last-child{margin-right:0}.panel.dataset a:hover{color:inherit}.panel.dataset:hover{color:#183440;background-color:#f3f7f8}.panel.dataset h4{margin-top:0;margin-bottom:5px;font-size:14px;font-weight:700}.panel.dataset .icon{width:5%;height:100%;float:left;line-height:36px;text-align:center;margin-left:-15px}.panel.dataset .icon+div{width:95%;display:inline-block}.empty{margin-bottom:20px}.table,.table td{border-color:#dbe4e7!important}.table thead>tr>th{border-bottom:0 none}.table tbody tr:hover td{background-color:#f3f7f8!important}.table.triples{border:1px solid}.scroll-horizontal{border:1px solid #dbe4e7!important;overflow-x:auto;margin-bottom:15px}.scroll-horizontal .table{border:0!important;margin-bottom:0}.note{color:#a3b3ba}.map-container{width:100%;position:absolute;top:40px;bottom:35px}.map-container iframe{width:100%;height:100%;border:0}#geojson-map{margin-top:20px;width:100%;height:200px;min-height:200px;background:#ddd}@media (min-height:500px){#geojson-map{height:300px}}.modal .form-group:last-child{margin-bottom:0}.modal h4{font-size:16px}.modal .modal-footer{margin-top:0}.modal-backdrop{background:rgba(0,0,0,.3)}.modal-content{box-shadow:none!important}.hover-help{color:#a3b3ba}.edit-permissions{margin-bottom:14px!important}.permissions{margin-bottom:15px}.permissions>div>form>div{margin-bottom:10px}.permissions label{margin-left:5px;font-weight:400;margin-right:20px}.alert{border:0}.alert i{margin-right:5px;vertical-align:middle}.alert i.fa-2x{margin-top:-1px;margin-right:9px}.alert.alert-danger{background-color:#e74c3c;color:#fff}.introjs i{margin-bottom:20px}button.close{text-shadow:none;color:#fff!important;opacity:.8;margin-top:-3px;font-weight:400}.list-group{font-size:12px}.list-group h5{font-size:13px;font-weight:700;margin-bottom:8px}.list-group .list-group-item{border-color:#d2dde1}.help-block{color:#a3b3ba}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background:#f3f7f8;color:#a3b3ba}.formats .btn{font-size:10px;font-weight:700}.no-padding{padding:0}@media (max-width:768px){body{padding-top:0}.navbar{position:relative;height:auto;padding:0}.navbar .nav{margin:40px 0 0}.navbar .nav a{border-radius:0}.navbar .search{height:auto}.wrapper{padding:55px 0 0;margin-top:-41px}.panel.dataset .icon{width:15%;line-height:20px}.panel.dataset .icon+div{width:85%}}div.leaflet-container{min-height:450px}ul.nav-tabs+div.panel{margin-top:-1px}.nav-tabs li>a:hover{background-color:transparent!important}.nav-tabs li.active>a:hover{background-color:#fff!important}@media (max-width:500px){.navbar .search{width:80%}.navbar .search input{width:100%}}.lang-selector>a.active{font-weight:700}.lang-selector>a:after{content:'|';color:#CCC;margin:0 2px 0 4px}.lang-selector>a:last-child:after{margin:0;content:''}.profile-selector{float:right;margin-top:10px;line-height:20px}.profile{margin-left:15px}.geodcat-enabled .required .help-block::before{content:attr(requirement)": ";margin-left:2px;color:red}.geodcat-enabled .recommended .help-block::before{content:attr(requirement)": ";margin-left:2px;font-weight:700}.select-attribution{width:calc(100% - 150px)}.btn-attribution{float:right;width:130px}input[type=file]{display:block;border:none;margin-top:15px;padding:0}.nofloat{float:none} \ No newline at end of file diff --git a/public/js/admin.min.js b/public/js/admin.min.js index 5afe69fa..b09617bc 100755 --- a/public/js/admin.min.js +++ b/public/js/admin.min.js @@ -1 +1 @@ -function buildURI(a){var b=$("#input_identifier_display").data("url"),c=$("#input_collection").val()+"/"+$("#input_resource_name").val();$("#input_identifier_display").html(b+c),$("#input_identifier").val(c)}!function(a,b){"object"==typeof exports?b(exports):"function"==typeof define&&define.amd?define(["exports"],b):b(a)}(this,function(a){function b(a){this._targetElement=a,this._options={nextLabel:"Next →",prevLabel:"← Back",skipLabel:"Skip",doneLabel:"Done",tooltipPosition:"bottom",tooltipClass:"",exitOnEsc:!0,exitOnOverlayClick:!0,showStepNumbers:!0,keyboardNavigation:!0,showButtons:!0,showBullets:!0}}function c(a){var b=[],c=this;if(this._options.steps)for(var d=[],h=0,j=this._options.steps.length;h0&&(b[o-1]={element:m,intro:m.getAttribute("data-intro"),step:parseInt(m.getAttribute("data-step"),10),tooltipClass:m.getAttribute("data-tooltipClass"),position:m.getAttribute("data-position")||this._options.tooltipPosition})}for(var p=0,h=0,l=d.length;h0)for(var f=e.length-1;f>=0;f--)e[f].className=e[f].className.replace(/introjs-fixParent/g,"").replace(/^\s+|\s+$/g,"");window.removeEventListener?window.removeEventListener("keydown",this._onKeyDown,!0):document.detachEvent&&document.detachEvent("onkeydown",this._onKeyDown),this._currentStep=void 0}function h(a,b,c){if(b.style.top=null,b.style.right=null,b.style.bottom=null,b.style.left=null,this._introItems[this._currentStep]){var d="",e=this._introItems[this._currentStep];d="string"==typeof e.tooltipClass?e.tooltipClass:this._options.tooltipClass,b.className=("introjs-tooltip "+d).replace(/^\s+|\s+$/g,"");var d=this._options.tooltipClass,f=this._introItems[this._currentStep].position;switch(f){case"top":b.style.left="15px",b.style.top="-"+(o(b).height+10)+"px",c.className="introjs-arrow bottom";break;case"right":b.style.left=o(a).width+20+"px",c.className="introjs-arrow left";break;case"left":b.style.top="15px",b.style.right=o(a).width+20+"px",c.className="introjs-arrow right";break;case"bottom":default:b.style.bottom="-"+(o(b).height+10)+"px",c.className="introjs-arrow top"}}}function i(a){if(a){if(!this._introItems[this._currentStep])return;var b=o(this._introItems[this._currentStep].element);a.setAttribute("style","width: "+(b.width+10)+"px; height:"+(b.height+10)+"px; top:"+(b.top-5)+"px;left: "+(b.left-5)+"px;")}}function j(a){"undefined"!=typeof this._introChangeCallback&&this._introChangeCallback.call(this,a.element);var b=this,c=document.querySelector(".introjs-helperLayer");o(a.element);if(null!=c){var d=c.querySelector(".introjs-helperNumberLayer"),j=c.querySelector(".introjs-tooltiptext"),n=c.querySelector(".introjs-arrow"),p=c.querySelector(".introjs-tooltip"),q=c.querySelector(".introjs-skipbutton"),r=c.querySelector(".introjs-prevbutton"),s=c.querySelector(".introjs-nextbutton");p.style.opacity=0,i.call(b,c);var t=document.querySelectorAll(".introjs-fixParent");if(t&&t.length>0)for(var u=t.length-1;u>=0;u--)t[u].className=t[u].className.replace(/introjs-fixParent/g,"").replace(/^\s+|\s+$/g,"");var v=document.querySelector(".introjs-showElement");v.className=v.className.replace(/introjs-[a-zA-Z]+/g,"").replace(/^\s+|\s+$/g,""),b._lastShowElementTimer&&clearTimeout(b._lastShowElementTimer),b._lastShowElementTimer=setTimeout(function(){null!=d&&(d.innerHTML=a.step),j.innerHTML=a.intro,h.call(b,a.element,p,n),c.querySelector(".introjs-bullets li > a.active").className="",c.querySelector('.introjs-bullets li > a[data-stepnumber="'+a.step+'"]').className="active",p.style.opacity=1},350)}else{var w=document.createElement("div"),x=document.createElement("div"),y=document.createElement("div"),z=document.createElement("div"),A=document.createElement("div"),B=document.createElement("div");w.className="introjs-helperLayer",i.call(b,w),this._targetElement.appendChild(w),x.className="introjs-arrow",z.className="introjs-tooltiptext",z.innerHTML=a.intro,A.className="introjs-bullets",this._options.showBullets===!1&&(A.style.display="none");for(var C=document.createElement("ul"),u=0,D=this._introItems.length;u1&&(B.appendChild(r),B.appendChild(s)),y.appendChild(B),h.call(b,a.element,y,x)}0==this._currentStep?(r.className="introjs-button introjs-prevbutton introjs-disabled",s.className="introjs-button introjs-nextbutton",q.innerHTML=this._options.skipLabel):this._introItems.length-1==this._currentStep?(q.innerHTML=this._options.doneLabel,r.className="introjs-button introjs-prevbutton",s.className="introjs-button introjs-nextbutton introjs-disabled"):(r.className="introjs-button introjs-prevbutton",s.className="introjs-button introjs-nextbutton",q.innerHTML=this._options.skipLabel),s.focus(),a.element.className+=" introjs-showElement";var H=k(a.element,"position");"absolute"!==H&&"relative"!==H&&(a.element.className+=" introjs-relativePosition");for(var I=a.element.parentNode;null!=I&&"body"!==I.tagName.toLowerCase();){var J=k(I,"z-index");/[0-9]+/.test(J)&&(I.className+=" introjs-fixParent"),I=I.parentNode}if(!m(a.element)){var K=a.element.getBoundingClientRect(),L=l().height,M=K.bottom-(K.bottom-K.top),N=K.bottom-L;M<0||a.element.clientHeight>L?window.scrollBy(0,M-30):window.scrollBy(0,N+100)}}function k(a,b){var c="";return a.currentStyle?c=a.currentStyle[b]:document.defaultView&&document.defaultView.getComputedStyle&&(c=document.defaultView.getComputedStyle(a,null).getPropertyValue(b)),c&&c.toLowerCase?c.toLowerCase():c}function l(){if(void 0!=window.innerWidth)return{width:window.innerWidth,height:window.innerHeight};var a=document.documentElement;return{width:a.clientWidth,height:a.clientHeight}}function m(a){var b=a.getBoundingClientRect();return b.top>=0&&b.left>=0&&b.bottom+80<=window.innerHeight&&b.right<=window.innerWidth}function n(a){var b=document.createElement("div"),c="",d=this;if(b.className="introjs-overlay","body"===a.tagName.toLowerCase())c+="top: 0;bottom: 0; left: 0;right: 0;position: fixed;",b.setAttribute("style",c);else{var e=o(a);e&&(c+="width: "+e.width+"px; height:"+e.height+"px; top:"+e.top+"px;left: "+e.left+"px;",b.setAttribute("style",c))}return a.appendChild(b),b.onclick=function(){1==d._options.exitOnOverlayClick&&(g.call(d,a),void 0!=d._introExitCallback&&d._introExitCallback.call(d))},setTimeout(function(){c+="opacity: .8;",b.setAttribute("style",c)},10),!0}function o(a){var b={};b.width=a.offsetWidth,b.height=a.offsetHeight;for(var c=0,d=0;a&&!isNaN(a.offsetLeft)&&!isNaN(a.offsetTop);)c+=a.offsetLeft,d+=a.offsetTop,a=a.offsetParent;return b.top=d,b.left=c,b}function p(a,b){var c={};for(var d in a)c[d]=a[d];for(var d in b)c[d]=b[d];return c}var q="0.6.0",r=function(a){if("object"==typeof a)return new b(a);if("string"==typeof a){var c=document.querySelector(a);if(c)return new b(c);throw new Error("There is no element with given selector.")}return new b(document.body)};return r.version=q,r.fn=b.prototype={clone:function(){return new b(this)},setOption:function(a,b){return this._options[a]=b,this},setOptions:function(a){return this._options=p(this._options,a),this},start:function(){return c.call(this,this._targetElement),this},goToStep:function(a){return d.call(this,a),this},exit:function(){g.call(this,this._targetElement)},refresh:function(){return i.call(this,document.querySelector(".introjs-helperLayer")),this},onbeforechange:function(a){if("function"!=typeof a)throw new Error("Provided callback for onbeforechange was not a function");return this._introBeforeChangeCallback=a,this},onchange:function(a){if("function"!=typeof a)throw new Error("Provided callback for onchange was not a function.");return this._introChangeCallback=a,this},oncomplete:function(a){if("function"!=typeof a)throw new Error("Provided callback for oncomplete was not a function.");return this._introCompleteCallback=a,this},onexit:function(a){if("function"!=typeof a)throw new Error("Provided callback for onexit was not a function.");return this._introExitCallback=a,this}},a.introJs=r,r}),$(".delete").on("click",function(){return window.confirm("Are you sure you want to delete this?")}),$(".btn.edit-user").on("click",function(a){a.preventDefault();var b=$(this).parents(".dataset"),c=b.data("id"),d=b.data("name"),e=b.data("group"),f=$("#editUser");$("#inputEditId").val(c),$("#inputEditName").prop("disabled",!1).val(d),$("#inputEditGroup").prop("disabled",!1),$('#inputEditGroup option[value="'+e+'"]').prop("selected",!0),c<3&&($("#inputEditName").prop("disabled",!0),$("#inputEditGroup").prop("disabled",!0),c<2&&$("#inputEditPassword").prop("disabled",!0)),f.modal("show")}),$(".btn.edit-group").on("click",function(a){a.preventDefault();var b=$(this).parents(".dataset"),c=b.data("id"),d=b.data("name"),e=$("#editGroup");$("#inputEditId").val(c),$("#inputEditName").val(d),e.modal("show")}),$(".permissions").hide(),$(".edit-permissions").on("click",function(a){$(this).next(".permissions").toggle()}),$(".hover-help").tooltip(),$(".hover-help").on("click",function(a){a.preventDefault()}),$("form.add-dataset .identifier #input_collection, form.add-dataset .identifier #input_resource_name").on({keydown:buildURI,keyup:buildURI}),$(".btn-attribution").on("click",function(a){var b=$(a.target).parent().parent().parent(),c=JSON.parse($(a.target).next().val()),d=$("#person").html().replace("#ROLE#",c.name).replace("#DESC#",c.desc).replace("#OPTION#",c.option);b.append(d)}),$(".attribution-person .btn-delete").on("click",function(a){$(this).closest(".attribution-person").remove()}),$("input[name=publisher_uri], input[name=publisher_uri]").on("blur",function(a){var b=$(this).val();b&&"http:/"!==b.slice(0,6)&&"https:"!==b.slice(0,6)&&$(this).val("http://"+b)}),$(".btn-add-dataset").on("click",function(a){a.preventDefault();var b=$("form.add-dataset"),c=$(".tab-pane.active"),d=(c.data("mediatype"),{}),e=$("#input_identifier",b).val();if($("input, textarea, select",c).each(function(){$(this).attr("name")&&("checkbox"==$(this).attr("type")?d[$(this).attr("name")]=$(this).prop("checked")?1:0:"profile"==d[$(this).attr("name")]?$(this).prop("checked")&&(d[$(this).attr("name")]=$(this).val()):d[$(this).attr("name")]=$(this).val())}),d.to_be_indexed=0,c.find(".indexed").is(":checked")&&(d.to_be_indexed=1),$(".attribution-person",c).each(function(){d.attribution||(d.attribution=[]);var a=$(this).find(".name").val(),b=$(this).find(".email").val();(a||b)&&d.attribution.push({role:$(this).data("role"),name:a,email:b})}),0==c.find("#fileupload").length||0==c.find("#fileupload")[0].files.length)$.ajax({url:baseURL+"api/definitions/"+e,data:JSON.stringify(d),method:"PUT",headers:{Accept:"application/json","Content-Type":"application/tdt.definition+json",Authorization:authHeader},success:function(a){window.location=baseURL+"api/admin/datasets"},error:function(a){if(405!=a.status){var b=JSON.parse(a.responseText);b.error&&b.error.message&&($(".error .text",c).html(b.error.message),$(".error",c).removeClass("hide").show().focus())}else window.location=baseURL+"api/admin/datasets"}});else{var f=c.find("input[type=file]")[0].files[0],g=new FormData;g.append("fileupload",f),$.ajax({async:!0,type:"POST",contentType:!1,url:baseURL+"upload-file",data:g,processData:!1,success:function(a){d.fileupload=a,$.ajax({url:baseURL+"api/definitions/"+e,data:JSON.stringify(d),method:"PUT",headers:{Accept:"application/json","Content-Type":"application/tdt.definition+json",Authorization:authHeader},success:function(a){window.location=baseURL+"api/admin/datasets"},error:function(a){if(405!=a.status){var b=JSON.parse(a.responseText);b.error&&b.error.message&&($(".error .text",c).html(b.error.message),$(".error",c).removeClass("hide").show().focus())}else window.location=baseURL+"api/admin/datasets"}})},timeout:1e4})}}),$(".btn-edit-dataset").on("click",function(a){a.preventDefault();var b=$("form.edit-dataset"),c=(b.data("mediatype"),b.data("identifier")),d={};if($("input, textarea, select",b).each(function(){$(this).attr("name")&&("checkbox"==$(this).attr("type")?d[$(this).attr("name")]=$(this).prop("checked")?1:0:"profile"==$(this).attr("name")?$(this).prop("checked")&&(d[$(this).attr("name")]=$(this).val()):d[$(this).attr("name")]=$(this).val())}),$(".attribution-person").each(function(){d.attribution||(d.attribution=[]);var a=$(this).find(".name").val(),b=$(this).find(".email").val();(a||b)&&d.attribution.push({role:$(this).data("role"),name:a,email:b})}),0==b.find("#fileupload").length||0==b.find("#fileupload")[0].files.length)$.ajax({url:baseURL+"api/definitions/"+c,data:JSON.stringify(d),method:"POST",headers:{Accept:"application/json",Authorization:authHeader},success:function(a){window.location=baseURL+"api/admin/datasets"},error:function(a){if(405!=a.status){var b=JSON.parse(a.responseText);b.error&&b.error.message&&($(".error .text").html(b.error.message),$(".error").removeClass("hide").show().focus())}else window.location=baseURL+"api/admin/datasets"}});else{var e=b.find("input[type=file]")[0].files[0],f=new FormData;f.append("fileupload",e),$.ajax({async:!0,type:"POST",contentType:!1,url:baseURL+"upload-file",data:f,processData:!1,success:function(a){d.fileupload=a,$.ajax({url:baseURL+"api/definitions/"+c,data:JSON.stringify(d),method:"POST",headers:{Accept:"application/json",Authorization:authHeader},success:function(a){window.location=baseURL+"api/admin/datasets"},error:function(a){if(405!=a.status){var b=JSON.parse(a.responseText);b.error&&b.error.message&&($(".error .text").html(b.error.message),$(".error").removeClass("hide").show().focus())}else window.location=baseURL+"api/admin/datasets"}})},timeout:1e4})}});var mapScriptLoaded=!1;$(".location-picker").one("click",function(a){$(this).height("300px").removeClass("btn").removeClass("btn-default");var b,c,d,e=$(a.target).closest(".panel"),f=$("#"+$(this).data("id"),e),g=function(){d=new google.maps.Map($(".location-picker",e).get(0),{mapTypeControl:!1,streetViewControl:!1,center:{lat:50,lng:10},zoom:2});var a;try{var g=JSON.parse(JSON.parse(f.val()));a={north:g.coordinates[0][0][1],south:g.coordinates[0][2][1],east:g.coordinates[0][2][0],west:g.coordinates[0][0][0]}}catch(b){a={north:70,south:35,east:40,west:-10}}c=new google.maps.InfoWindow,b=new google.maps.Rectangle({bounds:a,draggable:!0,editable:!0}),b.addListener("bounds_changed",h),h(),b.setMap(d)},h=function(a){var e=b.getBounds().getNorthEast(),g=b.getBounds().getSouthWest(),h="North-east corner: "+e.lat()+", "+e.lng()+"
South-west corner: "+g.lat()+", "+g.lng();f.val(JSON.stringify({type:"Polygon",coordinates:[[[g.lng(),e.lat()],[e.lng(),e.lat()],[e.lng(),g.lat()],[g.lng(),g.lat()],[g.lng(),e.lat()]]]})),c.setContent(h),c.setPosition(e),c.open(d)};if(mapScriptLoaded)g();else{var i=document.createElement("script");i.onload=g,i.setAttribute("type","text/javascript"),i.setAttribute("src","https://maps.googleapis.com/maps/api/js"),document.head.appendChild(i),mapScriptLoaded=!0}});var selectProfile=function(a,b){"dcat"==a?($(".profile-geodcat",b).hide(),$(".profile-dcat",b).show(),b.removeClass("geodcat-enabled")):($(".profile-dcat",b).hide(),$(".profile-geodcat",b).show(),b.addClass("geodcat-enabled"),$(".location-picker",b).click())};selectProfile($(".profile-selector input[name=profile]:checked").val(),$(".panel-dcat")),$(".profile-selector").on("change",function(a){var b=$(a.target).closest(".panel");selectProfile($(a.target).val(),b)}),$(".introjs").on("click",function(a){a.preventDefault(),introJs().start()}); \ No newline at end of file +function buildURI(a){var b=$("#input_identifier_display").data("url"),c=$("#input_collection").val()+"/"+$("#input_resource_name").val();$("#input_identifier_display").html(b+c),$("#input_identifier").val(c)}!function(a,b){"object"==typeof exports?b(exports):"function"==typeof define&&define.amd?define(["exports"],b):b(a)}(this,function(a){function b(a){this._targetElement=a,this._options={nextLabel:"Next →",prevLabel:"← Back",skipLabel:"Skip",doneLabel:"Done",tooltipPosition:"bottom",tooltipClass:"",exitOnEsc:!0,exitOnOverlayClick:!0,showStepNumbers:!0,keyboardNavigation:!0,showButtons:!0,showBullets:!0}}function c(a){var b=[],c=this;if(this._options.steps)for(var d=[],h=0,j=this._options.steps.length;j>h;h++){var k=this._options.steps[h];k.step=h+1,"string"==typeof k.element&&(k.element=document.querySelector(k.element)),b.push(k)}else{var d=a.querySelectorAll("*[data-intro]");if(d.length<1)return!1;for(var h=0,l=d.length;l>h;h++){var m=d[h],o=parseInt(m.getAttribute("data-step"),10);o>0&&(b[o-1]={element:m,intro:m.getAttribute("data-intro"),step:parseInt(m.getAttribute("data-step"),10),tooltipClass:m.getAttribute("data-tooltipClass"),position:m.getAttribute("data-position")||this._options.tooltipPosition})}for(var p=0,h=0,l=d.length;l>h;h++){var m=d[h];if(null==m.getAttribute("data-step")){for(;;){if("undefined"==typeof b[p])break;p++}b[p]={element:m,intro:m.getAttribute("data-intro"),step:p+1,tooltipClass:m.getAttribute("data-tooltipClass"),position:m.getAttribute("data-position")||this._options.tooltipPosition}}}}for(var q=[],r=0;r0)for(var f=e.length-1;f>=0;f--)e[f].className=e[f].className.replace(/introjs-fixParent/g,"").replace(/^\s+|\s+$/g,"");window.removeEventListener?window.removeEventListener("keydown",this._onKeyDown,!0):document.detachEvent&&document.detachEvent("onkeydown",this._onKeyDown),this._currentStep=void 0}function h(a,b,c){if(b.style.top=null,b.style.right=null,b.style.bottom=null,b.style.left=null,this._introItems[this._currentStep]){var d="",e=this._introItems[this._currentStep];d="string"==typeof e.tooltipClass?e.tooltipClass:this._options.tooltipClass,b.className=("introjs-tooltip "+d).replace(/^\s+|\s+$/g,"");var d=this._options.tooltipClass,f=this._introItems[this._currentStep].position;switch(f){case"top":b.style.left="15px",b.style.top="-"+(o(b).height+10)+"px",c.className="introjs-arrow bottom";break;case"right":b.style.left=o(a).width+20+"px",c.className="introjs-arrow left";break;case"left":b.style.top="15px",b.style.right=o(a).width+20+"px",c.className="introjs-arrow right";break;case"bottom":default:b.style.bottom="-"+(o(b).height+10)+"px",c.className="introjs-arrow top"}}}function i(a){if(a){if(!this._introItems[this._currentStep])return;var b=o(this._introItems[this._currentStep].element);a.setAttribute("style","width: "+(b.width+10)+"px; height:"+(b.height+10)+"px; top:"+(b.top-5)+"px;left: "+(b.left-5)+"px;")}}function j(a){"undefined"!=typeof this._introChangeCallback&&this._introChangeCallback.call(this,a.element);var b=this,c=document.querySelector(".introjs-helperLayer");o(a.element);if(null!=c){var d=c.querySelector(".introjs-helperNumberLayer"),j=c.querySelector(".introjs-tooltiptext"),n=c.querySelector(".introjs-arrow"),p=c.querySelector(".introjs-tooltip"),q=c.querySelector(".introjs-skipbutton"),r=c.querySelector(".introjs-prevbutton"),s=c.querySelector(".introjs-nextbutton");p.style.opacity=0,i.call(b,c);var t=document.querySelectorAll(".introjs-fixParent");if(t&&t.length>0)for(var u=t.length-1;u>=0;u--)t[u].className=t[u].className.replace(/introjs-fixParent/g,"").replace(/^\s+|\s+$/g,"");var v=document.querySelector(".introjs-showElement");v.className=v.className.replace(/introjs-[a-zA-Z]+/g,"").replace(/^\s+|\s+$/g,""),b._lastShowElementTimer&&clearTimeout(b._lastShowElementTimer),b._lastShowElementTimer=setTimeout(function(){null!=d&&(d.innerHTML=a.step),j.innerHTML=a.intro,h.call(b,a.element,p,n),c.querySelector(".introjs-bullets li > a.active").className="",c.querySelector('.introjs-bullets li > a[data-stepnumber="'+a.step+'"]').className="active",p.style.opacity=1},350)}else{var w=document.createElement("div"),x=document.createElement("div"),y=document.createElement("div"),z=document.createElement("div"),A=document.createElement("div"),B=document.createElement("div");w.className="introjs-helperLayer",i.call(b,w),this._targetElement.appendChild(w),x.className="introjs-arrow",z.className="introjs-tooltiptext",z.innerHTML=a.intro,A.className="introjs-bullets",this._options.showBullets===!1&&(A.style.display="none");for(var C=document.createElement("ul"),u=0,D=this._introItems.length;D>u;u++){var E=document.createElement("li"),F=document.createElement("a");F.onclick=function(){b.goToStep(this.getAttribute("data-stepnumber"))},0===u&&(F.className="active"),F.href="javascript:void(0);",F.innerHTML=" ",F.setAttribute("data-stepnumber",this._introItems[u].step),E.appendChild(F),C.appendChild(E)}if(A.appendChild(C),B.className="introjs-tooltipbuttons",this._options.showButtons===!1&&(B.style.display="none"),y.className="introjs-tooltip",y.appendChild(z),y.appendChild(A),1==this._options.showStepNumbers){var G=document.createElement("span");G.className="introjs-helperNumberLayer",G.innerHTML=a.step,w.appendChild(G)}y.appendChild(x),w.appendChild(y);var s=document.createElement("a");s.onclick=function(){b._introItems.length-1!=b._currentStep&&e.call(b)},s.href="javascript:void(0);",s.innerHTML=this._options.nextLabel;var r=document.createElement("a");r.onclick=function(){0!=b._currentStep&&f.call(b)},r.href="javascript:void(0);",r.innerHTML=this._options.prevLabel;var q=document.createElement("a");q.className="introjs-button introjs-skipbutton",q.href="javascript:void(0);",q.innerHTML=this._options.skipLabel,q.onclick=function(){b._introItems.length-1==b._currentStep&&"function"==typeof b._introCompleteCallback&&b._introCompleteCallback.call(b),b._introItems.length-1!=b._currentStep&&"function"==typeof b._introExitCallback&&b._introExitCallback.call(b),g.call(b,b._targetElement)},B.appendChild(q),this._introItems.length>1&&(B.appendChild(r),B.appendChild(s)),y.appendChild(B),h.call(b,a.element,y,x)}0==this._currentStep?(r.className="introjs-button introjs-prevbutton introjs-disabled",s.className="introjs-button introjs-nextbutton",q.innerHTML=this._options.skipLabel):this._introItems.length-1==this._currentStep?(q.innerHTML=this._options.doneLabel,r.className="introjs-button introjs-prevbutton",s.className="introjs-button introjs-nextbutton introjs-disabled"):(r.className="introjs-button introjs-prevbutton",s.className="introjs-button introjs-nextbutton",q.innerHTML=this._options.skipLabel),s.focus(),a.element.className+=" introjs-showElement";var H=k(a.element,"position");"absolute"!==H&&"relative"!==H&&(a.element.className+=" introjs-relativePosition");for(var I=a.element.parentNode;null!=I&&"body"!==I.tagName.toLowerCase();){var J=k(I,"z-index");/[0-9]+/.test(J)&&(I.className+=" introjs-fixParent"),I=I.parentNode}if(!m(a.element)){var K=a.element.getBoundingClientRect(),L=l().height,M=K.bottom-(K.bottom-K.top),N=K.bottom-L;0>M||a.element.clientHeight>L?window.scrollBy(0,M-30):window.scrollBy(0,N+100)}}function k(a,b){var c="";return a.currentStyle?c=a.currentStyle[b]:document.defaultView&&document.defaultView.getComputedStyle&&(c=document.defaultView.getComputedStyle(a,null).getPropertyValue(b)),c&&c.toLowerCase?c.toLowerCase():c}function l(){if(void 0!=window.innerWidth)return{width:window.innerWidth,height:window.innerHeight};var a=document.documentElement;return{width:a.clientWidth,height:a.clientHeight}}function m(a){var b=a.getBoundingClientRect();return b.top>=0&&b.left>=0&&b.bottom+80<=window.innerHeight&&b.right<=window.innerWidth}function n(a){var b=document.createElement("div"),c="",d=this;if(b.className="introjs-overlay","body"===a.tagName.toLowerCase())c+="top: 0;bottom: 0; left: 0;right: 0;position: fixed;",b.setAttribute("style",c);else{var e=o(a);e&&(c+="width: "+e.width+"px; height:"+e.height+"px; top:"+e.top+"px;left: "+e.left+"px;",b.setAttribute("style",c))}return a.appendChild(b),b.onclick=function(){1==d._options.exitOnOverlayClick&&(g.call(d,a),void 0!=d._introExitCallback&&d._introExitCallback.call(d))},setTimeout(function(){c+="opacity: .8;",b.setAttribute("style",c)},10),!0}function o(a){var b={};b.width=a.offsetWidth,b.height=a.offsetHeight;for(var c=0,d=0;a&&!isNaN(a.offsetLeft)&&!isNaN(a.offsetTop);)c+=a.offsetLeft,d+=a.offsetTop,a=a.offsetParent;return b.top=d,b.left=c,b}function p(a,b){var c={};for(var d in a)c[d]=a[d];for(var d in b)c[d]=b[d];return c}var q="0.6.0",r=function(a){if("object"==typeof a)return new b(a);if("string"==typeof a){var c=document.querySelector(a);if(c)return new b(c);throw new Error("There is no element with given selector.")}return new b(document.body)};return r.version=q,r.fn=b.prototype={clone:function(){return new b(this)},setOption:function(a,b){return this._options[a]=b,this},setOptions:function(a){return this._options=p(this._options,a),this},start:function(){return c.call(this,this._targetElement),this},goToStep:function(a){return d.call(this,a),this},exit:function(){g.call(this,this._targetElement)},refresh:function(){return i.call(this,document.querySelector(".introjs-helperLayer")),this},onbeforechange:function(a){if("function"!=typeof a)throw new Error("Provided callback for onbeforechange was not a function");return this._introBeforeChangeCallback=a,this},onchange:function(a){if("function"!=typeof a)throw new Error("Provided callback for onchange was not a function.");return this._introChangeCallback=a,this},oncomplete:function(a){if("function"!=typeof a)throw new Error("Provided callback for oncomplete was not a function.");return this._introCompleteCallback=a,this},onexit:function(a){if("function"!=typeof a)throw new Error("Provided callback for onexit was not a function.");return this._introExitCallback=a,this}},a.introJs=r,r}),$(".delete").on("click",function(){return window.confirm("Are you sure you want to delete this?")}),$(".btn.edit-user").on("click",function(a){a.preventDefault();var b=$(this).parents(".dataset"),c=b.data("id"),d=b.data("name"),e=b.data("group"),f=$("#editUser");$("#inputEditId").val(c),$("#inputEditName").prop("disabled",!1).val(d),$("#inputEditGroup").prop("disabled",!1),$('#inputEditGroup option[value="'+e+'"]').prop("selected",!0),3>c&&($("#inputEditName").prop("disabled",!0),$("#inputEditGroup").prop("disabled",!0),2>c&&$("#inputEditPassword").prop("disabled",!0)),f.modal("show")}),$(".btn.edit-group").on("click",function(a){a.preventDefault();var b=$(this).parents(".dataset"),c=b.data("id"),d=b.data("name"),e=$("#editGroup");$("#inputEditId").val(c),$("#inputEditName").val(d),e.modal("show")}),$(".permissions").hide(),$(".edit-permissions").on("click",function(a){$(this).next(".permissions").toggle()}),$(".hover-help").tooltip(),$(".hover-help").on("click",function(a){a.preventDefault()}),$("form.add-dataset .identifier #input_collection, form.add-dataset .identifier #input_resource_name").on({keydown:buildURI,keyup:buildURI}),$(".btn-attribution").on("click",function(a){var b=$(a.target).parent().parent().parent(),c=JSON.parse($(a.target).next().val()),d=$("#person").html().replace("#ROLE#",c.name).replace("#DESC#",c.desc).replace("#OPTION#",c.option);b.append(d)}),$(".attribution-person .btn-delete").on("click",function(a){$(this).closest(".attribution-person").remove()}),$("input[name=publisher_uri], input[name=publisher_uri]").on("blur",function(a){var b=$(this).val();b&&"http:/"!==b.slice(0,6)&&"https:"!==b.slice(0,6)&&$(this).val("http://"+b)}),$(".btn-add-dataset").on("click",function(a){a.preventDefault();var b=$("form.add-dataset"),c=$(".tab-pane.active"),d=(c.data("mediatype"),{}),e=$("#input_identifier",b).val();if($("input, textarea, select",c).each(function(){$(this).attr("name")&&("checkbox"==$(this).attr("type")?d[$(this).attr("name")]=$(this).prop("checked")?1:0:"profile"==d[$(this).attr("name")]?$(this).prop("checked")&&(d[$(this).attr("name")]=$(this).val()):d[$(this).attr("name")]=$(this).val())}),d.to_be_indexed=0,c.find(".indexed").is(":checked")&&(d.to_be_indexed=1),$(".attribution-person",c).each(function(){d.attribution||(d.attribution=[]);var a=$(this).find(".name").val(),b=$(this).find(".email").val();(a||b)&&d.attribution.push({role:$(this).data("role"),name:a,email:b})}),0==c.find("#fileupload").length||0==c.find("#fileupload")[0].files.length)$.ajax({url:baseURL+"api/definitions/"+e,data:JSON.stringify(d),method:"PUT",headers:{Accept:"application/json","Content-Type":"application/tdt.definition+json",Authorization:authHeader},success:function(a){window.location=baseURL+"api/admin/datasets"},error:function(a){if(405!=a.status){var b=JSON.parse(a.responseText);b.error&&b.error.message&&($(".error .text",c).html(b.error.message),$(".error",c).removeClass("hide").show().focus())}else window.location=baseURL+"api/admin/datasets"}});else{var f=c.find("input[type=file]")[0].files[0],g=new FormData;g.append("fileupload",f),$.ajax({async:!0,type:"POST",contentType:!1,url:baseURL+"upload-file",data:g,processData:!1,success:function(a){d.fileupload=a,$.ajax({url:baseURL+"api/definitions/"+e,data:JSON.stringify(d),method:"PUT",headers:{Accept:"application/json","Content-Type":"application/tdt.definition+json",Authorization:authHeader},success:function(a){window.location=baseURL+"api/admin/datasets"},error:function(a){if(405!=a.status){var b=JSON.parse(a.responseText);b.error&&b.error.message&&($(".error .text",c).html(b.error.message),$(".error",c).removeClass("hide").show().focus())}else window.location=baseURL+"api/admin/datasets"}})},timeout:1e4})}}),$(".btn-edit-dataset").on("click",function(a){a.preventDefault();var b=$("form.edit-dataset"),c=(b.data("mediatype"),b.data("identifier")),d={};if($("input, textarea, select",b).each(function(){$(this).attr("name")&&("checkbox"==$(this).attr("type")?d[$(this).attr("name")]=$(this).prop("checked")?1:0:"profile"==$(this).attr("name")?$(this).prop("checked")&&(d[$(this).attr("name")]=$(this).val()):d[$(this).attr("name")]=$(this).val())}),$(".attribution-person").each(function(){d.attribution||(d.attribution=[]);var a=$(this).find(".name").val(),b=$(this).find(".email").val();(a||b)&&d.attribution.push({role:$(this).data("role"),name:a,email:b})}),0==b.find("#fileupload").length||0==b.find("#fileupload")[0].files.length)$.ajax({url:baseURL+"api/definitions/"+c,data:JSON.stringify(d),method:"POST",headers:{Accept:"application/json",Authorization:authHeader},success:function(a){window.location=baseURL+"api/admin/datasets"},error:function(a){if(405!=a.status){var b=JSON.parse(a.responseText);b.error&&b.error.message&&($(".error .text").html(b.error.message),$(".error").removeClass("hide").show().focus())}else window.location=baseURL+"api/admin/datasets"}});else{var e=b.find("input[type=file]")[0].files[0],f=new FormData;f.append("fileupload",e),$.ajax({async:!0,type:"POST",contentType:!1,url:baseURL+"upload-file",data:f,processData:!1,success:function(a){d.fileupload=a,$.ajax({url:baseURL+"api/definitions/"+c,data:JSON.stringify(d),method:"POST",headers:{Accept:"application/json",Authorization:authHeader},success:function(a){window.location=baseURL+"api/admin/datasets"},error:function(a){if(405!=a.status){var b=JSON.parse(a.responseText);b.error&&b.error.message&&($(".error .text").html(b.error.message),$(".error").removeClass("hide").show().focus())}else window.location=baseURL+"api/admin/datasets"}})},timeout:1e4})}});var mapScriptLoaded=!1;$(".location-picker").one("click",function(a){$(this).height("300px").removeClass("btn").removeClass("btn-default");var b,c,d,e=$(a.target).closest(".panel"),f=$("#"+$(this).data("id"),e),g=function(){d=new google.maps.Map($(".location-picker",e).get(0),{mapTypeControl:!1,streetViewControl:!1,center:{lat:50,lng:10},zoom:2});var a;try{var g=JSON.parse(JSON.parse(f.val()));a={north:g.coordinates[0][0][1],south:g.coordinates[0][2][1],east:g.coordinates[0][2][0],west:g.coordinates[0][0][0]}}catch(i){a={north:70,south:35,east:40,west:-10}}c=new google.maps.InfoWindow,b=new google.maps.Rectangle({bounds:a,draggable:!0,editable:!0}),b.addListener("bounds_changed",h),h(),b.setMap(d)},h=function(a){var e=b.getBounds().getNorthEast(),g=b.getBounds().getSouthWest(),h="North-east corner: "+e.lat()+", "+e.lng()+"
South-west corner: "+g.lat()+", "+g.lng();f.val(JSON.stringify({type:"Polygon",coordinates:[[[g.lng(),e.lat()],[e.lng(),e.lat()],[e.lng(),g.lat()],[g.lng(),g.lat()],[g.lng(),e.lat()]]]})),c.setContent(h),c.setPosition(e),c.open(d)};if(mapScriptLoaded)g();else{var i=document.createElement("script");i.onload=g,i.setAttribute("type","text/javascript"),i.setAttribute("src","https://maps.googleapis.com/maps/api/js"),document.head.appendChild(i),mapScriptLoaded=!0}});var selectProfile=function(a,b){"dcat"==a?($(".profile-geodcat",b).hide(),$(".profile-dcat",b).show(),b.removeClass("geodcat-enabled")):($(".profile-dcat",b).hide(),$(".profile-geodcat",b).show(),b.addClass("geodcat-enabled"),$(".location-picker",b).click())};selectProfile($(".profile-selector input[name=profile]:checked").val(),$(".panel-dcat")),$(".profile-selector").on("change",function(a){var b=$(a.target).closest(".panel");selectProfile($(a.target).val(),b)}),$(".introjs").on("click",function(a){a.preventDefault(),introJs().start()}); \ No newline at end of file diff --git a/public/js/datasets.min.js b/public/js/datasets.min.js index 73282492..11d52f5c 100644 --- a/public/js/datasets.min.js +++ b/public/js/datasets.min.js @@ -1,13 +1,8 @@ -!function(t){function e(i){if(n[i])return n[i].exports;var r=n[i]={exports:{},id:i,loaded:!1};return t[i].call(r.exports,r,r.exports,e),r.loaded=!0,r.exports}var n={};return e.m=t,e.c=n,e.p="/public/",e(0)}([function(t,e,n){t.exports=n(1)},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}var r=n(2),s=i(r),o=n(3),a=i(o),c=n(4),u=i(c);s.default.use(a.default),s.default.config.debug=!0,s.default.config.strict=!0,new s.default({el:"body",components:{DatasetList:u.default}})},function(t,e,n){/*! - * Vue.js v1.0.28 +!function(t){function e(i){if(n[i])return n[i].exports;var r=n[i]={exports:{},id:i,loaded:!1};return t[i].call(r.exports,r,r.exports,e),r.loaded=!0,r.exports}var n={};return e.m=t,e.c=n,e.p="/public/",e(0)}([function(t,e,n){t.exports=n(1)},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}var r=n(2),s=i(r),o=n(3),a=i(o),c=n(27),l=i(c);s["default"].use(a["default"]),s["default"].config.debug=!0,s["default"].config.strict=!0,new s["default"]({el:"body",components:{DatasetList:l["default"]}})},function(t,e,n){(function(e){/*! + * Vue.js v1.0.17 * (c) 2016 Evan You * Released under the MIT License. */ -"use strict";function i(t,e,n){if(s(t,e))return void(t[e]=n);if(t._isVue)return void i(t._data,e,n);var r=t.__ob__;if(!r)return void(t[e]=n);if(r.convert(e,n),r.dep.notify(),r.vms)for(var o=r.vms.length;o--;){var a=r.vms[o];a._proxy(e),a._digest()}return n}function r(t,e){if(s(t,e)){delete t[e];var n=t.__ob__;if(!n)return void(t._isVue&&(delete t._data[e],t._digest()));if(n.dep.notify(),n.vms)for(var i=n.vms.length;i--;){var r=n.vms[i];r._unproxy(e),r._digest()}}}function s(t,e){return Wn.call(t,e)}function o(t){return Bn.test(t)}function a(t){var e=(t+"").charCodeAt(0);return 36===e||95===e}function c(t){return null==t?"":t.toString()}function u(t){if("string"!=typeof t)return t;var e=Number(t);return isNaN(e)?t:e}function l(t){return"true"===t||"false"!==t&&t}function h(t){var e=t.charCodeAt(0),n=t.charCodeAt(t.length-1);return e!==n||34!==e&&39!==e?t:t.slice(1,-1)}function f(t){return t.replace(zn,p)}function p(t,e){return e?e.toUpperCase():""}function d(t){return t.replace(Jn,"$1-$2").replace(Jn,"$1-$2").toLowerCase()}function v(t){return t.replace(Xn,p)}function m(t,e){return function(n){var i=arguments.length;return i?i>1?t.apply(e,arguments):t.call(e,n):t.call(e)}}function g(t,e){e=e||0;for(var n=t.length-e,i=new Array(n);n--;)i[n]=t[n+e];return i}function y(t,e){for(var n=Object.keys(e),i=n.length;i--;)t[n[i]]=e[n[i]];return t}function _(t){return null!==t&&"object"==typeof t}function b(t){return Qn.call(t)===Gn}function w(t,e,n,i){Object.defineProperty(t,e,{value:n,enumerable:!!i,writable:!0,configurable:!0})}function x(t,e){var n,i,r,s,o,a=function a(){var c=Date.now()-s;c=0?n=setTimeout(a,e-c):(n=null,o=t.apply(r,i),n||(r=i=null))};return function(){return r=this,i=arguments,s=Date.now(),n||(n=setTimeout(a,e)),o}}function C(t,e){for(var n=t.length;n--;)if(t[n]===e)return n;return-1}function $(t){var e=function e(){if(!e.cancelled)return t.apply(this,arguments)};return e.cancel=function(){e.cancelled=!0},e}function k(t,e){return t==e||!(!_(t)||!_(e))&&JSON.stringify(t)===JSON.stringify(e)}function O(t){return/native code/.test(t.toString())}function A(t){this.size=0,this.limit=t,this.head=this.tail=void 0,this._keymap=Object.create(null)}function T(){return vi.charCodeAt(yi+1)}function j(){return vi.charCodeAt(++yi)}function E(){return yi>=gi}function N(){for(;T()===Ni;)j()}function S(t){return t===Ai||t===Ti}function P(t){return Si[t]}function D(t,e){return Pi[t]===e}function F(){for(var t,e=j();!E();)if(t=j(),t===Ei)j();else if(t===e)break}function R(t){for(var e=0,n=t;!E();)if(t=T(),S(t))F();else if(n===t&&e++,D(n,t)&&e--,j(),0===e)break}function M(){for(var t=yi;!E();)if(_i=T(),S(_i))F();else if(P(_i))R(_i);else if(_i===ji){if(j(),_i=T(),_i!==ji){bi!==Ci&&bi!==Oi||(bi=$i);break}j()}else{if(_i===Ni&&(bi===ki||bi===Oi)){N();break}bi===$i&&(bi=ki),j()}return vi.slice(t+1,yi)||null}function L(){for(var t=[];!E();)t.push(H());return t}function H(){var t,e={};return bi=$i,e.name=M().trim(),bi=Oi,t=I(),t.length&&(e.args=t),e}function I(){for(var t=[];!E()&&bi!==$i;){var e=M();if(!e)break;t.push(q(e))}return t}function q(t){if(xi.test(t))return{value:u(t),dynamic:!1};var e=h(t),n=e===t;return{value:n?t:e,dynamic:n}}function U(t){var e=wi.get(t);if(e)return e;vi=t,mi={},gi=vi.length,yi=-1,_i="",bi=Ci;var n;return vi.indexOf("|")<0?mi.expression=vi.trim():(mi.expression=M().trim(),n=L(),n.length&&(mi.filters=n)),wi.put(t,mi),mi}function V(t){return t.replace(Fi,"\\$&")}function W(){var t=V(Vi.delimiters[0]),e=V(Vi.delimiters[1]),n=V(Vi.unsafeDelimiters[0]),i=V(Vi.unsafeDelimiters[1]);Mi=new RegExp(n+"((?:.|\\n)+?)"+i+"|"+t+"((?:.|\\n)+?)"+e,"g"),Li=new RegExp("^"+n+"((?:.|\\n)+?)"+i+"$"),Ri=new A(1e3)}function B(t){Ri||W();var e=Ri.get(t);if(e)return e;if(!Mi.test(t))return null;for(var n,i,r,s,o,a,c=[],u=Mi.lastIndex=0;n=Mi.exec(t);)i=n.index,i>u&&c.push({value:t.slice(u,i)}),r=Li.test(n[0]),s=r?n[1]:n[2],o=s.charCodeAt(0),a=42===o,s=a?s.slice(1):s,c.push({tag:!0,value:s.trim(),html:r,oneTime:a}),u=i+n[0].length;return u1?t.map(function(t){return J(t,e)}).join("+"):J(t[0],e,!0)}function J(t,e,n){return t.tag?t.oneTime&&e?'"'+e.$eval(t.value)+'"':X(t.value,n):'"'+t.value+'"'}function X(t,e){if(Hi.test(t)){var n=U(t);return n.filters?"this._applyFilters("+n.expression+",null,"+JSON.stringify(n.filters)+",false)":"("+t+")"}return e?t:"("+t+")"}function Q(t,e,n,i){Y(t,1,function(){e.appendChild(t)},n,i)}function G(t,e,n,i){Y(t,1,function(){rt(t,e)},n,i)}function Z(t,e,n){Y(t,-1,function(){ot(t)},e,n)}function Y(t,e,n,i,r){var s=t.__v_trans;if(!s||!s.hooks&&!ai||!i._isCompiled||i.$parent&&!i.$parent._isCompiled)return n(),void(r&&r());var o=e>0?"enter":"leave";s[o](n,r)}function K(t){if("string"==typeof t){t=document.querySelector(t)}return t}function tt(t){if(!t)return!1;var e=t.ownerDocument.documentElement,n=t.parentNode;return e===t||e===n||!(!n||1!==n.nodeType||!e.contains(n))}function et(t,e){var n=t.getAttribute(e);return null!==n&&t.removeAttribute(e),n}function nt(t,e){var n=et(t,":"+e);return null===n&&(n=et(t,"v-bind:"+e)),n}function it(t,e){return t.hasAttribute(e)||t.hasAttribute(":"+e)||t.hasAttribute("v-bind:"+e)}function rt(t,e){e.parentNode.insertBefore(t,e)}function st(t,e){e.nextSibling?rt(t,e.nextSibling):e.parentNode.appendChild(t)}function ot(t){t.parentNode.removeChild(t)}function at(t,e){e.firstChild?rt(t,e.firstChild):e.appendChild(t)}function ct(t,e){var n=t.parentNode;n&&n.replaceChild(e,t)}function ut(t,e,n,i){t.addEventListener(e,n,i)}function lt(t,e,n){t.removeEventListener(e,n)}function ht(t){var e=t.className;return"object"==typeof e&&(e=e.baseVal||""),e}function ft(t,e){ii&&!/svg$/.test(t.namespaceURI)?t.className=e:t.setAttribute("class",e)}function pt(t,e){if(t.classList)t.classList.add(e);else{var n=" "+ht(t)+" ";n.indexOf(" "+e+" ")<0&&ft(t,(n+e).trim())}}function dt(t,e){if(t.classList)t.classList.remove(e);else{for(var n=" "+ht(t)+" ",i=" "+e+" ";n.indexOf(i)>=0;)n=n.replace(i," ");ft(t,n.trim())}t.className||t.removeAttribute("class")}function vt(t,e){var n,i;if(yt(t)&&Ct(t.content)&&(t=t.content),t.hasChildNodes())for(mt(t),i=e?document.createDocumentFragment():document.createElement("div");n=t.firstChild;)i.appendChild(n);return i}function mt(t){for(var e;e=t.firstChild,gt(e);)t.removeChild(e);for(;e=t.lastChild,gt(e);)t.removeChild(e)}function gt(t){return t&&(3===t.nodeType&&!t.data.trim()||8===t.nodeType)}function yt(t){return t.tagName&&"template"===t.tagName.toLowerCase()}function _t(t,e){var n=Vi.debug?document.createComment(t):document.createTextNode(e?" ":"");return n.__v_anchor=!0,n}function bt(t){if(t.hasAttributes())for(var e=t.attributes,n=0,i=e.length;n=c.length){for(var t=0;t=97&&e<=122||e>=65&&e<=90?"ident":e>=49&&e<=57?"number":"else"}function Vt(t){var e=t.trim();return("0"!==t.charAt(0)||!isNaN(t))&&(o(e)?h(e):"*"+e)}function Wt(t){function e(){var e=t[l+1];if(h===dr&&"'"===e||h===vr&&'"'===e)return l++,i="\\"+e,p[sr](),!0}var n,i,r,s,o,a,c,u=[],l=-1,h=ur,f=0,p=[];for(p[or]=function(){void 0!==r&&(u.push(r),r=void 0)},p[sr]=function(){void 0===r?r=i:r+=i},p[ar]=function(){p[sr](),f++},p[cr]=function(){if(f>0)f--,h=pr,p[sr]();else{if(f=0,r=Vt(r),r===!1)return!1;p[or]()}};null!=h;)if(l++,n=t[l],"\\"!==n||!e()){if(s=Ut(n),c=yr[h],o=c[s]||c.else||gr,o===gr)return;if(h=o[0],a=p[o[1]],a&&(i=o[2],i=void 0===i?n:i,a()===!1))return;if(h===mr)return u.raw=t,u}}function Bt(t){var e=rr.get(t);return e||(e=Wt(t),e&&rr.put(t,e)),e}function zt(t,e){return ee(e).get(t)}function Jt(t,e,n){var r=t;if("string"==typeof e&&(e=Wt(e)),!e||!_(t))return!1;for(var s,o,a=0,c=e.length;a-1?n.replace(Tr,Zt):n,e+"scope."+n)}function Zt(t,e){return Sr[e]}function Yt(t){$r.test(t),Sr.length=0;var e=t.replace(Ar,Qt).replace(kr,"");return e=(" "+e).replace(Er,Gt).replace(Tr,Zt),Kt(e)}function Kt(t){try{return new Function("scope","return "+t+";")}catch(t){return Xt}}function te(t){var e=Bt(t);if(e)return function(t,n){Jt(t,e,n)}}function ee(t,e){t=t.trim();var n=br.get(t);if(n)return e&&!n.set&&(n.set=te(n.exp)),n;var i={exp:t};return i.get=ne(t)&&t.indexOf("[")<0?Kt("scope."+t):Yt(t),e&&(i.set=te(t)),br.put(t,i),i}function ne(t){return jr.test(t)&&!Nr.test(t)&&"Math."!==t.slice(0,5)}function ie(){Dr.length=0,Fr.length=0,Rr={},Mr={},Lr=!1}function re(){for(var t=!0;t;)t=!1,se(Dr),se(Fr),Dr.length?t=!0:(ti&&Vi.devtools&&ti.emit("flush"),ie())}function se(t){for(var e=0;e0){var o=s+(i?e:$t(e));r=Yr.get(o),r||(r=Ge(n,t.$options,!0),Yr.put(o,r))}else r=Ge(n,t.$options,!0);this.linker=r}function xe(t,e,n){var i=t.node.previousSibling;if(i){for(t=i.__v_frag;!(t&&t.forId===n&&t.inserted||i===e);){if(i=i.previousSibling,!i)return;t=i.__v_frag}return t}}function Ce(t){for(var e=-1,n=new Array(Math.floor(t));++e47&&e<58?parseInt(t,10):1===t.length&&(e=t.toUpperCase().charCodeAt(0),e>64&&e<91)?e:_s[t]});return n=[].concat.apply([],n),function(e){if(n.indexOf(e.keyCode)>-1)return t.call(this,e)}}function je(t){return function(e){return e.stopPropagation(),t.call(this,e)}}function Ee(t){return function(e){return e.preventDefault(),t.call(this,e)}}function Ne(t){return function(e){if(e.target===e.currentTarget)return t.call(this,e)}}function Se(t){if($s[t])return $s[t];var e=Pe(t);return $s[t]=$s[e]=e,e}function Pe(t){t=d(t);var e=f(t),n=e.charAt(0).toUpperCase()+e.slice(1);ks||(ks=document.createElement("div"));var i,r=ws.length;if("filter"!==e&&e in ks.style)return{kebab:t,camel:e};for(;r--;)if(i=xs[r]+n,i in ks.style)return{kebab:ws[r]+t,camel:i}}function De(t){var e=[];if(Zn(t))for(var n=0,i=t.length;n=r?n():t[s].call(e,i)}var r=t.length,s=0;t[0].call(e,i)}function Me(t,e,n){for(var i,r,s,a,c,u,l,h=[],p=n.$options.propsData,v=Object.keys(e),m=v.length;m--;)if(r=v[m],i=e[r]||qs,c=f(r),Us.test(c)){if(l={name:r,path:c,options:i,mode:Is.ONE_WAY,raw:null},s=d(r),null===(a=nt(t,s))&&(null!==(a=nt(t,s+".sync"))?l.mode=Is.TWO_WAY:null!==(a=nt(t,s+".once"))&&(l.mode=Is.ONE_TIME)),null!==a)l.raw=a,u=U(a),a=u.expression,l.filters=u.filters,o(a)&&!u.filters?l.optimizedLiteral=!0:l.dynamic=!0,l.parentPath=a;else if(null!==(a=et(t,s)))l.raw=a;else if(p&&null!==(a=p[r]||p[c]))l.raw=a;else;h.push(l)}return Le(h)}function Le(t){return function(e,n){e._props={};for(var i,r,o,a,c,f=e.$options.propsData,p=t.length;p--;)if(i=t[p],c=i.raw,r=i.path,o=i.options,e._props[r]=i,f&&s(f,r)&&Ie(e,i,f[r]),null===c)Ie(e,i,void 0);else if(i.dynamic)i.mode===Is.ONE_TIME?(a=(n||e._context||e).$get(i.parentPath),Ie(e,i,a)):e._context?e._bindDir({name:"prop",def:Ws,prop:i},null,null,n):Ie(e,i,e.$get(i.parentPath));else if(i.optimizedLiteral){var v=h(c);a=v===c?l(u(c)):v,Ie(e,i,a)}else a=o.type===Boolean&&(""===c||c===d(i.name))||c,Ie(e,i,a)}}function He(t,e,n,i){var r=e.dynamic&&ne(e.parentPath),s=n;void 0===s&&(s=Ue(t,e)),s=We(e,s,t);var o=s!==n;Ve(e,s,t)||(s=void 0),r&&!o?Ft(function(){i(s)}):i(s)}function Ie(t,e,n){He(t,e,n,function(n){It(t,e.path,n)})}function qe(t,e,n){He(t,e,n,function(n){t[e.path]=n})}function Ue(t,e){var n=e.options;if(!s(n,"default"))return n.type!==Boolean&&void 0;var i=n.default;return _(i),"function"==typeof i&&n.type!==Function?i.call(t):i}function Ve(t,e,n){if(!t.options.required&&(null===t.raw||null==e))return!0;var i=t.options,r=i.type,s=!r,o=[];if(r){Zn(r)||(r=[r]);for(var a=0;ae?-1:t===e?0:1}),e=0,n=a.length;ep.priority)&&(p=f,l=r.name,a=yn(r.name),o=r.value,u=c[1],h=c[2]));return p?mn(t,u,o,n,p,l,h,a):void 0}function vn(){}function mn(t,e,n,i,r,s,o,a){var c=U(n),u={name:e,arg:o,expression:c.expression,filters:c.filters,raw:n,attr:s,modifiers:a,def:r};"for"!==e&&"router-view"!==e||(u.ref=bt(t));var l=function(t,e,n,i,r){u.ref&&It((i||t).$refs,u.ref,null),t._bindDir(u,e,n,i,r)};return l.terminal=!0,l}function gn(t,e){function n(t,e,n){var i=n&&bn(n),r=!i&&U(s);v.push({name:t,attr:o,raw:a,def:e,arg:u,modifiers:l,expression:r&&r.expression,filters:r&&r.filters,interp:n,hasOneTime:i})}for(var i,r,s,o,a,c,u,l,h,f,p,d=t.length,v=[];d--;)if(i=t[d],r=o=i.name,s=a=i.value,f=B(s),u=null,l=yn(r),r=r.replace(so,""),f)s=z(f),u=r,n("bind",Ms.bind,f);else if(oo.test(r))l.literal=!no.test(r),n("transition",eo.transition);else if(io.test(r))u=r.replace(io,""),n("on",Ms.on);else if(no.test(r))c=r.replace(no,""),"style"===c||"class"===c?n(c,eo[c]):(u=c,n("bind",Ms.bind));else if(p=r.match(ro)){if(c=p[1],u=p[2],"else"===c)continue;h=Pt(e,"directives",c,!0),h&&n(c,h)}if(v.length)return _n(v)}function yn(t){var e=Object.create(null),n=t.match(so);if(n)for(var i=n.length;i--;)e[n[i].slice(1)]=!0;return e}function _n(t){return function(e,n,i,r,s){for(var o=t.length;o--;)e._bindDir(t[o],n,i,r,s)}}function bn(t){for(var e=t.length;e--;)if(t[e].oneTime)return!0}function wn(t){return"SCRIPT"===t.tagName&&(!t.hasAttribute("type")||"text/javascript"===t.getAttribute("type"))}function xn(t,e){return e&&(e._containerAttrs=$n(t)),yt(t)&&(t=pe(t)),e&&(e._asComponent&&!e.template&&(e.template=""),e.template&&(e._content=vt(t),t=Cn(t,e))),Ct(t)&&(at(_t("v-start",!0),t),t.appendChild(_t("v-end",!0))),t}function Cn(t,e){var n=e.template,i=pe(n,!0);if(i){var r=i.firstChild;if(!r)return i;var s=r.tagName&&r.tagName.toLowerCase();return e.replace?(t===document.body,i.childNodes.length>1||1!==r.nodeType||"component"===s||Pt(e,"components",s)||it(r,"is")||Pt(e,"elementDirectives",s)||r.hasAttribute("v-for")||r.hasAttribute("v-if")?i:(e._replacerAttrs=$n(r),kn(t,r),r)):(t.appendChild(i),t)}}function $n(t){if(1===t.nodeType&&t.hasAttributes())return g(t.attributes)}function kn(t,e){for(var n,i,r=t.attributes,s=r.length;s--;)n=r[s].name,i=r[s].value,e.hasAttribute(n)||uo.test(n)?"class"===n&&!B(i)&&(i=i.trim())&&i.split(/\s+/).forEach(function(t){pt(e,t)}):e.setAttribute(n,i)}function On(t,e){if(e){for(var n,i,r=t._slotContents=Object.create(null),s=0,o=e.children.length;s1?g(n):n;var r=e&&n.some(function(t){return t._fromParent});r&&(i=!1);for(var s=g(arguments,1),o=0,a=n.length;oe?s:-s}var n=null,i=void 0;t=go(t);var r=g(arguments,1),s=r[r.length-1];"number"==typeof s?(s=s<0?-1:1,r=r.length>1?r.slice(0,-1):r):s=1;var o=r[0];return o?("function"==typeof o?n=function(t,e){return o(t,e)*s}:(i=Array.prototype.concat.apply([],r),n=function(t,r,s){return s=s||0,s>=i.length-1?e(t,r,s):e(t,r,s)||n(t,r,s+1)}),t.slice().sort(n)):t}function Un(t,e){var n;if(b(t)){var i=Object.keys(t);for(n=i.length;n--;)if(Un(t[i[n]],e))return!0}else if(Zn(t)){for(n=t.length;n--;)if(Un(t[n],e))return!0}else if(null!=t)return t.toString().toLowerCase().indexOf(e)>-1}function Vn(t){function e(t){return new Function("return function "+v(t)+" (options) { this._init(options) }")()}t.options={directives:Ms,elementDirectives:mo,filters:_o,transitions:{},components:{},partials:{},replace:!0},t.util=nr,t.config=Vi,t.set=i,t.delete=r,t.nextTick=fi,t.compiler=lo,t.FragmentFactory=we,t.internalDirectives=eo,t.parsers={path:_r,text:Ii,template:Gr,directive:Di,expression:Pr},t.cid=0;var n=1;t.extend=function(t){t=t||{};var i=this,r=0===i.cid;if(r&&t._Ctor)return t._Ctor;var s=t.name||i.options.name,o=e(s||"VueComponent");return o.prototype=Object.create(i.prototype),o.prototype.constructor=o,o.cid=n++,o.options=St(i.options,t),o.super=i,o.extend=i.extend,Vi._assetTypes.forEach(function(t){o[t]=i[t]}),s&&(o.options.components[s]=o),r&&(t._Ctor=o),o},t.use=function(t){if(!t.installed){var e=g(arguments,1);return e.unshift(this),"function"==typeof t.install?t.install.apply(t,e):t.apply(null,e),t.installed=!0,this}},t.mixin=function(e){t.options=St(t.options,e)},Vi._assetTypes.forEach(function(e){t[e]=function(n,i){return i?("component"===e&&b(i)&&(i.name||(i.name=n),i=t.extend(i)),this.options[e+"s"][n]=i,i):this.options[e+"s"][n]}}),y(t.transition,Bi)}var Wn=Object.prototype.hasOwnProperty,Bn=/^\s?(true|false|-?[\d\.]+|'[^']*'|"[^"]*")\s?$/,zn=/-(\w)/g,Jn=/([^-])([A-Z])/g,Xn=/(?:^|[-_\/])(\w)/g,Qn=Object.prototype.toString,Gn="[object Object]",Zn=Array.isArray,Yn="__proto__"in{},Kn="undefined"!=typeof window&&"[object Object]"!==Object.prototype.toString.call(window),ti=Kn&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__,ei=Kn&&window.navigator.userAgent.toLowerCase(),ni=ei&&ei.indexOf("trident")>0,ii=ei&&ei.indexOf("msie 9.0")>0,ri=ei&&ei.indexOf("android")>0,si=ei&&/iphone|ipad|ipod|ios/.test(ei),oi=void 0,ai=void 0,ci=void 0,ui=void 0;if(Kn&&!ii){var li=void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend,hi=void 0===window.onanimationend&&void 0!==window.onwebkitanimationend;oi=li?"WebkitTransition":"transition",ai=li?"webkitTransitionEnd":"transitionend",ci=hi?"WebkitAnimation":"animation",ui=hi?"webkitAnimationEnd":"animationend"}var fi=function(){function t(){n=!1;var t=e.slice(0);e.length=0;for(var i=0;i=this.length&&(this.length=Number(t)+1),this.splice(t,1,e)[0]}),w(Yi,"$remove",function(t){if(this.length){var e=C(this,t);return e>-1?this.splice(e,1):void 0}});var tr=Object.getOwnPropertyNames(Ki),er=!0;Rt.prototype.walk=function(t){for(var e=Object.keys(t),n=0,i=e.length;n",""],tr:[2,"","
"],col:[2,"","
"]};Wr.td=Wr.th=[3,"","
"],Wr.option=Wr.optgroup=[1,'"],Wr.thead=Wr.tbody=Wr.colgroup=Wr.caption=Wr.tfoot=[1,"","
"],Wr.g=Wr.defs=Wr.symbol=Wr.use=Wr.image=Wr.text=Wr.circle=Wr.ellipse=Wr.line=Wr.path=Wr.polygon=Wr.polyline=Wr.rect=[1,'',""];var Br=/<([\w:-]+)/,zr=/&#?\w+?;/,Jr=/0;)if(c[h]===b||c[h].listener&&c[h].listener===b){d=h;break}if(0>d)return this;1===c.length?(c.length=0,delete this._events[a]):c.splice(d,1),this._events.removeListener&&this.emit("removeListener",a,b)}return this},d.prototype.removeAllListeners=function(a){var b,c;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[a]&&delete this._events[a],this;if(0===arguments.length){for(b in this._events)"removeListener"!==b&&this.removeAllListeners(b);return this.removeAllListeners("removeListener"),this._events={},this}if(c=this._events[a],e(c))this.removeListener(a,c);else for(;c.length;)this.removeListener(a,c[c.length-1]);return delete this._events[a],this},d.prototype.listeners=function(a){var b;return b=this._events&&this._events[a]?e(this._events[a])?[this._events[a]]:this._events[a].slice():[]},d.listenerCount=function(a,b){var c;return c=a._events&&a._events[b]?e(a._events[b])?1:a._events[b].length:0}},{}],20:[function(a,b,c){"function"==typeof Object.create?b.exports=function(a,b){a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}})}:b.exports=function(a,b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}},{}],21:[function(a,b,c){function d(){}var e=b.exports={};e.nextTick=function(){var a="undefined"!=typeof window&&window.setImmediate,b="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(a)return function(a){return window.setImmediate(a)};if(b){var c=[];return window.addEventListener("message",function(a){var b=a.source;if((b===window||null===b)&&"process-tick"===a.data&&(a.stopPropagation(),c.length>0)){var d=c.shift();d()}},!0),function(a){c.push(a),window.postMessage("process-tick","*")}}return function(a){setTimeout(a,0)}}(),e.title="browser",e.browser=!0,e.env={},e.argv=[],e.on=d,e.once=d,e.off=d,e.emit=d,e.binding=function(a){throw new Error("process.binding is not supported")},e.cwd=function(){return"/"},e.chdir=function(a){throw new Error("process.chdir is not supported")}},{}],22:[function(a,b,c){function d(a){return this instanceof d?(h.call(this,a),i.call(this,a),a&&a.readable===!1&&(this.readable=!1),a&&a.writable===!1&&(this.writable=!1),this.allowHalfOpen=!0,a&&a.allowHalfOpen===!1&&(this.allowHalfOpen=!1),void this.once("end",e)):new d(a)}function e(){if(!this.allowHalfOpen&&!this._writableState.ended){var a=this;g(function(){a.end()})}}b.exports=d;var f=a("inherits"),g=a("process/browser.js").nextTick,h=a("./readable.js"),i=a("./writable.js");f(d,h),d.prototype.write=i.prototype.write,d.prototype.end=i.prototype.end,d.prototype._write=i.prototype._write},{"./readable.js":26,"./writable.js":28,inherits:20,"process/browser.js":24}],23:[function(a,b,c){function d(){e.call(this)}b.exports=d;var e=a("events").EventEmitter,f=a("inherits");f(d,e),d.Readable=a("./readable.js"),d.Writable=a("./writable.js"),d.Duplex=a("./duplex.js"),d.Transform=a("./transform.js"),d.PassThrough=a("./passthrough.js"),d.Stream=d,d.prototype.pipe=function(a,b){function c(b){a.writable&&!1===a.write(b)&&j.pause&&j.pause()}function d(){j.readable&&j.resume&&j.resume()}function f(){k||(k=!0,a.end())}function g(){k||(k=!0,"function"==typeof a.destroy&&a.destroy())}function h(a){if(i(),0===e.listenerCount(this,"error"))throw a}function i(){j.removeListener("data",c),a.removeListener("drain",d),j.removeListener("end",f),j.removeListener("close",g),j.removeListener("error",h),a.removeListener("error",h),j.removeListener("end",i),j.removeListener("close",i),a.removeListener("close",i)}var j=this;j.on("data",c),a.on("drain",d),a._isStdio||b&&b.end===!1||(j.on("end",f),j.on("close",g));var k=!1;return j.on("error",h),a.on("error",h),j.on("end",i),j.on("close",i),a.on("close",i),a.emit("pipe",j),a}},{"./duplex.js":22,"./passthrough.js":25,"./readable.js":26,"./transform.js":27,"./writable.js":28,events:19,inherits:20}],24:[function(a,b,c){var d=b.exports={};d.nextTick=function(){var a="undefined"!=typeof window&&window.setImmediate,b="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(a)return function(a){return window.setImmediate(a)};if(b){var c=[];return window.addEventListener("message",function(a){var b=a.source;if((b===window||null===b)&&"process-tick"===a.data&&(a.stopPropagation(),c.length>0)){var d=c.shift();d()}},!0),function(a){c.push(a),window.postMessage("process-tick","*")}}return function(a){setTimeout(a,0)}}(),d.title="browser",d.browser=!0,d.env={},d.argv=[],d.binding=function(a){throw new Error("process.binding is not supported")},d.cwd=function(){return"/"},d.chdir=function(a){throw new Error("process.chdir is not supported")}},{}],25:[function(a,b,c){function d(a){return this instanceof d?void e.call(this,a):new d(a)}b.exports=d;var e=a("./transform.js"),f=a("inherits");f(d,e),d.prototype._transform=function(a,b,c){c(null,a)}},{"./transform.js":27,inherits:20}],26:[function(a,b,c){(function(c){function d(b,c){b=b||{};var d=b.highWaterMark;this.highWaterMark=d||0===d?d:16384,this.highWaterMark=~~this.highWaterMark,this.buffer=[],this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=!1,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.calledRead=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.objectMode=!!b.objectMode,this.defaultEncoding=b.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,b.encoding&&(x||(x=a("string_decoder").StringDecoder),this.decoder=new x(b.encoding),this.encoding=b.encoding)}function e(a){return this instanceof e?(this._readableState=new d(a,this),this.readable=!0,void z.call(this)):new e(a)}function f(a,b,c,d,e){var f=j(b,c);if(f)a.emit("error",f);else if(null===c||void 0===c)b.reading=!1,b.ended||k(a,b);else if(b.objectMode||c&&c.length>0)if(b.ended&&!e){var h=new Error("stream.push() after EOF");a.emit("error",h)}else if(b.endEmitted&&e){var h=new Error("stream.unshift() after end event");a.emit("error",h)}else!b.decoder||e||d||(c=b.decoder.write(c)),b.length+=b.objectMode?1:c.length,e?b.buffer.unshift(c):(b.reading=!1,b.buffer.push(c)),b.needReadable&&l(a),n(a,b);else e||(b.reading=!1);return g(b)}function g(a){return!a.ended&&(a.needReadable||a.length=D)a=D;else{a--;for(var b=1;32>b;b<<=1)a|=a>>b;a++}return a}function i(a,b){return 0===b.length&&b.ended?0:b.objectMode?0===a?0:1:isNaN(a)||null===a?b.flowing&&b.buffer.length?b.buffer[0].length:b.length:0>=a?0:(a>b.highWaterMark&&(b.highWaterMark=h(a)),a>b.length?b.ended?b.length:(b.needReadable=!0,0):a)}function j(a,b){var c=null;return A.isBuffer(b)||"string"==typeof b||null===b||void 0===b||a.objectMode||c||(c=new TypeError("Invalid non-string/buffer chunk")),c}function k(a,b){if(b.decoder&&!b.ended){var c=b.decoder.end();c&&c.length&&(b.buffer.push(c),b.length+=b.objectMode?1:c.length)}b.ended=!0,b.length>0?l(a):u(a)}function l(a){var b=a._readableState;b.needReadable=!1,b.emittedReadable||(b.emittedReadable=!0,b.sync?B(function(){m(a)}):m(a))}function m(a){a.emit("readable")}function n(a,b){b.readingMore||(b.readingMore=!0,B(function(){o(a,b)}))}function o(a,b){for(var c=b.length;!b.reading&&!b.flowing&&!b.ended&&b.length0)return;return 0===d.pipesCount?(d.flowing=!1,void(y.listenerCount(a,"data")>0&&s(a))):void(d.ranOut=!0)}function r(){this._readableState.ranOut&&(this._readableState.ranOut=!1,q(this))}function s(a,b){var c=a._readableState;if(c.flowing)throw new Error("Cannot switch to old mode now.");var d=b||!1,e=!1;a.readable=!0,a.pipe=z.prototype.pipe,a.on=a.addListener=z.prototype.on,a.on("readable",function(){e=!0;for(var b;!d&&null!==(b=a.read());)a.emit("data",b);null===b&&(e=!1,a._readableState.needReadable=!0)}),a.pause=function(){d=!0,this.emit("pause")},a.resume=function(){d=!1,e?B(function(){a.emit("readable")}):this.read(0),this.emit("resume")},a.emit("readable")}function t(a,b){var c,d=b.buffer,e=b.length,f=!!b.decoder,g=!!b.objectMode;if(0===d.length)return null;if(0===e)c=null;else if(g)c=d.shift();else if(!a||a>=e)c=f?d.join(""):A.concat(d,e),d.length=0;else if(aj&&a>i;j++){var h=d[0],l=Math.min(a-i,h.length);f?c+=h.slice(0,l):h.copy(c,i,0,l),l0)throw new Error("endReadable called on non-empty stream");!b.endEmitted&&b.calledRead&&(b.ended=!0,B(function(){b.endEmitted||0!==b.length||(b.endEmitted=!0,a.readable=!1,a.emit("end"))}))}function v(a,b){for(var c=0,d=a.length;d>c;c++)b(a[c],c)}function w(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1}b.exports=e,e.ReadableState=d;var x,y=a("events").EventEmitter,z=a("./index.js"),A=a("buffer").Buffer,B=a("process/browser.js").nextTick,C=a("inherits");C(e,z),e.prototype.push=function(a,b){var c=this._readableState;return"string"!=typeof a||c.objectMode||(b=b||c.defaultEncoding,b!==c.encoding&&(a=new A(a,b),b="")),f(this,c,a,b,!1)},e.prototype.unshift=function(a){var b=this._readableState;return f(this,b,a,"",!0)},e.prototype.setEncoding=function(b){x||(x=a("string_decoder").StringDecoder),this._readableState.decoder=new x(b),this._readableState.encoding=b};var D=8388608;e.prototype.read=function(a){var b=this._readableState;b.calledRead=!0;var c=a;if(("number"!=typeof a||a>0)&&(b.emittedReadable=!1),0===a&&b.needReadable&&(b.length>=b.highWaterMark||b.ended))return l(this),null;if(a=i(a,b),0===a&&b.ended)return 0===b.length&&u(this),null;var d=b.needReadable;b.length-a<=b.highWaterMark&&(d=!0),(b.ended||b.reading)&&(d=!1),d&&(b.reading=!0,b.sync=!0,0===b.length&&(b.needReadable=!0),this._read(b.highWaterMark),b.sync=!1),d&&!b.reading&&(a=i(c,b));var e;return e=a>0?t(a,b):null,null===e&&(b.needReadable=!0,a=0),b.length-=a,0!==b.length||b.ended||(b.needReadable=!0),b.ended&&!b.endEmitted&&0===b.length&&u(this),e},e.prototype._read=function(a){this.emit("error",new Error("not implemented"))},e.prototype.pipe=function(a,b){function d(a){a===k&&f()}function e(){a.end()}function f(){a.removeListener("close",h),a.removeListener("finish",i),a.removeListener("drain",o),a.removeListener("error",g),a.removeListener("unpipe",d),k.removeListener("end",e),k.removeListener("end",f),(!a._writableState||a._writableState.needDrain)&&o()}function g(b){j(),0===s&&0===y.listenerCount(a,"error")&&a.emit("error",b)}function h(){a.removeListener("finish",i),j()}function i(){a.removeListener("close",h),j()}function j(){k.unpipe(a)}var k=this,l=this._readableState;switch(l.pipesCount){case 0:l.pipes=a;break;case 1:l.pipes=[l.pipes,a];break;default:l.pipes.push(a)}l.pipesCount+=1;var m=(!b||b.end!==!1)&&a!==c.stdout&&a!==c.stderr,n=m?e:f;l.endEmitted?B(n):k.once("end",n),a.on("unpipe",d);var o=p(k);a.on("drain",o);var s=y.listenerCount(a,"error");return a.once("error",g),a.once("close",h),a.once("finish",i),a.emit("pipe",k),l.flowing||(this.on("readable",r),l.flowing=!0,B(function(){q(k)})),a},e.prototype.unpipe=function(a){var b=this._readableState;if(0===b.pipesCount)return this;if(1===b.pipesCount)return a&&a!==b.pipes?this:(a||(a=b.pipes),b.pipes=null,b.pipesCount=0,this.removeListener("readable",r),b.flowing=!1,a&&a.emit("unpipe",this),this);if(!a){var c=b.pipes,d=b.pipesCount;b.pipes=null,b.pipesCount=0,this.removeListener("readable",r),b.flowing=!1;for(var e=0;d>e;e++)c[e].emit("unpipe",this);return this}var e=w(b.pipes,a);return-1===e?this:(b.pipes.splice(e,1),b.pipesCount-=1,1===b.pipesCount&&(b.pipes=b.pipes[0]),a.emit("unpipe",this),this)},e.prototype.on=function(a,b){var c=z.prototype.on.call(this,a,b);if("data"!==a||this._readableState.flowing||s(this),"readable"===a&&this.readable){var d=this._readableState;d.readableListening||(d.readableListening=!0,d.emittedReadable=!1,d.needReadable=!0,d.reading?d.length&&l(this,d):this.read(0))}return c},e.prototype.addListener=e.prototype.on,e.prototype.resume=function(){s(this),this.read(0),this.emit("resume")},e.prototype.pause=function(){s(this,!0),this.emit("pause")},e.prototype.wrap=function(a){var b=this._readableState,c=!1,d=this;a.on("end",function(){if(b.decoder&&!b.ended){var a=b.decoder.end();a&&a.length&&d.push(a)}d.push(null)}),a.on("data",function(e){if(b.decoder&&(e=b.decoder.write(e)),e&&(b.objectMode||e.length)){var f=d.push(e);f||(c=!0,a.pause())}});for(var e in a)"function"==typeof a[e]&&"undefined"==typeof this[e]&&(this[e]=function(b){return function(){return a[b].apply(a,arguments)}}(e));var f=["error","close","destroy","pause","resume"];return v(f,function(b){a.on(b,function(a){return d.emit.apply(d,b,a)})}),d._read=function(b){c&&(c=!1,a.resume())},d},e._fromList=t}).call(this,a("/usr/local/lib/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js"))},{"./index.js":23,"/usr/local/lib/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js":21,buffer:16,events:19,inherits:20,"process/browser.js":24,string_decoder:29}],27:[function(a,b,c){function d(a,b){this.afterTransform=function(a,c){return e(b,a,c)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null}function e(a,b,c){var d=a._transformState;d.transforming=!1;var e=d.writecb;if(!e)return a.emit("error",new Error("no writecb in Transform class"));d.writechunk=null,d.writecb=null,null!==c&&void 0!==c&&a.push(c),e&&e(b);var f=a._readableState;f.reading=!1,(f.needReadable||f.length=this.charLength-this.charReceived?this.charLength-this.charReceived:a.length;if(a.copy(this.charBuffer,this.charReceived,c,d),this.charReceived+=d-c,c=d,this.charReceived=55296&&56319>=e)){if(this.charReceived=this.charLength=0,d==a.length)return b;a=a.slice(d,a.length);break}this.charLength+=this.surrogateSize,b=""}var f=this.detectIncompleteChar(a),g=a.length;this.charLength&&(a.copy(this.charBuffer,0,a.length-f,g),this.charReceived=f,g-=f),b+=a.toString(this.encoding,0,g);var g=b.length-1,e=b.charCodeAt(g);if(e>=55296&&56319>=e){var h=this.surrogateSize;return this.charLength+=h,this.charReceived+=h,this.charBuffer.copy(this.charBuffer,h,0,h),this.charBuffer.write(b.charAt(b.length-1),this.encoding),b.substring(0,g)}return b},i.prototype.detectIncompleteChar=function(a){for(var b=a.length>=3?3:a.length;b>0;b--){var c=a[a.length-b];if(1==b&&c>>5==6){this.charLength=2;break}if(2>=b&&c>>4==14){this.charLength=3;break}if(3>=b&&c>>3==30){this.charLength=4;break}}return b},i.prototype.end=function(a){var b="";if(a&&a.length&&(b=this.write(a)),this.charReceived){var c=this.charReceived,d=this.charBuffer,e=this.encoding;b+=d.slice(0,c).toString(e)}return b}},{buffer:16}],30:[function(a,b,c){b.exports=function(a){return a&&"object"==typeof a&&"function"==typeof a.copy&&"function"==typeof a.fill&&"function"==typeof a.readUInt8}},{}],31:[function(a,b,c){(function(b,d){function e(a,b){var d={seen:[],stylize:g};return arguments.length>=3&&(d.depth=arguments[2]),arguments.length>=4&&(d.colors=arguments[3]),p(b)?d.showHidden=b:b&&c._extend(d,b),v(d.showHidden)&&(d.showHidden=!1),v(d.depth)&&(d.depth=2),v(d.colors)&&(d.colors=!1),v(d.customInspect)&&(d.customInspect=!0),d.colors&&(d.stylize=f),i(d,a,d.depth)}function f(a,b){var c=e.styles[b];return c?"["+e.colors[c][0]+"m"+a+"["+e.colors[c][1]+"m":a}function g(a,b){return a}function h(a){var b={};return a.forEach(function(a,c){b[a]=!0}),b}function i(a,b,d){if(a.customInspect&&b&&A(b.inspect)&&b.inspect!==c.inspect&&(!b.constructor||b.constructor.prototype!==b)){var e=b.inspect(d,a);return t(e)||(e=i(a,e,d)),e}var f=j(a,b);if(f)return f;var g=Object.keys(b),p=h(g);if(a.showHidden&&(g=Object.getOwnPropertyNames(b)),z(b)&&(g.indexOf("message")>=0||g.indexOf("description")>=0))return k(b);if(0===g.length){if(A(b)){var q=b.name?": "+b.name:"";return a.stylize("[Function"+q+"]","special")}if(w(b))return a.stylize(RegExp.prototype.toString.call(b),"regexp");if(y(b))return a.stylize(Date.prototype.toString.call(b),"date");if(z(b))return k(b)}var r="",s=!1,u=["{","}"];if(o(b)&&(s=!0,u=["[","]"]),A(b)){var v=b.name?": "+b.name:"";r=" [Function"+v+"]"}if(w(b)&&(r=" "+RegExp.prototype.toString.call(b)),y(b)&&(r=" "+Date.prototype.toUTCString.call(b)),z(b)&&(r=" "+k(b)),0===g.length&&(!s||0==b.length))return u[0]+r+u[1];if(0>d)return w(b)?a.stylize(RegExp.prototype.toString.call(b),"regexp"):a.stylize("[Object]","special");a.seen.push(b);var x;return x=s?l(a,b,d,p,g):g.map(function(c){return m(a,b,d,p,c,s)}),a.seen.pop(),n(x,r,u)}function j(a,b){if(v(b))return a.stylize("undefined","undefined");if(t(b)){var c="'"+JSON.stringify(b).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return a.stylize(c,"string")}return s(b)?a.stylize(""+b,"number"):p(b)?a.stylize(""+b,"boolean"):q(b)?a.stylize("null","null"):void 0}function k(a){return"["+Error.prototype.toString.call(a)+"]"}function l(a,b,c,d,e){for(var f=[],g=0,h=b.length;h>g;++g)F(b,String(g))?f.push(m(a,b,c,d,String(g),!0)):f.push("");return e.forEach(function(e){e.match(/^\d+$/)||f.push(m(a,b,c,d,e,!0))}),f}function m(a,b,c,d,e,f){var g,h,j;if(j=Object.getOwnPropertyDescriptor(b,e)||{value:b[e]},j.get?h=j.set?a.stylize("[Getter/Setter]","special"):a.stylize("[Getter]","special"):j.set&&(h=a.stylize("[Setter]","special")),F(d,e)||(g="["+e+"]"),h||(a.seen.indexOf(j.value)<0?(h=q(c)?i(a,j.value,null):i(a,j.value,c-1),h.indexOf("\n")>-1&&(h=f?h.split("\n").map(function(a){return" "+a}).join("\n").substr(2):"\n"+h.split("\n").map(function(a){return" "+a}).join("\n"))):h=a.stylize("[Circular]","special")),v(g)){if(f&&e.match(/^\d+$/))return h;g=JSON.stringify(""+e),g.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(g=g.substr(1,g.length-2),g=a.stylize(g,"name")):(g=g.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),g=a.stylize(g,"string"))}return g+": "+h}function n(a,b,c){var d=0,e=a.reduce(function(a,b){return d++,b.indexOf("\n")>=0&&d++,a+b.replace(/\u001b\[\d\d?m/g,"").length+1},0);return e>60?c[0]+(""===b?"":b+"\n ")+" "+a.join(",\n ")+" "+c[1]:c[0]+b+" "+a.join(", ")+" "+c[1]}function o(a){return Array.isArray(a)}function p(a){return"boolean"==typeof a}function q(a){return null===a}function r(a){return null==a}function s(a){return"number"==typeof a}function t(a){return"string"==typeof a}function u(a){return"symbol"==typeof a}function v(a){return void 0===a}function w(a){return x(a)&&"[object RegExp]"===C(a)}function x(a){return"object"==typeof a&&null!==a}function y(a){return x(a)&&"[object Date]"===C(a)}function z(a){return x(a)&&("[object Error]"===C(a)||a instanceof Error)}function A(a){return"function"==typeof a}function B(a){return null===a||"boolean"==typeof a||"number"==typeof a||"string"==typeof a||"symbol"==typeof a||"undefined"==typeof a}function C(a){return Object.prototype.toString.call(a)}function D(a){return 10>a?"0"+a.toString(10):a.toString(10)}function E(){var a=new Date,b=[D(a.getHours()),D(a.getMinutes()),D(a.getSeconds())].join(":");return[a.getDate(),J[a.getMonth()],b].join(" ")}function F(a,b){return Object.prototype.hasOwnProperty.call(a,b)}var G=/%[sdj%]/g;c.format=function(a){if(!t(a)){for(var b=[],c=0;c=f)return a;switch(a){case"%s":return String(d[c++]);case"%d":return Number(d[c++]);case"%j":try{return JSON.stringify(d[c++])}catch(b){return"[Circular]"}default:return a}}),h=d[c];f>c;h=d[++c])g+=q(h)||!x(h)?" "+h:" "+e(h);return g},c.deprecate=function(a,e){function f(){if(!g){if(b.throwDeprecation)throw new Error(e);b.traceDeprecation?console.trace(e):console.error(e),g=!0}return a.apply(this,arguments)}if(v(d.process))return function(){return c.deprecate(a,e).apply(this,arguments)};if(b.noDeprecation===!0)return a;var g=!1;return f};var H,I={};c.debuglog=function(a){if(v(H)&&(H=b.env.NODE_DEBUG||""),a=a.toUpperCase(),!I[a])if(new RegExp("\\b"+a+"\\b","i").test(H)){var d=b.pid;I[a]=function(){var b=c.format.apply(c,arguments);console.error("%s %d: %s",a,d,b)}}else I[a]=function(){};return I[a]},c.inspect=e,e.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},e.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"},c.isArray=o,c.isBoolean=p,c.isNull=q,c.isNullOrUndefined=r,c.isNumber=s,c.isString=t,c.isSymbol=u,c.isUndefined=v,c.isRegExp=w,c.isObject=x,c.isDate=y,c.isError=z,c.isFunction=A,c.isPrimitive=B,c.isBuffer=a("./support/isBuffer");var J=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];c.log=function(){console.log("%s - %s",E(),c.format.apply(c,arguments))},c.inherits=a("inherits"),c._extend=function(a,b){if(!b||!x(b))return a;for(var c=Object.keys(b),d=c.length;d--;)a[c[d]]=b[c[d]];return a}}).call(this,a("/usr/local/lib/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./support/isBuffer":30,"/usr/local/lib/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js":21,inherits:20}]},{},[14]); \ No newline at end of file diff --git a/public/js/script.min.js b/public/js/script.min.js index d5522a81..228e87cc 100644 --- a/public/js/script.min.js +++ b/public/js/script.min.js @@ -1,2 +1,2 @@ -function showGeoJsonMap(a){document.querySelector("#geojson-map").style.display="";var b=L.map("geojson-map");L.tileLayer("//{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:'© OpenStreetMap contributors',minZoom:1}).addTo(b);var c=L.geoJson(a).addTo(b);b.fitBounds(c.getBounds())}if(!jQuery)throw new Error("Bootstrap requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]}}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(window.jQuery),+function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function c(){f.trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),"string"==typeof b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d)};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.is("input")?"val":"html",e=c.data();a+="Text",e.resetText||c.data("resetText",c[d]()),c[d](e[a]||this.options[a]),setTimeout(function(){"loadingText"==a?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.closest('[data-toggle="buttons"]');if(a.length){var b=this.$element.find("input").prop("checked",!this.$element.hasClass("active")).trigger("change");"radio"===b.prop("type")&&a.find(".active").removeClass("active")}this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof c&&c;e||d.data("bs.button",e=new b(this,f)),"toggle"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(window.jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover"},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;this.sliding=!0,f&&this.pause(),e=e.length?e:this.$element.find(".item")[h]();var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});if(!e.hasClass("active")){if(this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(j),j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid")},0)}).emulateTransitionEnd(600)}else{if(this.$element.trigger(j),j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return f&&this.cycle(),this}};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .accordion-group > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?void this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find("[data-toggle=collapse][data-parent="+i+"]").not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(window.jQuery),+function(a){"use strict";function b(){a(d).remove(),a(e).each(function(b){var d=c(a(this));d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown")),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown"))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){if("ontouchstart"in document.documentElement&&a(''}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title:empty").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(window.jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(a(c).is("body")?window:c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#\w/.test(e)&&a(e);return f&&f.length&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parents(".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(window.jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.attr("data-target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top()),"function"==typeof h&&(h=f.bottom());var i=!(null!=this.unpin&&d+this.unpin<=e.top)&&(null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d&&"top");this.affixed!==i&&(this.unpin&&this.$element.css("top",""),this.affixed=i,this.unpin="bottom"==i?e.top-d:null,this.$element.removeClass(b.RESET).addClass("affix"+(i?"-"+i:"")),"bottom"==i&&this.$element.offset({top:document.body.offsetHeight-h-this.$element.height()}))}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(window.jQuery);var IN_GLOBAL_SCOPE=!0;window.PR_SHOULD_USE_CONTINUATION=!0;var prettyPrintOne,prettyPrint;!function(){function a(a){function b(a){var b=a.charCodeAt(0);if(92!==b)return b;var c=a.charAt(1);return b=l[c],b?b:"0"<=c&&c<="7"?parseInt(a.substring(1),8):"u"===c||"x"===c?parseInt(a.substring(2),16):a.charCodeAt(1)}function c(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);var b=String.fromCharCode(a);return"\\"===b||"-"===b||"]"===b||"^"===b?"\\"+b:b}function d(a){var d=a.substring(1,a.length-1).match(new RegExp("\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]","g")),e=[],f="^"===d[0],g=["["];f&&g.push("^");for(var h=f?1:0,i=d.length;h122||(k<65||l>90||e.push([32|Math.max(65,l),32|Math.min(k,90)]),k<97||l>122||e.push([Math.max(97,l)&-33,Math.min(k,122)&-33]))}}e.sort(function(a,b){return a[0]-b[0]||b[1]-a[1]});for(var m=[],n=[],h=0;ho[0]&&(o[1]+1>o[0]&&g.push("-"),g.push(c(o[1])))}return g.push("]"),g.join("")}function e(a){for(var b=a.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g")),e=b.length,h=[],i=0,j=0;i=2&&"["===m?b[i]=d(k):"\\"!==m&&(b[i]=k.replace(/[a-zA-Z]/g,function(a){var b=a.charCodeAt(0);return"["+String.fromCharCode(b&-33,32|b)+"]"}))}return b.join("")}for(var f=0,g=!1,h=!1,i=0,j=a.length;i=0;)f[l.charAt(m)]=k;var n=k[1],o=""+n;h.hasOwnProperty(o)||(g.push(n),h[o]=null)}g.push(/[\0-\uffff]/),e=a(g)}();var g=d.length,h=function(a){for(var b=a.sourceCode,i=a.basePos,k=[i,J],l=0,m=b.match(e)||[],n={},o=0,p=m.length;o=5&&"lang-"===s.substring(0,5),!q||t&&"string"==typeof t[1]||(q=!1,s=M),q||(n[r]=s)}var w=l;if(l+=r.length,q){var x=t[1],y=r.indexOf(x),z=y+x.length;t[2]&&(z=r.length-t[2].length,y=z-x.length);var A=s.substring(5);c(i+w,r.substring(0,y),h,k),c(i+w+y,x,j(A,x),k),c(i+w+z,r.substring(z),h,k)}else k.push(i+w,s)}a.decorations=k};return h}function f(a){var b=[],c=[];a.tripleQuotedStrings?b.push([D,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""]):a.multiLineStrings?b.push([D,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"]):b.push([D,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"]), -a.verbatimStrings&&c.push([D,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null]);var d=a.hashComments;d&&(a.cStyleComments?(d>1?b.push([F,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"]):b.push([F,/^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"]),c.push([D,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/,null])):b.push([F,/^#[^\r\n]*/,null,"#"])),a.cStyleComments&&(c.push([F,/^\/\/[^\r\n]*/,null]),c.push([F,/^\/\*[\s\S]*?(?:\*\/|$)/,null]));var f=a.regexLiterals;if(f){var g=f>1?"":"\n\r",h=g?".":"[\\S\\s]",i="/(?=[^/*"+g+"])(?:[^/\\x5B\\x5C"+g+"]|\\x5C"+h+"|\\x5B(?:[^\\x5C\\x5D"+g+"]|\\x5C"+h+")*(?:\\x5D|$))+/";c.push(["lang-regex",RegExp("^"+Q+"("+i+")")])}var j=a.types;j&&c.push([G,j]);var k=(""+a.keywords).replace(/^ | $/g,"");k.length&&c.push([E,new RegExp("^(?:"+k.replace(/[\s,]+/g,"|")+")\\b"),null]),b.push([J,/^\s+/,null," \r\n\t "]);var l="^.[^\\s\\w.$@'\"`/\\\\]*";return a.regexLiterals&&(l+="(?!s*/)"),c.push([H,/^@[a-z_$][a-z_$@0-9]*/i,null],[G,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[J,/^[a-z_$][a-z_$@0-9]*/i,null],[H,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[J,/^\\[\s\S]?/,null],[I,new RegExp(l),null]),e(b,c)}function g(a,b,c){function d(a){var b=a.nodeType;if(1!=b||f.test(a.className)){if((3==b||4==b)&&c){var i=a.nodeValue,j=i.match(g);if(j){var k=i.substring(0,j.index);a.nodeValue=k;var l=i.substring(j.index+j[0].length);if(l){var m=a.parentNode;m.insertBefore(h.createTextNode(l),a.nextSibling)}e(a),k||a.parentNode.removeChild(a)}}}else if("br"===a.nodeName)e(a),a.parentNode&&a.parentNode.removeChild(a);else for(var n=a.firstChild;n;n=n.nextSibling)d(n)}function e(a){function b(a,c){var d=c?a.cloneNode(!1):a,e=a.parentNode;if(e){var f=b(e,1),g=a.nextSibling;f.appendChild(d);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return d}for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var c,d=b(a.nextSibling,0);(c=d.parentNode)&&1===c.nodeType;)d=c;j.push(d)}for(var f=/(?:^|\s)nocode(?:\s|$)/,g=/\r\n?|\n/,h=a.ownerDocument,i=h.createElement("li");a.firstChild;)i.appendChild(a.firstChild);for(var j=[i],k=0;k=u&&(i+=2),f>=v&&(l+=2)}}finally{s&&(s.style.display=r)}}function i(a,b){for(var c=b.length;--c>=0;){var d=b[c];T.hasOwnProperty(d)?n.console&&console.warn("cannot override language handler %s",d):T[d]=a}}function j(a,b){return a&&T.hasOwnProperty(a)||(a=/^\s*"+a+"",d=d.firstChild,c&&g(d,c,!0);var e={langExtension:b,numberLines:c,sourceNode:d,pre:1};return k(e),d.innerHTML}function m(a,b){function c(a){return f.getElementsByTagName(a)}function e(){for(var b=n.PR_SHOULD_USE_CONTINUATION?p.now()+250:1/0;r|\\/=?|::?|<>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*",R=/\S/,S=f({keywords:B,hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),T={};i(S,["default-code"]),i(e([],[[J,/^[^]*(?:>|$)/],[F,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[I,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]),i(e([[J,/^[\s]+/,null," \t\r\n"],[O,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[K,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[N,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[I,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]),i(e([],[[O,/^[\s\S]+/]]),["uq.val"]),i(f({keywords:r,hashComments:!0,cStyleComments:!0,types:C}),["c","cc","cpp","cxx","cyc","m"]),i(f({keywords:"null,true,false"}),["json"]),i(f({keywords:t,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:C}),["cs"]),i(f({keywords:s,cStyleComments:!0}),["java"]),i(f({keywords:A,hashComments:!0,multiLineStrings:!0}),["bash","bsh","csh","sh"]),i(f({keywords:x,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),["cv","py","python"]),i(f({keywords:w,hashComments:!0,multiLineStrings:!0,regexLiterals:2}),["perl","pl","pm"]),i(f({keywords:y,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb","ruby"]),i(f({keywords:v,cStyleComments:!0,regexLiterals:!0}),["javascript","js"]),i(f({keywords:u,hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]),i(f({keywords:z,cStyleComments:!0,multilineStrings:!0}),["rc","rs","rust"]),i(e([],[[D,/^[\s\S]+/]]),["regex"]);var U=n.PR={createSimpleLexer:e,registerLangHandler:i,sourceDecorator:f,PR_ATTRIB_NAME:N,PR_ATTRIB_VALUE:O,PR_COMMENT:F,PR_DECLARATION:L,PR_KEYWORD:E,PR_LITERAL:H,PR_NOCODE:P,PR_PLAIN:J,PR_PUNCTUATION:I,PR_SOURCE:M,PR_STRING:D,PR_TAG:K,PR_TYPE:G,prettyPrintOne:IN_GLOBAL_SCOPE?n.prettyPrintOne=l:prettyPrintOne=l,prettyPrint:prettyPrint=IN_GLOBAL_SCOPE?n.prettyPrint=m:prettyPrint=m};"function"==typeof define&&define.amd&&define("google-code-prettify",[],function(){return U})}(),prettyPrint(),$(".clickable-row").on("click",function(){var a=$(this).data("href");window.location=a}),$("#dataset-filter").on("keyup",function(){var a=$(this).val();if($(".empty .panel").addClass("hide"),a){$(".dataset-filter").html(a),a=new RegExp(a,"i");var b=!1;$(".dataset").each(function(){var c=$(this),d=$(".dataset-title",c).text(),e=$(".dataset-description",c).text();d.match(a)||e.match(a)?(b=!0,c.removeClass("hide"),c.addClass("visible")):c.addClass("hide")}),b||$(".empty .panel").removeClass("hide")}else $(".dataset").removeClass("hide")}); \ No newline at end of file +function showGeoJsonMap(a){document.querySelector("#geojson-map").style.display="";var b=L.map("geojson-map");L.tileLayer("//{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:'© OpenStreetMap contributors',minZoom:1}).addTo(b);var c=L.geoJson(a).addTo(b);b.fitBounds(c.getBounds())}if(!jQuery)throw new Error("Bootstrap requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]}}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(window.jQuery),+function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function c(){f.trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),"string"==typeof b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d)};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.is("input")?"val":"html",e=c.data();a+="Text",e.resetText||c.data("resetText",c[d]()),c[d](e[a]||this.options[a]),setTimeout(function(){"loadingText"==a?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.closest('[data-toggle="buttons"]');if(a.length){var b=this.$element.find("input").prop("checked",!this.$element.hasClass("active")).trigger("change");"radio"===b.prop("type")&&a.find(".active").removeClass("active")}this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof c&&c;e||d.data("bs.button",e=new b(this,f)),"toggle"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(window.jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover"},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;this.sliding=!0,f&&this.pause(),e=e.length?e:this.$element.find(".item")[h]();var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});if(!e.hasClass("active")){if(this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(j),j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid")},0)}).emulateTransitionEnd(600)}else{if(this.$element.trigger(j),j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return f&&this.cycle(),this}};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .accordion-group > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?void this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find("[data-toggle=collapse][data-parent="+i+"]").not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(window.jQuery),+function(a){"use strict";function b(){a(d).remove(),a(e).each(function(b){var d=c(a(this));d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown")),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown"))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){if("ontouchstart"in document.documentElement&&a(''}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title:empty").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(window.jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(a(c).is("body")?window:c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#\w/.test(e)&&a(e);return f&&f.length&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parents(".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(window.jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.attr("data-target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top()),"function"==typeof h&&(h=f.bottom());var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;this.affixed!==i&&(this.unpin&&this.$element.css("top",""),this.affixed=i,this.unpin="bottom"==i?e.top-d:null,this.$element.removeClass(b.RESET).addClass("affix"+(i?"-"+i:"")),"bottom"==i&&this.$element.offset({top:document.body.offsetHeight-h-this.$element.height()}))}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(window.jQuery);var IN_GLOBAL_SCOPE=!0;window.PR_SHOULD_USE_CONTINUATION=!0;var prettyPrintOne,prettyPrint;!function(){function a(a){function b(a){var b=a.charCodeAt(0);if(92!==b)return b;var c=a.charAt(1);return b=l[c],b?b:c>="0"&&"7">=c?parseInt(a.substring(1),8):"u"===c||"x"===c?parseInt(a.substring(2),16):a.charCodeAt(1)}function c(a){if(32>a)return(16>a?"\\x0":"\\x")+a.toString(16);var b=String.fromCharCode(a);return"\\"===b||"-"===b||"]"===b||"^"===b?"\\"+b:b}function d(a){var d=a.substring(1,a.length-1).match(new RegExp("\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]","g")),e=[],f="^"===d[0],g=["["];f&&g.push("^");for(var h=f?1:0,i=d.length;i>h;++h){var j=d[h];if(/\\[bdsw]/i.test(j))g.push(j);else{var k,l=b(j);i>h+2&&"-"===d[h+1]?(k=b(d[h+2]),h+=2):k=l,e.push([l,k]),65>k||l>122||(65>k||l>90||e.push([32|Math.max(65,l),32|Math.min(k,90)]),97>k||l>122||e.push([-33&Math.max(97,l),-33&Math.min(k,122)]))}}e.sort(function(a,b){return a[0]-b[0]||b[1]-a[1]});for(var m=[],n=[],h=0;ho[0]&&(o[1]+1>o[0]&&g.push("-"),g.push(c(o[1])))}return g.push("]"),g.join("")}function e(a){for(var b=a.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g")),e=b.length,h=[],i=0,j=0;e>i;++i){var k=b[i];if("("===k)++j;else if("\\"===k.charAt(0)){var l=+k.substring(1);l&&(j>=l?h[l]=-1:b[i]=c(l))}}for(var i=1;ii;++i){var k=b[i];if("("===k)++j,h[j]||(b[i]="(?:");else if("\\"===k.charAt(0)){var l=+k.substring(1);l&&j>=l&&(b[i]="\\"+h[l])}}for(var i=0;e>i;++i)"^"===b[i]&&"^"!==b[i+1]&&(b[i]="");if(a.ignoreCase&&g)for(var i=0;e>i;++i){var k=b[i],m=k.charAt(0);k.length>=2&&"["===m?b[i]=d(k):"\\"!==m&&(b[i]=k.replace(/[a-zA-Z]/g,function(a){var b=a.charCodeAt(0);return"["+String.fromCharCode(-33&b,32|b)+"]"}))}return b.join("")}for(var f=0,g=!1,h=!1,i=0,j=a.length;j>i;++i){var k=a[i];if(k.ignoreCase)h=!0;else if(/[a-z]/i.test(k.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,""))){g=!0,h=!1;break}}for(var l={b:8,t:9,n:10,v:11,f:12,r:13},m=[],i=0,j=a.length;j>i;++i){var k=a[i];if(k.global||k.multiline)throw new Error(""+k);m.push("(?:"+e(k)+")")}return new RegExp(m.join("|"),h?"gi":"g")}function b(a,b){function c(a){var i=a.nodeType;if(1==i){if(d.test(a.className))return;for(var j=a.firstChild;j;j=j.nextSibling)c(j);var k=a.nodeName.toLowerCase();("br"===k||"li"===k)&&(e[h]="\n",g[h<<1]=f++,g[h++<<1|1]=a)}else if(3==i||4==i){var l=a.nodeValue;l.length&&(l=b?l.replace(/\r\n?/g,"\n"):l.replace(/[ \t\r\n]+/g," "),e[h]=l,g[h<<1]=f,f+=l.length,g[h++<<1|1]=a)}}var d=/(?:^|\s)nocode(?:\s|$)/,e=[],f=0,g=[],h=0;return c(a),{sourceCode:e.join("").replace(/\n$/,""),spans:g}}function c(a,b,c,d){if(b){var e={sourceCode:b,basePos:a};c(e),d.push.apply(d,e.decorations)}}function d(a){for(var b=void 0,c=a.firstChild;c;c=c.nextSibling){var d=c.nodeType;b=1===d?b?a:c:3===d&&R.test(c.nodeValue)?a:b}return b===a?void 0:b}function e(b,d){var e,f={};!function(){for(var c=b.concat(d),g=[],h={},i=0,j=c.length;j>i;++i){var k=c[i],l=k[3];if(l)for(var m=l.length;--m>=0;)f[l.charAt(m)]=k;var n=k[1],o=""+n;h.hasOwnProperty(o)||(g.push(n),h[o]=null)}g.push(/[\0-\uffff]/),e=a(g)}();var g=d.length,h=function(a){for(var b=a.sourceCode,i=a.basePos,k=[i,J],l=0,m=b.match(e)||[],n={},o=0,p=m.length;p>o;++o){var q,r=m[o],s=n[r],t=void 0;if("string"==typeof s)q=!1;else{var u=f[r.charAt(0)];if(u)t=r.match(u[1]),s=u[0];else{for(var v=0;g>v;++v)if(u=d[v],t=r.match(u[1])){s=u[0];break}t||(s=J)}q=s.length>=5&&"lang-"===s.substring(0,5),!q||t&&"string"==typeof t[1]||(q=!1,s=M),q||(n[r]=s)}var w=l;if(l+=r.length,q){var x=t[1],y=r.indexOf(x),z=y+x.length;t[2]&&(z=r.length-t[2].length,y=z-x.length);var A=s.substring(5);c(i+w,r.substring(0,y),h,k),c(i+w+y,x,j(A,x),k),c(i+w+z,r.substring(z),h,k)}else k.push(i+w,s)}a.decorations=k};return h}function f(a){var b=[],c=[];a.tripleQuotedStrings?b.push([D,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""]):a.multiLineStrings?b.push([D,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"]):b.push([D,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"]), +a.verbatimStrings&&c.push([D,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null]);var d=a.hashComments;d&&(a.cStyleComments?(d>1?b.push([F,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"]):b.push([F,/^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"]),c.push([D,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/,null])):b.push([F,/^#[^\r\n]*/,null,"#"])),a.cStyleComments&&(c.push([F,/^\/\/[^\r\n]*/,null]),c.push([F,/^\/\*[\s\S]*?(?:\*\/|$)/,null]));var f=a.regexLiterals;if(f){var g=f>1?"":"\n\r",h=g?".":"[\\S\\s]",i="/(?=[^/*"+g+"])(?:[^/\\x5B\\x5C"+g+"]|\\x5C"+h+"|\\x5B(?:[^\\x5C\\x5D"+g+"]|\\x5C"+h+")*(?:\\x5D|$))+/";c.push(["lang-regex",RegExp("^"+Q+"("+i+")")])}var j=a.types;j&&c.push([G,j]);var k=(""+a.keywords).replace(/^ | $/g,"");k.length&&c.push([E,new RegExp("^(?:"+k.replace(/[\s,]+/g,"|")+")\\b"),null]),b.push([J,/^\s+/,null," \r\n  "]);var l="^.[^\\s\\w.$@'\"`/\\\\]*";return a.regexLiterals&&(l+="(?!s*/)"),c.push([H,/^@[a-z_$][a-z_$@0-9]*/i,null],[G,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[J,/^[a-z_$][a-z_$@0-9]*/i,null],[H,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[J,/^\\[\s\S]?/,null],[I,new RegExp(l),null]),e(b,c)}function g(a,b,c){function d(a){var b=a.nodeType;if(1!=b||f.test(a.className)){if((3==b||4==b)&&c){var i=a.nodeValue,j=i.match(g);if(j){var k=i.substring(0,j.index);a.nodeValue=k;var l=i.substring(j.index+j[0].length);if(l){var m=a.parentNode;m.insertBefore(h.createTextNode(l),a.nextSibling)}e(a),k||a.parentNode.removeChild(a)}}}else if("br"===a.nodeName)e(a),a.parentNode&&a.parentNode.removeChild(a);else for(var n=a.firstChild;n;n=n.nextSibling)d(n)}function e(a){function b(a,c){var d=c?a.cloneNode(!1):a,e=a.parentNode;if(e){var f=b(e,1),g=a.nextSibling;f.appendChild(d);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return d}for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var c,d=b(a.nextSibling,0);(c=d.parentNode)&&1===c.nodeType;)d=c;j.push(d)}for(var f=/(?:^|\s)nocode(?:\s|$)/,g=/\r\n?|\n/,h=a.ownerDocument,i=h.createElement("li");a.firstChild;)i.appendChild(a.firstChild);for(var j=[i],k=0;kk;++k)i=j[k],i.className="L"+(k+m)%10,i.firstChild||i.appendChild(h.createTextNode(" ")),l.appendChild(i);a.appendChild(l)}function h(a){var b=/\bMSIE\s(\d+)/.exec(navigator.userAgent);b=b&&+b[1]<=8;var c=/\n/g,d=a.sourceCode,e=d.length,f=0,g=a.spans,h=g.length,i=0,j=a.decorations,k=j.length,l=0;j[k]=e;var m,n;for(n=m=0;k>n;)j[n]!==j[n+2]?(j[m++]=j[n++],j[m++]=j[n++]):n+=2;for(k=m,n=m=0;k>n;){for(var o=j[n],p=j[n+1],q=n+2;k>=q+2&&j[q+1]===p;)q+=2;j[m++]=o,j[m++]=p,n=q}k=j.length=m;var r,s=a.sourceNode;s&&(r=s.style.display,s.style.display="none");try{for(;h>i;){var t,u=(g[i],g[i+2]||e),v=j[l+2]||e,q=Math.min(u,v),w=g[i+1];if(1!==w.nodeType&&(t=d.substring(f,q))){b&&(t=t.replace(c,"\r")),w.nodeValue=t;var x=w.ownerDocument,y=x.createElement("span");y.className=j[l+1];var z=w.parentNode;z.replaceChild(y,w),y.appendChild(w),u>f&&(g[i+1]=w=x.createTextNode(d.substring(q,u)),z.insertBefore(w,y.nextSibling))}f=q,f>=u&&(i+=2),f>=v&&(l+=2)}}finally{s&&(s.style.display=r)}}function i(a,b){for(var c=b.length;--c>=0;){var d=b[c];T.hasOwnProperty(d)?n.console&&console.warn("cannot override language handler %s",d):T[d]=a}}function j(a,b){return a&&T.hasOwnProperty(a)||(a=/^\s*"+a+"",d=d.firstChild,c&&g(d,c,!0);var e={langExtension:b,numberLines:c,sourceNode:d,pre:1};return k(e),d.innerHTML}function m(a,b){function c(a){return f.getElementsByTagName(a)}function e(){for(var b=n.PR_SHOULD_USE_CONTINUATION?p.now()+250:1/0;rm;++m)j.push(i[l][m]);i=null;var p=Date;p.now||(p={now:function(){return+new Date}});var q,r=0,s=/\blang(?:uage)?-([\w.]+)(?!\S)/,t=/\bprettyprint\b/,u=/\bprettyprinted\b/,v=/pre|xmp/i,w=/^code$/i,x=/^(?:pre|code|xmp)$/i,y={};e()}var n=window,o=["break,continue,do,else,for,if,return,while"],p=[o,"auto,case,char,const,default,double,enum,extern,float,goto,inline,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],q=[p,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],r=[q,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,delegate,dynamic_cast,explicit,export,friend,generic,late_check,mutable,namespace,nullptr,property,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],s=[q,"abstract,assert,boolean,byte,extends,final,finally,implements,import,instanceof,interface,null,native,package,strictfp,super,synchronized,throws,transient"],t=[q,"abstract,as,base,bool,by,byte,checked,decimal,delegate,descending,dynamic,event,finally,fixed,foreach,from,group,implicit,in,interface,internal,into,is,let,lock,null,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where"],u="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes",v=[q,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],w="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",x=[o,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],y=[o,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],z=[o,"as,assert,const,copy,drop,enum,extern,fail,false,fn,impl,let,log,loop,match,mod,move,mut,priv,pub,pure,ref,self,static,struct,true,trait,type,unsafe,use"],A=[o,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],B=[r,t,v,w,x,y,A],C=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/,D="str",E="kwd",F="com",G="typ",H="lit",I="pun",J="pln",K="tag",L="dec",M="src",N="atn",O="atv",P="nocode",Q="(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*",R=/\S/,S=f({keywords:B,hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),T={};i(S,["default-code"]),i(e([],[[J,/^[^]*(?:>|$)/],[F,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[I,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]),i(e([[J,/^[\s]+/,null," \r\n"],[O,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[K,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[N,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[I,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]),i(e([],[[O,/^[\s\S]+/]]),["uq.val"]),i(f({keywords:r,hashComments:!0,cStyleComments:!0,types:C}),["c","cc","cpp","cxx","cyc","m"]),i(f({keywords:"null,true,false"}),["json"]),i(f({keywords:t,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:C}),["cs"]),i(f({keywords:s,cStyleComments:!0}),["java"]),i(f({keywords:A,hashComments:!0,multiLineStrings:!0}),["bash","bsh","csh","sh"]),i(f({keywords:x,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),["cv","py","python"]),i(f({keywords:w,hashComments:!0,multiLineStrings:!0,regexLiterals:2}),["perl","pl","pm"]),i(f({keywords:y,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb","ruby"]),i(f({keywords:v,cStyleComments:!0,regexLiterals:!0}),["javascript","js"]),i(f({keywords:u,hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]),i(f({keywords:z,cStyleComments:!0,multilineStrings:!0}),["rc","rs","rust"]),i(e([],[[D,/^[\s\S]+/]]),["regex"]);var U=n.PR={createSimpleLexer:e,registerLangHandler:i,sourceDecorator:f,PR_ATTRIB_NAME:N,PR_ATTRIB_VALUE:O,PR_COMMENT:F,PR_DECLARATION:L,PR_KEYWORD:E,PR_LITERAL:H,PR_NOCODE:P,PR_PLAIN:J,PR_PUNCTUATION:I,PR_SOURCE:M,PR_STRING:D,PR_TAG:K,PR_TYPE:G,prettyPrintOne:IN_GLOBAL_SCOPE?n.prettyPrintOne=l:prettyPrintOne=l,prettyPrint:prettyPrint=IN_GLOBAL_SCOPE?n.prettyPrint=m:prettyPrint=m};"function"==typeof define&&define.amd&&define("google-code-prettify",[],function(){return U})}(),prettyPrint(),$(".clickable-row").on("click",function(){var a=$(this).data("href");window.location=a}),$("#dataset-filter").on("keyup",function(){var a=$(this).val();if($(".empty .panel").addClass("hide"),a){$(".dataset-filter").html(a),a=new RegExp(a,"i");var b=!1;$(".dataset").each(function(){var c=$(this),d=$(".dataset-title",c).text(),e=$(".dataset-description",c).text();d.match(a)||e.match(a)?(b=!0,c.removeClass("hide"),c.addClass("visible")):c.addClass("hide")}),b||$(".empty .panel").removeClass("hide")}else $(".dataset").removeClass("hide")}); \ No newline at end of file From 256a8968667bad842981ef58f9604fa499fc3abb Mon Sep 17 00:00:00 2001 From: Jan Vansteenlandt Date: Sat, 4 Feb 2017 16:46:30 +0100 Subject: [PATCH 02/68] Small fix for creating indexing jobs and changed the draft text for datasets --- .../Core/Definitions/DefinitionController.php | 4 +- app/views/ui/datasets/list.blade.php | 336 +++++++++--------- 2 files changed, 170 insertions(+), 170 deletions(-) diff --git a/app/Tdt/Core/Definitions/DefinitionController.php b/app/Tdt/Core/Definitions/DefinitionController.php index 0fae79e5..53a66394 100755 --- a/app/Tdt/Core/Definitions/DefinitionController.php +++ b/app/Tdt/Core/Definitions/DefinitionController.php @@ -353,7 +353,7 @@ public function put($uri) $definition = $this->definitions->store($input); // Check if dataset should be indexed: create job and link with previously created definition. - if (isset($input['to_be_indexed']) && $input['to_be_indexed'] == 1) { + /*if (isset($input['to_be_indexed']) && $input['to_be_indexed'] == 1) { // Create new job $job_id = $this->createLinkJob($uri, $input); @@ -363,7 +363,7 @@ public function put($uri) // Link job with definition through job_id column. $input['job_id'] = $job_id; $definition = $this->definitions->update($uri, $input); // update previously created definition - } + }*/ // Check if dataset should be indexed: create job and link with previously created definition. if (isset($input['to_be_indexed']) && $input['to_be_indexed'] == 1) { diff --git a/app/views/ui/datasets/list.blade.php b/app/views/ui/datasets/list.blade.php index 712130f4..9563c9ff 100755 --- a/app/views/ui/datasets/list.blade.php +++ b/app/views/ui/datasets/list.blade.php @@ -19,14 +19,14 @@

Created datasets

- @if(empty($definitions) || $definitions->count() == 0) -
-
-    - You have not created any datasets yet. -
-
- @else + @if(empty($definitions) || $definitions->count() == 0) +
+
+    + You have not created any datasets yet. +
+
+ @else @foreach($definitions as $definition) @@ -56,67 +56,67 @@

id) }}'>{{ $definition->collection_uri . '/' . $definition->resource_name }} - @if($definition->draft_flag==1) ..processing @endif -

-
-
- + -
-
- - + @if($i==0) + data-step='6' + data-intro='Removes the entire definition, and the identifier that was used will become available again.' + data-position="left" + @endif + > + + + @endif + + + + + + - - @endforeach - @endif - + + @endforeach + @endif +

Updated datasets

- @if(empty($definitions_updated) || $definitions_updated->count() == 0) -
-
-    - You have not updated any datasets yet. -
-
- @else + @if(empty($definitions_updated) || $definitions_updated->count() == 0) +
+
+    + You have not updated any datasets yet. +
+
+ @else @foreach($definitions_updated as $definition) @@ -146,67 +146,67 @@

id) }}'>{{ $definition->collection_uri . '/' . $definition->resource_name }} - @if($definition->draft_flag==1) ..processing @endif -

-
-
- + -
-
- - + @if($i==0) + data-step='6' + data-intro='Removes the entire definition, and the identifier that was used will become available again.' + data-position="left" + @endif + > + + + @endif + + + + + + - - @endforeach - @endif - + + @endforeach + @endif +

Other datasets

- @if(empty($definitions_others) || $definitions_others->count() == 0) -
-
-    - This datatank is hungry for data, no other datasets were added yet. -
-
- @else + @if(empty($definitions_others) || $definitions_others->count() == 0) +
+
+    + This datatank is hungry for data, no other datasets were added yet. +
+
+ @else @foreach($definitions_others as $definition) @@ -236,57 +236,57 @@

id) }}'>{{ $definition->collection_uri . '/' . $definition->resource_name }} - @if($definition->draft_flag==1) ..processing @endif -

-
-
- + -
-
- - + @if($i==0) + data-step='6' + data-intro='Removes the entire definition, and the identifier that was used will become available again.' + data-position="left" + @endif + > + + + @endif + + + + + + - - @endforeach - @endif - + + @endforeach + @endif +
From 25ffdb1aa2a57325ab9999433971b8abd4018732 Mon Sep 17 00:00:00 2001 From: Jan Vansteenlandt Date: Sat, 4 Feb 2017 16:47:10 +0100 Subject: [PATCH 03/68] Removed obsolete code --- app/Tdt/Core/Definitions/DefinitionController.php | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/app/Tdt/Core/Definitions/DefinitionController.php b/app/Tdt/Core/Definitions/DefinitionController.php index 53a66394..7b0386ac 100755 --- a/app/Tdt/Core/Definitions/DefinitionController.php +++ b/app/Tdt/Core/Definitions/DefinitionController.php @@ -352,19 +352,6 @@ public function put($uri) // Create the new definition $definition = $this->definitions->store($input); - // Check if dataset should be indexed: create job and link with previously created definition. - /*if (isset($input['to_be_indexed']) && $input['to_be_indexed'] == 1) { - // Create new job - $job_id = $this->createLinkJob($uri, $input); - - //when a job is done, the definition needs to be checked, if the draft is set to true, set it to false. - $input['draft_flag'] = 0; - - // Link job with definition through job_id column. - $input['job_id'] = $job_id; - $definition = $this->definitions->update($uri, $input); // update previously created definition - }*/ - // Check if dataset should be indexed: create job and link with previously created definition. if (isset($input['to_be_indexed']) && $input['to_be_indexed'] == 1) { // Create new job From a58e6d9047e8779cee3c7d20ff0406f47016cd47 Mon Sep 17 00:00:00 2001 From: Jan Vansteenlandt Date: Sat, 4 Feb 2017 16:54:19 +0100 Subject: [PATCH 04/68] Small tweak for views that have no updated definitions --- .../Core/Definitions/DefinitionController.php | 14 ++++++------- app/Tdt/Core/Ui/DatasetController.php | 20 ++++++++++++------- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/app/Tdt/Core/Definitions/DefinitionController.php b/app/Tdt/Core/Definitions/DefinitionController.php index 7b0386ac..a6d2e34f 100755 --- a/app/Tdt/Core/Definitions/DefinitionController.php +++ b/app/Tdt/Core/Definitions/DefinitionController.php @@ -285,16 +285,16 @@ private function editLinkedJob($uri, $input) $job->save(); // Push the job to the queue - $job_name = $job->collection_uri . '/' . $job->name; + $job_name = $job->collection_uri . '/' . $job->name; - \Queue::push(function ($queued_job) use ($job_name) { - \Artisan::call('input:execute', ['jobname' => $job_name]); + \Queue::push(function ($queued_job) use ($job_name) { + \Artisan::call('input:execute', ['jobname' => $job_name]); - $queued_job->delete(); - }); + $queued_job->delete(); + }); - $job->added_to_queue = true; - $job->save(); + $job->added_to_queue = true; + $job->save(); return $job->id; } diff --git a/app/Tdt/Core/Ui/DatasetController.php b/app/Tdt/Core/Ui/DatasetController.php index dcddf366..bfdff2ce 100755 --- a/app/Tdt/Core/Ui/DatasetController.php +++ b/app/Tdt/Core/Ui/DatasetController.php @@ -29,26 +29,32 @@ public function getIndex() $definitions = \Definition::where('user_id', $user->id)->get(); // Get updated definitions - $updatedDefinitionIds = \DB::table('definitions_updates') + $updatedDefinitions = \DB::table('definitions_updates') ->where('definitions_updates.user_id', $user->id) ->select('definitions_updates.definition_id') ->get(); - $updatedDefinitions = array(); + $updatedDefinitionIds = []; - foreach ($updatedDefinitionIds as $defid) { - $updatedDefinitions[] = $defid->definition_id; + foreach ($updatedDefinitions as $updatedDefinition) { + $updatedDefinitionIds[] = $updatedDefinition->definition_id; } $definitions_updated = null; - if (! empty($updatedDefinitions)) { - $definitions_updated = \Definition::whereIn('id', $updatedDefinitions) + if (! empty($updatedDefinitionIds)) { + $definitions_updated = \Definition::whereIn('id', $updatedDefinitionIds) ->get(); } // Get other definitions - $definitions_others = \Definition::where('user_id', '!=', $user->id)->whereNotIn('id', $updatedDefinitions)->get(); + $otherDefinitionsQuery = \Definition::where('user_id', '!=', $user->id); + + if (! empty($updatedDefinitionIds)) { + $otherDefinitionsQuery->whereNotIn('id', $updatedDefinitionIds); + } + + $definitions_others = $otherDefinitionsQuery->get(); return \View::make('ui.datasets.list') ->with('title', 'Dataset management (Created/Updated/Others) | The Datatank') From a9f4ac4ea014123ff3d9499e761427efd8d0451d Mon Sep 17 00:00:00 2001 From: Jan Vansteenlandt Date: Fri, 17 Feb 2017 10:47:11 +0100 Subject: [PATCH 05/68] Small fixes for the definition controller and indexing jobs --- .../Core/Definitions/DefinitionController.php | 54 +++++++++++++------ ..._01_162155_definitions_version_control.php | 2 +- 2 files changed, 38 insertions(+), 18 deletions(-) diff --git a/app/Tdt/Core/Definitions/DefinitionController.php b/app/Tdt/Core/Definitions/DefinitionController.php index a6d2e34f..dd9119f3 100755 --- a/app/Tdt/Core/Definitions/DefinitionController.php +++ b/app/Tdt/Core/Definitions/DefinitionController.php @@ -68,7 +68,6 @@ private function validateParameters($type, $short_name, $params) } $validated_params[$key] = @$info['default_value']; - } else { if (! empty($rules[$key])) { $validator = \Validator::make( @@ -198,13 +197,7 @@ public function createLinkJob($uri, $input) $job_name = $job->collection_uri . '/' . $job->name; - \Queue::push(function ($queued_job) use ($job_name) { - \Artisan::call('input:execute', [ - 'jobname' => $job_name - ]); - - $queued_job->delete(); - }); + $this->addJobToQueue($job_name, $uri); return $job->id; } @@ -284,14 +277,10 @@ private function editLinkedJob($uri, $input) $job->loader_type = $this->getClass($loader); $job->save(); - // Push the job to the queue $job_name = $job->collection_uri . '/' . $job->name; - \Queue::push(function ($queued_job) use ($job_name) { - \Artisan::call('input:execute', ['jobname' => $job_name]); - - $queued_job->delete(); - }); + // Push the job to the queue + $this->addJobToQueue($job_name, $uri); $job->added_to_queue = true; $job->save(); @@ -359,6 +348,7 @@ public function put($uri) // Link job with definition through job_id column. $input['job_id'] = $job_id; + $definition = $this->definitions->update($uri, $input); // update previously created definition } @@ -422,15 +412,16 @@ public function patch($uri) $input['collection_uri'] = @$matches[1]; $input['resource_name'] = @$matches[2]; + // Add uploaded file and change uri. // TODO: Validate file extension based on selected dataset/definition. - if(isset($input['fileupload']) && $input['fileupload'] != '') { + if (isset($input['fileupload']) && $input['fileupload'] != '') { $input['uri'] = 'file://' . $input['fileupload']; } // Add uploaded file and change uri. // TODO: Validate file extension based on selected dataset/definition. - if(isset($input['fileupload']) && $input['fileupload'] != '') { + if (isset($input['fileupload']) && $input['fileupload'] != '') { $input['uri'] = 'file://' . $input['fileupload']; } @@ -454,7 +445,8 @@ public function patch($uri) // Check if dataset has a linked job (for updating purposes only if uri dataset field has been modified) if ($definition['job_id'] != null && isset($input['fileupload']) && $input['fileupload'] != '') { - $input['original-dataset-type'] = strtolower(chop($definition['source_type'],'Definition')); + $input['original-dataset-type'] = strtolower(chop($definition['source_type'], 'Definition')); + $job_id = $this->editLinkedJob($uri, $input); } @@ -545,4 +537,32 @@ private function fetchInput() return $input; } + + /** + * Execute a job for a definition + * + * @param string $job_name + * @param string $definition_uri + * @return void + */ + private function addJobToQueue($job_name, $definition_uri) + { + $definitions = \App::make('Tdt\Core\Repositories\Interfaces\DefinitionRepositoryInterface'); + + $definition = $definitions->getByIdentifier($definition_uri); + $definition['draft_flag'] = true; + $definitions->update($definition_uri, $definition); + + \Queue::push(function ($queued_job) use ($job_name, $definition_uri, $definitions) { + \Artisan::call('input:execute', [ + 'jobname' => $job_name + ]); + + $definition = $definitions->getByIdentifier($definition_uri); + $definition['draft_flag'] = false; + $definitions->update($definition_uri, $definition); + + $queued_job->delete(); + }); + } } diff --git a/app/database/migrations/2017_02_01_162155_definitions_version_control.php b/app/database/migrations/2017_02_01_162155_definitions_version_control.php index e3356341..32169b99 100644 --- a/app/database/migrations/2017_02_01_162155_definitions_version_control.php +++ b/app/database/migrations/2017_02_01_162155_definitions_version_control.php @@ -15,7 +15,7 @@ public function up() Schema::table('definitions', function ($table) { $table->integer('user_id')->unsigned(); $table->string('username', 255); - $table->integer('draft_flag')->unsigned()->nullable(); + $table->integer('draft_flag')->unsigned()->nullable(); }); Schema::create('definitions_updates', function ($table) { From db9a320ecee69aa64277b22c362583b2177613be Mon Sep 17 00:00:00 2001 From: Jan Vansteenlandt Date: Fri, 17 Feb 2017 13:46:16 +0100 Subject: [PATCH 06/68] Bugfix for dynamically declaring the source type of an indexed data source --- .../ELASTICSEARCHController.php | 9 ++--- app/Tdt/Core/Datasets/DatasetController.php | 35 +++++++++---------- .../Core/Definitions/DefinitionController.php | 13 ++++--- 3 files changed, 26 insertions(+), 31 deletions(-) diff --git a/app/Tdt/Core/DataControllers/ELASTICSEARCHController.php b/app/Tdt/Core/DataControllers/ELASTICSEARCHController.php index 3add24c7..675ad61c 100644 --- a/app/Tdt/Core/DataControllers/ELASTICSEARCHController.php +++ b/app/Tdt/Core/DataControllers/ELASTICSEARCHController.php @@ -5,11 +5,8 @@ use Tdt\Core\Datasets\Data; use Tdt\Core\Pager; use Elastica\Client; -use Elastica\Document; -use Elastica\Query\Term; use Elastica\Search; use Elastica\Query; -use Elastica\Exception\ResponseException; use Elastica\Query\SimpleQueryString; use Elastica\Query\MatchAll; @@ -82,9 +79,9 @@ public function readData($source_definition, $rest_parameters = []) public static function getParameters() { $query_params = [ - "query" => [ - "required" => false, - "description" => "A value that will be used to perform a full text-search on the data." + 'query' => [ + 'required' => false, + 'description' => 'A value that will be used to perform a full text-search on the data.' ] ]; diff --git a/app/Tdt/Core/Datasets/DatasetController.php b/app/Tdt/Core/Datasets/DatasetController.php index 41fd1208..32539c0c 100755 --- a/app/Tdt/Core/Datasets/DatasetController.php +++ b/app/Tdt/Core/Datasets/DatasetController.php @@ -9,7 +9,6 @@ use Tdt\Core\ApiController; use Tdt\Core\Formatters\FormatHelper; use EasyRdf\RdfNamespace; -use Log; /** * DatasetController @@ -29,7 +28,7 @@ class DatasetController extends ApiController * @return \Response */ public function get($uri) - { + { // Check permissions Auth::requirePermissions('dataset.view'); @@ -56,14 +55,13 @@ public function get($uri) $cache_string .= http_build_query($query_string_params); $cache_string = sha1($cache_string); - + if (Cache::has($cache_string)) { return ContentNegotiator::getResponse(Cache::get($cache_string), $extension); } else { // Get definition $definition = $this->definition->getByIdentifier($uri); - if ($definition) { // Get source definition $source_definition = $this->definition->getDefinitionSource( @@ -71,19 +69,20 @@ public function get($uri) $definition['source_type'] ); - //when requesting data, the formatter should notice the linked job, + // when requesting data, the formatter should notice the linked job, // and treat it as an elasticsearch data type. - - if ($definition['job_id'] != null) { - - $source_definition['type'] = 'ELASTICSEARCH'; - $source_definition['host'] = "http://tdt.dev/"; - $source_definition['port'] = "9200"; - $source_definition['username'] = ''; - $source_definition['password'] = ''; - $source_definition['es_type'] = $definition['collection_uri'].'_'.$definition['resource_name']; - $source_definition['es_index'] = "datatank"; - } + if (! is_null($definition['job_id'])) { + // Get the job from the definition + $job = \Job::find($definition['job_id']); + + $source_definition['type'] = 'ELASTICSEARCH'; + $source_definition['host'] = $job->loader->host; + $source_definition['port'] = $job->loader->port; + $source_definition['username'] = empty($job->loader->username) ? '' : $job->loader->username; + $source_definition['password'] = empty($job->loader->password) ? '' : $job->loader->password; + $source_definition['es_type'] = $job->loader->es_type; + $source_definition['es_index'] = $job->loader->es_index; + } if ($source_definition) { $source_type = $source_definition['type']; @@ -184,7 +183,7 @@ public function get($uri) // Add source definition to the object $data->source_definition = $source_definition; - + // Add dataset updates information to the object $data->updates_info = \DB::table('definitions_updates') ->where('definition_id', $definition['id']) @@ -196,7 +195,7 @@ public function get($uri) // Add the available, supported formats to the object $format_helper = new FormatHelper(); $data->formats = $format_helper->getAvailableFormats($data); - + // Store in cache if (! empty($definition['cache_minutes'])) { Cache::put($cache_string, $data, $definition['cache_minutes']); diff --git a/app/Tdt/Core/Definitions/DefinitionController.php b/app/Tdt/Core/Definitions/DefinitionController.php index dd9119f3..2ea19138 100755 --- a/app/Tdt/Core/Definitions/DefinitionController.php +++ b/app/Tdt/Core/Definitions/DefinitionController.php @@ -236,14 +236,13 @@ private function editLinkedJob($uri, $input) /* No extra fields */ } - // Load class construction (always elasticsearch) $params['load']['type'] = 'elasticsearch'; - $params['load']['host'] = 'localhost'; - $params['load']['port'] = 9200; - $params['load']['es_index'] = ''; - $params['load']['es_type'] = $collection_uri . '_' . $name; - $params['load']['username'] = ''; - $params['load']['password'] = ''; + $params['load']['host'] = \Config::get('database.connections.tdt_elasticsearch.host', 'localhost'); + $params['load']['port'] = \Config::get('database.connections.tdt_elasticsearch.port', 9200); + $params['load']['es_index'] = \Config::get('database.connections.tdt_elasticsearch.index', 'datatank'); + $params['load']['es_type'] = trim($collection_uri) . '_' . trim($name); + $params['load']['username'] = $input['username']; + $params['load']['password'] = $input['password']; // Add schedule $params['schedule'] = $job->schedule; From 26a52f5e3607a99fe16acf0a347f25613c9b4131 Mon Sep 17 00:00:00 2001 From: Jan Vansteenlandt Date: Fri, 17 Feb 2017 14:01:37 +0100 Subject: [PATCH 07/68] Small tweak --- app/Tdt/Core/Definitions/DefinitionController.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/Tdt/Core/Definitions/DefinitionController.php b/app/Tdt/Core/Definitions/DefinitionController.php index 2ea19138..ce988834 100755 --- a/app/Tdt/Core/Definitions/DefinitionController.php +++ b/app/Tdt/Core/Definitions/DefinitionController.php @@ -153,9 +153,9 @@ public function createLinkJob($uri, $input) $params['load']['host'] = \Config::get('database.connections.tdt_elasticsearch.host', 'localhost'); $params['load']['port'] = \Config::get('database.connections.tdt_elasticsearch.port', 9200); $params['load']['es_index'] = \Config::get('database.connections.tdt_elasticsearch.index', 'datatank'); - $params['load']['es_type'] = trim($collection_uri) . '_' . trim($name); - $params['load']['username'] = $input['username']; - $params['load']['password'] = $input['password']; + $params['load']['es_type'] = str_replace(' ', '_', trim($collection_uri) . '_' . trim($name)); + $params['load']['username'] = \Config::get('database.connections.tdt_elasticsearch.username', ''); + $params['load']['password'] = \Config::get('database.connections.tdt_elasticsearch.password', ''); // Add schedule $params['schedule'] = $input['schedule']; @@ -240,9 +240,9 @@ private function editLinkedJob($uri, $input) $params['load']['host'] = \Config::get('database.connections.tdt_elasticsearch.host', 'localhost'); $params['load']['port'] = \Config::get('database.connections.tdt_elasticsearch.port', 9200); $params['load']['es_index'] = \Config::get('database.connections.tdt_elasticsearch.index', 'datatank'); - $params['load']['es_type'] = trim($collection_uri) . '_' . trim($name); - $params['load']['username'] = $input['username']; - $params['load']['password'] = $input['password']; + $params['load']['es_type'] = str_replace(' ', '_', trim($collection_uri) . '_' . trim($name)); + $params['load']['username'] = \Config::get('database.connections.tdt_elasticsearch.username', ''); + $params['load']['password'] = \Config::get('database.connections.tdt_elasticsearch.password', ''); // Add schedule $params['schedule'] = $job->schedule; From 73db42946c7d967b2bd0ed58278a4633f2fa21ce Mon Sep 17 00:00:00 2001 From: Jan Vansteenlandt Date: Sat, 18 Feb 2017 12:41:50 +0100 Subject: [PATCH 08/68] Update PHPExcel dependency to be compatible with PHP7 --- composer.json | 2 +- composer.lock | 91 ++++++++++++++++++++++++++------------------------- 2 files changed, 47 insertions(+), 46 deletions(-) diff --git a/composer.json b/composer.json index 88e52dd8..f4e60569 100644 --- a/composer.json +++ b/composer.json @@ -17,7 +17,7 @@ }, "require": { "laravel/framework": "4.2.1", - "phpoffice/phpexcel": "1.8.0", + "phpoffice/phpexcel": "1.8.1", "phpunit/phpunit" : "4.0.17", "easyrdf/easyrdf" : "dev-master", "kriswallsmith/buzz": "0.10", diff --git a/composer.lock b/composer.lock index 31f98630..bc67947e 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,8 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "26c62e3a8bb2b998e4510d3884cb2d39", - "content-hash": "3e724b5b7bac21fc8f27553c28aba7d9", + "hash": "6de23242b32f836bc14cfbf4a7e509ae", + "content-hash": "74a23c82a5fbbc56c42d3ca16cb8a828", "packages": [ { "name": "cartalyst/sentry", @@ -903,16 +903,16 @@ }, { "name": "monolog/monolog", - "version": "1.21.0", + "version": "1.22.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "f42fbdfd53e306bda545845e4dbfd3e72edb4952" + "reference": "bad29cb8d18ab0315e6c477751418a82c850d558" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f42fbdfd53e306bda545845e4dbfd3e72edb4952", - "reference": "f42fbdfd53e306bda545845e4dbfd3e72edb4952", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/bad29cb8d18ab0315e6c477751418a82c850d558", + "reference": "bad29cb8d18ab0315e6c477751418a82c850d558", "shasum": "" }, "require": { @@ -923,7 +923,7 @@ "psr/log-implementation": "1.0.0" }, "require-dev": { - "aws/aws-sdk-php": "^2.4.9", + "aws/aws-sdk-php": "^2.4.9 || ^3.0", "doctrine/couchdb": "~1.0@dev", "graylog2/gelf-php": "~1.0", "jakub-onderka/php-parallel-lint": "0.9", @@ -977,7 +977,7 @@ "logging", "psr-3" ], - "time": "2016-07-29 03:23:52" + "time": "2016-11-26 00:15:39" }, { "name": "muka/shape-reader", @@ -1289,16 +1289,16 @@ }, { "name": "phpoffice/phpexcel", - "version": "1.8.0", + "version": "1.8.1", "source": { "type": "git", "url": "https://github.com/PHPOffice/PHPExcel.git", - "reference": "e69a5e4d0ffa7fb6f171859e0a04346e580df30b" + "reference": "372c7cbb695a6f6f1e62649381aeaa37e7e70b32" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPOffice/PHPExcel/zipball/e69a5e4d0ffa7fb6f171859e0a04346e580df30b", - "reference": "e69a5e4d0ffa7fb6f171859e0a04346e580df30b", + "url": "https://api.github.com/repos/PHPOffice/PHPExcel/zipball/372c7cbb695a6f6f1e62649381aeaa37e7e70b32", + "reference": "372c7cbb695a6f6f1e62649381aeaa37e7e70b32", "shasum": "" }, "require": { @@ -1342,7 +1342,7 @@ "xls", "xlsx" ], - "time": "2014-03-02 15:22:49" + "time": "2015-05-01 07:00:55" }, { "name": "phpseclib/phpseclib", @@ -2322,23 +2322,24 @@ }, { "name": "swiftmailer/swiftmailer", - "version": "v5.4.3", + "version": "v5.4.6", "source": { "type": "git", "url": "https://github.com/swiftmailer/swiftmailer.git", - "reference": "4cc92842069c2bbc1f28daaaf1d2576ec4dfe153" + "reference": "81fdccfaf8bdc5d5d7a1ef6bb3a61bbb1a6c4a3e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/4cc92842069c2bbc1f28daaaf1d2576ec4dfe153", - "reference": "4cc92842069c2bbc1f28daaaf1d2576ec4dfe153", + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/81fdccfaf8bdc5d5d7a1ef6bb3a61bbb1a6c4a3e", + "reference": "81fdccfaf8bdc5d5d7a1ef6bb3a61bbb1a6c4a3e", "shasum": "" }, "require": { "php": ">=5.3.3" }, "require-dev": { - "mockery/mockery": "~0.9.1" + "mockery/mockery": "~0.9.1", + "symfony/phpunit-bridge": "~3.2" }, "type": "library", "extra": { @@ -2371,7 +2372,7 @@ "mail", "mailer" ], - "time": "2016-07-08 11:51:25" + "time": "2017-02-13 07:52:53" }, { "name": "symfony/browser-kit", @@ -2648,16 +2649,16 @@ }, { "name": "symfony/event-dispatcher", - "version": "v2.8.13", + "version": "v2.8.17", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "25c576abd4e0f212e678fe8b2bd9a9a98c7ea934" + "reference": "74877977f90fb9c3e46378d5764217c55f32df34" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/25c576abd4e0f212e678fe8b2bd9a9a98c7ea934", - "reference": "25c576abd4e0f212e678fe8b2bd9a9a98c7ea934", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/74877977f90fb9c3e46378d5764217c55f32df34", + "reference": "74877977f90fb9c3e46378d5764217c55f32df34", "shasum": "" }, "require": { @@ -2704,20 +2705,20 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2016-10-13 01:43:15" + "time": "2017-01-02 20:30:24" }, { "name": "symfony/filesystem", - "version": "v2.8.13", + "version": "v2.8.17", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "a3784111af9f95f102b6411548376e1ae7c93898" + "reference": "5b77d49ab76e5b12743b359ef4b4a712e6f5360d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/a3784111af9f95f102b6411548376e1ae7c93898", - "reference": "a3784111af9f95f102b6411548376e1ae7c93898", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/5b77d49ab76e5b12743b359ef4b4a712e6f5360d", + "reference": "5b77d49ab76e5b12743b359ef4b4a712e6f5360d", "shasum": "" }, "require": { @@ -2753,7 +2754,7 @@ ], "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", - "time": "2016-10-18 04:28:30" + "time": "2017-01-08 20:43:03" }, { "name": "symfony/finder", @@ -3165,16 +3166,16 @@ }, { "name": "symfony/yaml", - "version": "v2.8.13", + "version": "v2.8.17", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "396784cd06b91f3db576f248f2402d547a077787" + "reference": "322a8c2dfbca15ad6b1b27e182899f98ec0e0153" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/396784cd06b91f3db576f248f2402d547a077787", - "reference": "396784cd06b91f3db576f248f2402d547a077787", + "url": "https://api.github.com/repos/symfony/yaml/zipball/322a8c2dfbca15ad6b1b27e182899f98ec0e0153", + "reference": "322a8c2dfbca15ad6b1b27e182899f98ec0e0153", "shasum": "" }, "require": { @@ -3210,7 +3211,7 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2016-10-21 20:59:10" + "time": "2017-01-21 16:40:50" }, { "name": "tdt/input", @@ -3218,12 +3219,12 @@ "source": { "type": "git", "url": "https://github.com/tdt/input.git", - "reference": "fe2155d6972681f3e983f29f0e3f9af141d6bac6" + "reference": "91bc366f2aad6d57f5c1128976b0397b0eb2124e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tdt/input/zipball/fe2155d6972681f3e983f29f0e3f9af141d6bac6", - "reference": "fe2155d6972681f3e983f29f0e3f9af141d6bac6", + "url": "https://api.github.com/repos/tdt/input/zipball/91bc366f2aad6d57f5c1128976b0397b0eb2124e", + "reference": "91bc366f2aad6d57f5c1128976b0397b0eb2124e", "shasum": "" }, "require": { @@ -3240,9 +3241,9 @@ }, "require-dev": { "coreation/gisconverter": "dev-master", + "coreation/php-shapefile": "dev-master", "illuminate/support": "4.2.1", "mockery/mockery": "dev-master", - "muka/shape-reader": "dev-master", "neitanod/forceutf8": "dev-master", "nesbot/carbon": "~1.14", "orchestra/testbench": "2.2.*", @@ -3262,7 +3263,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "time": "2016-10-01 09:34:38" + "time": "2016-11-16 14:15:28" }, { "name": "tdt/json", @@ -3404,21 +3405,21 @@ "source": { "type": "git", "url": "https://github.com/padraic/mockery.git", - "reference": "8569c87a009c2858884ed1e3ae5e5700035aff7b" + "reference": "e20e6dc435a9ef68fcf566dad8b232f170a1e3c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/padraic/mockery/zipball/8569c87a009c2858884ed1e3ae5e5700035aff7b", - "reference": "8569c87a009c2858884ed1e3ae5e5700035aff7b", + "url": "https://api.github.com/repos/padraic/mockery/zipball/e20e6dc435a9ef68fcf566dad8b232f170a1e3c1", + "reference": "e20e6dc435a9ef68fcf566dad8b232f170a1e3c1", "shasum": "" }, "require": { "hamcrest/hamcrest-php": "~2.0", "lib-pcre": ">=7.0", - "php": ">=5.4.0" + "php": ">=5.6.0" }, "require-dev": { - "phpunit/phpunit": "~4.0" + "phpunit/phpunit": "~5.7" }, "type": "library", "extra": { @@ -3461,7 +3462,7 @@ "test double", "testing" ], - "time": "2016-10-27 15:37:22" + "time": "2017-02-16 08:49:25" } ], "aliases": [], From 96a09dcf48615b838bc97b6acde27e11e62e48ab Mon Sep 17 00:00:00 2001 From: Jan Vansteenlandt Date: Sat, 18 Feb 2017 12:46:48 +0100 Subject: [PATCH 09/68] Suprres warning --- app/Tdt/Core/Datasets/DatasetController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Tdt/Core/Datasets/DatasetController.php b/app/Tdt/Core/Datasets/DatasetController.php index 32539c0c..7e8a1af7 100755 --- a/app/Tdt/Core/Datasets/DatasetController.php +++ b/app/Tdt/Core/Datasets/DatasetController.php @@ -71,7 +71,7 @@ public function get($uri) // when requesting data, the formatter should notice the linked job, // and treat it as an elasticsearch data type. - if (! is_null($definition['job_id'])) { + if (! is_null(@$definition['job_id'])) { // Get the job from the definition $job = \Job::find($definition['job_id']); From c5ac55a5ec5011cc2be9b2d969ad27790f6407fa Mon Sep 17 00:00:00 2001 From: Jan Vansteenlandt Date: Sat, 18 Feb 2017 13:12:16 +0100 Subject: [PATCH 10/68] Upgraded PHP dependencies --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 09466701..48416eec 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,8 @@ language: php services: mysql php: - - "5.4" - "5.6" + - "7.0" env: - DB=mysql before_script: From b00513f8084739b5e13ee81d09b3917d5ae15d08 Mon Sep 17 00:00:00 2001 From: luisdelacalle Date: Mon, 20 Feb 2017 18:21:22 +0100 Subject: [PATCH 11/68] bug in checkbox --- app/views/ui/datasets/add.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/ui/datasets/add.blade.php b/app/views/ui/datasets/add.blade.php index 2b018e67..13fdea05 100755 --- a/app/views/ui/datasets/add.blade.php +++ b/app/views/ui/datasets/add.blade.php @@ -330,7 +330,7 @@
@endif - @if (in_array(strtolower($mediatype), array("csv", "xml", "json"))) + @if (in_array(strtolower($mediatype), array("csv", "xls", "json","shp")))
+
+
+
+

Linked From

+ @foreach ($definition->linkedFrom as $lnkdFrom) +

{{ $lnkdFrom->pivot->description." | ".$lnkdFrom->pivot->linked_from }}

+ @endforeach + +
+
+

Linked To

+ @foreach ($definition->linkedTo as $lnkdTo) +

{{ $lnkdTo->pivot->description." | ".$lnkdTo->pivot->linked_to }}

+ @endforeach +
+
+
From 1fdf13bd32d31e125f67311494d7ee1605d539d3 Mon Sep 17 00:00:00 2001 From: luisdelacalle Date: Wed, 22 Feb 2017 20:29:43 +0100 Subject: [PATCH 13/68] XSLT development --- app/Tdt/Core/Datasets/DatasetController.php | 9 +++++ .../Core/Definitions/DefinitionController.php | 27 +++++++++++---- app/Tdt/Core/Formatters/FormatHelper.php | 8 ++++- .../Repositories/DefinitionRepository.php | 33 ++++++++---------- .../Repositories/XmlDefinitionRepository.php | 1 + .../2017_02_22_111625_xslt_file.php | 34 +++++++++++++++++++ app/routes.php | 11 ++++++ app/views/ui/datasets/add.blade.php | 15 ++++++-- dev/js/admin.js | 6 +++- 9 files changed, 115 insertions(+), 29 deletions(-) create mode 100644 app/database/migrations/2017_02_22_111625_xslt_file.php diff --git a/app/Tdt/Core/Datasets/DatasetController.php b/app/Tdt/Core/Datasets/DatasetController.php index 7e8a1af7..b5e805b9 100755 --- a/app/Tdt/Core/Datasets/DatasetController.php +++ b/app/Tdt/Core/Datasets/DatasetController.php @@ -9,6 +9,7 @@ use Tdt\Core\ApiController; use Tdt\Core\Formatters\FormatHelper; use EasyRdf\RdfNamespace; +use Log; /** * DatasetController @@ -62,6 +63,9 @@ public function get($uri) // Get definition $definition = $this->definition->getByIdentifier($uri); + Log::info('definition:'); + Log::info($definition); + if ($definition) { // Get source definition $source_definition = $this->definition->getDefinitionSource( @@ -69,6 +73,11 @@ public function get($uri) $definition['source_type'] ); + + $source_definition['xslt_file'] = $definition['xslt_file']; + Log::info('$source_definition:'); + Log::info($source_definition); + // when requesting data, the formatter should notice the linked job, // and treat it as an elasticsearch data type. if (! is_null(@$definition['job_id'])) { diff --git a/app/Tdt/Core/Definitions/DefinitionController.php b/app/Tdt/Core/Definitions/DefinitionController.php index ce988834..9640781a 100755 --- a/app/Tdt/Core/Definitions/DefinitionController.php +++ b/app/Tdt/Core/Definitions/DefinitionController.php @@ -9,6 +9,8 @@ use Tdt\Core\ApiController; use Tdt\Core\Repositories\Interfaces\DefinitionRepositoryInterface; use Config; +use Log; +use File; /** * DefinitionController @@ -315,9 +317,28 @@ public function put($uri) $input['collection_uri'] = @$matches[1]; $input['resource_name'] = @$matches[2]; + // Add uploaded file and change uri. if (isset($input['fileupload']) && $input['fileupload'] != '') { + $input['uri'] = 'file://' . $input['fileupload']; + +// $extension = File::extension($input['fileupload']); +// Log::info('extension:'); +// Log::info($extension); +// +// if($extension=='xslt'){ +// $input['xslt_file'] = 1; +// } + } + + //TODO controlar la subida del segundo fichero fileupload_xslt y no como esta ahora, + // Add uploaded file XSLT and change xslt_file. + if (isset($input['fileupload_xslt']) && $input['fileupload_xslt'] != '') { + + $input['xslt_file'] = 'file://' . $input['fileupload_xslt']; + + //TODO declarar fileupload_xslt y comprobar que funciona!!!!! } // Check if dataset should be indexed @@ -418,12 +439,6 @@ public function patch($uri) $input['uri'] = 'file://' . $input['fileupload']; } - // Add uploaded file and change uri. - // TODO: Validate file extension based on selected dataset/definition. - if (isset($input['fileupload']) && $input['fileupload'] != '') { - $input['uri'] = 'file://' . $input['fileupload']; - } - // Validate the input $validator = $this->definitions->getValidator($input); diff --git a/app/Tdt/Core/Formatters/FormatHelper.php b/app/Tdt/Core/Formatters/FormatHelper.php index cae2ba1d..05fb2ea4 100644 --- a/app/Tdt/Core/Formatters/FormatHelper.php +++ b/app/Tdt/Core/Formatters/FormatHelper.php @@ -44,7 +44,13 @@ public function getFormatsForType($source_definition) $formats['KML'] = 'kml'; $formats['GeoJSON'] = 'geojson'; $formats['WKT'] = 'WKT'; - } else { + } + elseif($source_definition['xslt_file']){ + $formats['CSV'] = 'csv'; + $formats['XML'] = 'xml'; + } + + else { $formats['XML'] = 'xml'; } break; diff --git a/app/Tdt/Core/Repositories/DefinitionRepository.php b/app/Tdt/Core/Repositories/DefinitionRepository.php index 519b1d7f..9d35fab0 100644 --- a/app/Tdt/Core/Repositories/DefinitionRepository.php +++ b/app/Tdt/Core/Repositories/DefinitionRepository.php @@ -6,6 +6,9 @@ use Illuminate\Support\Facades\Validator; use Tdt\Core\Formatters\FormatHelper; +use Log; +use Logs; + class DefinitionRepository extends BaseDefinitionRepository implements DefinitionRepositoryInterface { protected $dcat_rules = [ @@ -519,8 +522,14 @@ public function getDescriptionInfo($identifier) // Get the formats based on the source definition meta-data $format_helper = new FormatHelper(); + + + Log::info('aquiee'); $formats = $format_helper->getFormatsForType($source_definition->toArray()); + Log::info('aquiee'); + Log::info($formats); + $properties['formats'] = $formats; $properties['identifier'] = $identifier; @@ -817,24 +826,6 @@ public function getCreateParameters() 'type' => 'integer', 'description' => 'draft flag', ), - 'job_id' => array( - 'required' => false, - 'name' => 'Related job', - 'type' => 'integer', - 'description' => 'Job linked to this dataset.', - ), - 'original_file' => array( - 'required' => false, - 'name' => 'Original file', - 'type' => 'string', - 'description' => 'Original dataset file.', - ), - 'draft_flag' => array( - 'required' => false, - 'name' => 'draft flag', - 'type' => 'integer', - 'description' => 'draft flag', - ), 'user_id' => array( 'required' => true, 'name' => 'User id', @@ -847,6 +838,12 @@ public function getCreateParameters() 'type' => 'string', 'description' => 'User (username) who created this dataset.', ), + 'xslt_file' => array( + 'required' => false, + 'name' => 'xslt_file', + 'type' => 'string', + 'description' => 'XSLT file.', + ), 'keywords' => array( 'required' => false, 'requiredgeodcat' => 'required', diff --git a/app/Tdt/Core/Repositories/XmlDefinitionRepository.php b/app/Tdt/Core/Repositories/XmlDefinitionRepository.php index f0fd6907..937a5842 100644 --- a/app/Tdt/Core/Repositories/XmlDefinitionRepository.php +++ b/app/Tdt/Core/Repositories/XmlDefinitionRepository.php @@ -27,6 +27,7 @@ public function getCreateParameters() 'required' => true, 'name' => 'URI', 'description' => 'The location of the XML file, this should either be a URL or a local file location.', + 'description_xslt' => 'The location of the XSLT file, this should either be a URL or a local file location.', 'type' => 'string', ), 'title' => array( diff --git a/app/database/migrations/2017_02_22_111625_xslt_file.php b/app/database/migrations/2017_02_22_111625_xslt_file.php new file mode 100644 index 00000000..56be9957 --- /dev/null +++ b/app/database/migrations/2017_02_22_111625_xslt_file.php @@ -0,0 +1,34 @@ +string('xslt_file', 255)->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('definitions', function($table) + { + $table->dropColumn('xslt_file'); + + }); + } + +} diff --git a/app/routes.php b/app/routes.php index 26f22de8..915024a8 100755 --- a/app/routes.php +++ b/app/routes.php @@ -6,6 +6,8 @@ |-------------------------------------------------------------------------- */ +use Log; + /** * Admin routes */ @@ -52,7 +54,16 @@ '/ /' => '_', // nonbreaking space (equiv. to 0x160) ]; + $file = strtolower(preg_replace(array_keys($utf8), array_values($utf8), Input::file('fileupload')->getClientOriginalName())); +// $file_xslt = strtolower(preg_replace(array_keys($utf8), array_values($utf8), Input::file('fileupload_xslt')->getClientOriginalName())); +// +// if($file_xslt){ +// Input::file('fileupload_xslt')->move( +// app_path() . '/storage/app/', +// $file . '_' . time() . '.' . Input::file('fileupload_xslt')->getClientOriginalExtension() +// ); +// } return Input::file('fileupload')->move( app_path() . '/storage/app/', diff --git a/app/views/ui/datasets/add.blade.php b/app/views/ui/datasets/add.blade.php index 13fdea05..a7e85a99 100755 --- a/app/views/ui/datasets/add.blade.php +++ b/app/views/ui/datasets/add.blade.php @@ -142,10 +142,19 @@ @endif @if (in_array(strtolower($mediatype), array("csv", "xml", "xls", "json")) && $parameter == 'uri') +
+ {{ $object->description }} +
+ @if (in_array(strtolower($mediatype), array("xml")) && $parameter == 'uri') + +
+ {{ $object->description_xslt }} +
+ + @endif + @endif -
- {{ $object->description }} -
+
@endforeach diff --git a/dev/js/admin.js b/dev/js/admin.js index 607d3bac..1e7eae61 100644 --- a/dev/js/admin.js +++ b/dev/js/admin.js @@ -178,6 +178,10 @@ $('.btn-add-dataset').on('click', function(e){ var fd = new FormData(); fd.append("fileupload", file); + // // test fileupload_xslt + // var fileupload_xslt = tab_pane.find('input[type=file]')[0].files[0]; + // fd.append("fileupload_xslt", fileupload_xslt); + // Ajax call: upload file $.ajax({ async: true, @@ -218,7 +222,7 @@ $('.btn-add-dataset').on('click', function(e){ }, timeout: 10000 }); - } + } }); // Edit dataset From 487e97acff46b54c5d4d5918de8943c871cccc9a Mon Sep 17 00:00:00 2001 From: luisdelacalle Date: Thu, 23 Feb 2017 14:08:16 +0100 Subject: [PATCH 14/68] no Log --- app/routes.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/routes.php b/app/routes.php index 915024a8..72e42ea8 100755 --- a/app/routes.php +++ b/app/routes.php @@ -6,8 +6,6 @@ |-------------------------------------------------------------------------- */ -use Log; - /** * Admin routes */ From 0e42c445cc21450afffab04fed975b712cda0a00 Mon Sep 17 00:00:00 2001 From: luisdelacalle Date: Thu, 23 Feb 2017 14:12:56 +0100 Subject: [PATCH 15/68] XSLT development using XSLTProcessor --- app/Tdt/Core/ContentNegotiator.php | 14 +-- app/Tdt/Core/Datasets/DatasetController.php | 24 ++--- .../Core/Definitions/DefinitionController.php | 2 + app/Tdt/Core/Formatters/CSVFormatter.php | 97 +++++++++++++------ 4 files changed, 90 insertions(+), 47 deletions(-) diff --git a/app/Tdt/Core/ContentNegotiator.php b/app/Tdt/Core/ContentNegotiator.php index 122fdac7..bdeb9324 100644 --- a/app/Tdt/Core/ContentNegotiator.php +++ b/app/Tdt/Core/ContentNegotiator.php @@ -57,13 +57,13 @@ public static function getResponse($data, $extension = null) $formatter_class = 'Tdt\\Core\\Formatters\\' . $extension . 'Formatter'; // Exception for XML, only XML or HTML is allowed - if ($data->definition['source_type'] == 'XmlDefinition' && !empty($extension) && $data->source_definition['geo_formatted'] != 1) { - if ($extension != "XML" && $extension != "HTML" && $extension != "PHP") { - \App::abort(406, "XML only allows to be formatted in XML, HTML or PHP serialization."); - } elseif ($extension == "XML") { - return self::createXmlResponse($data->data); - } - } +// if ($data->definition['source_type'] == 'XmlDefinition' && !empty($extension) && $data->source_definition['geo_formatted'] != 1) { +// if ($extension != "XML" && $extension != "HTML" && $extension != "PHP") { +// \App::abort(406, "XML only allows to be formatted in XML, HTML or PHP serialization."); +// } elseif ($extension == "XML") { +// return self::createXmlResponse($data->data); +// } +// } if (empty($extension)) { $negotiator = new FormatNegotiator(); diff --git a/app/Tdt/Core/Datasets/DatasetController.php b/app/Tdt/Core/Datasets/DatasetController.php index b5e805b9..c48d6a5c 100755 --- a/app/Tdt/Core/Datasets/DatasetController.php +++ b/app/Tdt/Core/Datasets/DatasetController.php @@ -123,18 +123,18 @@ public function get($uri) // Retrieve dataobject from datacontroller $data = $data_controller->readData($source_definition, $rest_parameters); - // If the source type is XML, just return the XML contents, don't transform - if (strtolower($source_type) == 'xml' && $extension == 'xml') { - return $this->createXMLResponse($data->data); - } elseif (strtolower($source_type) == 'xml' && $extension == 'kml' && $data->geo_formatted) { - return $this->createXMLResponse($data->data); - } elseif (! $data->is_semantic && $extension == 'xml' && $source_type != 'xml') { - \App::abort(406, 'The requested format for the datasource is not available.'); - } elseif (strtolower($source_type) == 'xml' && ! $data->geo_formatted && ! empty($extension) && $extension != 'xml') { - \App::abort(406, 'The requested format for the datasource is not available.'); - } elseif (strtolower($source_type) == 'xml' && $data->geo_formatted && ! empty($extension) && ! in_array($extension, $data->preferred_formats)) { - \App::abort(406, 'The requested format for the datasource is not available.'); - } +// // If the source type is XML, just return the XML contents, don't transform +// if (strtolower($source_type) == 'xml' && $extension == 'xml') { +// return $this->createXMLResponse($data->data); +// } elseif (strtolower($source_type) == 'xml' && $extension == 'kml' && $data->geo_formatted) { +// return $this->createXMLResponse($data->data); +// } elseif (! $data->is_semantic && $extension == 'xml' && $source_type != 'xml') { +// \App::abort(406, 'The requested format for the datasource is not available.'); +// } elseif (strtolower($source_type) == 'xml' && ! $data->geo_formatted && ! empty($extension) && $extension != 'xml') { +// \App::abort(406, 'The requested format for the datasource is not available.'); +// } elseif (strtolower($source_type) == 'xml' && $data->geo_formatted && ! empty($extension) && ! in_array($extension, $data->preferred_formats)) { +// \App::abort(406, 'The requested format for the datasource is not available.'); +// } $data->rest_parameters = $rest_parameters; diff --git a/app/Tdt/Core/Definitions/DefinitionController.php b/app/Tdt/Core/Definitions/DefinitionController.php index 9640781a..c7a2c53c 100755 --- a/app/Tdt/Core/Definitions/DefinitionController.php +++ b/app/Tdt/Core/Definitions/DefinitionController.php @@ -332,6 +332,8 @@ public function put($uri) // } } + $input['xslt_file'] = 1; + //TODO controlar la subida del segundo fichero fileupload_xslt y no como esta ahora, // Add uploaded file XSLT and change xslt_file. if (isset($input['fileupload_xslt']) && $input['fileupload_xslt'] != '') { diff --git a/app/Tdt/Core/Formatters/CSVFormatter.php b/app/Tdt/Core/Formatters/CSVFormatter.php index bface325..ac949f72 100644 --- a/app/Tdt/Core/Formatters/CSVFormatter.php +++ b/app/Tdt/Core/Formatters/CSVFormatter.php @@ -10,6 +10,13 @@ * @author Pieter Colpaert * @author Michiel Vancoillie */ + +use DOMDocument; +use Log; +use XSLTProcessor; + +//use SoapBox\Formatter\Formatter; + class CSVFormatter implements IFormatter { public static function createResponse($dataObj) @@ -25,53 +32,87 @@ public static function createResponse($dataObj) public static function getBody($dataObj) { +// Log::info('CSV'); +// Log::info($dataObj->data ); + // Check if its a result of a SPARQL select query if ($dataObj->source_definition['type'] == 'SPARQL' && $dataObj->source_definition['query_type'] == 'select') { $dataObj->data = self::buildTableFromSparqlResult($dataObj->data); } + //XML format if (!is_array($dataObj->data)) { - \App::abort(400, "You can only request a CSV formatter on a tabular data structure."); - } + // \App::abort(400, "You can only request a CSV formatter on a tabular data structure."); + +// $formatter = Formatter::make($dataObj->data , Formatter::XML); +// +// $csv= $formatter->toCsv(); +// +// Log::info('CSV'); +// Log::info($csv); + + + // Carga el fichero XML origen +// $xml = new DOMDocument; +// $xml->load('prueba.xml'); + + $xml = new DOMDocument(); + $xml->loadXML($dataObj->data ); + + //TODO enlazar con fichero subido xslt + $xsl = new DOMDocument; + $xsl->load('prueba.xslt'); + + // Configura el procesador + $proc = new XSLTProcessor; + $proc->importStyleSheet($xsl); // adjunta las reglas XSL + + $csv= $proc->transformToXML($xml); + +// custom error handler + + }else{ // Build the body $body = ''; $header_printed = false; - foreach ($dataObj->data as $row) { - if (is_object($row)) { - $row = get_object_vars($row); - } elseif (!is_array($row)) { - $body .= $row . "\n"; - continue; - } + foreach ($dataObj->data as $row) { + if (is_object($row)) { + $row = get_object_vars($row); + } elseif (!is_array($row)) { + $body .= $row . "\n"; + continue; + } + + // Print header + if (!$header_printed) { + $i = 0; + foreach ($row as $key => $value) { + $body .= CSVFormatter::enclose($key); + $body .= sizeof($row)-1 != $i ? ";" : "\n"; + $i++; + } + $header_printed = true; + } - // Print header - if (!$header_printed) { $i = 0; - foreach ($row as $key => $value) { - $body .= CSVFormatter::enclose($key); + foreach ($row as $element) { + if (is_object($element)) { + \App::abort(400, "You can only request a CSV formatter on a tabular datastructure."); + } elseif (is_array($element)) { + \App::abort(400, "You can only request a CSV formatter on a tabular datastructure."); + } else { + $body .= CSVFormatter::enclose($element); + } $body .= sizeof($row)-1 != $i ? ";" : "\n"; $i++; } - $header_printed = true; - } - - $i = 0; - foreach ($row as $element) { - if (is_object($element)) { - \App::abort(400, "You can only request a CSV formatter on a tabular datastructure."); - } elseif (is_array($element)) { - \App::abort(400, "You can only request a CSV formatter on a tabular datastructure."); - } else { - $body .= CSVFormatter::enclose($element); - } - $body .= sizeof($row)-1 != $i ? ";" : "\n"; - $i++; } + $csv=$body; } - return $body; + return $csv; } public static function getDocumentation() From 8f65044740ce6d14307c976a984e77f29c3da9bc Mon Sep 17 00:00:00 2001 From: jwebrare Date: Thu, 23 Feb 2017 14:34:39 +0100 Subject: [PATCH 16/68] Feature linking datasets (update) Frontend + autocomplete endpoint DONE. TODO: add/delete links methods. --- app/Tdt/Core/Ui/DatasetController.php | 21 +++++++ app/lang/en/admin.php | 3 +- app/lang/fr/admin.php | 3 +- app/lang/nl/admin.php | 3 +- app/routes.php | 2 + app/views/layouts/admin.blade.php | 3 + app/views/ui/datasets/add.blade.php | 80 ++++++++++++++++++++++-- app/views/ui/datasets/edit.blade.php | 88 +++++++++++++++++++++++---- dev/css/main.scss | 28 ++++++++- 9 files changed, 210 insertions(+), 21 deletions(-) diff --git a/app/Tdt/Core/Ui/DatasetController.php b/app/Tdt/Core/Ui/DatasetController.php index bfdff2ce..1ffa9170 100755 --- a/app/Tdt/Core/Ui/DatasetController.php +++ b/app/Tdt/Core/Ui/DatasetController.php @@ -405,4 +405,25 @@ private function translateParameters($parameters, $media_type) return $translatedParameters; } + + public function autocompleteLinkedDatasets(){ + $term = \Input::get('term'); + + $results = array(); + + $queries = \DB::table('definitions') + ->where('title', 'LIKE', '%' . $term . '%') + ->orWhere('description', 'LIKE', '%' . $term . '%') + ->orWhere('resource_name', 'LIKE', '%' . $term . '%') + ->orWhere('collection_uri', 'LIKE', '%' . $term . '%') + ->get(); + + foreach ($queries as $query) + { + $results[] = [ 'id' => $query->id, 'value' => $query->title ]; + } + + return \Response::json($results); + } + } diff --git a/app/lang/en/admin.php b/app/lang/en/admin.php index d7e20990..7ce579d8 100755 --- a/app/lang/en/admin.php +++ b/app/lang/en/admin.php @@ -68,5 +68,6 @@ "menu_users" => "Users", "menu_groups" => "Groups", "created_by" => "Created by", - "updated_by" => "Updated by" + "updated_by" => "Updated by", + "link_datasets" => "Link to other datasets (optional)" ); diff --git a/app/lang/fr/admin.php b/app/lang/fr/admin.php index 27a95e29..a47084e8 100644 --- a/app/lang/fr/admin.php +++ b/app/lang/fr/admin.php @@ -62,5 +62,6 @@ "menu_groups" => "Groupes", "geodcat_header" => "Localisez la zone concernée", "created_by" => "Créé par", - "updated_by" => "Mise à jour" + "updated_by" => "Mise à jour", + "link_datasets" => "Link to other datasets (optional)" ); diff --git a/app/lang/nl/admin.php b/app/lang/nl/admin.php index f7ab0633..92347e43 100644 --- a/app/lang/nl/admin.php +++ b/app/lang/nl/admin.php @@ -62,5 +62,6 @@ "menu_groups" => "Groepen", "geodcat_header" => "Selecteer de relevante zone", "created_by" => "Gemaakt door", - "updated_by" => "Geactualiseerd door" + "updated_by" => "Geactualiseerd door", + "link_datasets" => "Link to other datasets (optional)" ); diff --git a/app/routes.php b/app/routes.php index 915024a8..efbfb7a7 100755 --- a/app/routes.php +++ b/app/routes.php @@ -71,6 +71,8 @@ ); }); +Route::get('/search/autocomplete', 'Tdt\\Core\\Ui\\DatasetController@autocompleteLinkedDatasets'); + /* * IMPORTANT! * The catch-all route to catch all other request is added last to allow packages to still have their own routes diff --git a/app/views/layouts/admin.blade.php b/app/views/layouts/admin.blade.php index b8edcf91..0a9b9a57 100644 --- a/app/views/layouts/admin.blade.php +++ b/app/views/layouts/admin.blade.php @@ -3,12 +3,15 @@ {{ $title }} + + + diff --git a/app/views/ui/datasets/add.blade.php b/app/views/ui/datasets/add.blade.php index a7e85a99..64a0a2f2 100755 --- a/app/views/ui/datasets/add.blade.php +++ b/app/views/ui/datasets/add.blade.php @@ -1,7 +1,6 @@ @extends('layouts.admin') @section('content') -
@@ -59,8 +58,35 @@
- -

2. {{ trans('admin.select_type') }}

+ + +
+
+
+

2. {{ trans('admin.link_datasets') }}

+ +
+
+
+
+

Search and select datasets to be linked to

+
    +
  • + + + + +
  • +
+
+
+
+
+
+
+
+ +

3. {{ trans('admin.select_type') }}

@endforeach - + + @stop \ No newline at end of file diff --git a/app/views/ui/datasets/edit.blade.php b/app/views/ui/datasets/edit.blade.php index 54733e27..caabcfb2 100755 --- a/app/views/ui/datasets/edit.blade.php +++ b/app/views/ui/datasets/edit.blade.php @@ -31,19 +31,35 @@
-
-

Linked From

- @foreach ($definition->linkedFrom as $lnkdFrom) -

{{ $lnkdFrom->pivot->description." | ".$lnkdFrom->pivot->linked_from }}

- @endforeach +
+

Current linked datasets

+
+
+
Linked From
+ @foreach ($definition->linkedFrom as $lnkdFrom) +

{{ $lnkdFrom->pivot->description." | ".$lnkdFrom->pivot->linked_from }}

+ @endforeach +
+
+
Linked To
+ @foreach ($definition->linkedTo as $lnkdTo) +

{{ $lnkdTo->pivot->description." | ".$lnkdTo->pivot->linked_to }}

+ @endforeach +
+
-
-

Linked To

- @foreach ($definition->linkedTo as $lnkdTo) -

{{ $lnkdTo->pivot->description." | ".$lnkdTo->pivot->linked_to }}

- @endforeach -
+
+

Update linked datasets

+
    +
  • + + + + +
  • +
+
@@ -104,9 +120,9 @@
@if($object->type == 'string') - + @elseif($object->type == 'text') - + @elseif($object->type == 'integer') @elseif($object->type == 'date') @@ -322,4 +338,50 @@
+ @stop \ No newline at end of file diff --git a/dev/css/main.scss b/dev/css/main.scss index 9a421ce8..4882cb5a 100644 --- a/dev/css/main.scss +++ b/dev/css/main.scss @@ -952,4 +952,30 @@ ul.nav-tabs + div.panel{ } input[type=file]{display:block; border:none; margin-top:15px;padding:0;} -.nofloat {float:none;} \ No newline at end of file +.nofloat {float:none;} + +/* Link datasets UI */ +ul#linked-to-datasets{ + list-style-type: none; + width:250px; + padding:0px 0px 15px 0px; + overflow-x:hidden; + overflow-y:auto +} + +ul#linked-to-datasets button{ + width:105px; + margin:5px; +} + +ul#linked-to-datasets input, ul#linked-to-datasets textarea { + width:235px; + margin:5px 0px; +} + +.ui-autocomplete { + max-height: 100px; + overflow-y: auto; + overflow-x: hidden; + padding-right: 20px; +} \ No newline at end of file From 14dfd87ce3cb450adb910c4f5091eb3d6765450e Mon Sep 17 00:00:00 2001 From: jwebrare Date: Thu, 23 Feb 2017 15:21:03 +0100 Subject: [PATCH 17/68] Feature linking datasets (update) Added autocomplete endpoint (Tdt/Core/Ui) DatasetController Linking datasets frontend add/edit view is fully functional Added new admin translations (en/nl/fr) TODO: add/delete dataset links methods. --- app/Tdt/Core/Ui/DatasetController.php | 5 +++++ app/lang/en/admin.php | 12 +++++++++++- app/lang/fr/admin.php | 12 +++++++++++- app/lang/nl/admin.php | 12 +++++++++++- app/routes.php | 1 + app/views/layouts/admin.blade.php | 1 - app/views/ui/datasets/add.blade.php | 21 ++++++++++----------- app/views/ui/datasets/edit.blade.php | 27 +++++++++++++-------------- dev/css/main.scss | 1 + 9 files changed, 63 insertions(+), 29 deletions(-) diff --git a/app/Tdt/Core/Ui/DatasetController.php b/app/Tdt/Core/Ui/DatasetController.php index 1ffa9170..930958be 100755 --- a/app/Tdt/Core/Ui/DatasetController.php +++ b/app/Tdt/Core/Ui/DatasetController.php @@ -406,6 +406,11 @@ private function translateParameters($parameters, $media_type) return $translatedParameters; } + /** + * Autocomplete endpoint "Linking Datasets" + * + * @return json + */ public function autocompleteLinkedDatasets(){ $term = \Input::get('term'); diff --git a/app/lang/en/admin.php b/app/lang/en/admin.php index 7ce579d8..2868c589 100755 --- a/app/lang/en/admin.php +++ b/app/lang/en/admin.php @@ -69,5 +69,15 @@ "menu_groups" => "Groups", "created_by" => "Created by", "updated_by" => "Updated by", - "link_datasets" => "Link to other datasets (optional)" + "link_datasets" => "Link to other datasets (optional)", + "link_datasets_select_to" => "Search and select datasets to be linked to", + "current_linked_datasets" => "Current linked datasets", + "linked_to" => "Linked to", + "linked_from" => "Linked from", + "update_linked_datasets" => "Update linked datasets", + "linked_datasets_type_to_search" => "Type to search and select a dataset...", + "linked_datasets_provide_context" => "Provide some context as to why this dataset is related...", + "add_link" => "Add link", + "delete_link" => "Delete link", + "linked_datasets_alert" => "Can't delete default dataset input textbox!" ); diff --git a/app/lang/fr/admin.php b/app/lang/fr/admin.php index a47084e8..4f4b09da 100644 --- a/app/lang/fr/admin.php +++ b/app/lang/fr/admin.php @@ -63,5 +63,15 @@ "geodcat_header" => "Localisez la zone concernée", "created_by" => "Créé par", "updated_by" => "Mise à jour", - "link_datasets" => "Link to other datasets (optional)" + "link_datasets" => "Link to other datasets (optional)", + "link_datasets_select_to" => "Search and select datasets to be linked to", + "current_linked_datasets" => "Current linked datasets", + "linked_to" => "Linked to", + "linked_from" => "Linked from", + "update_linked_datasets" => "Update linked datasets", + "linked_datasets_type_to_search" => "Type to search and select a dataset...", + "linked_datasets_provide_context" => "Provide some context as to why this dataset is related...", + "add_link" => "Add link", + "delete_link" => "Delete link", + "linked_datasets_alert" => "Can't delete default dataset input textbox!" ); diff --git a/app/lang/nl/admin.php b/app/lang/nl/admin.php index 92347e43..c3783d07 100644 --- a/app/lang/nl/admin.php +++ b/app/lang/nl/admin.php @@ -63,5 +63,15 @@ "geodcat_header" => "Selecteer de relevante zone", "created_by" => "Gemaakt door", "updated_by" => "Geactualiseerd door", - "link_datasets" => "Link to other datasets (optional)" + "link_datasets" => "Link to other datasets (optional)", + "link_datasets_select_to" => "Search and select datasets to be linked to", + "current_linked_datasets" => "Current linked datasets", + "linked_to" => "Linked to", + "linked_from" => "Linked from", + "update_linked_datasets" => "Update linked datasets", + "linked_datasets_type_to_search" => "Type to search and select a dataset...", + "linked_datasets_provide_context" => "Provide some context as to why this dataset is related...", + "add_link" => "Add link", + "delete_link" => "Delete link", + "linked_datasets_alert" => "Can't delete default dataset input textbox!" ); diff --git a/app/routes.php b/app/routes.php index 224e4ccf..8f285778 100755 --- a/app/routes.php +++ b/app/routes.php @@ -69,6 +69,7 @@ ); }); +/* Autocomplete endpoint "Linking Datasets" */ Route::get('/search/autocomplete', 'Tdt\\Core\\Ui\\DatasetController@autocompleteLinkedDatasets'); /* diff --git a/app/views/layouts/admin.blade.php b/app/views/layouts/admin.blade.php index 0a9b9a57..9364236a 100644 --- a/app/views/layouts/admin.blade.php +++ b/app/views/layouts/admin.blade.php @@ -4,7 +4,6 @@ {{ $title }} - diff --git a/app/views/ui/datasets/add.blade.php b/app/views/ui/datasets/add.blade.php index 64a0a2f2..0300fedd 100755 --- a/app/views/ui/datasets/add.blade.php +++ b/app/views/ui/datasets/add.blade.php @@ -58,7 +58,6 @@
-
@@ -69,13 +68,13 @@
-

Search and select datasets to be linked to

+

{{ trans('admin.link_datasets_select_to') }}

  • - - - - + + + +
@@ -480,17 +479,17 @@ var btnDelID = "del" + window.count; var ul = $("#linked-to-datasets"); var li = $("
  • ") - .append($("" - + "" - + "" - + "")); + .append($("" + + "" + + "" + + "")); li.appendTo(ul); }); $("#linked-to-datasets").on("click", "button[id^='del']", function ( event ) { event.preventDefault(); if (window.count == 0) { - alert("Can't delete default dataset input textbox!"); + alert("{{ trans('admin.linked_datasets_alert') }}"); return; } var li = $(this).parent(); diff --git a/app/views/ui/datasets/edit.blade.php b/app/views/ui/datasets/edit.blade.php index caabcfb2..fdb2ccbd 100755 --- a/app/views/ui/datasets/edit.blade.php +++ b/app/views/ui/datasets/edit.blade.php @@ -1,7 +1,6 @@ @extends('layouts.admin') @section('content') -
    resource_name }}'>
    @@ -32,17 +31,17 @@
    -

    Current linked datasets

    +

    {{ trans('admin.current_linked_datasets') }}

    -
    Linked From
    +
    {{ trans('admin.linked_from') }}
    @foreach ($definition->linkedFrom as $lnkdFrom)

    {{ $lnkdFrom->pivot->description." | ".$lnkdFrom->pivot->linked_from }}

    @endforeach
    -
    Linked To
    +
    {{ trans('admin.linked_to') }}
    @foreach ($definition->linkedTo as $lnkdTo)

    {{ $lnkdTo->pivot->description." | ".$lnkdTo->pivot->linked_to }}

    @endforeach @@ -50,13 +49,13 @@
    -

    Update linked datasets

    +

    {{ trans('admin.update_linked_datasets') }}

    • - - - - + + + +
    @@ -352,17 +351,17 @@ var btnDelID = "del" + window.count; var ul = $("#linked-to-datasets"); var li = $("
  • ") - .append($("" - + "" - + "" - + "")); + .append($("" + + "" + + "" + + "")); li.appendTo(ul); }); $("#linked-to-datasets").on("click", "button[id^='del']", function ( event ) { event.preventDefault(); if (window.count == 0) { - alert("Can't delete default dataset input textbox!"); + alert("{{ trans('admin.linked_datasets_alert') }}"); return; } var li = $(this).parent(); diff --git a/dev/css/main.scss b/dev/css/main.scss index 4882cb5a..7c2006cf 100644 --- a/dev/css/main.scss +++ b/dev/css/main.scss @@ -955,6 +955,7 @@ input[type=file]{display:block; border:none; margin-top:15px;padding:0;} .nofloat {float:none;} /* Link datasets UI */ + ul#linked-to-datasets{ list-style-type: none; width:250px; From b2be13dbffa41c8ace10988088d87f531255edd9 Mon Sep 17 00:00:00 2001 From: luisdelacalle Date: Thu, 23 Feb 2017 16:43:54 +0100 Subject: [PATCH 18/68] unset xslt_file --- app/Tdt/Core/Ui/DatasetController.php | 2 + composer.json | 3 +- composer.lock | 163 +++++++++++++++++++++++++- 3 files changed, 164 insertions(+), 4 deletions(-) diff --git a/app/Tdt/Core/Ui/DatasetController.php b/app/Tdt/Core/Ui/DatasetController.php index bfdff2ce..54cc2f52 100755 --- a/app/Tdt/Core/Ui/DatasetController.php +++ b/app/Tdt/Core/Ui/DatasetController.php @@ -178,6 +178,7 @@ public function getAdd() unset($parameters_required['username']); unset($parameters_required['user_id']); unset($parameters_optional['job_id']); + unset($parameters_optional['xslt_file']); // Translate the parameters $parameters_required = $this->translateParameters($parameters_required, $mediatype); @@ -300,6 +301,7 @@ public function getEdit($id) unset($parameters_optional['username']); unset($parameters_optional['user_id']); unset($parameters_optional['job_id']); + unset($parameters_optional['xslt_file']); // Get dataset updates information $updates_info = \DB::table('definitions_updates') diff --git a/composer.json b/composer.json index f4e60569..89fc847e 100644 --- a/composer.json +++ b/composer.json @@ -31,7 +31,8 @@ "phayes/geophp" : "dev-master", "ml/json-ld": "1.*", "ruflin/elastica" : "3.1.*", - "tdt/input": "dev-master" + "tdt/input": "dev-master", + "daniel-furmanov/laravel-formatter": "^2.0" }, "require-dev": { "mockery/mockery": "dev-master@dev" diff --git a/composer.lock b/composer.lock index bc67947e..4ee5feb7 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,8 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "6de23242b32f836bc14cfbf4a7e509ae", - "content-hash": "74a23c82a5fbbc56c42d3ca16cb8a828", + "hash": "ef4be313ee9b616e866fa712394684ae", + "content-hash": "9b69d601eecbe077b17863fea9f0bb05", "packages": [ { "name": "cartalyst/sentry", @@ -274,6 +274,61 @@ "description": "A tiny, but robust REPL (Read-Evaluate-Print-Loop) for PHP.", "time": "2015-03-01 08:05:19" }, + { + "name": "daniel-furmanov/laravel-formatter", + "version": "2.0", + "source": { + "type": "git", + "url": "https://github.com/DanielFurmanov/laravel-formatter.git", + "reference": "9149adcf6f14a563ccd5b81579e802b1f402aef9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/DanielFurmanov/laravel-formatter/zipball/9149adcf6f14a563ccd5b81579e802b1f402aef9", + "reference": "9149adcf6f14a563ccd5b81579e802b1f402aef9", + "shasum": "" + }, + "require": { + "illuminate/support": ">=4.0", + "league/csv": "~6.0", + "mustangostang/spyc": "0.5.*@dev", + "php": ">=5.4.0" + }, + "type": "library", + "autoload": { + "psr-0": { + "SoapBox\\Formatter": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham McCarthy", + "email": "graham@soapboxhq.com", + "homepage": "http://grahammccarthy.com" + }, + { + "name": "Jaspaul Bola", + "email": "jaspaul.b@gamil.com", + "homepage": "http://jaspaulbola.com" + } + ], + "description": "A formatting library that converts data output between XML, CSV, JSON, TXT, YAML and a few others.", + "homepage": "http://github.com/SoapBox/laravel-formatter", + "keywords": [ + "convert", + "csv", + "data", + "formatter", + "laravel", + "xml", + "yaml" + ], + "time": "2014-10-20 15:15:48" + }, { "name": "easyrdf/easyrdf", "version": "dev-master", @@ -805,6 +860,61 @@ ], "time": "2014-06-01 18:14:55" }, + { + "name": "league/csv", + "version": "6.3.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/csv.git", + "reference": "5ffb2b42ed5d7ae20d80d4480b34743f5086d4a8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/csv/zipball/5ffb2b42ed5d7ae20d80d4480b34743f5086d4a8", + "reference": "5ffb2b42ed5d7ae20d80d4480b34743f5086d4a8", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.3-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Csv\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ignace Nyamagana Butera", + "email": "nyamsprod@gmail.com", + "homepage": "https://github.com/nyamsprod/", + "role": "Developer" + } + ], + "description": "Csv data manipulation made easy in PHP", + "keywords": [ + "csv", + "export", + "filter", + "import", + "read", + "write" + ], + "time": "2015-01-21 12:06:27" + }, { "name": "ml/iri", "version": "1.1.4", @@ -1033,6 +1143,53 @@ ], "time": "2016-07-20 08:44:36" }, + { + "name": "mustangostang/spyc", + "version": "0.5.1", + "source": { + "type": "git", + "url": "https://github.com/mustangostang/spyc.git", + "reference": "dc4785b4d7227fd9905e086d499fb8abfadf9977" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mustangostang/spyc/zipball/dc4785b4d7227fd9905e086d499fb8abfadf9977", + "reference": "dc4785b4d7227fd9905e086d499fb8abfadf9977", + "shasum": "" + }, + "require": { + "php": ">=5.3.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.5.x-dev" + } + }, + "autoload": { + "files": [ + "Spyc.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT License" + ], + "authors": [ + { + "name": "mustangostang", + "email": "vlad.andersen@gmail.com" + } + ], + "description": "A simple YAML loader/dumper class for PHP", + "homepage": "https://github.com/mustangostang/spyc/", + "keywords": [ + "spyc", + "yaml", + "yml" + ], + "time": "2013-02-21 10:52:01" + }, { "name": "neitanod/forceutf8", "version": "dev-master", @@ -1921,7 +2078,7 @@ }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/proj4php/proj4php/zipball/89722067010a4c88b7c4c79a7ee187bb2ddb1b61", + "url": "https://api.github.com/repos/proj4php/proj4php/zipball/41c1e753e02c44d6b6e68844f62ae36f9149897d", "reference": "89722067010a4c88b7c4c79a7ee187bb2ddb1b61", "shasum": "" }, From ee846570510e6ae9e092d0f616eb7b01a4baac22 Mon Sep 17 00:00:00 2001 From: luisdelacalle Date: Thu, 23 Feb 2017 16:46:02 +0100 Subject: [PATCH 19/68] XSLT development --- composer.json | 3 +- composer.lock | 163 +------------------------------------------------- 2 files changed, 4 insertions(+), 162 deletions(-) diff --git a/composer.json b/composer.json index 89fc847e..f4e60569 100644 --- a/composer.json +++ b/composer.json @@ -31,8 +31,7 @@ "phayes/geophp" : "dev-master", "ml/json-ld": "1.*", "ruflin/elastica" : "3.1.*", - "tdt/input": "dev-master", - "daniel-furmanov/laravel-formatter": "^2.0" + "tdt/input": "dev-master" }, "require-dev": { "mockery/mockery": "dev-master@dev" diff --git a/composer.lock b/composer.lock index 4ee5feb7..bc67947e 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,8 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "ef4be313ee9b616e866fa712394684ae", - "content-hash": "9b69d601eecbe077b17863fea9f0bb05", + "hash": "6de23242b32f836bc14cfbf4a7e509ae", + "content-hash": "74a23c82a5fbbc56c42d3ca16cb8a828", "packages": [ { "name": "cartalyst/sentry", @@ -274,61 +274,6 @@ "description": "A tiny, but robust REPL (Read-Evaluate-Print-Loop) for PHP.", "time": "2015-03-01 08:05:19" }, - { - "name": "daniel-furmanov/laravel-formatter", - "version": "2.0", - "source": { - "type": "git", - "url": "https://github.com/DanielFurmanov/laravel-formatter.git", - "reference": "9149adcf6f14a563ccd5b81579e802b1f402aef9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/DanielFurmanov/laravel-formatter/zipball/9149adcf6f14a563ccd5b81579e802b1f402aef9", - "reference": "9149adcf6f14a563ccd5b81579e802b1f402aef9", - "shasum": "" - }, - "require": { - "illuminate/support": ">=4.0", - "league/csv": "~6.0", - "mustangostang/spyc": "0.5.*@dev", - "php": ">=5.4.0" - }, - "type": "library", - "autoload": { - "psr-0": { - "SoapBox\\Formatter": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Graham McCarthy", - "email": "graham@soapboxhq.com", - "homepage": "http://grahammccarthy.com" - }, - { - "name": "Jaspaul Bola", - "email": "jaspaul.b@gamil.com", - "homepage": "http://jaspaulbola.com" - } - ], - "description": "A formatting library that converts data output between XML, CSV, JSON, TXT, YAML and a few others.", - "homepage": "http://github.com/SoapBox/laravel-formatter", - "keywords": [ - "convert", - "csv", - "data", - "formatter", - "laravel", - "xml", - "yaml" - ], - "time": "2014-10-20 15:15:48" - }, { "name": "easyrdf/easyrdf", "version": "dev-master", @@ -860,61 +805,6 @@ ], "time": "2014-06-01 18:14:55" }, - { - "name": "league/csv", - "version": "6.3.0", - "source": { - "type": "git", - "url": "https://github.com/thephpleague/csv.git", - "reference": "5ffb2b42ed5d7ae20d80d4480b34743f5086d4a8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/thephpleague/csv/zipball/5ffb2b42ed5d7ae20d80d4480b34743f5086d4a8", - "reference": "5ffb2b42ed5d7ae20d80d4480b34743f5086d4a8", - "shasum": "" - }, - "require": { - "ext-mbstring": "*", - "php": ">=5.4.0" - }, - "require-dev": { - "phpunit/phpunit": "~4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "6.3-dev" - } - }, - "autoload": { - "psr-4": { - "League\\Csv\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ignace Nyamagana Butera", - "email": "nyamsprod@gmail.com", - "homepage": "https://github.com/nyamsprod/", - "role": "Developer" - } - ], - "description": "Csv data manipulation made easy in PHP", - "keywords": [ - "csv", - "export", - "filter", - "import", - "read", - "write" - ], - "time": "2015-01-21 12:06:27" - }, { "name": "ml/iri", "version": "1.1.4", @@ -1143,53 +1033,6 @@ ], "time": "2016-07-20 08:44:36" }, - { - "name": "mustangostang/spyc", - "version": "0.5.1", - "source": { - "type": "git", - "url": "https://github.com/mustangostang/spyc.git", - "reference": "dc4785b4d7227fd9905e086d499fb8abfadf9977" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/mustangostang/spyc/zipball/dc4785b4d7227fd9905e086d499fb8abfadf9977", - "reference": "dc4785b4d7227fd9905e086d499fb8abfadf9977", - "shasum": "" - }, - "require": { - "php": ">=5.3.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "0.5.x-dev" - } - }, - "autoload": { - "files": [ - "Spyc.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT License" - ], - "authors": [ - { - "name": "mustangostang", - "email": "vlad.andersen@gmail.com" - } - ], - "description": "A simple YAML loader/dumper class for PHP", - "homepage": "https://github.com/mustangostang/spyc/", - "keywords": [ - "spyc", - "yaml", - "yml" - ], - "time": "2013-02-21 10:52:01" - }, { "name": "neitanod/forceutf8", "version": "dev-master", @@ -2078,7 +1921,7 @@ }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/proj4php/proj4php/zipball/41c1e753e02c44d6b6e68844f62ae36f9149897d", + "url": "https://api.github.com/repos/proj4php/proj4php/zipball/89722067010a4c88b7c4c79a7ee187bb2ddb1b61", "reference": "89722067010a4c88b7c4c79a7ee187bb2ddb1b61", "shasum": "" }, From 38d889464dd8bac5cae011481c1eb55d1f6cad43 Mon Sep 17 00:00:00 2001 From: jwebrare Date: Thu, 23 Feb 2017 18:35:39 +0100 Subject: [PATCH 20/68] Feature linking datasets (update) add/delete links fully operative in "edit" dataset view. TODO: Make it work in "add" dataset view (now dynamics values are missing). --- .../Repositories/DefinitionRepository.php | 38 +++++++++++++++++++ app/views/ui/datasets/add.blade.php | 26 +++++++------ app/views/ui/datasets/edit.blade.php | 26 +++++++------ 3 files changed, 68 insertions(+), 22 deletions(-) diff --git a/app/Tdt/Core/Repositories/DefinitionRepository.php b/app/Tdt/Core/Repositories/DefinitionRepository.php index 9d35fab0..816556be 100644 --- a/app/Tdt/Core/Repositories/DefinitionRepository.php +++ b/app/Tdt/Core/Repositories/DefinitionRepository.php @@ -105,6 +105,25 @@ public function store(array $input) // Update the facets for the definition $this->updateFacets($definition); + + // Create "linked to" datasets + $linked_to_codes = array(); + foreach($input as $key => $value) { + if (strpos($key, 'linkedto_id') === 0 && !empty($value)) { + $linked_to_codes[] = preg_replace('/\D/', '', $key); + } + } + + if (!empty($linked_to_codes)){ + $linked_definitions_list = array(); + + foreach($linked_to_codes as $key => $value) { + $linked_definitions_list[$input['linkedto_id'.$value]] = ['description' => $input['linkedto_desc'.$value]]; + } + + $definition->linkedTo()->sync($linked_definitions_list); + } + // End Create "linked to" datasets return $definition->toArray(); } @@ -191,6 +210,25 @@ public function update($identifier, array $input) } $definition_model->save(); + + // Update "linked to" datasets + $linked_to_codes = array(); + foreach($input as $key => $value) { + if (strpos($key, 'linkedto_id') === 0 && !empty($value)) { + $linked_to_codes[] = preg_replace('/\D/', '', $key); + } + } + + if (!empty($linked_to_codes)){ + $linked_definitions_list = array(); + + foreach($linked_to_codes as $key => $value) { + $linked_definitions_list[$input['linkedto_id'.$value]] = ['description' => $input['linkedto_desc'.$value]]; + } + + $definition_model->linkedTo()->sync($linked_definitions_list); + } + // End Update "linked to" datasets return $definition_model->toArray(); } diff --git a/app/views/ui/datasets/add.blade.php b/app/views/ui/datasets/add.blade.php index 0300fedd..db818bfd 100755 --- a/app/views/ui/datasets/add.blade.php +++ b/app/views/ui/datasets/add.blade.php @@ -71,8 +71,9 @@

    {{ trans('admin.link_datasets_select_to') }}

    • - - + + +
    • @@ -473,16 +474,18 @@ $("#linked-to-datasets").on("click", "button[id^='add']", function ( event ) { event.preventDefault(); window.count++; - var linkedToID= "linkedTo" + window.count; - var linkedToDescID= "linkedToDesc" + window.count; - var btnAddID = "add" + window.count; - var btnDelID = "del" + window.count; + var linkedToNum = "linkedto" + window.count; + var linkedToDescNum = "linkedto_desc" + window.count; + var linkedToIDNum = "linkedto_id" + window.count; + var btnAddNum = "add" + window.count; + var btnDelNum = "del" + window.count; var ul = $("#linked-to-datasets"); var li = $("
    • ") - .append($("" - + "" - + "" - + "")); + .append($("" + + "" + + "" + + "" + + "")); li.appendTo(ul); }); @@ -497,12 +500,13 @@ window.count--; }); - $("#linked-to-datasets").on("focus.autocomplete", "input:text[name^='linkedTo']", function () { + $("#linked-to-datasets").on("focus.autocomplete", "input:text[name^='linkedto']", function () { $(this).autocomplete({ source: "/search/autocomplete", minLength: 0, select: function(event, ui) { $(this).val(ui.item.value); + $(this).closest('li').find('input[type=hidden]').val(ui.item.id); } }); diff --git a/app/views/ui/datasets/edit.blade.php b/app/views/ui/datasets/edit.blade.php index fdb2ccbd..bc18345e 100755 --- a/app/views/ui/datasets/edit.blade.php +++ b/app/views/ui/datasets/edit.blade.php @@ -52,8 +52,9 @@

      {{ trans('admin.update_linked_datasets') }}

      • - - + + +
      • @@ -345,16 +346,18 @@ $("#linked-to-datasets").on("click", "button[id^='add']", function ( event ) { event.preventDefault(); window.count++; - var linkedToID= "linkedTo" + window.count; - var linkedToDescID= "linkedToDesc" + window.count; - var btnAddID = "add" + window.count; - var btnDelID = "del" + window.count; + var linkedToNum = "linkedto" + window.count; + var linkedToDescNum = "linkedto_desc" + window.count; + var linkedToIDNum = "linkedto_id" + window.count; + var btnAddNum = "add" + window.count; + var btnDelNum = "del" + window.count; var ul = $("#linked-to-datasets"); var li = $("
      • ") - .append($("" - + "" - + "" - + "")); + .append($("" + + "" + + "" + + "" + + "")); li.appendTo(ul); }); @@ -369,12 +372,13 @@ window.count--; }); - $("#linked-to-datasets").on("focus.autocomplete", "input:text[name^='linkedTo']", function () { + $("#linked-to-datasets").on("focus.autocomplete", "input:text[name^='linkedto']", function () { $(this).autocomplete({ source: "/search/autocomplete", minLength: 0, select: function(event, ui) { $(this).val(ui.item.value); + $(this).closest('li').find('input[type=hidden]').val(ui.item.id); } }); From f9308fd4b6058c7b3473041346e203b1d2e13b2e Mon Sep 17 00:00:00 2001 From: luisdelacalle Date: Thu, 23 Feb 2017 18:54:37 +0100 Subject: [PATCH 21/68] upload xslt_file and add url in xslt_file --- .../Core/Definitions/DefinitionController.php | 9 +-- app/Tdt/Core/Formatters/CSVFormatter.php | 5 +- app/routes.php | 20 +++--- dev/js/admin.js | 65 +++++++++++++++++-- 4 files changed, 80 insertions(+), 19 deletions(-) diff --git a/app/Tdt/Core/Definitions/DefinitionController.php b/app/Tdt/Core/Definitions/DefinitionController.php index c7a2c53c..29ef7c9c 100755 --- a/app/Tdt/Core/Definitions/DefinitionController.php +++ b/app/Tdt/Core/Definitions/DefinitionController.php @@ -332,15 +332,16 @@ public function put($uri) // } } - $input['xslt_file'] = 1; - //TODO controlar la subida del segundo fichero fileupload_xslt y no como esta ahora, // Add uploaded file XSLT and change xslt_file. if (isset($input['fileupload_xslt']) && $input['fileupload_xslt'] != '') { - $input['xslt_file'] = 'file://' . $input['fileupload_xslt']; + $file2=$input['fileupload_xslt']; + $file3=explode("\\", $file2); + + $input['xslt_file'] =$file3[2] . '_' . time(); + - //TODO declarar fileupload_xslt y comprobar que funciona!!!!! } // Check if dataset should be indexed diff --git a/app/Tdt/Core/Formatters/CSVFormatter.php b/app/Tdt/Core/Formatters/CSVFormatter.php index ac949f72..4188dabf 100644 --- a/app/Tdt/Core/Formatters/CSVFormatter.php +++ b/app/Tdt/Core/Formatters/CSVFormatter.php @@ -13,6 +13,7 @@ use DOMDocument; use Log; +use File; use XSLTProcessor; //use SoapBox\Formatter\Formatter; @@ -48,8 +49,8 @@ public static function getBody($dataObj) // // $csv= $formatter->toCsv(); // -// Log::info('CSV'); -// Log::info($csv); + Log::info('CSV'); + Log::info($dataObj->data); // Carga el fichero XML origen diff --git a/app/routes.php b/app/routes.php index 8f285778..c5059e0a 100755 --- a/app/routes.php +++ b/app/routes.php @@ -54,14 +54,18 @@ $file = strtolower(preg_replace(array_keys($utf8), array_values($utf8), Input::file('fileupload')->getClientOriginalName())); -// $file_xslt = strtolower(preg_replace(array_keys($utf8), array_values($utf8), Input::file('fileupload_xslt')->getClientOriginalName())); -// -// if($file_xslt){ -// Input::file('fileupload_xslt')->move( -// app_path() . '/storage/app/', -// $file . '_' . time() . '.' . Input::file('fileupload_xslt')->getClientOriginalExtension() -// ); -// } + + $file_xslt_upload=Input::file('fileupload_xslt'); + + if(isset($file_xslt_upload)) { + $file_xslt = strtolower(preg_replace(array_keys($utf8), array_values($utf8), Input::file('fileupload_xslt')->getClientOriginalName())); + } + if(isset($file_xslt)){ + Input::file('fileupload_xslt')->move( + app_path() . '/storage/app/', + $file . '_' . time() . '.' . Input::file('fileupload_xslt')->getClientOriginalExtension() + ); + } return Input::file('fileupload')->move( app_path() . '/storage/app/', diff --git a/dev/js/admin.js b/dev/js/admin.js index 1e7eae61..b8cc7f50 100644 --- a/dev/js/admin.js +++ b/dev/js/admin.js @@ -172,16 +172,71 @@ $('.btn-add-dataset').on('click', function(e){ } } }) - } else { + } + //upload xml with xslt file + else if( tab_pane.find("#fileupload_xslt").length != 0 || tab_pane.find("#fileupload_xslt")[0].files.length != 0 ){ + + // Upload dataset file + var file = tab_pane.find('input[type=file]')[0].files[0]; + var fd = new FormData(); + fd.append("fileupload", file); + + + // test fileupload_xslt + var fileupload_xslt = tab_pane.find('#fileupload_xslt')[0].files[0]; + fd.append("fileupload_xslt", fileupload_xslt); + + console.log(file); + console.log(fileupload_xslt); + + // Ajax call: upload file + $.ajax({ + async: true, + type: "POST", + contentType: false, + url: baseURL + 'upload-file', + data: fd, + processData: false, + success: function (data1) { + data["fileupload"] = data1; + // Ajax call: add dataset + $.ajax({ + url: baseURL + "api/definitions/" + collection, + data: JSON.stringify(data), + method: "PUT", + headers: { + 'Accept' : 'application/json', + 'Content-Type': 'application/tdt.definition+json', + 'Authorization': authHeader + }, + success: function(e){ + // Done, redirect to datets page + window.location = baseURL + 'api/admin/datasets'; + }, + error: function(e){ + if(e.status != 405){ + var error = JSON.parse(e.responseText); + if(error.error && error.error.message){ + $('.error .text', tab_pane).html(error.error.message); + $('.error', tab_pane).removeClass('hide').show().focus(); + } + }else{ + // Ajax followed location header -> ignore + window.location = baseURL + 'api/admin/datasets'; + } + } + }); + }, + timeout: 10000 + }); + } + + else { // Upload dataset file var file = tab_pane.find('input[type=file]')[0].files[0]; var fd = new FormData(); fd.append("fileupload", file); - // // test fileupload_xslt - // var fileupload_xslt = tab_pane.find('input[type=file]')[0].files[0]; - // fd.append("fileupload_xslt", fileupload_xslt); - // Ajax call: upload file $.ajax({ async: true, From 701ff889e4fe0144e1468413bdd4908d3353a4fd Mon Sep 17 00:00:00 2001 From: luisdelacalle Date: Thu, 23 Feb 2017 22:11:36 +0100 Subject: [PATCH 22/68] XSLT feature complete! --- app/Tdt/Core/Datasets/DatasetController.php | 5 ----- .../Core/Definitions/DefinitionController.php | 2 +- app/Tdt/Core/Formatters/CSVFormatter.php | 19 +++---------------- .../Repositories/DefinitionRepository.php | 5 ----- app/routes.php | 2 +- dev/js/admin.js | 3 --- 6 files changed, 5 insertions(+), 31 deletions(-) diff --git a/app/Tdt/Core/Datasets/DatasetController.php b/app/Tdt/Core/Datasets/DatasetController.php index c48d6a5c..5bfacad1 100755 --- a/app/Tdt/Core/Datasets/DatasetController.php +++ b/app/Tdt/Core/Datasets/DatasetController.php @@ -63,8 +63,6 @@ public function get($uri) // Get definition $definition = $this->definition->getByIdentifier($uri); - Log::info('definition:'); - Log::info($definition); if ($definition) { // Get source definition @@ -73,10 +71,7 @@ public function get($uri) $definition['source_type'] ); - $source_definition['xslt_file'] = $definition['xslt_file']; - Log::info('$source_definition:'); - Log::info($source_definition); // when requesting data, the formatter should notice the linked job, // and treat it as an elasticsearch data type. diff --git a/app/Tdt/Core/Definitions/DefinitionController.php b/app/Tdt/Core/Definitions/DefinitionController.php index 29ef7c9c..6dcc4d1d 100755 --- a/app/Tdt/Core/Definitions/DefinitionController.php +++ b/app/Tdt/Core/Definitions/DefinitionController.php @@ -339,7 +339,7 @@ public function put($uri) $file2=$input['fileupload_xslt']; $file3=explode("\\", $file2); - $input['xslt_file'] =$file3[2] . '_' . time(); + $input['xslt_file'] =$file3[2] . '_' . date('Y-m-d'); } diff --git a/app/Tdt/Core/Formatters/CSVFormatter.php b/app/Tdt/Core/Formatters/CSVFormatter.php index 4188dabf..6d14b8c4 100644 --- a/app/Tdt/Core/Formatters/CSVFormatter.php +++ b/app/Tdt/Core/Formatters/CSVFormatter.php @@ -33,8 +33,6 @@ public static function createResponse($dataObj) public static function getBody($dataObj) { -// Log::info('CSV'); -// Log::info($dataObj->data ); // Check if its a result of a SPARQL select query if ($dataObj->source_definition['type'] == 'SPARQL' && $dataObj->source_definition['query_type'] == 'select') { @@ -43,26 +41,15 @@ public static function getBody($dataObj) //XML format if (!is_array($dataObj->data)) { - // \App::abort(400, "You can only request a CSV formatter on a tabular data structure."); -// $formatter = Formatter::make($dataObj->data , Formatter::XML); -// -// $csv= $formatter->toCsv(); -// - Log::info('CSV'); - Log::info($dataObj->data); - - - // Carga el fichero XML origen -// $xml = new DOMDocument; -// $xml->load('prueba.xml'); + $name_xslt_file=$dataObj->source_definition['xslt_file']; $xml = new DOMDocument(); $xml->loadXML($dataObj->data ); - //TODO enlazar con fichero subido xslt $xsl = new DOMDocument; - $xsl->load('prueba.xslt'); + $xsl->load(app_path() . '/storage/app/'.$name_xslt_file .'.xslt'); + // Configura el procesador $proc = new XSLTProcessor; diff --git a/app/Tdt/Core/Repositories/DefinitionRepository.php b/app/Tdt/Core/Repositories/DefinitionRepository.php index 816556be..be61b9f6 100644 --- a/app/Tdt/Core/Repositories/DefinitionRepository.php +++ b/app/Tdt/Core/Repositories/DefinitionRepository.php @@ -561,13 +561,8 @@ public function getDescriptionInfo($identifier) // Get the formats based on the source definition meta-data $format_helper = new FormatHelper(); - - Log::info('aquiee'); $formats = $format_helper->getFormatsForType($source_definition->toArray()); - Log::info('aquiee'); - Log::info($formats); - $properties['formats'] = $formats; $properties['identifier'] = $identifier; diff --git a/app/routes.php b/app/routes.php index c5059e0a..7c94a959 100755 --- a/app/routes.php +++ b/app/routes.php @@ -63,7 +63,7 @@ if(isset($file_xslt)){ Input::file('fileupload_xslt')->move( app_path() . '/storage/app/', - $file . '_' . time() . '.' . Input::file('fileupload_xslt')->getClientOriginalExtension() + $file_xslt . '_' . date('Y-m-d'). '.' . Input::file('fileupload_xslt')->getClientOriginalExtension() ); } diff --git a/dev/js/admin.js b/dev/js/admin.js index b8cc7f50..85a274f7 100644 --- a/dev/js/admin.js +++ b/dev/js/admin.js @@ -186,9 +186,6 @@ $('.btn-add-dataset').on('click', function(e){ var fileupload_xslt = tab_pane.find('#fileupload_xslt')[0].files[0]; fd.append("fileupload_xslt", fileupload_xslt); - console.log(file); - console.log(fileupload_xslt); - // Ajax call: upload file $.ajax({ async: true, From d3716bff4fcac1a5a7ee2a1af2629d607983d9d3 Mon Sep 17 00:00:00 2001 From: Jan Vansteenlandt Date: Thu, 23 Feb 2017 23:07:39 +0100 Subject: [PATCH 23/68] Merge --- app/Tdt/Core/Datasets/DatasetController.php | 7 --- .../Core/Definitions/DefinitionController.php | 17 +----- app/Tdt/Core/Formatters/FormatHelper.php | 9 +-- .../Repositories/DefinitionRepository.php | 8 --- .../2017_02_22_111625_xslt_file.php | 48 ++++++++-------- ...2_164900_create_link_definitions_table.php | 56 +++++++++---------- app/models/Definition.php | 28 +++++----- app/routes.php | 5 +- 8 files changed, 67 insertions(+), 111 deletions(-) diff --git a/app/Tdt/Core/Datasets/DatasetController.php b/app/Tdt/Core/Datasets/DatasetController.php index b5e805b9..55e4d82b 100755 --- a/app/Tdt/Core/Datasets/DatasetController.php +++ b/app/Tdt/Core/Datasets/DatasetController.php @@ -9,7 +9,6 @@ use Tdt\Core\ApiController; use Tdt\Core\Formatters\FormatHelper; use EasyRdf\RdfNamespace; -use Log; /** * DatasetController @@ -63,9 +62,6 @@ public function get($uri) // Get definition $definition = $this->definition->getByIdentifier($uri); - Log::info('definition:'); - Log::info($definition); - if ($definition) { // Get source definition $source_definition = $this->definition->getDefinitionSource( @@ -73,10 +69,7 @@ public function get($uri) $definition['source_type'] ); - $source_definition['xslt_file'] = $definition['xslt_file']; - Log::info('$source_definition:'); - Log::info($source_definition); // when requesting data, the formatter should notice the linked job, // and treat it as an elasticsearch data type. diff --git a/app/Tdt/Core/Definitions/DefinitionController.php b/app/Tdt/Core/Definitions/DefinitionController.php index 9640781a..0b98a0ac 100755 --- a/app/Tdt/Core/Definitions/DefinitionController.php +++ b/app/Tdt/Core/Definitions/DefinitionController.php @@ -9,7 +9,6 @@ use Tdt\Core\ApiController; use Tdt\Core\Repositories\Interfaces\DefinitionRepositoryInterface; use Config; -use Log; use File; /** @@ -317,35 +316,21 @@ public function put($uri) $input['collection_uri'] = @$matches[1]; $input['resource_name'] = @$matches[2]; - // Add uploaded file and change uri. if (isset($input['fileupload']) && $input['fileupload'] != '') { - $input['uri'] = 'file://' . $input['fileupload']; - -// $extension = File::extension($input['fileupload']); -// Log::info('extension:'); -// Log::info($extension); -// -// if($extension=='xslt'){ -// $input['xslt_file'] = 1; -// } } - //TODO controlar la subida del segundo fichero fileupload_xslt y no como esta ahora, // Add uploaded file XSLT and change xslt_file. if (isset($input['fileupload_xslt']) && $input['fileupload_xslt'] != '') { - $input['xslt_file'] = 'file://' . $input['fileupload_xslt']; - - //TODO declarar fileupload_xslt y comprobar que funciona!!!!! } // Check if dataset should be indexed if (isset($input['to_be_indexed']) && $input['to_be_indexed'] == 1) { $input['es_type'] = $input['collection_uri'] . '_' . $input['resource_name']; - //if a new job is stored and it needs to be indexed, set the draft flag to true + // if a new job is stored and it needs to be indexed, set the draft flag to true $input['draft_flag'] = 1; } diff --git a/app/Tdt/Core/Formatters/FormatHelper.php b/app/Tdt/Core/Formatters/FormatHelper.php index 05fb2ea4..dc6dc432 100644 --- a/app/Tdt/Core/Formatters/FormatHelper.php +++ b/app/Tdt/Core/Formatters/FormatHelper.php @@ -14,7 +14,7 @@ class FormatHelper /** * Return a list of the available formats that the data structure can be formatted into * - * @param Tdt\Core\Datasets\Data $data + * @param Tdt\Core\Datasets\Data $data * @return array */ public function getAvailableFormats($data) @@ -44,13 +44,10 @@ public function getFormatsForType($source_definition) $formats['KML'] = 'kml'; $formats['GeoJSON'] = 'geojson'; $formats['WKT'] = 'WKT'; - } - elseif($source_definition['xslt_file']){ + } elseif ($source_definition['xslt_file']) { $formats['CSV'] = 'csv'; $formats['XML'] = 'xml'; - } - - else { + } else { $formats['XML'] = 'xml'; } break; diff --git a/app/Tdt/Core/Repositories/DefinitionRepository.php b/app/Tdt/Core/Repositories/DefinitionRepository.php index 9d35fab0..c5dafc84 100644 --- a/app/Tdt/Core/Repositories/DefinitionRepository.php +++ b/app/Tdt/Core/Repositories/DefinitionRepository.php @@ -6,9 +6,6 @@ use Illuminate\Support\Facades\Validator; use Tdt\Core\Formatters\FormatHelper; -use Log; -use Logs; - class DefinitionRepository extends BaseDefinitionRepository implements DefinitionRepositoryInterface { protected $dcat_rules = [ @@ -523,13 +520,8 @@ public function getDescriptionInfo($identifier) // Get the formats based on the source definition meta-data $format_helper = new FormatHelper(); - - Log::info('aquiee'); $formats = $format_helper->getFormatsForType($source_definition->toArray()); - Log::info('aquiee'); - Log::info($formats); - $properties['formats'] = $formats; $properties['identifier'] = $identifier; diff --git a/app/database/migrations/2017_02_22_111625_xslt_file.php b/app/database/migrations/2017_02_22_111625_xslt_file.php index 56be9957..6b60b37e 100644 --- a/app/database/migrations/2017_02_22_111625_xslt_file.php +++ b/app/database/migrations/2017_02_22_111625_xslt_file.php @@ -2,33 +2,29 @@ use Illuminate\Database\Migrations\Migration; -class XsltFile extends Migration { - - /** - * Run the migrations. - * - * @return void - */ - public function up() - { - Schema::table('definitions', function($table) - { +class XsltFile extends Migration +{ + /** + * Run the migrations. + * + * @return void + */ + public function up() + { + Schema::table('definitions', function ($table) { $table->string('xslt_file', 255)->nullable(); - }); - } + }); + } - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('definitions', function($table) - { + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('definitions', function ($table) { $table->dropColumn('xslt_file'); - - }); - } - + }); + } } diff --git a/app/database/migrations/2017_02_22_164900_create_link_definitions_table.php b/app/database/migrations/2017_02_22_164900_create_link_definitions_table.php index 6bf55163..2361bafb 100644 --- a/app/database/migrations/2017_02_22_164900_create_link_definitions_table.php +++ b/app/database/migrations/2017_02_22_164900_create_link_definitions_table.php @@ -3,34 +3,32 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; -class CreateLinkDefinitionsTable extends Migration { - - /** - * Run the migrations. - * - * @return void - */ - public function up() - { - Schema::create('linked_definitions', function(Blueprint $table) { - $table->increments('id'); - $table->integer('linked_to')->unsigned()->index(); - $table->integer('linked_from')->unsigned()->index(); - $table->foreign('linked_to')->references('id')->on('definitions')->onDelete('cascade'); - $table->foreign('linked_from')->references('id')->on('definitions')->onDelete('cascade'); - - $table->string('description', 255)->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::drop('linked_definitions'); - } +class CreateLinkDefinitionsTable extends Migration +{ + /** + * Run the migrations. + * + * @return void + */ + public function up() + { + Schema::create('linked_definitions', function (Blueprint $table) { + $table->increments('id'); + $table->integer('linked_to')->unsigned()->index(); + $table->integer('linked_from')->unsigned()->index(); + $table->foreign('linked_to')->references('id')->on('definitions')->onDelete('cascade'); + $table->foreign('linked_from')->references('id')->on('definitions')->onDelete('cascade'); + $table->string('description', 255)->nullable(); + }); + } + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('linked_definitions'); + } } diff --git a/app/models/Definition.php b/app/models/Definition.php index a360ee95..c9333064 100755 --- a/app/models/Definition.php +++ b/app/models/Definition.php @@ -64,22 +64,20 @@ public function facets() { return $this->hasMany('Facet'); } - - /** + + /** * Return "linked from" definitions from pivot table "link_definitions" for this model. - */ - public function linkedFrom() - { - return $this->belongsToMany('Definition', 'linked_definitions', - 'linked_to', 'linked_from')->withPivot('description'); - } + */ + public function linkedFrom() + { + return $this->belongsToMany('Definition', 'linked_definitions', 'linked_to', 'linked_from')->withPivot('description'); + } - /** + /** * Return "linked to" definitions from pivot table "link_definitions" for this model. - */ - public function linkedTo() - { - return $this->belongsToMany('Definition', 'linked_definitions', - 'linked_from', 'linked_to')->withPivot('description'); - } + */ + public function linkedTo() + { + return $this->belongsToMany('Definition', 'linked_definitions', 'linked_from', 'linked_to')->withPivot('description'); + } } diff --git a/app/routes.php b/app/routes.php index 915024a8..34ac0696 100755 --- a/app/routes.php +++ b/app/routes.php @@ -6,8 +6,6 @@ |-------------------------------------------------------------------------- */ -use Log; - /** * Admin routes */ @@ -54,7 +52,6 @@ '/ /' => '_', // nonbreaking space (equiv. to 0x160) ]; - $file = strtolower(preg_replace(array_keys($utf8), array_values($utf8), Input::file('fileupload')->getClientOriginalName())); // $file_xslt = strtolower(preg_replace(array_keys($utf8), array_values($utf8), Input::file('fileupload_xslt')->getClientOriginalName())); // @@ -92,7 +89,7 @@ App::error(function ($exception, $code) { // Log error - Log::error($exception); + \Log::error($exception); // Check Accept-header $accept_header = \Request::header('Accept'); From a5148bec873738f9979169d9dd4c702d0203a709 Mon Sep 17 00:00:00 2001 From: jwebrare Date: Fri, 24 Feb 2017 07:52:27 +0100 Subject: [PATCH 24/68] Feature linking datasets (completed) --- .../Repositories/DefinitionRepository.php | 8 +-- ...2_164900_create_link_definitions_table.php | 2 + app/lang/en/admin.php | 8 ++- app/lang/fr/admin.php | 8 ++- app/lang/nl/admin.php | 8 ++- app/models/Definition.php | 4 +- app/views/ui/datasets/edit.blade.php | 50 ++++++++++++++----- dev/js/admin.js | 18 +++++++ 8 files changed, 74 insertions(+), 32 deletions(-) diff --git a/app/Tdt/Core/Repositories/DefinitionRepository.php b/app/Tdt/Core/Repositories/DefinitionRepository.php index 816556be..0b409e50 100644 --- a/app/Tdt/Core/Repositories/DefinitionRepository.php +++ b/app/Tdt/Core/Repositories/DefinitionRepository.php @@ -113,12 +113,12 @@ public function store(array $input) $linked_to_codes[] = preg_replace('/\D/', '', $key); } } - + if (!empty($linked_to_codes)){ $linked_definitions_list = array(); foreach($linked_to_codes as $key => $value) { - $linked_definitions_list[$input['linkedto_id'.$value]] = ['description' => $input['linkedto_desc'.$value]]; + $linked_definitions_list[$input['linkedto_id'.$value]] = ['description' => $input['linkedto_desc'.$value], 'title_to' => $input['linkedto'.$value], 'title_from' => $source['title']]; } $definition->linkedTo()->sync($linked_definitions_list); @@ -223,10 +223,12 @@ public function update($identifier, array $input) $linked_definitions_list = array(); foreach($linked_to_codes as $key => $value) { - $linked_definitions_list[$input['linkedto_id'.$value]] = ['description' => $input['linkedto_desc'.$value]]; + $linked_definitions_list[$input['linkedto_id'.$value]] = ['description' => $input['linkedto_desc'.$value], 'title_to' => $input['linkedto'.$value], 'title_from' => $source['title']]; } $definition_model->linkedTo()->sync($linked_definitions_list); + } else { + $definition_model->linkedTo()->detach(); } // End Update "linked to" datasets diff --git a/app/database/migrations/2017_02_22_164900_create_link_definitions_table.php b/app/database/migrations/2017_02_22_164900_create_link_definitions_table.php index 6bf55163..6500f36a 100644 --- a/app/database/migrations/2017_02_22_164900_create_link_definitions_table.php +++ b/app/database/migrations/2017_02_22_164900_create_link_definitions_table.php @@ -19,6 +19,8 @@ public function up() $table->foreign('linked_to')->references('id')->on('definitions')->onDelete('cascade'); $table->foreign('linked_from')->references('id')->on('definitions')->onDelete('cascade'); + $table->string('title_to', 255)->nullable(); + $table->string('title_from', 255)->nullable(); $table->string('description', 255)->nullable(); }); } diff --git a/app/lang/en/admin.php b/app/lang/en/admin.php index 2868c589..b53b656e 100755 --- a/app/lang/en/admin.php +++ b/app/lang/en/admin.php @@ -71,13 +71,11 @@ "updated_by" => "Updated by", "link_datasets" => "Link to other datasets (optional)", "link_datasets_select_to" => "Search and select datasets to be linked to", - "current_linked_datasets" => "Current linked datasets", - "linked_to" => "Linked to", - "linked_from" => "Linked from", - "update_linked_datasets" => "Update linked datasets", + "current_linked_datasets" => "Currently linked from", + "update_linked_datasets" => "Update 'linked to' datasets", "linked_datasets_type_to_search" => "Type to search and select a dataset...", "linked_datasets_provide_context" => "Provide some context as to why this dataset is related...", "add_link" => "Add link", - "delete_link" => "Delete link", + "delete_link" => "Delete link", "linked_datasets_alert" => "Can't delete default dataset input textbox!" ); diff --git a/app/lang/fr/admin.php b/app/lang/fr/admin.php index 4f4b09da..b6d21aee 100644 --- a/app/lang/fr/admin.php +++ b/app/lang/fr/admin.php @@ -65,13 +65,11 @@ "updated_by" => "Mise à jour", "link_datasets" => "Link to other datasets (optional)", "link_datasets_select_to" => "Search and select datasets to be linked to", - "current_linked_datasets" => "Current linked datasets", - "linked_to" => "Linked to", - "linked_from" => "Linked from", - "update_linked_datasets" => "Update linked datasets", + "current_linked_datasets" => "Currently linked from", + "update_linked_datasets" => "Update 'linked to' datasets", "linked_datasets_type_to_search" => "Type to search and select a dataset...", "linked_datasets_provide_context" => "Provide some context as to why this dataset is related...", "add_link" => "Add link", - "delete_link" => "Delete link", + "delete_link" => "Delete link", "linked_datasets_alert" => "Can't delete default dataset input textbox!" ); diff --git a/app/lang/nl/admin.php b/app/lang/nl/admin.php index c3783d07..ad70db17 100644 --- a/app/lang/nl/admin.php +++ b/app/lang/nl/admin.php @@ -65,13 +65,11 @@ "updated_by" => "Geactualiseerd door", "link_datasets" => "Link to other datasets (optional)", "link_datasets_select_to" => "Search and select datasets to be linked to", - "current_linked_datasets" => "Current linked datasets", - "linked_to" => "Linked to", - "linked_from" => "Linked from", - "update_linked_datasets" => "Update linked datasets", + "current_linked_datasets" => "Currently linked from", + "update_linked_datasets" => "Update 'linked to' datasets", "linked_datasets_type_to_search" => "Type to search and select a dataset...", "linked_datasets_provide_context" => "Provide some context as to why this dataset is related...", "add_link" => "Add link", - "delete_link" => "Delete link", + "delete_link" => "Delete link", "linked_datasets_alert" => "Can't delete default dataset input textbox!" ); diff --git a/app/models/Definition.php b/app/models/Definition.php index a360ee95..ca46e24f 100755 --- a/app/models/Definition.php +++ b/app/models/Definition.php @@ -71,7 +71,7 @@ public function facets() public function linkedFrom() { return $this->belongsToMany('Definition', 'linked_definitions', - 'linked_to', 'linked_from')->withPivot('description'); + 'linked_to', 'linked_from')->withPivot('description','title_from'); } /** @@ -80,6 +80,6 @@ public function linkedFrom() public function linkedTo() { return $this->belongsToMany('Definition', 'linked_definitions', - 'linked_from', 'linked_to')->withPivot('description'); + 'linked_from', 'linked_to')->withPivot('description','title_to'); } } diff --git a/app/views/ui/datasets/edit.blade.php b/app/views/ui/datasets/edit.blade.php index bc18345e..08fe9be0 100755 --- a/app/views/ui/datasets/edit.blade.php +++ b/app/views/ui/datasets/edit.blade.php @@ -34,30 +34,38 @@

        {{ trans('admin.current_linked_datasets') }}

        -
        {{ trans('admin.linked_from') }}
        + @if($definition->linkedFrom->count()) @foreach ($definition->linkedFrom as $lnkdFrom) -

        {{ $lnkdFrom->pivot->description." | ".$lnkdFrom->pivot->linked_from }}

        - @endforeach - -
        -
        -
        {{ trans('admin.linked_to') }}
        - @foreach ($definition->linkedTo as $lnkdTo) -

        {{ $lnkdTo->pivot->description." | ".$lnkdTo->pivot->linked_to }}

        +

        {{ $lnkdFrom->pivot->title_from }} ( {{ $lnkdFrom->pivot->description }} )

        @endforeach + @else +

        This dataset is not linked from any other dataset.

        + @endif

    {{ trans('admin.update_linked_datasets') }}

    -
      +
        + @if($definition->linkedTo->count()) + @foreach ($definition->linkedTo as $key => $lnkdTo) +
      • + + + + + +
      • + @endforeach + @else
      • -
      • + + @endif
    @@ -341,7 +349,11 @@ - + $("#linked-to-datasets").on("click", "button[id^='del']", function ( event ) { + event.preventDefault(); + if (window.count == 0) { + var li = $(this).parent(); + li.remove(); + var linkedToNum = "linkedto" + window.count; + var linkedToDescNum = "linkedto_desc" + window.count; + var linkedToIDNum = "linkedto_id" + window.count; + var btnAddNum = "add" + window.count; + var btnDelNum = "del" + window.count; + var ul = $("#linked-to-datasets"); + var linew = $("
  • ") + .append($("" + + "" + + "" + + "" + + "")); + linew.appendTo(ul); + return; + } + var li = $(this).parent(); + li.remove(); + window.count--; + }); + + $("#linked-to-datasets").on("focus.autocomplete", "input:text[name^='linkedto']", function () { + $(this).autocomplete({ + source: "/search/autocomplete", + minLength: 0, + select: function(event, ui) { + $(this).val(ui.item.value); + $(this).closest('li').find('input[type=hidden]').val(ui.item.id); + } + }); + + $(this).autocomplete("search"); + }); + + }); + @stop \ No newline at end of file diff --git a/public/css/main.css b/public/css/main.css index e0310c3e..51d1b426 100644 --- a/public/css/main.css +++ b/public/css/main.css @@ -1 +1 @@ -article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:active,a:hover{outline:0}h1{margin:.67em 0}b,strong{font-weight:700}dfn{font-style:italic}hr{box-sizing:content-box;height:0}mark{background:#ff0;color:#000}kbd,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}button,input{margin:0}select,textarea{margin:0}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}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}*,:after,:before{box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:transparent}body{line-height:1.428571429}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}button,input,select[multiple],textarea{background-image:none}a{text-decoration:none}a:focus{outline:#333 dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded,.img-thumbnail{border-radius:0}.img-thumbnail{padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;-webkit-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}@media print{*{text-shadow:none!important;color:#000!important;background:0 0!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href)")"}abbr[title]:after{content:" (" attr(title)")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:2cm .5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16.1px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small{font-size:85%}cite{font-style:normal}.text-muted{color:#999}.text-primary{color:#428bca}.text-warning{color:#c09853}.text-danger{color:#b94a48}.text-success{color:#468847}.text-info{color:#3a87ad}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2{font-weight:500}h1,h2,h3{line-height:1.1}.h1,.h2,.h3,.h4,.h5,.h6,h4,h5,h6{font-weight:500;line-height:1.1}.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:400;line-height:1;color:#999}h1,h2,h3{margin-top:20px;margin-bottom:10px}h4,h5,h6{margin-top:10px;margin-bottom:10px}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3{font-size:24px}.h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}.h1 small,h1 small{font-size:24px}.h2 small,h2 small{font-size:18px}.h3 small,.h4 small,h3 small,h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-bottom:20px}dd,dt{line-height:1.428571429}dt{font-weight:700}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}.dl-horizontal dd:after,.dl-horizontal dd:before{content:" ";display:table}.dl-horizontal dd:after{clear:both}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{font-size:17.5px;font-weight:300;line-height:1.25}blockquote p:last-child{margin-bottom:0}blockquote small{display:block;line-height:1.428571429;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}blockquote:after,blockquote:before,q:after,q:before{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:1.428571429}code,pre{font-family:Monaco,Menlo,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap}code,pre{border-radius:0}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc}pre.prettyprint{margin-bottom:20px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.container:after,.container:before{content:" ";display:table}.container:after{clear:both}.row:after,.row:before{content:" ";display:table}.row:after{clear:both}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.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-md-1,.col-md-10,.col-md-11,.col-md-12,.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-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.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-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-1{width:8.333333333333332%}.col-xs-2{width:16.666666666666664%}.col-xs-3{width:25%}.col-xs-4{width:33.33333333333333%}.col-xs-5{width:41.66666666666667%}.col-xs-6{width:50%}.col-xs-7{width:58.333333333333336%}.col-xs-8{width:66.66666666666666%}.col-xs-9{width:75%}.col-xs-10{width:83.33333333333334%}.col-xs-11{width:91.66666666666666%}.col-xs-12{width:100%}@media (min-width:768px){.container{max-width:750px}.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-1{width:8.333333333333332%}.col-sm-2{width:16.666666666666664%}.col-sm-3{width:25%}.col-sm-4{width:33.33333333333333%}.col-sm-5{width:41.66666666666667%}.col-sm-6{width:50%}.col-sm-7{width:58.333333333333336%}.col-sm-8{width:66.66666666666666%}.col-sm-9{width:75%}.col-sm-10{width:83.33333333333334%}.col-sm-11{width:91.66666666666666%}.col-sm-12{width:100%}.col-sm-push-1{left:8.333333333333332%}.col-sm-push-2{left:16.666666666666664%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.33333333333333%}.col-sm-push-5{left:41.66666666666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.333333333333336%}.col-sm-push-8{left:66.66666666666666%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.33333333333334%}.col-sm-push-11{left:91.66666666666666%}.col-sm-pull-1{right:8.333333333333332%}.col-sm-pull-2{right:16.666666666666664%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.33333333333333%}.col-sm-pull-5{right:41.66666666666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.333333333333336%}.col-sm-pull-8{right:66.66666666666666%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.33333333333334%}.col-sm-pull-11{right:91.66666666666666%}.col-sm-offset-1{margin-left:8.333333333333332%}.col-sm-offset-2{margin-left:16.666666666666664%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333333333333%}.col-sm-offset-5{margin-left:41.66666666666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.333333333333336%}.col-sm-offset-8{margin-left:66.66666666666666%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333333333334%}.col-sm-offset-11{margin-left:91.66666666666666%}}@media (min-width:992px){.container{max-width:970px}.col-md-1,.col-md-10,.col-md-11,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-1{width:8.333333333333332%}.col-md-2{width:16.666666666666664%}.col-md-3{width:25%}.col-md-4{width:33.33333333333333%}.col-md-5{width:41.66666666666667%}.col-md-6{width:50%}.col-md-7{width:58.333333333333336%}.col-md-8{width:66.66666666666666%}.col-md-9{width:75%}.col-md-10{width:83.33333333333334%}.col-md-11{width:91.66666666666666%}.col-md-12{width:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.333333333333332%}.col-md-push-2{left:16.666666666666664%}.col-md-push-3{left:25%}.col-md-push-4{left:33.33333333333333%}.col-md-push-5{left:41.66666666666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.333333333333336%}.col-md-push-8{left:66.66666666666666%}.col-md-push-9{left:75%}.col-md-push-10{left:83.33333333333334%}.col-md-push-11{left:91.66666666666666%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.333333333333332%}.col-md-pull-2{right:16.666666666666664%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.33333333333333%}.col-md-pull-5{right:41.66666666666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.333333333333336%}.col-md-pull-8{right:66.66666666666666%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.33333333333334%}.col-md-pull-11{right:91.66666666666666%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.333333333333332%}.col-md-offset-2{margin-left:16.666666666666664%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333333333333%}.col-md-offset-5{margin-left:41.66666666666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.333333333333336%}.col-md-offset-8{margin-left:66.66666666666666%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333333333334%}.col-md-offset-11{margin-left:91.66666666666666%}}@media (min-width:1200px){.container{max-width:1170px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-1{width:8.333333333333332%}.col-lg-2{width:16.666666666666664%}.col-lg-3{width:25%}.col-lg-4{width:33.33333333333333%}.col-lg-5{width:41.66666666666667%}.col-lg-6{width:50%}.col-lg-7{width:58.333333333333336%}.col-lg-8{width:66.66666666666666%}.col-lg-9{width:75%}.col-lg-10{width:83.33333333333334%}.col-lg-11{width:91.66666666666666%}.col-lg-12{width:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.333333333333332%}.col-lg-push-2{left:16.666666666666664%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.33333333333333%}.col-lg-push-5{left:41.66666666666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.333333333333336%}.col-lg-push-8{left:66.66666666666666%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.33333333333334%}.col-lg-push-11{left:91.66666666666666%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.333333333333332%}.col-lg-pull-2{right:16.666666666666664%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.33333333333333%}.col-lg-pull-5{right:41.66666666666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.333333333333336%}.col-lg-pull-8{right:66.66666666666666%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.33333333333334%}.col-lg-pull-11{right:91.66666666666666%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.333333333333332%}.col-lg-offset-2{margin-left:16.666666666666664%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333333333333%}.col-lg-offset-5{margin-left:41.66666666666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.333333333333336%}.col-lg-offset-8{margin-left:66.66666666666666%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333333333334%}.col-lg-offset-11{margin-left:91.66666666666666%}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table thead>tr>th{padding:8px;line-height:1.428571429;border-top:1px solid #ddd}.table tbody>tr>td,.table tbody>tr>th,.table tfoot>tr>td,.table tfoot>tr>th,.table thead>tr>td{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.table thead>tr>th{vertical-align:bottom}.table caption+thead tr:first-child td,.table caption+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table thead:first-child tr:first-child td,.table thead:first-child tr:first-child th{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed tbody>tr>td,.table-condensed tbody>tr>th,.table-condensed tfoot>tr>td,.table-condensed tfoot>tr>th,.table-condensed thead>tr>td,.table-condensed thead>tr>th{padding:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*=col-]{float:none;display:table-column}table td[class*=col-],table th[class*=col-]{float:none;display:table-cell}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8;border-color:#d6e9c6}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6;border-color:#c9e2b3}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede;border-color:#eed3d7}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc;border-color:#e6c1c7}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3;border-color:#fbeed5}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc;border-color:#f8e5be}@media (max-width:768px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:scroll;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0;background-color:#fff}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>thead>tr:last-child>td,.table-responsive>.table-bordered>thead>tr:last-child>th{border-bottom:0}}fieldset{padding:0;margin:0;border: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;margin-bottom:5px;font-weight:700}input[type=search]{box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;line-height:normal}input[type=file]{display:block}select[multiple],select[size]{height:auto}select optgroup{font-size:inherit;font-style:inherit;font-family:inherit}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:#333 dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}.form-control:-moz-placeholder,.form-control::-moz-placeholder{color:#999}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control{display:block;width:100%;height:34px;line-height:1.428571429;color:#555;vertical-align:middle;background-color:#fff;border:1px solid #ccc;border-radius:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-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;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}textarea.form-control{height:auto}.form-group{margin-bottom:15px}.checkbox,.radio{display:block;min-height:20px;margin-top:10px;margin-bottom:10px;padding-left:20px;vertical-align:middle}.checkbox label,.radio label{display:inline;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{float:left;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.checkbox-inline[disabled],.checkbox[disabled],.radio-inline[disabled],.radio[disabled],fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:0}select.input-sm{height:30px;line-height:30px}textarea.input-sm{height:auto}.input-lg{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:0}select.input-lg{height:45px;line-height:45px}textarea.input-lg{height:auto}.has-warning .control-label,.has-warning .help-block{color:#c09853}.has-warning .form-control{border-color:#c09853;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#a47e3c;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #dbc59e}.has-warning .input-group-addon{color:#c09853;border-color:#c09853;background-color:#fcf8e3}.has-error .control-label,.has-error .help-block{color:#b94a48}.has-error .form-control{border-color:#b94a48;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#953b39;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #d59392}.has-error .input-group-addon{color:#b94a48;border-color:#b94a48;background-color:#f2dede}.has-success .control-label,.has-success .help-block{color:#468847}.has-success .form-control{border-color:#468847;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#356635;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7aba7b}.has-success .input-group-addon{color:#468847;border-color:#468847;background-color:#dff0d8}.form-control-static{margin-bottom:0;padding-top:7px}.help-block{display:block;margin-top:5px;margin-bottom:10px}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{float:none;margin-left:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-group:before{content:" ";display:table}.form-horizontal .form-group:after{content:" ";display:table;clear:both}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-weight:400;line-height:1.428571429;text-align:center;vertical-align:middle;cursor:pointer;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.btn:focus{outline:#333 dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{outline:0;background-image:none;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.active,.btn-default:active,.btn-default:focus,.btn-default:hover,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default.active,.btn-default:active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary.active,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary.active,.btn-primary:active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#428bca;border-color:#357ebd}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.active,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.active,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.active,.btn-success:active,.btn-success:focus,.btn-success:hover,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success.active,.btn-success:active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.active,.btn-info:active,.btn-info:focus,.btn-info:hover,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info.active,.btn-info:active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-link{color:#428bca;font-weight:400;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#999;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:0}.btn-sm{padding:5px 10px}.btn-sm,.btn-xs{font-size:12px;line-height:1.5;border-radius:0}.btn-xs{padding:1px 5px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.btn-default .caret{border-top-color:#333}.btn-danger .caret,.btn-info .caret,.btn-primary .caret,.btn-success .caret,.btn-warning .caret{border-top-color:#fff}.dropup .btn-default .caret{border-bottom-color:#333}.dropup .btn-danger .caret,.dropup .btn-info .caret,.dropup .btn-primary .caret,.dropup .btn-success .caret,.dropup .btn-warning .caret{border-bottom-color:#fff}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn{float:left}.btn-group-vertical>.btn,.btn-group>.btn{position:relative}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group-vertical>.btn:focus,.btn-group>.btn:focus{outline:0}.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:after,.btn-toolbar:before{content:" ";display:table}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group{float:left}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn-group+.btn-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>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-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-xs>.btn{padding:1px 5px}.btn-group-sm>.btn,.btn-group-xs>.btn{font-size:12px;line-height:1.5;border-radius:0}.btn-group-sm>.btn{padding:5px 10px}.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius: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{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before{content:" ";display:table}.btn-group-vertical>.btn-group:after{content:" ";display:table;clear:both}.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:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:0;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>.btn:last-child,.btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-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{float:none;display:table-cell;width:1%}[data-toggle=buttons]>.btn>input[type=checkbox],[data-toggle=buttons]>.btn>input[type=radio]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group.col{float:none;padding-left:0;padding-right:0}.input-group .form-control{width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:0}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:45px;line-height:45px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.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:0}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{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon{white-space:nowrap}.input-group-addon,.input-group-btn{width:1%;vertical-align:middle}.input-group-addon{font-weight:400;line-height:1;text-align:center;background-color:#eee;border-radius:0}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:0}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:0}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{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>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){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:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.dropdown-toggle{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{white-space:nowrap}.input-group-btn,.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-4px}.input-group-btn>.btn:active,.input-group-btn>.btn:hover{z-index:2}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav:after,.nav:before{content:" ";display:table}.nav:after{clear:both}.nav>li,.nav>li>a{position:relative;display:block}.nav>li>a{padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#428bca}.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.428571429;border:1px solid transparent;border-radius:0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{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;border-bottom:1px solid #ddd;margin-right:0}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}}.nav-tabs.nav-justified>.active>a{border-bottom-color:#fff}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:5px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#428bca}.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}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;margin-right:0}.nav-tabs-justified>.active>a{border-bottom-color:#fff}.tabbable:after,.tabbable:before{content:" ";display:table}.tabbable:after{clear:both}.pill-content>.pill-pane,.tab-content>.tab-pane{display:none}.pill-content>.active,.tab-content>.active{display:block}.nav .caret{border-top-color:#428bca;border-bottom-color:#428bca}.nav a:hover .caret{border-top-color:#2a6496;border-bottom-color:#2a6496}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;z-index:1000;border:1px solid transparent}.navbar:after,.navbar:before{content:" ";display:table}.navbar:after{clear:both}@media (min-width:768px){.navbar{border-radius:0}}.navbar-header:after,.navbar-header:before{content:" ";display:table}.navbar-header:after{clear:both}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse:after,.navbar-collapse:before{content:" ";display:table}.navbar-collapse:after{clear:both}.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;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-collapse .navbar-nav.navbar-left:first-child{margin-left:-15px}.navbar-collapse .navbar-nav.navbar-right:last-child{margin-right:-15px}.navbar-collapse .navbar-text:last-child{margin-right:0}}.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;border-width:0 0 1px}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{z-index:1030;top:0}.navbar-fixed-bottom{bottom:0;margin-bottom:0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius: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:7.5px -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 .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin:8px -15px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{float:none;margin-left:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;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{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-nav.pull-right>li>.dropdown-menu,.navbar-nav>li>.dropdown-menu.pull-right{left:auto;right:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-text{float:left;margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{margin-left:15px;margin-right:15px}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-nav>li>a,.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e6e6e6}.navbar-default .navbar-nav>.dropdown>a:focus .caret,.navbar-default .navbar-nav>.dropdown>a:hover .caret{border-top-color:#333;border-bottom-color:#333}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{background-color:#e7e7e7;color:#555}.navbar-default .navbar-nav>.open>a .caret,.navbar-default .navbar-nav>.open>a:focus .caret,.navbar-default .navbar-nav>.open>a:hover .caret{border-top-color:#555;border-bottom-color:#555}.navbar-default .navbar-nav>.dropdown>a .caret{border-top-color:#777;border-bottom-color:#777}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>li>a,.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{background-color:#080808;color:#fff}.navbar-inverse .navbar-nav>.dropdown>a:hover .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-nav>.dropdown>a .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .navbar-nav>.open>a .caret,.navbar-inverse .navbar-nav>.open>a:focus .caret,.navbar-inverse .navbar-nav>.open>a:hover .caret{border-top-color:#fff;border-bottom-color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:0}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:0}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.428571429;text-decoration:none;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:0;border-top-left-radius:0}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{background-color:#eee}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span{color:#999;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:0;border-top-left-radius:0}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.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:0;border-top-left-radius:0}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager:after,.pager:before{content:" ";display:table}.pager:after{clear:both}.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:focus,.pager li>a:hover{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:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:focus,.label[href]:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.label-default{background-color:#999}.label-default[href]:focus,.label-default[href]:hover{background-color:gray}.label-primary{background-color:#428bca}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.badge:empty{display:none}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.btn .badge{position:relative;top:-1px}.nav-pills>.active>a>.badge,a.list-group-item.active>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.thumbnail{padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:0;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail,.thumbnail>img{display:block;max-width:100%;height:auto}a.thumbnail:focus,a.thumbnail:hover{border-color:#428bca}.thumbnail>img{margin-left:auto;margin-right:auto}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border-radius:0}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#356635}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#2d6987}.alert-warning{background-color:#fcf8e3;border-color:#fbeed5;color:#c09853}.alert-warning hr{border-top-color:#f8e5be}.alert-warning .alert-link{color:#a47e3c}.alert-danger{background-color:#f2dede;border-color:#eed3d7;color:#b94a48}.alert-danger hr{border-top-color:#e6c1c7}.alert-danger .alert-link{color:#953b39}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.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:0;border-top-left-radius:0}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover{text-decoration:none;background-color:#f5f5f5}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#e1edf7}.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:#fff;border:1px solid transparent;border-radius:0;box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-body:after,.panel-body:before{content:" ";display:table}.panel-body:after{clear:both}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0}.panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel>.list-group .list-group-item:last-child{border-bottom:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table{margin-bottom:0}.panel>.panel-body+.table{border-top:1px solid #ddd}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:-1px;border-top-left-radius:-1px}.panel-title{margin-top:0;margin-bottom:0;font-size:16px}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:-1px;border-bottom-left-radius:-1px}.panel-group .panel{margin-bottom:0;border-radius:0;overflow:hidden}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{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:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-warning{border-color:#fbeed5}.panel-warning>.panel-heading{color:#c09853;background-color:#fcf8e3;border-color:#fbeed5}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#fbeed5}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#fbeed5}.panel-danger{border-color:#eed3d7}.panel-danger>.panel-heading{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#eed3d7}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#eed3d7}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border-radius:0}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:0}.well-sm{padding:9px;border-radius:0}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;border-bottom:0 dotted;content:""}.dropdown{position:relative}.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;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:0;box-shadow:0 6px 12px rgba(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:400;line-height:1.428571429;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{text-decoration:none;color:#fff;background-color:#428bca}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#999}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{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-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.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 dotted;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:12px;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:0}.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;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right: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;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:0;box-shadow:0 5px 10px rgba(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;font-weight:400;line-height:18px;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,.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,.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,.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,.25)}.popover.left .arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.modal-open{overflow:hidden}.modal-open .navbar-fixed-bottom,.modal-open .navbar-fixed-top,body.modal-open{margin-right:15px}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{margin-left:auto;margin-right:auto;width:auto;padding:10px;z-index:1050}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:0;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;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.43px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.428571429}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:after,.modal-footer:before{content:" ";display:table}.modal-footer:after{clear:both}.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}@media screen and (min-width:768px){.modal-dialog{left:50%;right:auto;width:600px;padding-top:30px;padding-bottom:30px}.modal-content{box-shadow:0 5px 15px rgba(0,0,0,.5)}}.clearfix:after,.clearfix:before{content:" ";display:table}.clearfix:after{clear:both}.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}.affix{position:fixed}@-ms-viewport{width:device-width}@media screen and (max-width:400px){@-ms-viewport{width:320px}}.hidden{visibility:hidden!important}.hidden,.visible-lg,.visible-md,.visible-sm,.visible-xs,td.visible-lg,td.visible-md,td.visible-sm,td.visible-xs,th.visible-lg,th.visible-md,th.visible-sm,th.visible-xs,tr.visible-lg,tr.visible-md,tr.visible-sm,tr.visible-xs{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-xs.visible-sm{display:block!important}tr.visible-xs.visible-sm{display:table-row!important}td.visible-xs.visible-sm,th.visible-xs.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-xs.visible-md{display:block!important}tr.visible-xs.visible-md{display:table-row!important}td.visible-xs.visible-md,th.visible-xs.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-xs.visible-lg{display:block!important}tr.visible-xs.visible-lg{display:table-row!important}td.visible-xs.visible-lg,th.visible-xs.visible-lg{display:table-cell!important}}@media (max-width:767px){.visible-sm.visible-xs{display:block!important}tr.visible-sm.visible-xs{display:table-row!important}td.visible-sm.visible-xs,th.visible-sm.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-sm.visible-md{display:block!important}tr.visible-sm.visible-md{display:table-row!important}td.visible-sm.visible-md,th.visible-sm.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-sm.visible-lg{display:block!important}tr.visible-sm.visible-lg{display:table-row!important}td.visible-sm.visible-lg,th.visible-sm.visible-lg{display:table-cell!important}}@media (max-width:767px){.visible-md.visible-xs{display:block!important}tr.visible-md.visible-xs{display:table-row!important}td.visible-md.visible-xs,th.visible-md.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-md.visible-sm{display:block!important}tr.visible-md.visible-sm{display:table-row!important}td.visible-md.visible-sm,th.visible-md.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-md.visible-lg{display:block!important}tr.visible-md.visible-lg{display:table-row!important}td.visible-md.visible-lg,th.visible-md.visible-lg{display:table-cell!important}}@media (max-width:767px){.visible-lg.visible-xs{display:block!important}tr.visible-lg.visible-xs{display:table-row!important}td.visible-lg.visible-xs,th.visible-lg.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-lg.visible-sm{display:block!important}tr.visible-lg.visible-sm{display:table-row!important}td.visible-lg.visible-sm,th.visible-lg.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-lg.visible-md{display:block!important}tr.visible-lg.visible-md{display:table-row!important}td.visible-lg.visible-md,th.visible-lg.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-lg{display:block!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}.hidden-xs{display:block!important}tr.hidden-xs{display:table-row!important}td.hidden-xs,th.hidden-xs{display:table-cell!important}@media (max-width:767px){.hidden-xs,td.hidden-xs,th.hidden-xs,tr.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-xs.hidden-sm,td.hidden-xs.hidden-sm,th.hidden-xs.hidden-sm,tr.hidden-xs.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-xs.hidden-md,td.hidden-xs.hidden-md,th.hidden-xs.hidden-md,tr.hidden-xs.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-xs.hidden-lg,td.hidden-xs.hidden-lg,th.hidden-xs.hidden-lg,tr.hidden-xs.hidden-lg{display:none!important}}.hidden-sm{display:block!important}tr.hidden-sm{display:table-row!important}td.hidden-sm,th.hidden-sm{display:table-cell!important}@media (max-width:767px){.hidden-sm.hidden-xs,td.hidden-sm.hidden-xs,th.hidden-sm.hidden-xs,tr.hidden-sm.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm,td.hidden-sm,th.hidden-sm,tr.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-sm.hidden-md,td.hidden-sm.hidden-md,th.hidden-sm.hidden-md,tr.hidden-sm.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-sm.hidden-lg,td.hidden-sm.hidden-lg,th.hidden-sm.hidden-lg,tr.hidden-sm.hidden-lg{display:none!important}}.hidden-md{display:block!important}tr.hidden-md{display:table-row!important}td.hidden-md,th.hidden-md{display:table-cell!important}@media (max-width:767px){.hidden-md.hidden-xs,td.hidden-md.hidden-xs,th.hidden-md.hidden-xs,tr.hidden-md.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-md.hidden-sm,td.hidden-md.hidden-sm,th.hidden-md.hidden-sm,tr.hidden-md.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md,td.hidden-md,th.hidden-md,tr.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-md.hidden-lg,td.hidden-md.hidden-lg,th.hidden-md.hidden-lg,tr.hidden-md.hidden-lg{display:none!important}}.hidden-lg{display:block!important}tr.hidden-lg{display:table-row!important}td.hidden-lg,th.hidden-lg{display:table-cell!important}@media (max-width:767px){.hidden-lg.hidden-xs,td.hidden-lg.hidden-xs,th.hidden-lg.hidden-xs,tr.hidden-lg.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-lg.hidden-sm,td.hidden-lg.hidden-sm,th.hidden-lg.hidden-sm,tr.hidden-lg.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-lg.hidden-md,td.hidden-lg.hidden-md,th.hidden-lg.hidden-md,tr.hidden-lg.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg,td.hidden-lg,th.hidden-lg,tr.hidden-lg{display:none!important}}.visible-print,td.visible-print,th.visible-print,tr.visible-print{display:none!important}@media print{.visible-print{display:block!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}.hidden-print,td.hidden-print,th.hidden-print,tr.hidden-print{display:none!important}}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:FontAwesome;src:url(../fonts/fontawesome-webfont.eot?v=4.1.0);src:url(../fonts/fontawesome-webfont.eot?#iefix&v=4.1.0) format("embedded-opentype"),url(../fonts/fontawesome-webfont.woff?v=4.1.0) format("woff"),url(../fonts/fontawesome-webfont.ttf?v=4.1.0) format("truetype"),url(../fonts/fontawesome-webfont.svg?v=4.1.0#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1;-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:.08em solid #eee;border-radius:.1em}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@keyframes 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)}.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-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-cog:before,.fa-gear: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-repeat:before,.fa-rotate-right: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-image:before,.fa-photo: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-exclamation-triangle:before,.fa-warning: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{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-cogs:before,.fa-gears: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:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.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-floppy-o:before,.fa-save:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-bars:before,.fa-navicon:before,.fa-reorder: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-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-bolt:before,.fa-flash:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-clipboard:before,.fa-paste: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-chain-broken:before,.fa-unlink: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-caret-square-o-down:before,.fa-toggle-down:before{content:"\f150"}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:"\f151"}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:"\f152"}.fa-eur:before,.fa-euro:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-inr:before,.fa-rupee:before{content:"\f156"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:"\f158"}.fa-krw:before,.fa-won: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{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-caret-square-o-left:before,.fa-toggle-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-try:before,.fa-turkish-lira: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-bank:before,.fa-institution:before,.fa-university:before{content:"\f19c"}.fa-graduation-cap:before,.fa-mortar-board: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-square:before,.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-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:"\f1c5"}.fa-file-archive-o:before,.fa-file-zip-o:before{content:"\f1c6"}.fa-file-audio-o:before,.fa-file-sound-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-ring:before,.fa-life-saver:before,.fa-support:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-empire:before,.fa-ge:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.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-paper-plane:before,.fa-send:before{content:"\f1d8"}.fa-paper-plane-o:before,.fa-send-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"}.introjs-overlay{position:absolute;z-index:999999;opacity:0;background:-webkit-gradient(radial,center center,0,center center,100%,color-stop(0,rgba(0,0,0,.4)),color-stop(100%,rgba(0,0,0,.9)));background:-webkit-radial-gradient(center,ellipse cover,rgba(0,0,0,.4)0,rgba(0,0,0,.9)100%);background:radial-gradient(center,ellipse cover,rgba(0,0,0,.4)0,rgba(0,0,0,.9)100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#66000000', endColorstr='#e6000000', GradientType=1);-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";filter:alpha(opacity=50);-webkit-transition:all .3s ease-out;transition:all .3s ease-out}.introjs-fixParent{z-index:auto!important}.introjs-showElement{z-index:9999999!important}.introjs-relativePosition{position:relative}.introjs-helperLayer{position:absolute;z-index:9999998;background-color:#FFF;background-color:rgba(255,255,255,.9);border:1px solid #777;border:1px solid rgba(0,0,0,.5);box-shadow:0 2px 15px rgba(0,0,0,.4);-webkit-transition:all .3s ease-out;transition:all .3s ease-out}.introjs-helperNumberLayer{position:absolute;z-index:9999999999!important;padding:2px;font-family:Arial,verdana,tahoma;font-size:13px;font-weight:700;color:#fff;text-align:center;text-shadow:1px 1px 1px rgba(0,0,0,.3);background:#36ab70;width:20px;height:20px;border-radius:50%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3019', endColorstr='#cf0404', GradientType=0);filter:progid:DXImageTransform.Microsoft.Shadow(direction=135, strength=2, color=ff0000);box-shadow:0 2px 5px rgba(0,0,0,.4)}.introjs-arrow{border:5px solid #fff;content:'';position:absolute}.introjs-arrow.top{top:-10px;border-bottom-color:#fff;border-left-color:transparent}.introjs-arrow.right,.introjs-arrow.top{border-top-color:transparent;border-right-color:transparent}.introjs-arrow.right{right:-10px;top:10px;border-bottom-color:transparent;border-left-color:#fff}.introjs-arrow.bottom{bottom:-10px;border-top-color:#fff;border-right-color:transparent}.introjs-arrow.bottom,.introjs-arrow.left{border-bottom-color:transparent;border-left-color:transparent}.introjs-arrow.left{left:-10px;top:10px;border-top-color:transparent;border-right-color:#fff}.introjs-tooltip{position:absolute;padding:10px;background-color:#fff;min-width:200px;max-width:300px;box-shadow:0 1px 10px rgba(0,0,0,.4);-webkit-transition:opacity .1s ease-out;transition:opacity .1s ease-out}.introjs-tooltipbuttons{text-align:right}.introjs-button{position:relative;overflow:visible;display:inline-block;padding:.3em .8em;border:1px solid #d4d4d4;text-decoration:none;text-shadow:1px 1px 0 #fff;font:11px sans-serif;color:#333;white-space:nowrap;cursor:pointer;outline:0;background-color:#ececec;background-image:-webkit-gradient(linear,0 0,0 100%,from(#f4f4f4),to(#ececec));background-image:-webkit-linear-gradient(#f4f4f4,#ececec);background-image:linear-gradient(#f4f4f4,#ececec);-webkit-background-clip:padding;-moz-background-clip:padding;-o-background-clip:padding-box;zoom:1;margin:10px 0 0}.introjs-button:hover{border-color:#bcbcbc;text-decoration:none;box-shadow:0 1px 1px #e3e3e3}.introjs-button:active,.introjs-button:focus{background-image:-webkit-gradient(linear,0 0,0 100%,from(#ececec),to(#f4f4f4));background-image:-webkit-linear-gradient(#ececec,#f4f4f4);background-image:linear-gradient(#ececec,#f4f4f4)}.introjs-button::-moz-focus-inner{padding:0;border:0}.introjs-skipbutton{margin-right:5px;color:#7a7a7a}.introjs-prevbutton{border-right:none}.introjs-disabled,.introjs-disabled:focus,.introjs-disabled:hover{color:#9a9a9a;border-color:#d4d4d4;box-shadow:none;cursor:default;background-color:#f4f4f4;background-image:none;text-decoration:none}.introjs-bullets{text-align:center}.introjs-bullets ul{clear:both;margin:15px auto 0;padding:0;display:inline-block}.introjs-bullets ul li{list-style:none;float:left;margin:0 2px}.introjs-bullets ul li a{display:block;width:6px;height:6px;background:#ccc;border-radius:10px;-moz-border-radius:10px;-webkit-border-radius:10px;text-decoration:none}.introjs-bullets ul li a.active,.introjs-bullets ul li a:hover{background:#999}.introjs-helperNumberLayer{border:0!important;line-height:16px;top:-10px;left:-10px}.com{color:#a3b3ba}.lit{color:#195f91}.clo,.opn,.pun{color:#666}.fun{color:#dc322f}.atv,.str{color:#3C606E}.kwd,.prettyprint .tag{color:#1e347b}.atn,.dec,.typ,.var{color:teal}.pln{color:#666}.prettyprint{padding:2px;font-size:11px;border:1px solid #dbe4e7;background:rgba(255,255,255,.2);box-shadow:none;max-height:calc(100vh - 125px);overflow-y:auto;position:relative}.prettyprint ol{width:auto}.prettyprint li{padding-left:12px;color:#bebec5;line-height:20px;font-size:11px;width:100%}.prettyprint li:nth-child(odd){background-color:#fff}.prettyprint li:nth-child(even){background-color:#f6f9fa}ol.linenums{margin:0 0 0 20px}.panel.panel-filter .panel-body{padding:15px 15px 0}.filter-list{-webkit-transition:max-height .3s;transition:max-height .3s;position:relative;margin-bottom:15px;overflow:hidden}.filter-title{font-weight:700;font-size:14px;margin:5px 0}.filter-btn{display:none}.filter-collapsed{position:relative;max-height:145px!important;overflow:hidden}.filter-collapsed>.filter-btn{display:block;position:absolute;bottom:0;width:100%;border-color:transparent;padding-left:20px;text-align:left;font-weight:700;background-color:#fff;color:#888}.filter-option{margin:0;padding:5px 0 5px 20px;font-weight:inherit;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.filter-option::after{margin-left:10px;opacity:.6;content:"(" attr(data-count)")"}input[type=checkbox],input[type=radio]{margin-top:2px}.filter-search{position:relative;margin-bottom:15px}.filter-search input{padding-left:16px;border-radius:16px}.filter-search input:focus,.filter-search input:hover{border:1px solid #d2dde1!important;background-color:#f6f9fa}.filter-search input::-webkit-input-placeholder{line-height:15px;color:#71929f}.filter-search input:-moz-placeholder,.filter-search input::-moz-placeholder{line-height:15px;color:#71929f}.filter-search input:-ms-input-placeholder{line-height:15px;color:#71929f}.filter-search i{position:absolute;right:15px;top:50%;margin-top:-15px;height:30px;line-height:30px;color:#183440;pointer-events:none}*{outline:0!important}body,html{height:100%}body{background-color:#f6f9fa;font-family:'Open Sans',Oswald,sans-serif;font-size:12px;color:#3C606E;padding-top:40px}.wrapper{min-height:100%;height:auto!important;height:100%;margin-bottom:-35px}.content-wrapper{padding-top:20px}.navbar{background-color:#183440;box-shadow:0 none;height:40px;line-height:40px;margin-bottom:0;min-height:40px}.navbar .navbar-brand{padding-top:0;padding-bottom:0;margin-right:20px;font-family:'Varela Round';line-height:40px}.navbar .navbar-brand.admin{margin:0;background:#000;height:40px}.navbar .navbar-brand.admin:focus,.navbar .navbar-brand.admin:hover{background:#36ab70}.navbar .navbar-brand img{width:20px;height:20px;margin-right:5px;margin-top:-1px;display:inline-block}.navbar .navbar-brand h1{margin:0;display:inline-block;font-size:15px;color:#fff;line-height:40px;font-weight:100;text-transform:uppercase}.navbar ul.nav i{margin-right:5px}.navbar ul.nav li a{padding:0 20px;height:40px;line-height:40px;color:#fff}.navbar ul.nav li a:focus,.navbar ul.nav li a:hover{color:#fff;background-color:#1f4353}.navbar ul.nav li.active a,.navbar ul.nav li.active a:focus,.navbar ul.nav li.active a:hover{background-color:#3C606E}.navbar .search{height:40px;max-width:300px;display:inline-block;margin-right:15px;position:relative}.navbar .search input{height:28px;line-height:14px;padding:5px 35px 5px 15px;border:0;border-radius:30px;background:#3C606E;color:#fff!important}.navbar .search input:focus,.navbar .search input:hover{border:0!important;box-shadow:none;outline:0}.navbar .search input::-webkit-input-placeholder{line-height:15px;color:#71929f}.navbar .search input:-moz-placeholder,.navbar .search input::-moz-placeholder{line-height:15px;color:#71929f}.navbar .search input:-ms-input-placeholder{line-height:15px;color:#71929f}.navbar .search i{position:absolute;right:15px;top:5px;height:30px;line-height:30px;color:#fff}.navbar .pagination{height:40px;max-width:300px;display:inline-block;margin:5px;position:relative;float:right}.navbar .pagination li{padding-left:10px;display:inline-block;height:30px;color:#fff}.navbar .pagination a{border:0;background:#3C606E;color:#fff;height:30px}.navbar .pagination a:focus,.navbar .pagination a:hover{background:#4e7d8f}.anchor{display:block;position:relative;top:-40px;visibility:hidden}.header{line-height:60px;height:60px;border-bottom:1px solid #d2dde1;background:#fff}.header h3{margin:0;line-height:60px;font-size:16px}.header h3 a{padding:0;margin:0 10px 0 0;display:inline-block;color:#a3b3ba;font-weight:400}.header .nav-tabs{border:0}.header .nav-tabs li{margin:0}.header .nav-tabs li.active a{border-color:#d2dde1;border-top:0 none;border-bottom:0 none;background:#f6f9fa;z-index:99}.header .nav-tabs a{border:1px solid transparent;height:60px;line-height:60px;padding:0 20px;border-top:0 none;margin:0 0 0 -1px}.header .nav-tabs a:hover{background:0 0;border:1px solid #dbe4e7;border-top:0 none;border-bottom:0 none;color:inherit}.header .btn{margin-top:-4px}.header .input-group{display:block}h3{font-size:20px;font-weight:600}h4{font-size:16px}h4 i{margin-right:5px}#content h3:first-child{margin-top:0;display:inline-block}.btn-add-dataset{margin-top:-10px}.btn{background-color:#eceff0;border:1px solid #d2dde1;border-radius:0!important;color:#183440;font-size:13px}.btn.margin-left{margin-left:10px}.btn i{margin-right:5px}.btn i.icon-only{margin-right:0}.btn:focus,.btn:hover{background-color:#f7f9f9;border:1px solid #d2dde1}.btn.btn-primary{background-color:#183440;border:1px solid #183440;color:#fff;font-weight:700}.btn.btn-primary:focus,.btn.btn-primary:hover{background-color:#265265;border:1px solid #183440}.btn.btn-cta{color:#fff;font-weight:700;background-color:#36ab70;border:1px solid #36ab70}.btn.btn-cta:focus,.btn.btn-cta:hover{background-color:#3cbe7d;border:1px solid #3cbe7d}input,textarea{box-shadow:none!important;font-size:12px;border-color:#d2dde1!important}input:focus,textarea:focus{box-shadow:none!important;border:1px solid #d2dde1!important;border-bottom:1px solid #36ab70!important}textarea{resize:vertical}.add-dataset .identifier{padding:20px 0 40px}.add-dataset .alert{margin:20px}.add-dataset h3{margin-bottom:40px!important;display:block!important;text-align:center!important}.add-dataset .nav-tabs{margin:20px 20px 0}.add-dataset .tab-content{margin:0 20px 20px;background-color:#fff;display:block}.add-dataset .panel.dataset-parameters{margin-bottom:0;margin-top:-1px;border:0;border-left:1px solid #dbe4e7!important;border-right:1px solid #dbe4e7!important;box-shadow:none}.add-dataset .panel.dataset-parameters:last-child{margin-left:-1px}.form-control,.input-group-addon{font-size:12px;padding:6px 8px}.input-group-addon{background:#f3f7f8;color:#a3b3ba;border:1px solid #dbe4e7}.input-group-btn:last-child .btn{border-left:0 none}.input-medium{max-width:150px}a{color:#183440}a:focus,a:hover{text-decoration:none;color:#36ab70}h4>small{margin-left:.5em;font-size:12px}.well{border:1px solid #dbe4e7;background:#fff;box-shadow:none}footer{background-color:#fff;color:#a3b3ba;border-top:1px solid #d2dde1;line-height:34px;font-size:10px}.push,footer{height:35px;width:100%}.row{margin:0}.tab-content{background-color:#fff}.panel{border-color:#dbe4e7!important}.panel .row>div{padding:0}.panel.dataset-parameters{padding:10px 30px}.panel.users-information{padding:10px 30px;margin-bottom:0}.panel.collection:hover{background-color:#f3f7f8!important}.panel hr{margin-top:5px;border-color:#dbe4e7}.panel .panel-body{padding:12px 8px}.panel.dataset{clear:both;box-shadow:none!important;cursor:pointer;margin:-1px 0 0;font-size:12px}.panel.dataset:last-child{margin-bottom:20px}.panel.dataset.dataset-link .icon{line-height:18px}.panel.dataset.dataset-link h4{margin-bottom:0}.panel.dataset.dataset-link .panel-body{padding:7px 0 7px 7px}.panel.dataset.button-row .icon{line-height:24px}.panel.dataset.button-row h4{line-height:22px}.panel.dataset.button-row .panel-body{padding-bottom:0;line-height:24px}.panel.dataset.button-row .btn{height:25px;font-size:13px;padding:2px 10px;margin:0 -1px 0 0}.panel.dataset.button-row .btn:last-child{margin-right:0}.panel.dataset a:hover{color:inherit}.panel.dataset:hover{color:#183440;background-color:#f3f7f8}.panel.dataset h4{margin-top:0;margin-bottom:5px;font-size:14px;font-weight:700}.panel.dataset .icon{width:5%;height:100%;float:left;line-height:36px;text-align:center;margin-left:-15px}.panel.dataset .icon+div{width:95%;display:inline-block}.empty{margin-bottom:20px}.table,.table td{border-color:#dbe4e7!important}.table thead>tr>th{border-bottom:0 none}.table tbody tr:hover td{background-color:#f3f7f8!important}.table.triples{border:1px solid}.scroll-horizontal{border:1px solid #dbe4e7!important;overflow-x:auto;margin-bottom:15px}.scroll-horizontal .table{border:0!important;margin-bottom:0}.note{color:#a3b3ba}.map-container{width:100%;position:absolute;top:40px;bottom:35px}.map-container iframe{width:100%;height:100%;border:0}#geojson-map{margin-top:20px;width:100%;height:200px;min-height:200px;background:#ddd}@media (min-height:500px){#geojson-map{height:300px}}.modal .form-group:last-child{margin-bottom:0}.modal h4{font-size:16px}.modal .modal-footer{margin-top:0}.modal-backdrop{background:rgba(0,0,0,.3)}.modal-content{box-shadow:none!important}.hover-help{color:#a3b3ba}.edit-permissions{margin-bottom:14px!important}.permissions{margin-bottom:15px}.permissions>div>form>div{margin-bottom:10px}.permissions label{margin-left:5px;font-weight:400;margin-right:20px}.alert{border:0}.alert i{margin-right:5px;vertical-align:middle}.alert i.fa-2x{margin-top:-1px;margin-right:9px}.alert.alert-danger{background-color:#e74c3c;color:#fff}.introjs i{margin-bottom:20px}button.close{text-shadow:none;color:#fff!important;opacity:.8;margin-top:-3px;font-weight:400}.list-group{font-size:12px}.list-group h5{font-size:13px;font-weight:700;margin-bottom:8px}.list-group .list-group-item{border-color:#d2dde1}.help-block{color:#a3b3ba}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background:#f3f7f8;color:#a3b3ba}.formats .btn{font-size:10px;font-weight:700}.no-padding{padding:0}@media (max-width:768px){body{padding-top:0}.navbar{position:relative;height:auto;padding:0}.navbar .nav{margin:40px 0 0}.navbar .nav a{border-radius:0}.navbar .search{height:auto}.wrapper{padding:55px 0 0;margin-top:-41px}.panel.dataset .icon{width:15%;line-height:20px}.panel.dataset .icon+div{width:85%}}div.leaflet-container{min-height:450px}ul.nav-tabs+div.panel{margin-top:-1px}.nav-tabs li>a:hover{background-color:transparent!important}.nav-tabs li.active>a:hover{background-color:#fff!important}@media (max-width:500px){.navbar .search{width:80%}.navbar .search input{width:100%}}.lang-selector>a.active{font-weight:700}.lang-selector>a:after{content:'|';color:#CCC;margin:0 2px 0 4px}.lang-selector>a:last-child:after{margin:0;content:''}.profile-selector{float:right;margin-top:10px;line-height:20px}.profile{margin-left:15px}.geodcat-enabled .required .help-block::before{content:attr(requirement)": ";margin-left:2px;color:red}.geodcat-enabled .recommended .help-block::before{content:attr(requirement)": ";margin-left:2px;font-weight:700}.select-attribution{width:calc(100% - 150px)}.btn-attribution{float:right;width:130px}input[type=file]{display:block;border:none;margin-top:15px;padding:0}.nofloat{float:none} \ No newline at end of file +article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:active,a:hover{outline:0}h1{margin:.67em 0}b,strong{font-weight:700}dfn{font-style:italic}hr{box-sizing:content-box;height:0}mark{background:#ff0;color:#000}kbd,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}button,input{margin:0}select,textarea{margin:0}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}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}*,:after,:before{box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:transparent}body{line-height:1.428571429}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}button,input,select[multiple],textarea{background-image:none}a{text-decoration:none}a:focus{outline:#333 dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded,.img-thumbnail{border-radius:0}.img-thumbnail{padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;-webkit-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}@media print{*{text-shadow:none!important;color:#000!important;background:0 0!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href)")"}abbr[title]:after{content:" (" attr(title)")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:2cm .5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16.1px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small{font-size:85%}cite{font-style:normal}.text-muted{color:#999}.text-primary{color:#428bca}.text-warning{color:#c09853}.text-danger{color:#b94a48}.text-success{color:#468847}.text-info{color:#3a87ad}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2{font-weight:500}h1,h2,h3{line-height:1.1}.h1,.h2,.h3,.h4,.h5,.h6,h4,h5,h6{font-weight:500;line-height:1.1}.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:400;line-height:1;color:#999}h1,h2,h3{margin-top:20px;margin-bottom:10px}h4,h5,h6{margin-top:10px;margin-bottom:10px}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3{font-size:24px}.h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}.h1 small,h1 small{font-size:24px}.h2 small,h2 small{font-size:18px}.h3 small,.h4 small,h3 small,h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-bottom:20px}dd,dt{line-height:1.428571429}dt{font-weight:700}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}.dl-horizontal dd:after,.dl-horizontal dd:before{content:" ";display:table}.dl-horizontal dd:after{clear:both}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{font-size:17.5px;font-weight:300;line-height:1.25}blockquote p:last-child{margin-bottom:0}blockquote small{display:block;line-height:1.428571429;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}blockquote:after,blockquote:before,q:after,q:before{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:1.428571429}code,pre{font-family:Monaco,Menlo,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap}code,pre{border-radius:0}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc}pre.prettyprint{margin-bottom:20px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.container:after,.container:before{content:" ";display:table}.container:after{clear:both}.row:after,.row:before{content:" ";display:table}.row:after{clear:both}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.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-md-1,.col-md-10,.col-md-11,.col-md-12,.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-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.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-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-1{width:8.333333333333332%}.col-xs-2{width:16.666666666666664%}.col-xs-3{width:25%}.col-xs-4{width:33.33333333333333%}.col-xs-5{width:41.66666666666667%}.col-xs-6{width:50%}.col-xs-7{width:58.333333333333336%}.col-xs-8{width:66.66666666666666%}.col-xs-9{width:75%}.col-xs-10{width:83.33333333333334%}.col-xs-11{width:91.66666666666666%}.col-xs-12{width:100%}@media (min-width:768px){.container{max-width:750px}.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-1{width:8.333333333333332%}.col-sm-2{width:16.666666666666664%}.col-sm-3{width:25%}.col-sm-4{width:33.33333333333333%}.col-sm-5{width:41.66666666666667%}.col-sm-6{width:50%}.col-sm-7{width:58.333333333333336%}.col-sm-8{width:66.66666666666666%}.col-sm-9{width:75%}.col-sm-10{width:83.33333333333334%}.col-sm-11{width:91.66666666666666%}.col-sm-12{width:100%}.col-sm-push-1{left:8.333333333333332%}.col-sm-push-2{left:16.666666666666664%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.33333333333333%}.col-sm-push-5{left:41.66666666666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.333333333333336%}.col-sm-push-8{left:66.66666666666666%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.33333333333334%}.col-sm-push-11{left:91.66666666666666%}.col-sm-pull-1{right:8.333333333333332%}.col-sm-pull-2{right:16.666666666666664%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.33333333333333%}.col-sm-pull-5{right:41.66666666666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.333333333333336%}.col-sm-pull-8{right:66.66666666666666%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.33333333333334%}.col-sm-pull-11{right:91.66666666666666%}.col-sm-offset-1{margin-left:8.333333333333332%}.col-sm-offset-2{margin-left:16.666666666666664%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333333333333%}.col-sm-offset-5{margin-left:41.66666666666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.333333333333336%}.col-sm-offset-8{margin-left:66.66666666666666%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333333333334%}.col-sm-offset-11{margin-left:91.66666666666666%}}@media (min-width:992px){.container{max-width:970px}.col-md-1,.col-md-10,.col-md-11,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-1{width:8.333333333333332%}.col-md-2{width:16.666666666666664%}.col-md-3{width:25%}.col-md-4{width:33.33333333333333%}.col-md-5{width:41.66666666666667%}.col-md-6{width:50%}.col-md-7{width:58.333333333333336%}.col-md-8{width:66.66666666666666%}.col-md-9{width:75%}.col-md-10{width:83.33333333333334%}.col-md-11{width:91.66666666666666%}.col-md-12{width:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.333333333333332%}.col-md-push-2{left:16.666666666666664%}.col-md-push-3{left:25%}.col-md-push-4{left:33.33333333333333%}.col-md-push-5{left:41.66666666666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.333333333333336%}.col-md-push-8{left:66.66666666666666%}.col-md-push-9{left:75%}.col-md-push-10{left:83.33333333333334%}.col-md-push-11{left:91.66666666666666%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.333333333333332%}.col-md-pull-2{right:16.666666666666664%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.33333333333333%}.col-md-pull-5{right:41.66666666666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.333333333333336%}.col-md-pull-8{right:66.66666666666666%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.33333333333334%}.col-md-pull-11{right:91.66666666666666%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.333333333333332%}.col-md-offset-2{margin-left:16.666666666666664%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333333333333%}.col-md-offset-5{margin-left:41.66666666666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.333333333333336%}.col-md-offset-8{margin-left:66.66666666666666%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333333333334%}.col-md-offset-11{margin-left:91.66666666666666%}}@media (min-width:1200px){.container{max-width:1170px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-1{width:8.333333333333332%}.col-lg-2{width:16.666666666666664%}.col-lg-3{width:25%}.col-lg-4{width:33.33333333333333%}.col-lg-5{width:41.66666666666667%}.col-lg-6{width:50%}.col-lg-7{width:58.333333333333336%}.col-lg-8{width:66.66666666666666%}.col-lg-9{width:75%}.col-lg-10{width:83.33333333333334%}.col-lg-11{width:91.66666666666666%}.col-lg-12{width:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.333333333333332%}.col-lg-push-2{left:16.666666666666664%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.33333333333333%}.col-lg-push-5{left:41.66666666666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.333333333333336%}.col-lg-push-8{left:66.66666666666666%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.33333333333334%}.col-lg-push-11{left:91.66666666666666%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.333333333333332%}.col-lg-pull-2{right:16.666666666666664%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.33333333333333%}.col-lg-pull-5{right:41.66666666666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.333333333333336%}.col-lg-pull-8{right:66.66666666666666%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.33333333333334%}.col-lg-pull-11{right:91.66666666666666%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.333333333333332%}.col-lg-offset-2{margin-left:16.666666666666664%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333333333333%}.col-lg-offset-5{margin-left:41.66666666666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.333333333333336%}.col-lg-offset-8{margin-left:66.66666666666666%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333333333334%}.col-lg-offset-11{margin-left:91.66666666666666%}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table thead>tr>th{padding:8px;line-height:1.428571429;border-top:1px solid #ddd}.table tbody>tr>td,.table tbody>tr>th,.table tfoot>tr>td,.table tfoot>tr>th,.table thead>tr>td{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.table thead>tr>th{vertical-align:bottom}.table caption+thead tr:first-child td,.table caption+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table thead:first-child tr:first-child td,.table thead:first-child tr:first-child th{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed tbody>tr>td,.table-condensed tbody>tr>th,.table-condensed tfoot>tr>td,.table-condensed tfoot>tr>th,.table-condensed thead>tr>td,.table-condensed thead>tr>th{padding:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*=col-]{float:none;display:table-column}table td[class*=col-],table th[class*=col-]{float:none;display:table-cell}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8;border-color:#d6e9c6}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6;border-color:#c9e2b3}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede;border-color:#eed3d7}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc;border-color:#e6c1c7}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3;border-color:#fbeed5}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc;border-color:#f8e5be}@media (max-width:768px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:scroll;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0;background-color:#fff}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>thead>tr:last-child>td,.table-responsive>.table-bordered>thead>tr:last-child>th{border-bottom:0}}fieldset{padding:0;margin:0;border: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;margin-bottom:5px;font-weight:700}input[type=search]{box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;line-height:normal}input[type=file]{display:block}select[multiple],select[size]{height:auto}select optgroup{font-size:inherit;font-style:inherit;font-family:inherit}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:#333 dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}.form-control:-moz-placeholder,.form-control::-moz-placeholder{color:#999}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control{display:block;width:100%;height:34px;line-height:1.428571429;color:#555;vertical-align:middle;background-color:#fff;border:1px solid #ccc;border-radius:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-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;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}textarea.form-control{height:auto}.form-group{margin-bottom:15px}.checkbox,.radio{display:block;min-height:20px;margin-top:10px;margin-bottom:10px;padding-left:20px;vertical-align:middle}.checkbox label,.radio label{display:inline;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{float:left;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.checkbox-inline[disabled],.checkbox[disabled],.radio-inline[disabled],.radio[disabled],fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:0}select.input-sm{height:30px;line-height:30px}textarea.input-sm{height:auto}.input-lg{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:0}select.input-lg{height:45px;line-height:45px}textarea.input-lg{height:auto}.has-warning .control-label,.has-warning .help-block{color:#c09853}.has-warning .form-control{border-color:#c09853;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#a47e3c;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #dbc59e}.has-warning .input-group-addon{color:#c09853;border-color:#c09853;background-color:#fcf8e3}.has-error .control-label,.has-error .help-block{color:#b94a48}.has-error .form-control{border-color:#b94a48;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#953b39;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #d59392}.has-error .input-group-addon{color:#b94a48;border-color:#b94a48;background-color:#f2dede}.has-success .control-label,.has-success .help-block{color:#468847}.has-success .form-control{border-color:#468847;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#356635;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7aba7b}.has-success .input-group-addon{color:#468847;border-color:#468847;background-color:#dff0d8}.form-control-static{margin-bottom:0;padding-top:7px}.help-block{display:block;margin-top:5px;margin-bottom:10px}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{float:none;margin-left:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-group:before{content:" ";display:table}.form-horizontal .form-group:after{content:" ";display:table;clear:both}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-weight:400;line-height:1.428571429;text-align:center;vertical-align:middle;cursor:pointer;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.btn:focus{outline:#333 dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{outline:0;background-image:none;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.active,.btn-default:active,.btn-default:focus,.btn-default:hover,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default.active,.btn-default:active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary.active,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary.active,.btn-primary:active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#428bca;border-color:#357ebd}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.active,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.active,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.active,.btn-success:active,.btn-success:focus,.btn-success:hover,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success.active,.btn-success:active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.active,.btn-info:active,.btn-info:focus,.btn-info:hover,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info.active,.btn-info:active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-link{color:#428bca;font-weight:400;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#999;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:0}.btn-sm{padding:5px 10px}.btn-sm,.btn-xs{font-size:12px;line-height:1.5;border-radius:0}.btn-xs{padding:1px 5px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.btn-default .caret{border-top-color:#333}.btn-danger .caret,.btn-info .caret,.btn-primary .caret,.btn-success .caret,.btn-warning .caret{border-top-color:#fff}.dropup .btn-default .caret{border-bottom-color:#333}.dropup .btn-danger .caret,.dropup .btn-info .caret,.dropup .btn-primary .caret,.dropup .btn-success .caret,.dropup .btn-warning .caret{border-bottom-color:#fff}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn{float:left}.btn-group-vertical>.btn,.btn-group>.btn{position:relative}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group-vertical>.btn:focus,.btn-group>.btn:focus{outline:0}.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:after,.btn-toolbar:before{content:" ";display:table}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group{float:left}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn-group+.btn-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>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-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-xs>.btn{padding:1px 5px}.btn-group-sm>.btn,.btn-group-xs>.btn{font-size:12px;line-height:1.5;border-radius:0}.btn-group-sm>.btn{padding:5px 10px}.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius: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{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before{content:" ";display:table}.btn-group-vertical>.btn-group:after{content:" ";display:table;clear:both}.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:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:0;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>.btn:last-child,.btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-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{float:none;display:table-cell;width:1%}[data-toggle=buttons]>.btn>input[type=checkbox],[data-toggle=buttons]>.btn>input[type=radio]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group.col{float:none;padding-left:0;padding-right:0}.input-group .form-control{width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:0}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:45px;line-height:45px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.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:0}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{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon{white-space:nowrap}.input-group-addon,.input-group-btn{width:1%;vertical-align:middle}.input-group-addon{font-weight:400;line-height:1;text-align:center;background-color:#eee;border-radius:0}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:0}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:0}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{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>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){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:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.dropdown-toggle{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{white-space:nowrap}.input-group-btn,.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-4px}.input-group-btn>.btn:active,.input-group-btn>.btn:hover{z-index:2}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav:after,.nav:before{content:" ";display:table}.nav:after{clear:both}.nav>li,.nav>li>a{position:relative;display:block}.nav>li>a{padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#428bca}.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.428571429;border:1px solid transparent;border-radius:0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{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;border-bottom:1px solid #ddd;margin-right:0}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}}.nav-tabs.nav-justified>.active>a{border-bottom-color:#fff}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:5px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#428bca}.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}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;margin-right:0}.nav-tabs-justified>.active>a{border-bottom-color:#fff}.tabbable:after,.tabbable:before{content:" ";display:table}.tabbable:after{clear:both}.pill-content>.pill-pane,.tab-content>.tab-pane{display:none}.pill-content>.active,.tab-content>.active{display:block}.nav .caret{border-top-color:#428bca;border-bottom-color:#428bca}.nav a:hover .caret{border-top-color:#2a6496;border-bottom-color:#2a6496}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;z-index:1000;border:1px solid transparent}.navbar:after,.navbar:before{content:" ";display:table}.navbar:after{clear:both}@media (min-width:768px){.navbar{border-radius:0}}.navbar-header:after,.navbar-header:before{content:" ";display:table}.navbar-header:after{clear:both}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse:after,.navbar-collapse:before{content:" ";display:table}.navbar-collapse:after{clear:both}.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;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-collapse .navbar-nav.navbar-left:first-child{margin-left:-15px}.navbar-collapse .navbar-nav.navbar-right:last-child{margin-right:-15px}.navbar-collapse .navbar-text:last-child{margin-right:0}}.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;border-width:0 0 1px}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{z-index:1030;top:0}.navbar-fixed-bottom{bottom:0;margin-bottom:0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius: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:7.5px -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 .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin:8px -15px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{float:none;margin-left:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;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{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-nav.pull-right>li>.dropdown-menu,.navbar-nav>li>.dropdown-menu.pull-right{left:auto;right:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-text{float:left;margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{margin-left:15px;margin-right:15px}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-nav>li>a,.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e6e6e6}.navbar-default .navbar-nav>.dropdown>a:focus .caret,.navbar-default .navbar-nav>.dropdown>a:hover .caret{border-top-color:#333;border-bottom-color:#333}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{background-color:#e7e7e7;color:#555}.navbar-default .navbar-nav>.open>a .caret,.navbar-default .navbar-nav>.open>a:focus .caret,.navbar-default .navbar-nav>.open>a:hover .caret{border-top-color:#555;border-bottom-color:#555}.navbar-default .navbar-nav>.dropdown>a .caret{border-top-color:#777;border-bottom-color:#777}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>li>a,.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{background-color:#080808;color:#fff}.navbar-inverse .navbar-nav>.dropdown>a:hover .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-nav>.dropdown>a .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .navbar-nav>.open>a .caret,.navbar-inverse .navbar-nav>.open>a:focus .caret,.navbar-inverse .navbar-nav>.open>a:hover .caret{border-top-color:#fff;border-bottom-color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:0}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:0}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.428571429;text-decoration:none;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:0;border-top-left-radius:0}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{background-color:#eee}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span{color:#999;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:0;border-top-left-radius:0}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.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:0;border-top-left-radius:0}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager:after,.pager:before{content:" ";display:table}.pager:after{clear:both}.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:focus,.pager li>a:hover{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:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:focus,.label[href]:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.label-default{background-color:#999}.label-default[href]:focus,.label-default[href]:hover{background-color:gray}.label-primary{background-color:#428bca}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.badge:empty{display:none}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.btn .badge{position:relative;top:-1px}.nav-pills>.active>a>.badge,a.list-group-item.active>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.thumbnail{padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:0;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail,.thumbnail>img{display:block;max-width:100%;height:auto}a.thumbnail:focus,a.thumbnail:hover{border-color:#428bca}.thumbnail>img{margin-left:auto;margin-right:auto}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border-radius:0}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#356635}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#2d6987}.alert-warning{background-color:#fcf8e3;border-color:#fbeed5;color:#c09853}.alert-warning hr{border-top-color:#f8e5be}.alert-warning .alert-link{color:#a47e3c}.alert-danger{background-color:#f2dede;border-color:#eed3d7;color:#b94a48}.alert-danger hr{border-top-color:#e6c1c7}.alert-danger .alert-link{color:#953b39}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.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:0;border-top-left-radius:0}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover{text-decoration:none;background-color:#f5f5f5}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#e1edf7}.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:#fff;border:1px solid transparent;border-radius:0;box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-body:after,.panel-body:before{content:" ";display:table}.panel-body:after{clear:both}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0}.panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel>.list-group .list-group-item:last-child{border-bottom:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table{margin-bottom:0}.panel>.panel-body+.table{border-top:1px solid #ddd}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:-1px;border-top-left-radius:-1px}.panel-title{margin-top:0;margin-bottom:0;font-size:16px}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:-1px;border-bottom-left-radius:-1px}.panel-group .panel{margin-bottom:0;border-radius:0;overflow:hidden}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{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:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-warning{border-color:#fbeed5}.panel-warning>.panel-heading{color:#c09853;background-color:#fcf8e3;border-color:#fbeed5}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#fbeed5}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#fbeed5}.panel-danger{border-color:#eed3d7}.panel-danger>.panel-heading{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#eed3d7}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#eed3d7}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border-radius:0}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:0}.well-sm{padding:9px;border-radius:0}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;border-bottom:0 dotted;content:""}.dropdown{position:relative}.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;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:0;box-shadow:0 6px 12px rgba(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:400;line-height:1.428571429;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{text-decoration:none;color:#fff;background-color:#428bca}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#999}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{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-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.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 dotted;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:12px;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:0}.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;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right: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;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:0;box-shadow:0 5px 10px rgba(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;font-weight:400;line-height:18px;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,.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,.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,.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,.25)}.popover.left .arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.modal-open{overflow:hidden}.modal-open .navbar-fixed-bottom,.modal-open .navbar-fixed-top,body.modal-open{margin-right:15px}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{margin-left:auto;margin-right:auto;width:auto;padding:10px;z-index:1050}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:0;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;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.43px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.428571429}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:after,.modal-footer:before{content:" ";display:table}.modal-footer:after{clear:both}.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}@media screen and (min-width:768px){.modal-dialog{left:50%;right:auto;width:600px;padding-top:30px;padding-bottom:30px}.modal-content{box-shadow:0 5px 15px rgba(0,0,0,.5)}}.clearfix:after,.clearfix:before{content:" ";display:table}.clearfix:after{clear:both}.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}.affix{position:fixed}@-ms-viewport{width:device-width}@media screen and (max-width:400px){@-ms-viewport{width:320px}}.hidden{visibility:hidden!important}.hidden,.visible-lg,.visible-md,.visible-sm,.visible-xs,td.visible-lg,td.visible-md,td.visible-sm,td.visible-xs,th.visible-lg,th.visible-md,th.visible-sm,th.visible-xs,tr.visible-lg,tr.visible-md,tr.visible-sm,tr.visible-xs{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-xs.visible-sm{display:block!important}tr.visible-xs.visible-sm{display:table-row!important}td.visible-xs.visible-sm,th.visible-xs.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-xs.visible-md{display:block!important}tr.visible-xs.visible-md{display:table-row!important}td.visible-xs.visible-md,th.visible-xs.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-xs.visible-lg{display:block!important}tr.visible-xs.visible-lg{display:table-row!important}td.visible-xs.visible-lg,th.visible-xs.visible-lg{display:table-cell!important}}@media (max-width:767px){.visible-sm.visible-xs{display:block!important}tr.visible-sm.visible-xs{display:table-row!important}td.visible-sm.visible-xs,th.visible-sm.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-sm.visible-md{display:block!important}tr.visible-sm.visible-md{display:table-row!important}td.visible-sm.visible-md,th.visible-sm.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-sm.visible-lg{display:block!important}tr.visible-sm.visible-lg{display:table-row!important}td.visible-sm.visible-lg,th.visible-sm.visible-lg{display:table-cell!important}}@media (max-width:767px){.visible-md.visible-xs{display:block!important}tr.visible-md.visible-xs{display:table-row!important}td.visible-md.visible-xs,th.visible-md.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-md.visible-sm{display:block!important}tr.visible-md.visible-sm{display:table-row!important}td.visible-md.visible-sm,th.visible-md.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-md.visible-lg{display:block!important}tr.visible-md.visible-lg{display:table-row!important}td.visible-md.visible-lg,th.visible-md.visible-lg{display:table-cell!important}}@media (max-width:767px){.visible-lg.visible-xs{display:block!important}tr.visible-lg.visible-xs{display:table-row!important}td.visible-lg.visible-xs,th.visible-lg.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-lg.visible-sm{display:block!important}tr.visible-lg.visible-sm{display:table-row!important}td.visible-lg.visible-sm,th.visible-lg.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-lg.visible-md{display:block!important}tr.visible-lg.visible-md{display:table-row!important}td.visible-lg.visible-md,th.visible-lg.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-lg{display:block!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}.hidden-xs{display:block!important}tr.hidden-xs{display:table-row!important}td.hidden-xs,th.hidden-xs{display:table-cell!important}@media (max-width:767px){.hidden-xs,td.hidden-xs,th.hidden-xs,tr.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-xs.hidden-sm,td.hidden-xs.hidden-sm,th.hidden-xs.hidden-sm,tr.hidden-xs.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-xs.hidden-md,td.hidden-xs.hidden-md,th.hidden-xs.hidden-md,tr.hidden-xs.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-xs.hidden-lg,td.hidden-xs.hidden-lg,th.hidden-xs.hidden-lg,tr.hidden-xs.hidden-lg{display:none!important}}.hidden-sm{display:block!important}tr.hidden-sm{display:table-row!important}td.hidden-sm,th.hidden-sm{display:table-cell!important}@media (max-width:767px){.hidden-sm.hidden-xs,td.hidden-sm.hidden-xs,th.hidden-sm.hidden-xs,tr.hidden-sm.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm,td.hidden-sm,th.hidden-sm,tr.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-sm.hidden-md,td.hidden-sm.hidden-md,th.hidden-sm.hidden-md,tr.hidden-sm.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-sm.hidden-lg,td.hidden-sm.hidden-lg,th.hidden-sm.hidden-lg,tr.hidden-sm.hidden-lg{display:none!important}}.hidden-md{display:block!important}tr.hidden-md{display:table-row!important}td.hidden-md,th.hidden-md{display:table-cell!important}@media (max-width:767px){.hidden-md.hidden-xs,td.hidden-md.hidden-xs,th.hidden-md.hidden-xs,tr.hidden-md.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-md.hidden-sm,td.hidden-md.hidden-sm,th.hidden-md.hidden-sm,tr.hidden-md.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md,td.hidden-md,th.hidden-md,tr.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-md.hidden-lg,td.hidden-md.hidden-lg,th.hidden-md.hidden-lg,tr.hidden-md.hidden-lg{display:none!important}}.hidden-lg{display:block!important}tr.hidden-lg{display:table-row!important}td.hidden-lg,th.hidden-lg{display:table-cell!important}@media (max-width:767px){.hidden-lg.hidden-xs,td.hidden-lg.hidden-xs,th.hidden-lg.hidden-xs,tr.hidden-lg.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-lg.hidden-sm,td.hidden-lg.hidden-sm,th.hidden-lg.hidden-sm,tr.hidden-lg.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-lg.hidden-md,td.hidden-lg.hidden-md,th.hidden-lg.hidden-md,tr.hidden-lg.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg,td.hidden-lg,th.hidden-lg,tr.hidden-lg{display:none!important}}.visible-print,td.visible-print,th.visible-print,tr.visible-print{display:none!important}@media print{.visible-print{display:block!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}.hidden-print,td.hidden-print,th.hidden-print,tr.hidden-print{display:none!important}}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:FontAwesome;src:url(../fonts/fontawesome-webfont.eot?v=4.1.0);src:url(../fonts/fontawesome-webfont.eot?#iefix&v=4.1.0) format("embedded-opentype"),url(../fonts/fontawesome-webfont.woff?v=4.1.0) format("woff"),url(../fonts/fontawesome-webfont.ttf?v=4.1.0) format("truetype"),url(../fonts/fontawesome-webfont.svg?v=4.1.0#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1;-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:.08em solid #eee;border-radius:.1em}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@keyframes 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)}.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-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-cog:before,.fa-gear: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-repeat:before,.fa-rotate-right: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-image:before,.fa-photo: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-exclamation-triangle:before,.fa-warning: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{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-cogs:before,.fa-gears: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:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.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-floppy-o:before,.fa-save:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-bars:before,.fa-navicon:before,.fa-reorder: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-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-bolt:before,.fa-flash:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-clipboard:before,.fa-paste: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-chain-broken:before,.fa-unlink: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-caret-square-o-down:before,.fa-toggle-down:before{content:"\f150"}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:"\f151"}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:"\f152"}.fa-eur:before,.fa-euro:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-inr:before,.fa-rupee:before{content:"\f156"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:"\f158"}.fa-krw:before,.fa-won: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{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-caret-square-o-left:before,.fa-toggle-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-try:before,.fa-turkish-lira: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-bank:before,.fa-institution:before,.fa-university:before{content:"\f19c"}.fa-graduation-cap:before,.fa-mortar-board: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-square:before,.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-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:"\f1c5"}.fa-file-archive-o:before,.fa-file-zip-o:before{content:"\f1c6"}.fa-file-audio-o:before,.fa-file-sound-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-ring:before,.fa-life-saver:before,.fa-support:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-empire:before,.fa-ge:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.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-paper-plane:before,.fa-send:before{content:"\f1d8"}.fa-paper-plane-o:before,.fa-send-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"}.introjs-overlay{position:absolute;z-index:999999;opacity:0;background:-webkit-gradient(radial,center center,0,center center,100%,color-stop(0,rgba(0,0,0,.4)),color-stop(100%,rgba(0,0,0,.9)));background:-webkit-radial-gradient(center,ellipse cover,rgba(0,0,0,.4)0,rgba(0,0,0,.9)100%);background:radial-gradient(center,ellipse cover,rgba(0,0,0,.4)0,rgba(0,0,0,.9)100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#66000000', endColorstr='#e6000000', GradientType=1);-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";filter:alpha(opacity=50);-webkit-transition:all .3s ease-out;transition:all .3s ease-out}.introjs-fixParent{z-index:auto!important}.introjs-showElement{z-index:9999999!important}.introjs-relativePosition{position:relative}.introjs-helperLayer{position:absolute;z-index:9999998;background-color:#FFF;background-color:rgba(255,255,255,.9);border:1px solid #777;border:1px solid rgba(0,0,0,.5);box-shadow:0 2px 15px rgba(0,0,0,.4);-webkit-transition:all .3s ease-out;transition:all .3s ease-out}.introjs-helperNumberLayer{position:absolute;z-index:9999999999!important;padding:2px;font-family:Arial,verdana,tahoma;font-size:13px;font-weight:700;color:#fff;text-align:center;text-shadow:1px 1px 1px rgba(0,0,0,.3);background:#36ab70;width:20px;height:20px;border-radius:50%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3019', endColorstr='#cf0404', GradientType=0);filter:progid:DXImageTransform.Microsoft.Shadow(direction=135, strength=2, color=ff0000);box-shadow:0 2px 5px rgba(0,0,0,.4)}.introjs-arrow{border:5px solid #fff;content:'';position:absolute}.introjs-arrow.top{top:-10px;border-bottom-color:#fff;border-left-color:transparent}.introjs-arrow.right,.introjs-arrow.top{border-top-color:transparent;border-right-color:transparent}.introjs-arrow.right{right:-10px;top:10px;border-bottom-color:transparent;border-left-color:#fff}.introjs-arrow.bottom{bottom:-10px;border-top-color:#fff;border-right-color:transparent}.introjs-arrow.bottom,.introjs-arrow.left{border-bottom-color:transparent;border-left-color:transparent}.introjs-arrow.left{left:-10px;top:10px;border-top-color:transparent;border-right-color:#fff}.introjs-tooltip{position:absolute;padding:10px;background-color:#fff;min-width:200px;max-width:300px;box-shadow:0 1px 10px rgba(0,0,0,.4);-webkit-transition:opacity .1s ease-out;transition:opacity .1s ease-out}.introjs-tooltipbuttons{text-align:right}.introjs-button{position:relative;overflow:visible;display:inline-block;padding:.3em .8em;border:1px solid #d4d4d4;text-decoration:none;text-shadow:1px 1px 0 #fff;font:11px sans-serif;color:#333;white-space:nowrap;cursor:pointer;outline:0;background-color:#ececec;background-image:-webkit-gradient(linear,0 0,0 100%,from(#f4f4f4),to(#ececec));background-image:-webkit-linear-gradient(#f4f4f4,#ececec);background-image:linear-gradient(#f4f4f4,#ececec);-webkit-background-clip:padding;-moz-background-clip:padding;-o-background-clip:padding-box;zoom:1;margin:10px 0 0}.introjs-button:hover{border-color:#bcbcbc;text-decoration:none;box-shadow:0 1px 1px #e3e3e3}.introjs-button:active,.introjs-button:focus{background-image:-webkit-gradient(linear,0 0,0 100%,from(#ececec),to(#f4f4f4));background-image:-webkit-linear-gradient(#ececec,#f4f4f4);background-image:linear-gradient(#ececec,#f4f4f4)}.introjs-button::-moz-focus-inner{padding:0;border:0}.introjs-skipbutton{margin-right:5px;color:#7a7a7a}.introjs-prevbutton{border-right:none}.introjs-disabled,.introjs-disabled:focus,.introjs-disabled:hover{color:#9a9a9a;border-color:#d4d4d4;box-shadow:none;cursor:default;background-color:#f4f4f4;background-image:none;text-decoration:none}.introjs-bullets{text-align:center}.introjs-bullets ul{clear:both;margin:15px auto 0;padding:0;display:inline-block}.introjs-bullets ul li{list-style:none;float:left;margin:0 2px}.introjs-bullets ul li a{display:block;width:6px;height:6px;background:#ccc;border-radius:10px;-moz-border-radius:10px;-webkit-border-radius:10px;text-decoration:none}.introjs-bullets ul li a.active,.introjs-bullets ul li a:hover{background:#999}.introjs-helperNumberLayer{border:0!important;line-height:16px;top:-10px;left:-10px}.com{color:#a3b3ba}.lit{color:#195f91}.clo,.opn,.pun{color:#666}.fun{color:#dc322f}.atv,.str{color:#3C606E}.kwd,.prettyprint .tag{color:#1e347b}.atn,.dec,.typ,.var{color:teal}.pln{color:#666}.prettyprint{padding:2px;font-size:11px;border:1px solid #dbe4e7;background:rgba(255,255,255,.2);box-shadow:none;max-height:calc(100vh - 125px);overflow-y:auto;position:relative}.prettyprint ol{width:auto}.prettyprint li{padding-left:12px;color:#bebec5;line-height:20px;font-size:11px;width:100%}.prettyprint li:nth-child(odd){background-color:#fff}.prettyprint li:nth-child(even){background-color:#f6f9fa}ol.linenums{margin:0 0 0 20px}.panel.panel-filter .panel-body{padding:15px 15px 0}.filter-list{-webkit-transition:max-height .3s;transition:max-height .3s;position:relative;margin-bottom:15px;overflow:hidden}.filter-title{font-weight:700;font-size:14px;margin:5px 0}.filter-btn{display:none}.filter-collapsed{position:relative;max-height:145px!important;overflow:hidden}.filter-collapsed>.filter-btn{display:block;position:absolute;bottom:0;width:100%;border-color:transparent;padding-left:20px;text-align:left;font-weight:700;background-color:#fff;color:#888}.filter-option{margin:0;padding:5px 0 5px 20px;font-weight:inherit;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.filter-option::after{margin-left:10px;opacity:.6;content:"(" attr(data-count)")"}input[type=checkbox],input[type=radio]{margin-top:2px}.filter-search{position:relative;margin-bottom:15px}.filter-search input{padding-left:16px;border-radius:16px}.filter-search input:focus,.filter-search input:hover{border:1px solid #d2dde1!important;background-color:#f6f9fa}.filter-search input::-webkit-input-placeholder{line-height:15px;color:#71929f}.filter-search input:-moz-placeholder,.filter-search input::-moz-placeholder{line-height:15px;color:#71929f}.filter-search input:-ms-input-placeholder{line-height:15px;color:#71929f}.filter-search i{position:absolute;right:15px;top:50%;margin-top:-15px;height:30px;line-height:30px;color:#183440;pointer-events:none}*{outline:0!important}body,html{height:100%}body{background-color:#f6f9fa;font-family:'Open Sans',Oswald,sans-serif;font-size:12px;color:#3C606E;padding-top:40px}.wrapper{min-height:100%;height:auto!important;height:100%;margin-bottom:-35px}.content-wrapper{padding-top:20px}.navbar{background-color:#183440;box-shadow:0 none;height:40px;line-height:40px;margin-bottom:0;min-height:40px}.navbar .navbar-brand{padding-top:0;padding-bottom:0;margin-right:20px;font-family:'Varela Round';line-height:40px}.navbar .navbar-brand.admin{margin:0;background:#000;height:40px}.navbar .navbar-brand.admin:focus,.navbar .navbar-brand.admin:hover{background:#36ab70}.navbar .navbar-brand img{width:20px;height:20px;margin-right:5px;margin-top:-1px;display:inline-block}.navbar .navbar-brand h1{margin:0;display:inline-block;font-size:15px;color:#fff;line-height:40px;font-weight:100;text-transform:uppercase}.navbar ul.nav i{margin-right:5px}.navbar ul.nav li a{padding:0 20px;height:40px;line-height:40px;color:#fff}.navbar ul.nav li a:focus,.navbar ul.nav li a:hover{color:#fff;background-color:#1f4353}.navbar ul.nav li.active a,.navbar ul.nav li.active a:focus,.navbar ul.nav li.active a:hover{background-color:#3C606E}.navbar .search{height:40px;max-width:300px;display:inline-block;margin-right:15px;position:relative}.navbar .search input{height:28px;line-height:14px;padding:5px 35px 5px 15px;border:0;border-radius:30px;background:#3C606E;color:#fff!important}.navbar .search input:focus,.navbar .search input:hover{border:0!important;box-shadow:none;outline:0}.navbar .search input::-webkit-input-placeholder{line-height:15px;color:#71929f}.navbar .search input:-moz-placeholder,.navbar .search input::-moz-placeholder{line-height:15px;color:#71929f}.navbar .search input:-ms-input-placeholder{line-height:15px;color:#71929f}.navbar .search i{position:absolute;right:15px;top:5px;height:30px;line-height:30px;color:#fff}.navbar .pagination{height:40px;max-width:300px;display:inline-block;margin:5px;position:relative;float:right}.navbar .pagination li{padding-left:10px;display:inline-block;height:30px;color:#fff}.navbar .pagination a{border:0;background:#3C606E;color:#fff;height:30px}.navbar .pagination a:focus,.navbar .pagination a:hover{background:#4e7d8f}.anchor{display:block;position:relative;top:-40px;visibility:hidden}.header{line-height:60px;height:60px;border-bottom:1px solid #d2dde1;background:#fff}.header h3{margin:0;line-height:60px;font-size:16px}.header h3 a{padding:0;margin:0 10px 0 0;display:inline-block;color:#a3b3ba;font-weight:400}.header .nav-tabs{border:0}.header .nav-tabs li{margin:0}.header .nav-tabs li.active a{border-color:#d2dde1;border-top:0 none;border-bottom:0 none;background:#f6f9fa;z-index:99}.header .nav-tabs a{border:1px solid transparent;height:60px;line-height:60px;padding:0 20px;border-top:0 none;margin:0 0 0 -1px}.header .nav-tabs a:hover{background:0 0;border:1px solid #dbe4e7;border-top:0 none;border-bottom:0 none;color:inherit}.header .btn{margin-top:-4px}.header .input-group{display:block}h3{font-size:20px;font-weight:600}h4{font-size:16px}h4 i{margin-right:5px}#content h3:first-child{margin-top:0;display:inline-block}.btn-add-dataset{margin-top:-10px}.btn{background-color:#eceff0;border:1px solid #d2dde1;border-radius:0!important;color:#183440;font-size:13px}.btn.margin-left{margin-left:10px}.btn i{margin-right:5px}.btn i.icon-only{margin-right:0}.btn:focus,.btn:hover{background-color:#f7f9f9;border:1px solid #d2dde1}.btn.btn-primary{background-color:#183440;border:1px solid #183440;color:#fff;font-weight:700}.btn.btn-primary:focus,.btn.btn-primary:hover{background-color:#265265;border:1px solid #183440}.btn.btn-cta{color:#fff;font-weight:700;background-color:#36ab70;border:1px solid #36ab70}.btn.btn-cta:focus,.btn.btn-cta:hover{background-color:#3cbe7d;border:1px solid #3cbe7d}input,textarea{box-shadow:none!important;font-size:12px;border-color:#d2dde1!important}input:focus,textarea:focus{box-shadow:none!important;border:1px solid #d2dde1!important;border-bottom:1px solid #36ab70!important}textarea{resize:vertical}.add-dataset .identifier{padding:20px 0 40px}.add-dataset .alert{margin:20px}.add-dataset h3{margin-bottom:40px!important;display:block!important;text-align:center!important}.add-dataset .nav-tabs{margin:20px 20px 0}.add-dataset .tab-content{margin:0 20px 20px;background-color:#fff;display:block}.add-dataset .panel.dataset-parameters{margin-bottom:0;margin-top:-1px;border:0;border-left:1px solid #dbe4e7!important;border-right:1px solid #dbe4e7!important;box-shadow:none}.add-dataset .panel.dataset-parameters:last-child{margin-left:-1px}.form-control,.input-group-addon{font-size:12px;padding:6px 8px}.input-group-addon{background:#f3f7f8;color:#a3b3ba;border:1px solid #dbe4e7}.input-group-btn:last-child .btn{border-left:0 none}.input-medium{max-width:150px}a{color:#183440}a:focus,a:hover{text-decoration:none;color:#36ab70}h4>small{margin-left:.5em;font-size:12px}.well{border:1px solid #dbe4e7;background:#fff;box-shadow:none}footer{background-color:#fff;color:#a3b3ba;border-top:1px solid #d2dde1;line-height:34px;font-size:10px}.push,footer{height:35px;width:100%}.row{margin:0}.tab-content{background-color:#fff}.panel{border-color:#dbe4e7!important}.panel .row>div{padding:0}.panel.dataset-parameters{padding:10px 30px}.panel.users-information{padding:10px 30px;margin-bottom:0}.panel.collection:hover{background-color:#f3f7f8!important}.panel hr{margin-top:5px;border-color:#dbe4e7}.panel .panel-body{padding:12px 8px}.panel.dataset{clear:both;box-shadow:none!important;cursor:pointer;margin:-1px 0 0;font-size:12px}.panel.dataset:last-child{margin-bottom:20px}.panel.dataset.dataset-link .icon{line-height:18px}.panel.dataset.dataset-link h4{margin-bottom:0}.panel.dataset.dataset-link .panel-body{padding:7px 0 7px 7px}.panel.dataset.button-row .icon{line-height:24px}.panel.dataset.button-row h4{line-height:22px}.panel.dataset.button-row .panel-body{padding-bottom:0;line-height:24px}.panel.dataset.button-row .btn{height:25px;font-size:13px;padding:2px 10px;margin:0 -1px 0 0}.panel.dataset.button-row .btn:last-child{margin-right:0}.panel.dataset a:hover{color:inherit}.panel.dataset:hover{color:#183440;background-color:#f3f7f8}.panel.dataset h4{margin-top:0;margin-bottom:5px;font-size:14px;font-weight:700}.panel.dataset .icon{width:5%;height:100%;float:left;line-height:36px;text-align:center;margin-left:-15px}.panel.dataset .icon+div{width:95%;display:inline-block}.empty{margin-bottom:20px}.table,.table td{border-color:#dbe4e7!important}.table thead>tr>th{border-bottom:0 none}.table tbody tr:hover td{background-color:#f3f7f8!important}.table.triples{border:1px solid}.scroll-horizontal{border:1px solid #dbe4e7!important;overflow-x:auto;margin-bottom:15px}.scroll-horizontal .table{border:0!important;margin-bottom:0}.note{color:#a3b3ba}.map-container{width:100%;position:absolute;top:40px;bottom:35px}.map-container iframe{width:100%;height:100%;border:0}#geojson-map{margin-top:20px;width:100%;height:200px;min-height:200px;background:#ddd}@media (min-height:500px){#geojson-map{height:300px}}.modal .form-group:last-child{margin-bottom:0}.modal h4{font-size:16px}.modal .modal-footer{margin-top:0}.modal-backdrop{background:rgba(0,0,0,.3)}.modal-content{box-shadow:none!important}.hover-help{color:#a3b3ba}.edit-permissions{margin-bottom:14px!important}.permissions{margin-bottom:15px}.permissions>div>form>div{margin-bottom:10px}.permissions label{margin-left:5px;font-weight:400;margin-right:20px}.alert{border:0}.alert i{margin-right:5px;vertical-align:middle}.alert i.fa-2x{margin-top:-1px;margin-right:9px}.alert.alert-danger{background-color:#e74c3c;color:#fff}.introjs i{margin-bottom:20px}button.close{text-shadow:none;color:#fff!important;opacity:.8;margin-top:-3px;font-weight:400}.list-group{font-size:12px}.list-group h5{font-size:13px;font-weight:700;margin-bottom:8px}.list-group .list-group-item{border-color:#d2dde1}.help-block{color:#a3b3ba}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background:#f3f7f8;color:#a3b3ba}.formats .btn{font-size:10px;font-weight:700}.no-padding{padding:0}@media (max-width:768px){body{padding-top:0}.navbar{position:relative;height:auto;padding:0}.navbar .nav{margin:40px 0 0}.navbar .nav a{border-radius:0}.navbar .search{height:auto}.wrapper{padding:55px 0 0;margin-top:-41px}.panel.dataset .icon{width:15%;line-height:20px}.panel.dataset .icon+div{width:85%}}div.leaflet-container{min-height:450px}ul.nav-tabs+div.panel{margin-top:-1px}.nav-tabs li>a:hover{background-color:transparent!important}.nav-tabs li.active>a:hover{background-color:#fff!important}@media (max-width:500px){.navbar .search{width:80%}.navbar .search input{width:100%}}.lang-selector>a.active{font-weight:700}.lang-selector>a:after{content:'|';color:#CCC;margin:0 2px 0 4px}.lang-selector>a:last-child:after{margin:0;content:''}.profile-selector{float:right;margin-top:10px;line-height:20px}.profile{margin-left:15px}.geodcat-enabled .required .help-block::before{content:attr(requirement)": ";margin-left:2px;color:red}.geodcat-enabled .recommended .help-block::before{content:attr(requirement)": ";margin-left:2px;font-weight:700}.select-attribution{width:calc(100% - 150px)}.btn-attribution{float:right;width:130px}input[type=file]{display:block;border:none;margin-top:15px;padding:0}.nofloat{float:none}ul#linked-to-datasets{list-style-type:none;width:250px;padding:0 0 15px;overflow-x:hidden;overflow-y:auto}ul#linked-to-datasets button{width:105px;margin:5px}ul#linked-to-datasets input,ul#linked-to-datasets textarea{width:235px;margin:5px 0}.ui-autocomplete{max-height:100px;overflow-y:auto;overflow-x:hidden;padding-right:20px} \ No newline at end of file diff --git a/public/js/admin.min.js b/public/js/admin.min.js index b09617bc..88016d7d 100755 --- a/public/js/admin.min.js +++ b/public/js/admin.min.js @@ -1 +1 @@ -function buildURI(a){var b=$("#input_identifier_display").data("url"),c=$("#input_collection").val()+"/"+$("#input_resource_name").val();$("#input_identifier_display").html(b+c),$("#input_identifier").val(c)}!function(a,b){"object"==typeof exports?b(exports):"function"==typeof define&&define.amd?define(["exports"],b):b(a)}(this,function(a){function b(a){this._targetElement=a,this._options={nextLabel:"Next →",prevLabel:"← Back",skipLabel:"Skip",doneLabel:"Done",tooltipPosition:"bottom",tooltipClass:"",exitOnEsc:!0,exitOnOverlayClick:!0,showStepNumbers:!0,keyboardNavigation:!0,showButtons:!0,showBullets:!0}}function c(a){var b=[],c=this;if(this._options.steps)for(var d=[],h=0,j=this._options.steps.length;j>h;h++){var k=this._options.steps[h];k.step=h+1,"string"==typeof k.element&&(k.element=document.querySelector(k.element)),b.push(k)}else{var d=a.querySelectorAll("*[data-intro]");if(d.length<1)return!1;for(var h=0,l=d.length;l>h;h++){var m=d[h],o=parseInt(m.getAttribute("data-step"),10);o>0&&(b[o-1]={element:m,intro:m.getAttribute("data-intro"),step:parseInt(m.getAttribute("data-step"),10),tooltipClass:m.getAttribute("data-tooltipClass"),position:m.getAttribute("data-position")||this._options.tooltipPosition})}for(var p=0,h=0,l=d.length;l>h;h++){var m=d[h];if(null==m.getAttribute("data-step")){for(;;){if("undefined"==typeof b[p])break;p++}b[p]={element:m,intro:m.getAttribute("data-intro"),step:p+1,tooltipClass:m.getAttribute("data-tooltipClass"),position:m.getAttribute("data-position")||this._options.tooltipPosition}}}}for(var q=[],r=0;r0)for(var f=e.length-1;f>=0;f--)e[f].className=e[f].className.replace(/introjs-fixParent/g,"").replace(/^\s+|\s+$/g,"");window.removeEventListener?window.removeEventListener("keydown",this._onKeyDown,!0):document.detachEvent&&document.detachEvent("onkeydown",this._onKeyDown),this._currentStep=void 0}function h(a,b,c){if(b.style.top=null,b.style.right=null,b.style.bottom=null,b.style.left=null,this._introItems[this._currentStep]){var d="",e=this._introItems[this._currentStep];d="string"==typeof e.tooltipClass?e.tooltipClass:this._options.tooltipClass,b.className=("introjs-tooltip "+d).replace(/^\s+|\s+$/g,"");var d=this._options.tooltipClass,f=this._introItems[this._currentStep].position;switch(f){case"top":b.style.left="15px",b.style.top="-"+(o(b).height+10)+"px",c.className="introjs-arrow bottom";break;case"right":b.style.left=o(a).width+20+"px",c.className="introjs-arrow left";break;case"left":b.style.top="15px",b.style.right=o(a).width+20+"px",c.className="introjs-arrow right";break;case"bottom":default:b.style.bottom="-"+(o(b).height+10)+"px",c.className="introjs-arrow top"}}}function i(a){if(a){if(!this._introItems[this._currentStep])return;var b=o(this._introItems[this._currentStep].element);a.setAttribute("style","width: "+(b.width+10)+"px; height:"+(b.height+10)+"px; top:"+(b.top-5)+"px;left: "+(b.left-5)+"px;")}}function j(a){"undefined"!=typeof this._introChangeCallback&&this._introChangeCallback.call(this,a.element);var b=this,c=document.querySelector(".introjs-helperLayer");o(a.element);if(null!=c){var d=c.querySelector(".introjs-helperNumberLayer"),j=c.querySelector(".introjs-tooltiptext"),n=c.querySelector(".introjs-arrow"),p=c.querySelector(".introjs-tooltip"),q=c.querySelector(".introjs-skipbutton"),r=c.querySelector(".introjs-prevbutton"),s=c.querySelector(".introjs-nextbutton");p.style.opacity=0,i.call(b,c);var t=document.querySelectorAll(".introjs-fixParent");if(t&&t.length>0)for(var u=t.length-1;u>=0;u--)t[u].className=t[u].className.replace(/introjs-fixParent/g,"").replace(/^\s+|\s+$/g,"");var v=document.querySelector(".introjs-showElement");v.className=v.className.replace(/introjs-[a-zA-Z]+/g,"").replace(/^\s+|\s+$/g,""),b._lastShowElementTimer&&clearTimeout(b._lastShowElementTimer),b._lastShowElementTimer=setTimeout(function(){null!=d&&(d.innerHTML=a.step),j.innerHTML=a.intro,h.call(b,a.element,p,n),c.querySelector(".introjs-bullets li > a.active").className="",c.querySelector('.introjs-bullets li > a[data-stepnumber="'+a.step+'"]').className="active",p.style.opacity=1},350)}else{var w=document.createElement("div"),x=document.createElement("div"),y=document.createElement("div"),z=document.createElement("div"),A=document.createElement("div"),B=document.createElement("div");w.className="introjs-helperLayer",i.call(b,w),this._targetElement.appendChild(w),x.className="introjs-arrow",z.className="introjs-tooltiptext",z.innerHTML=a.intro,A.className="introjs-bullets",this._options.showBullets===!1&&(A.style.display="none");for(var C=document.createElement("ul"),u=0,D=this._introItems.length;D>u;u++){var E=document.createElement("li"),F=document.createElement("a");F.onclick=function(){b.goToStep(this.getAttribute("data-stepnumber"))},0===u&&(F.className="active"),F.href="javascript:void(0);",F.innerHTML=" ",F.setAttribute("data-stepnumber",this._introItems[u].step),E.appendChild(F),C.appendChild(E)}if(A.appendChild(C),B.className="introjs-tooltipbuttons",this._options.showButtons===!1&&(B.style.display="none"),y.className="introjs-tooltip",y.appendChild(z),y.appendChild(A),1==this._options.showStepNumbers){var G=document.createElement("span");G.className="introjs-helperNumberLayer",G.innerHTML=a.step,w.appendChild(G)}y.appendChild(x),w.appendChild(y);var s=document.createElement("a");s.onclick=function(){b._introItems.length-1!=b._currentStep&&e.call(b)},s.href="javascript:void(0);",s.innerHTML=this._options.nextLabel;var r=document.createElement("a");r.onclick=function(){0!=b._currentStep&&f.call(b)},r.href="javascript:void(0);",r.innerHTML=this._options.prevLabel;var q=document.createElement("a");q.className="introjs-button introjs-skipbutton",q.href="javascript:void(0);",q.innerHTML=this._options.skipLabel,q.onclick=function(){b._introItems.length-1==b._currentStep&&"function"==typeof b._introCompleteCallback&&b._introCompleteCallback.call(b),b._introItems.length-1!=b._currentStep&&"function"==typeof b._introExitCallback&&b._introExitCallback.call(b),g.call(b,b._targetElement)},B.appendChild(q),this._introItems.length>1&&(B.appendChild(r),B.appendChild(s)),y.appendChild(B),h.call(b,a.element,y,x)}0==this._currentStep?(r.className="introjs-button introjs-prevbutton introjs-disabled",s.className="introjs-button introjs-nextbutton",q.innerHTML=this._options.skipLabel):this._introItems.length-1==this._currentStep?(q.innerHTML=this._options.doneLabel,r.className="introjs-button introjs-prevbutton",s.className="introjs-button introjs-nextbutton introjs-disabled"):(r.className="introjs-button introjs-prevbutton",s.className="introjs-button introjs-nextbutton",q.innerHTML=this._options.skipLabel),s.focus(),a.element.className+=" introjs-showElement";var H=k(a.element,"position");"absolute"!==H&&"relative"!==H&&(a.element.className+=" introjs-relativePosition");for(var I=a.element.parentNode;null!=I&&"body"!==I.tagName.toLowerCase();){var J=k(I,"z-index");/[0-9]+/.test(J)&&(I.className+=" introjs-fixParent"),I=I.parentNode}if(!m(a.element)){var K=a.element.getBoundingClientRect(),L=l().height,M=K.bottom-(K.bottom-K.top),N=K.bottom-L;0>M||a.element.clientHeight>L?window.scrollBy(0,M-30):window.scrollBy(0,N+100)}}function k(a,b){var c="";return a.currentStyle?c=a.currentStyle[b]:document.defaultView&&document.defaultView.getComputedStyle&&(c=document.defaultView.getComputedStyle(a,null).getPropertyValue(b)),c&&c.toLowerCase?c.toLowerCase():c}function l(){if(void 0!=window.innerWidth)return{width:window.innerWidth,height:window.innerHeight};var a=document.documentElement;return{width:a.clientWidth,height:a.clientHeight}}function m(a){var b=a.getBoundingClientRect();return b.top>=0&&b.left>=0&&b.bottom+80<=window.innerHeight&&b.right<=window.innerWidth}function n(a){var b=document.createElement("div"),c="",d=this;if(b.className="introjs-overlay","body"===a.tagName.toLowerCase())c+="top: 0;bottom: 0; left: 0;right: 0;position: fixed;",b.setAttribute("style",c);else{var e=o(a);e&&(c+="width: "+e.width+"px; height:"+e.height+"px; top:"+e.top+"px;left: "+e.left+"px;",b.setAttribute("style",c))}return a.appendChild(b),b.onclick=function(){1==d._options.exitOnOverlayClick&&(g.call(d,a),void 0!=d._introExitCallback&&d._introExitCallback.call(d))},setTimeout(function(){c+="opacity: .8;",b.setAttribute("style",c)},10),!0}function o(a){var b={};b.width=a.offsetWidth,b.height=a.offsetHeight;for(var c=0,d=0;a&&!isNaN(a.offsetLeft)&&!isNaN(a.offsetTop);)c+=a.offsetLeft,d+=a.offsetTop,a=a.offsetParent;return b.top=d,b.left=c,b}function p(a,b){var c={};for(var d in a)c[d]=a[d];for(var d in b)c[d]=b[d];return c}var q="0.6.0",r=function(a){if("object"==typeof a)return new b(a);if("string"==typeof a){var c=document.querySelector(a);if(c)return new b(c);throw new Error("There is no element with given selector.")}return new b(document.body)};return r.version=q,r.fn=b.prototype={clone:function(){return new b(this)},setOption:function(a,b){return this._options[a]=b,this},setOptions:function(a){return this._options=p(this._options,a),this},start:function(){return c.call(this,this._targetElement),this},goToStep:function(a){return d.call(this,a),this},exit:function(){g.call(this,this._targetElement)},refresh:function(){return i.call(this,document.querySelector(".introjs-helperLayer")),this},onbeforechange:function(a){if("function"!=typeof a)throw new Error("Provided callback for onbeforechange was not a function");return this._introBeforeChangeCallback=a,this},onchange:function(a){if("function"!=typeof a)throw new Error("Provided callback for onchange was not a function.");return this._introChangeCallback=a,this},oncomplete:function(a){if("function"!=typeof a)throw new Error("Provided callback for oncomplete was not a function.");return this._introCompleteCallback=a,this},onexit:function(a){if("function"!=typeof a)throw new Error("Provided callback for onexit was not a function.");return this._introExitCallback=a,this}},a.introJs=r,r}),$(".delete").on("click",function(){return window.confirm("Are you sure you want to delete this?")}),$(".btn.edit-user").on("click",function(a){a.preventDefault();var b=$(this).parents(".dataset"),c=b.data("id"),d=b.data("name"),e=b.data("group"),f=$("#editUser");$("#inputEditId").val(c),$("#inputEditName").prop("disabled",!1).val(d),$("#inputEditGroup").prop("disabled",!1),$('#inputEditGroup option[value="'+e+'"]').prop("selected",!0),3>c&&($("#inputEditName").prop("disabled",!0),$("#inputEditGroup").prop("disabled",!0),2>c&&$("#inputEditPassword").prop("disabled",!0)),f.modal("show")}),$(".btn.edit-group").on("click",function(a){a.preventDefault();var b=$(this).parents(".dataset"),c=b.data("id"),d=b.data("name"),e=$("#editGroup");$("#inputEditId").val(c),$("#inputEditName").val(d),e.modal("show")}),$(".permissions").hide(),$(".edit-permissions").on("click",function(a){$(this).next(".permissions").toggle()}),$(".hover-help").tooltip(),$(".hover-help").on("click",function(a){a.preventDefault()}),$("form.add-dataset .identifier #input_collection, form.add-dataset .identifier #input_resource_name").on({keydown:buildURI,keyup:buildURI}),$(".btn-attribution").on("click",function(a){var b=$(a.target).parent().parent().parent(),c=JSON.parse($(a.target).next().val()),d=$("#person").html().replace("#ROLE#",c.name).replace("#DESC#",c.desc).replace("#OPTION#",c.option);b.append(d)}),$(".attribution-person .btn-delete").on("click",function(a){$(this).closest(".attribution-person").remove()}),$("input[name=publisher_uri], input[name=publisher_uri]").on("blur",function(a){var b=$(this).val();b&&"http:/"!==b.slice(0,6)&&"https:"!==b.slice(0,6)&&$(this).val("http://"+b)}),$(".btn-add-dataset").on("click",function(a){a.preventDefault();var b=$("form.add-dataset"),c=$(".tab-pane.active"),d=(c.data("mediatype"),{}),e=$("#input_identifier",b).val();if($("input, textarea, select",c).each(function(){$(this).attr("name")&&("checkbox"==$(this).attr("type")?d[$(this).attr("name")]=$(this).prop("checked")?1:0:"profile"==d[$(this).attr("name")]?$(this).prop("checked")&&(d[$(this).attr("name")]=$(this).val()):d[$(this).attr("name")]=$(this).val())}),d.to_be_indexed=0,c.find(".indexed").is(":checked")&&(d.to_be_indexed=1),$(".attribution-person",c).each(function(){d.attribution||(d.attribution=[]);var a=$(this).find(".name").val(),b=$(this).find(".email").val();(a||b)&&d.attribution.push({role:$(this).data("role"),name:a,email:b})}),0==c.find("#fileupload").length||0==c.find("#fileupload")[0].files.length)$.ajax({url:baseURL+"api/definitions/"+e,data:JSON.stringify(d),method:"PUT",headers:{Accept:"application/json","Content-Type":"application/tdt.definition+json",Authorization:authHeader},success:function(a){window.location=baseURL+"api/admin/datasets"},error:function(a){if(405!=a.status){var b=JSON.parse(a.responseText);b.error&&b.error.message&&($(".error .text",c).html(b.error.message),$(".error",c).removeClass("hide").show().focus())}else window.location=baseURL+"api/admin/datasets"}});else{var f=c.find("input[type=file]")[0].files[0],g=new FormData;g.append("fileupload",f),$.ajax({async:!0,type:"POST",contentType:!1,url:baseURL+"upload-file",data:g,processData:!1,success:function(a){d.fileupload=a,$.ajax({url:baseURL+"api/definitions/"+e,data:JSON.stringify(d),method:"PUT",headers:{Accept:"application/json","Content-Type":"application/tdt.definition+json",Authorization:authHeader},success:function(a){window.location=baseURL+"api/admin/datasets"},error:function(a){if(405!=a.status){var b=JSON.parse(a.responseText);b.error&&b.error.message&&($(".error .text",c).html(b.error.message),$(".error",c).removeClass("hide").show().focus())}else window.location=baseURL+"api/admin/datasets"}})},timeout:1e4})}}),$(".btn-edit-dataset").on("click",function(a){a.preventDefault();var b=$("form.edit-dataset"),c=(b.data("mediatype"),b.data("identifier")),d={};if($("input, textarea, select",b).each(function(){$(this).attr("name")&&("checkbox"==$(this).attr("type")?d[$(this).attr("name")]=$(this).prop("checked")?1:0:"profile"==$(this).attr("name")?$(this).prop("checked")&&(d[$(this).attr("name")]=$(this).val()):d[$(this).attr("name")]=$(this).val())}),$(".attribution-person").each(function(){d.attribution||(d.attribution=[]);var a=$(this).find(".name").val(),b=$(this).find(".email").val();(a||b)&&d.attribution.push({role:$(this).data("role"),name:a,email:b})}),0==b.find("#fileupload").length||0==b.find("#fileupload")[0].files.length)$.ajax({url:baseURL+"api/definitions/"+c,data:JSON.stringify(d),method:"POST",headers:{Accept:"application/json",Authorization:authHeader},success:function(a){window.location=baseURL+"api/admin/datasets"},error:function(a){if(405!=a.status){var b=JSON.parse(a.responseText);b.error&&b.error.message&&($(".error .text").html(b.error.message),$(".error").removeClass("hide").show().focus())}else window.location=baseURL+"api/admin/datasets"}});else{var e=b.find("input[type=file]")[0].files[0],f=new FormData;f.append("fileupload",e),$.ajax({async:!0,type:"POST",contentType:!1,url:baseURL+"upload-file",data:f,processData:!1,success:function(a){d.fileupload=a,$.ajax({url:baseURL+"api/definitions/"+c,data:JSON.stringify(d),method:"POST",headers:{Accept:"application/json",Authorization:authHeader},success:function(a){window.location=baseURL+"api/admin/datasets"},error:function(a){if(405!=a.status){var b=JSON.parse(a.responseText);b.error&&b.error.message&&($(".error .text").html(b.error.message),$(".error").removeClass("hide").show().focus())}else window.location=baseURL+"api/admin/datasets"}})},timeout:1e4})}});var mapScriptLoaded=!1;$(".location-picker").one("click",function(a){$(this).height("300px").removeClass("btn").removeClass("btn-default");var b,c,d,e=$(a.target).closest(".panel"),f=$("#"+$(this).data("id"),e),g=function(){d=new google.maps.Map($(".location-picker",e).get(0),{mapTypeControl:!1,streetViewControl:!1,center:{lat:50,lng:10},zoom:2});var a;try{var g=JSON.parse(JSON.parse(f.val()));a={north:g.coordinates[0][0][1],south:g.coordinates[0][2][1],east:g.coordinates[0][2][0],west:g.coordinates[0][0][0]}}catch(i){a={north:70,south:35,east:40,west:-10}}c=new google.maps.InfoWindow,b=new google.maps.Rectangle({bounds:a,draggable:!0,editable:!0}),b.addListener("bounds_changed",h),h(),b.setMap(d)},h=function(a){var e=b.getBounds().getNorthEast(),g=b.getBounds().getSouthWest(),h="North-east corner: "+e.lat()+", "+e.lng()+"
    South-west corner: "+g.lat()+", "+g.lng();f.val(JSON.stringify({type:"Polygon",coordinates:[[[g.lng(),e.lat()],[e.lng(),e.lat()],[e.lng(),g.lat()],[g.lng(),g.lat()],[g.lng(),e.lat()]]]})),c.setContent(h),c.setPosition(e),c.open(d)};if(mapScriptLoaded)g();else{var i=document.createElement("script");i.onload=g,i.setAttribute("type","text/javascript"),i.setAttribute("src","https://maps.googleapis.com/maps/api/js"),document.head.appendChild(i),mapScriptLoaded=!0}});var selectProfile=function(a,b){"dcat"==a?($(".profile-geodcat",b).hide(),$(".profile-dcat",b).show(),b.removeClass("geodcat-enabled")):($(".profile-dcat",b).hide(),$(".profile-geodcat",b).show(),b.addClass("geodcat-enabled"),$(".location-picker",b).click())};selectProfile($(".profile-selector input[name=profile]:checked").val(),$(".panel-dcat")),$(".profile-selector").on("change",function(a){var b=$(a.target).closest(".panel");selectProfile($(a.target).val(),b)}),$(".introjs").on("click",function(a){a.preventDefault(),introJs().start()}); \ No newline at end of file +function buildURI(a){var b=$("#input_identifier_display").data("url"),c=$("#input_collection").val()+"/"+$("#input_resource_name").val();$("#input_identifier_display").html(b+c),$("#input_identifier").val(c)}!function(a,b){"object"==typeof exports?b(exports):"function"==typeof define&&define.amd?define(["exports"],b):b(a)}(this,function(a){function b(a){this._targetElement=a,this._options={nextLabel:"Next →",prevLabel:"← Back",skipLabel:"Skip",doneLabel:"Done",tooltipPosition:"bottom",tooltipClass:"",exitOnEsc:!0,exitOnOverlayClick:!0,showStepNumbers:!0,keyboardNavigation:!0,showButtons:!0,showBullets:!0}}function c(a){var b=[],c=this;if(this._options.steps)for(var d=[],h=0,j=this._options.steps.length;j>h;h++){var k=this._options.steps[h];k.step=h+1,"string"==typeof k.element&&(k.element=document.querySelector(k.element)),b.push(k)}else{var d=a.querySelectorAll("*[data-intro]");if(d.length<1)return!1;for(var h=0,l=d.length;l>h;h++){var m=d[h],o=parseInt(m.getAttribute("data-step"),10);o>0&&(b[o-1]={element:m,intro:m.getAttribute("data-intro"),step:parseInt(m.getAttribute("data-step"),10),tooltipClass:m.getAttribute("data-tooltipClass"),position:m.getAttribute("data-position")||this._options.tooltipPosition})}for(var p=0,h=0,l=d.length;l>h;h++){var m=d[h];if(null==m.getAttribute("data-step")){for(;;){if("undefined"==typeof b[p])break;p++}b[p]={element:m,intro:m.getAttribute("data-intro"),step:p+1,tooltipClass:m.getAttribute("data-tooltipClass"),position:m.getAttribute("data-position")||this._options.tooltipPosition}}}}for(var q=[],r=0;r0)for(var f=e.length-1;f>=0;f--)e[f].className=e[f].className.replace(/introjs-fixParent/g,"").replace(/^\s+|\s+$/g,"");window.removeEventListener?window.removeEventListener("keydown",this._onKeyDown,!0):document.detachEvent&&document.detachEvent("onkeydown",this._onKeyDown),this._currentStep=void 0}function h(a,b,c){if(b.style.top=null,b.style.right=null,b.style.bottom=null,b.style.left=null,this._introItems[this._currentStep]){var d="",e=this._introItems[this._currentStep];d="string"==typeof e.tooltipClass?e.tooltipClass:this._options.tooltipClass,b.className=("introjs-tooltip "+d).replace(/^\s+|\s+$/g,"");var d=this._options.tooltipClass,f=this._introItems[this._currentStep].position;switch(f){case"top":b.style.left="15px",b.style.top="-"+(o(b).height+10)+"px",c.className="introjs-arrow bottom";break;case"right":b.style.left=o(a).width+20+"px",c.className="introjs-arrow left";break;case"left":b.style.top="15px",b.style.right=o(a).width+20+"px",c.className="introjs-arrow right";break;case"bottom":default:b.style.bottom="-"+(o(b).height+10)+"px",c.className="introjs-arrow top"}}}function i(a){if(a){if(!this._introItems[this._currentStep])return;var b=o(this._introItems[this._currentStep].element);a.setAttribute("style","width: "+(b.width+10)+"px; height:"+(b.height+10)+"px; top:"+(b.top-5)+"px;left: "+(b.left-5)+"px;")}}function j(a){"undefined"!=typeof this._introChangeCallback&&this._introChangeCallback.call(this,a.element);var b=this,c=document.querySelector(".introjs-helperLayer");o(a.element);if(null!=c){var d=c.querySelector(".introjs-helperNumberLayer"),j=c.querySelector(".introjs-tooltiptext"),n=c.querySelector(".introjs-arrow"),p=c.querySelector(".introjs-tooltip"),q=c.querySelector(".introjs-skipbutton"),r=c.querySelector(".introjs-prevbutton"),s=c.querySelector(".introjs-nextbutton");p.style.opacity=0,i.call(b,c);var t=document.querySelectorAll(".introjs-fixParent");if(t&&t.length>0)for(var u=t.length-1;u>=0;u--)t[u].className=t[u].className.replace(/introjs-fixParent/g,"").replace(/^\s+|\s+$/g,"");var v=document.querySelector(".introjs-showElement");v.className=v.className.replace(/introjs-[a-zA-Z]+/g,"").replace(/^\s+|\s+$/g,""),b._lastShowElementTimer&&clearTimeout(b._lastShowElementTimer),b._lastShowElementTimer=setTimeout(function(){null!=d&&(d.innerHTML=a.step),j.innerHTML=a.intro,h.call(b,a.element,p,n),c.querySelector(".introjs-bullets li > a.active").className="",c.querySelector('.introjs-bullets li > a[data-stepnumber="'+a.step+'"]').className="active",p.style.opacity=1},350)}else{var w=document.createElement("div"),x=document.createElement("div"),y=document.createElement("div"),z=document.createElement("div"),A=document.createElement("div"),B=document.createElement("div");w.className="introjs-helperLayer",i.call(b,w),this._targetElement.appendChild(w),x.className="introjs-arrow",z.className="introjs-tooltiptext",z.innerHTML=a.intro,A.className="introjs-bullets",this._options.showBullets===!1&&(A.style.display="none");for(var C=document.createElement("ul"),u=0,D=this._introItems.length;D>u;u++){var E=document.createElement("li"),F=document.createElement("a");F.onclick=function(){b.goToStep(this.getAttribute("data-stepnumber"))},0===u&&(F.className="active"),F.href="javascript:void(0);",F.innerHTML=" ",F.setAttribute("data-stepnumber",this._introItems[u].step),E.appendChild(F),C.appendChild(E)}if(A.appendChild(C),B.className="introjs-tooltipbuttons",this._options.showButtons===!1&&(B.style.display="none"),y.className="introjs-tooltip",y.appendChild(z),y.appendChild(A),1==this._options.showStepNumbers){var G=document.createElement("span");G.className="introjs-helperNumberLayer",G.innerHTML=a.step,w.appendChild(G)}y.appendChild(x),w.appendChild(y);var s=document.createElement("a");s.onclick=function(){b._introItems.length-1!=b._currentStep&&e.call(b)},s.href="javascript:void(0);",s.innerHTML=this._options.nextLabel;var r=document.createElement("a");r.onclick=function(){0!=b._currentStep&&f.call(b)},r.href="javascript:void(0);",r.innerHTML=this._options.prevLabel;var q=document.createElement("a");q.className="introjs-button introjs-skipbutton",q.href="javascript:void(0);",q.innerHTML=this._options.skipLabel,q.onclick=function(){b._introItems.length-1==b._currentStep&&"function"==typeof b._introCompleteCallback&&b._introCompleteCallback.call(b),b._introItems.length-1!=b._currentStep&&"function"==typeof b._introExitCallback&&b._introExitCallback.call(b),g.call(b,b._targetElement)},B.appendChild(q),this._introItems.length>1&&(B.appendChild(r),B.appendChild(s)),y.appendChild(B),h.call(b,a.element,y,x)}0==this._currentStep?(r.className="introjs-button introjs-prevbutton introjs-disabled",s.className="introjs-button introjs-nextbutton",q.innerHTML=this._options.skipLabel):this._introItems.length-1==this._currentStep?(q.innerHTML=this._options.doneLabel,r.className="introjs-button introjs-prevbutton",s.className="introjs-button introjs-nextbutton introjs-disabled"):(r.className="introjs-button introjs-prevbutton",s.className="introjs-button introjs-nextbutton",q.innerHTML=this._options.skipLabel),s.focus(),a.element.className+=" introjs-showElement";var H=k(a.element,"position");"absolute"!==H&&"relative"!==H&&(a.element.className+=" introjs-relativePosition");for(var I=a.element.parentNode;null!=I&&"body"!==I.tagName.toLowerCase();){var J=k(I,"z-index");/[0-9]+/.test(J)&&(I.className+=" introjs-fixParent"),I=I.parentNode}if(!m(a.element)){var K=a.element.getBoundingClientRect(),L=l().height,M=K.bottom-(K.bottom-K.top),N=K.bottom-L;0>M||a.element.clientHeight>L?window.scrollBy(0,M-30):window.scrollBy(0,N+100)}}function k(a,b){var c="";return a.currentStyle?c=a.currentStyle[b]:document.defaultView&&document.defaultView.getComputedStyle&&(c=document.defaultView.getComputedStyle(a,null).getPropertyValue(b)),c&&c.toLowerCase?c.toLowerCase():c}function l(){if(void 0!=window.innerWidth)return{width:window.innerWidth,height:window.innerHeight};var a=document.documentElement;return{width:a.clientWidth,height:a.clientHeight}}function m(a){var b=a.getBoundingClientRect();return b.top>=0&&b.left>=0&&b.bottom+80<=window.innerHeight&&b.right<=window.innerWidth}function n(a){var b=document.createElement("div"),c="",d=this;if(b.className="introjs-overlay","body"===a.tagName.toLowerCase())c+="top: 0;bottom: 0; left: 0;right: 0;position: fixed;",b.setAttribute("style",c);else{var e=o(a);e&&(c+="width: "+e.width+"px; height:"+e.height+"px; top:"+e.top+"px;left: "+e.left+"px;",b.setAttribute("style",c))}return a.appendChild(b),b.onclick=function(){1==d._options.exitOnOverlayClick&&(g.call(d,a),void 0!=d._introExitCallback&&d._introExitCallback.call(d))},setTimeout(function(){c+="opacity: .8;",b.setAttribute("style",c)},10),!0}function o(a){var b={};b.width=a.offsetWidth,b.height=a.offsetHeight;for(var c=0,d=0;a&&!isNaN(a.offsetLeft)&&!isNaN(a.offsetTop);)c+=a.offsetLeft,d+=a.offsetTop,a=a.offsetParent;return b.top=d,b.left=c,b}function p(a,b){var c={};for(var d in a)c[d]=a[d];for(var d in b)c[d]=b[d];return c}var q="0.6.0",r=function(a){if("object"==typeof a)return new b(a);if("string"==typeof a){var c=document.querySelector(a);if(c)return new b(c);throw new Error("There is no element with given selector.")}return new b(document.body)};return r.version=q,r.fn=b.prototype={clone:function(){return new b(this)},setOption:function(a,b){return this._options[a]=b,this},setOptions:function(a){return this._options=p(this._options,a),this},start:function(){return c.call(this,this._targetElement),this},goToStep:function(a){return d.call(this,a),this},exit:function(){g.call(this,this._targetElement)},refresh:function(){return i.call(this,document.querySelector(".introjs-helperLayer")),this},onbeforechange:function(a){if("function"!=typeof a)throw new Error("Provided callback for onbeforechange was not a function");return this._introBeforeChangeCallback=a,this},onchange:function(a){if("function"!=typeof a)throw new Error("Provided callback for onchange was not a function.");return this._introChangeCallback=a,this},oncomplete:function(a){if("function"!=typeof a)throw new Error("Provided callback for oncomplete was not a function.");return this._introCompleteCallback=a,this},onexit:function(a){if("function"!=typeof a)throw new Error("Provided callback for onexit was not a function.");return this._introExitCallback=a,this}},a.introJs=r,r}),$(".delete").on("click",function(){return window.confirm("Are you sure you want to delete this?")}),$(".btn.edit-user").on("click",function(a){a.preventDefault();var b=$(this).parents(".dataset"),c=b.data("id"),d=b.data("name"),e=b.data("group"),f=$("#editUser");$("#inputEditId").val(c),$("#inputEditName").prop("disabled",!1).val(d),$("#inputEditGroup").prop("disabled",!1),$('#inputEditGroup option[value="'+e+'"]').prop("selected",!0),3>c&&($("#inputEditName").prop("disabled",!0),$("#inputEditGroup").prop("disabled",!0),2>c&&$("#inputEditPassword").prop("disabled",!0)),f.modal("show")}),$(".btn.edit-group").on("click",function(a){a.preventDefault();var b=$(this).parents(".dataset"),c=b.data("id"),d=b.data("name"),e=$("#editGroup");$("#inputEditId").val(c),$("#inputEditName").val(d),e.modal("show")}),$(".permissions").hide(),$(".edit-permissions").on("click",function(a){$(this).next(".permissions").toggle()}),$(".hover-help").tooltip(),$(".hover-help").on("click",function(a){a.preventDefault()}),$("form.add-dataset .identifier #input_collection, form.add-dataset .identifier #input_resource_name").on({keydown:buildURI,keyup:buildURI}),$(".btn-attribution").on("click",function(a){var b=$(a.target).parent().parent().parent(),c=JSON.parse($(a.target).next().val()),d=$("#person").html().replace("#ROLE#",c.name).replace("#DESC#",c.desc).replace("#OPTION#",c.option);b.append(d)}),$(".attribution-person .btn-delete").on("click",function(a){$(this).closest(".attribution-person").remove()}),$("input[name=publisher_uri], input[name=publisher_uri]").on("blur",function(a){var b=$(this).val();b&&"http:/"!==b.slice(0,6)&&"https:"!==b.slice(0,6)&&$(this).val("http://"+b)}),$(".btn-add-dataset").on("click",function(a){a.preventDefault();var b=$("form.add-dataset"),c=$(".tab-pane.active"),d=(c.data("mediatype"),{}),e=$("#input_identifier",b).val();$("input, textarea, select",c).each(function(){$(this).attr("name")&&("checkbox"==$(this).attr("type")?d[$(this).attr("name")]=$(this).prop("checked")?1:0:"profile"==d[$(this).attr("name")]?$(this).prop("checked")&&(d[$(this).attr("name")]=$(this).val()):d[$(this).attr("name")]=$(this).val())});var f=$(".linked-definitions");if($("input, textarea",f).each(function(){$(this).attr("name")&&("checkbox"==$(this).attr("type")?d[$(this).attr("name")]=$(this).prop("checked")?1:0:"profile"==d[$(this).attr("name")]?$(this).prop("checked")&&(d[$(this).attr("name")]=$(this).val()):d[$(this).attr("name")]=$(this).val())}),d.to_be_indexed=0,c.find(".indexed").is(":checked")&&(d.to_be_indexed=1),$(".attribution-person",c).each(function(){d.attribution||(d.attribution=[]);var a=$(this).find(".name").val(),b=$(this).find(".email").val();(a||b)&&d.attribution.push({role:$(this).data("role"),name:a,email:b})}),0==c.find("#fileupload").length||0==c.find("#fileupload")[0].files.length)$.ajax({url:baseURL+"api/definitions/"+e,data:JSON.stringify(d),method:"PUT",headers:{Accept:"application/json","Content-Type":"application/tdt.definition+json",Authorization:authHeader},success:function(a){window.location=baseURL+"api/admin/datasets"},error:function(a){if(405!=a.status){var b=JSON.parse(a.responseText);b.error&&b.error.message&&($(".error .text",c).html(b.error.message),$(".error",c).removeClass("hide").show().focus())}else window.location=baseURL+"api/admin/datasets"}});else if(!c.find("#fileupload_xslt").length||0==c.find("#fileupload_xslt").length&&0==c.find("#fileupload_xslt")[0].files.length){var g=c.find("input[type=file]")[0].files[0],h=new FormData;h.append("fileupload",g),$.ajax({async:!0,type:"POST",contentType:!1,url:baseURL+"upload-file",data:h,processData:!1,success:function(a){d.fileupload=a,$.ajax({url:baseURL+"api/definitions/"+e,data:JSON.stringify(d),method:"PUT",headers:{Accept:"application/json","Content-Type":"application/tdt.definition+json",Authorization:authHeader},success:function(a){window.location=baseURL+"api/admin/datasets"},error:function(a){if(405!=a.status){var b=JSON.parse(a.responseText);b.error&&b.error.message&&($(".error .text",c).html(b.error.message),$(".error",c).removeClass("hide").show().focus())}else window.location=baseURL+"api/admin/datasets"}})},timeout:1e4})}else{var g=c.find("input[type=file]")[0].files[0],h=new FormData;h.append("fileupload",g);var i=c.find("#fileupload_xslt")[0].files[0];h.append("fileupload_xslt",i),$.ajax({async:!0,type:"POST",contentType:!1,url:baseURL+"upload-file",data:h,processData:!1,success:function(a){d.fileupload=a,$.ajax({url:baseURL+"api/definitions/"+e,data:JSON.stringify(d),method:"PUT",headers:{Accept:"application/json","Content-Type":"application/tdt.definition+json",Authorization:authHeader},success:function(a){window.location=baseURL+"api/admin/datasets"},error:function(a){if(405!=a.status){var b=JSON.parse(a.responseText);b.error&&b.error.message&&($(".error .text",c).html(b.error.message),$(".error",c).removeClass("hide").show().focus())}else window.location=baseURL+"api/admin/datasets"}})},timeout:1e4})}}),$(".btn-edit-dataset").on("click",function(a){a.preventDefault();var b=$("form.edit-dataset"),c=(b.data("mediatype"),b.data("identifier")),d={};if($("input, textarea, select",b).each(function(){$(this).attr("name")&&("checkbox"==$(this).attr("type")?d[$(this).attr("name")]=$(this).prop("checked")?1:0:"profile"==$(this).attr("name")?$(this).prop("checked")&&(d[$(this).attr("name")]=$(this).val()):d[$(this).attr("name")]=$(this).val())}),$(".attribution-person").each(function(){d.attribution||(d.attribution=[]);var a=$(this).find(".name").val(),b=$(this).find(".email").val();(a||b)&&d.attribution.push({role:$(this).data("role"),name:a,email:b})}),0==b.find("#fileupload").length||0==b.find("#fileupload")[0].files.length)$.ajax({url:baseURL+"api/definitions/"+c,data:JSON.stringify(d),method:"POST",headers:{Accept:"application/json",Authorization:authHeader},success:function(a){window.location=baseURL+"api/admin/datasets"},error:function(a){if(405!=a.status){var b=JSON.parse(a.responseText);b.error&&b.error.message&&($(".error .text").html(b.error.message),$(".error").removeClass("hide").show().focus())}else window.location=baseURL+"api/admin/datasets"}});else{var e=b.find("input[type=file]")[0].files[0],f=new FormData;f.append("fileupload",e),$.ajax({async:!0,type:"POST",contentType:!1,url:baseURL+"upload-file",data:f,processData:!1,success:function(a){d.fileupload=a,$.ajax({url:baseURL+"api/definitions/"+c,data:JSON.stringify(d),method:"POST",headers:{Accept:"application/json",Authorization:authHeader},success:function(a){window.location=baseURL+"api/admin/datasets"},error:function(a){if(405!=a.status){var b=JSON.parse(a.responseText);b.error&&b.error.message&&($(".error .text").html(b.error.message),$(".error").removeClass("hide").show().focus())}else window.location=baseURL+"api/admin/datasets"}})},timeout:1e4})}});var mapScriptLoaded=!1;$(".location-picker").one("click",function(a){$(this).height("300px").removeClass("btn").removeClass("btn-default");var b,c,d,e=$(a.target).closest(".panel"),f=$("#"+$(this).data("id"),e),g=function(){d=new google.maps.Map($(".location-picker",e).get(0),{mapTypeControl:!1,streetViewControl:!1,center:{lat:50,lng:10},zoom:2});var a;try{var g=JSON.parse(JSON.parse(f.val()));a={north:g.coordinates[0][0][1],south:g.coordinates[0][2][1],east:g.coordinates[0][2][0],west:g.coordinates[0][0][0]}}catch(i){a={north:70,south:35,east:40,west:-10}}c=new google.maps.InfoWindow,b=new google.maps.Rectangle({bounds:a,draggable:!0,editable:!0}),b.addListener("bounds_changed",h),h(),b.setMap(d)},h=function(a){var e=b.getBounds().getNorthEast(),g=b.getBounds().getSouthWest(),h="North-east corner: "+e.lat()+", "+e.lng()+"
    South-west corner: "+g.lat()+", "+g.lng();f.val(JSON.stringify({type:"Polygon",coordinates:[[[g.lng(),e.lat()],[e.lng(),e.lat()],[e.lng(),g.lat()],[g.lng(),g.lat()],[g.lng(),e.lat()]]]})),c.setContent(h),c.setPosition(e),c.open(d)};if(mapScriptLoaded)g();else{var i=document.createElement("script");i.onload=g,i.setAttribute("type","text/javascript"),i.setAttribute("src","https://maps.googleapis.com/maps/api/js"),document.head.appendChild(i),mapScriptLoaded=!0}});var selectProfile=function(a,b){"dcat"==a?($(".profile-geodcat",b).hide(),$(".profile-dcat",b).show(),b.removeClass("geodcat-enabled")):($(".profile-dcat",b).hide(),$(".profile-geodcat",b).show(),b.addClass("geodcat-enabled"),$(".location-picker",b).click())};selectProfile($(".profile-selector input[name=profile]:checked").val(),$(".panel-dcat")),$(".profile-selector").on("change",function(a){var b=$(a.target).closest(".panel");selectProfile($(a.target).val(),b)}),$(".introjs").on("click",function(a){a.preventDefault(),introJs().start()}); \ No newline at end of file From 6431ee7aa5539318127fdce970c6f9921db3aa39 Mon Sep 17 00:00:00 2001 From: jwebrare Date: Sat, 25 Feb 2017 20:45:57 +0100 Subject: [PATCH 33/68] Dropdown autocomplete now does not allow a dataset linking to itself. --- .../Repositories/DefinitionRepository.php | 4 +-- app/Tdt/Core/Ui/DatasetController.php | 25 +++++++++++++------ app/views/ui/datasets/edit.blade.php | 2 +- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/app/Tdt/Core/Repositories/DefinitionRepository.php b/app/Tdt/Core/Repositories/DefinitionRepository.php index 86285d17..553f6adb 100644 --- a/app/Tdt/Core/Repositories/DefinitionRepository.php +++ b/app/Tdt/Core/Repositories/DefinitionRepository.php @@ -251,8 +251,8 @@ public function delete($identifier) } // Delete "links" to/from this dataset - $definition_model->linkedFrom()->detach(); - $definition_model->linkedTo()->detach(); + $definition->linkedFrom()->detach(); + $definition->linkedTo()->detach(); return $definition->delete(); } diff --git a/app/Tdt/Core/Ui/DatasetController.php b/app/Tdt/Core/Ui/DatasetController.php index 6acd4e43..a8820f46 100755 --- a/app/Tdt/Core/Ui/DatasetController.php +++ b/app/Tdt/Core/Ui/DatasetController.php @@ -333,8 +333,6 @@ public function getEdit($id) */ public function getDelete($id) { - //\App::abort(400, "Deleting dataset."); - // Set permission Auth::requirePermissions('admin.dataset.delete'); @@ -415,15 +413,26 @@ private function translateParameters($parameters, $media_type) */ public function autocompleteLinkedDatasets(){ $term = \Input::get('term'); + $currentdef_id = \Input::get('currentdef_id'); $results = array(); - $queries = \DB::table('definitions') - ->where('title', 'LIKE', '%' . $term . '%') - ->orWhere('description', 'LIKE', '%' . $term . '%') - ->orWhere('resource_name', 'LIKE', '%' . $term . '%') - ->orWhere('collection_uri', 'LIKE', '%' . $term . '%') - ->get(); + if (isset($currentdef_id)) { // Editing an existing dataset + $queries = \DB::table('definitions') + ->where('title', 'LIKE', '%' . $term . '%') + ->orWhere('description', 'LIKE', '%' . $term . '%') + ->orWhere('resource_name', 'LIKE', '%' . $term . '%') + ->orWhere('collection_uri', 'LIKE', '%' . $term . '%') + ->having('id', '!=', $currentdef_id) + ->get(); + } else { // Creating a new dataset + $queries = \DB::table('definitions') + ->where('title', 'LIKE', '%' . $term . '%') + ->orWhere('description', 'LIKE', '%' . $term . '%') + ->orWhere('resource_name', 'LIKE', '%' . $term . '%') + ->orWhere('collection_uri', 'LIKE', '%' . $term . '%') + ->get(); + } foreach ($queries as $query) { diff --git a/app/views/ui/datasets/edit.blade.php b/app/views/ui/datasets/edit.blade.php index ade8ac52..bf9b9eb5 100755 --- a/app/views/ui/datasets/edit.blade.php +++ b/app/views/ui/datasets/edit.blade.php @@ -400,7 +400,7 @@ $("#linked-to-datasets").on("focus.autocomplete", "input:text[name^='linkedto']", function () { $(this).autocomplete({ - source: "/search/autocomplete", + source: "/search/autocomplete?currentdef_id={{ $definition->id }}", minLength: 0, select: function(event, ui) { $(this).val(ui.item.value); From c0206ae636d316bd3f178161dbb3e27351f93e74 Mon Sep 17 00:00:00 2001 From: luisdelacalle Date: Mon, 27 Feb 2017 08:48:00 +0100 Subject: [PATCH 34/68] edit datasets with xslt file --- .../Core/Definitions/DefinitionController.php | 10 ++++ app/views/ui/datasets/edit.blade.php | 7 +++ dev/js/admin.js | 57 ++++++++++++++++++- 3 files changed, 73 insertions(+), 1 deletion(-) diff --git a/app/Tdt/Core/Definitions/DefinitionController.php b/app/Tdt/Core/Definitions/DefinitionController.php index 7bfd4613..f292b8a6 100755 --- a/app/Tdt/Core/Definitions/DefinitionController.php +++ b/app/Tdt/Core/Definitions/DefinitionController.php @@ -412,6 +412,7 @@ public function patch($uri) $input['user_id'] = $definition['user_id']; $input['username'] = $definition['username']; + $input['xslt_file'] = $definition['xslt_file']; // Keep associated job $input['job_id'] = $definition['job_id']; @@ -428,6 +429,15 @@ public function patch($uri) $input['uri'] = 'file://' . $input['fileupload']; } + //Add uploaded xslt file + if (isset($input['fileupload_xslt']) && $input['fileupload_xslt'] != '') { + + $file2=$input['fileupload_xslt']; + $file3=explode("\\", $file2); + + $input['xslt_file'] =$file3[2] . '_' . date('Y-m-d'); + } + // Validate the input $validator = $this->definitions->getValidator($input); diff --git a/app/views/ui/datasets/edit.blade.php b/app/views/ui/datasets/edit.blade.php index ade8ac52..b3c2f99d 100755 --- a/app/views/ui/datasets/edit.blade.php +++ b/app/views/ui/datasets/edit.blade.php @@ -151,6 +151,13 @@
    {{ $object->description }}
    + @if (in_array(strtolower($source_definition->type), array("xml")) && $parameter == 'uri') + +
    + {{ $object->description_xslt }} +
    + + @endif
    @endforeach diff --git a/dev/js/admin.js b/dev/js/admin.js index 0a8c0d5e..4e6bfe86 100644 --- a/dev/js/admin.js +++ b/dev/js/admin.js @@ -366,7 +366,62 @@ $('.btn-edit-dataset').on('click', function(e){ } } }) - } else { + } + //upload xml with xslt file + else if( tab_pane.find("#fileupload_xslt").length && (tab_pane.find("#fileupload_xslt").length != 0 || tab_pane.find("#fileupload_xslt")[0].files.length != 0) ){ + + // Upload dataset file + var file = tab_pane.find('input[type=file]')[0].files[0]; + var fd = new FormData(); + fd.append("fileupload", file); + + + // Upload xslt file + var fileupload_xslt = tab_pane.find('#fileupload_xslt')[0].files[0]; + fd.append("fileupload_xslt", fileupload_xslt); + + // Ajax call: upload file + $.ajax({ + async: true, + type: "POST", + contentType: false, + url: baseURL + 'upload-file', + data: fd, + processData: false, + success: function (data1) { + data["fileupload"] = data1; + // Ajax call: add dataset + $.ajax({ + url: baseURL + "api/definitions/" + collection, + data: JSON.stringify(data), + method: "PUT", + headers: { + 'Accept' : 'application/json', + 'Content-Type': 'application/tdt.definition+json', + 'Authorization': authHeader + }, + success: function(e){ + // Done, redirect to datets page + window.location = baseURL + 'api/admin/datasets'; + }, + error: function(e){ + if(e.status != 405){ + var error = JSON.parse(e.responseText); + if(error.error && error.error.message){ + $('.error .text', tab_pane).html(error.error.message); + $('.error', tab_pane).removeClass('hide').show().focus(); + } + }else{ + // Ajax followed location header -> ignore + window.location = baseURL + 'api/admin/datasets'; + } + } + }); + }, + timeout: 10000 + }); + } + else { // Upload dataset file var file = form.find('input[type=file]')[0].files[0]; var fd = new FormData(); From d490b10bcfbbdd00a2400f1283491876206472b6 Mon Sep 17 00:00:00 2001 From: luisdelacalle Date: Mon, 27 Feb 2017 13:36:17 +0100 Subject: [PATCH 35/68] bug in admin.js --- dev/js/admin.js | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/dev/js/admin.js b/dev/js/admin.js index 4e6bfe86..ba599c84 100644 --- a/dev/js/admin.js +++ b/dev/js/admin.js @@ -368,16 +368,16 @@ $('.btn-edit-dataset').on('click', function(e){ }) } //upload xml with xslt file - else if( tab_pane.find("#fileupload_xslt").length && (tab_pane.find("#fileupload_xslt").length != 0 || tab_pane.find("#fileupload_xslt")[0].files.length != 0) ){ + else if( form.find("#fileupload_xslt").length && (form.find("#fileupload_xslt").length != 0 || form.find("#fileupload_xslt")[0].files.length != 0) ){ // Upload dataset file - var file = tab_pane.find('input[type=file]')[0].files[0]; + var file = form.find('input[type=file]')[0].files[0]; var fd = new FormData(); fd.append("fileupload", file); // Upload xslt file - var fileupload_xslt = tab_pane.find('#fileupload_xslt')[0].files[0]; + var fileupload_xslt = form.find('#fileupload_xslt')[0].files[0]; fd.append("fileupload_xslt", fileupload_xslt); // Ajax call: upload file @@ -390,14 +390,13 @@ $('.btn-edit-dataset').on('click', function(e){ processData: false, success: function (data1) { data["fileupload"] = data1; - // Ajax call: add dataset + // Ajax call: edit dataset $.ajax({ - url: baseURL + "api/definitions/" + collection, + url: baseURL + "api/definitions/" + identifier, data: JSON.stringify(data), - method: "PUT", + method: "POST", headers: { 'Accept' : 'application/json', - 'Content-Type': 'application/tdt.definition+json', 'Authorization': authHeader }, success: function(e){ @@ -408,8 +407,8 @@ $('.btn-edit-dataset').on('click', function(e){ if(e.status != 405){ var error = JSON.parse(e.responseText); if(error.error && error.error.message){ - $('.error .text', tab_pane).html(error.error.message); - $('.error', tab_pane).removeClass('hide').show().focus(); + $('.error .text').html(error.error.message); + $('.error').removeClass('hide').show().focus(); } }else{ // Ajax followed location header -> ignore From 3e012ace8a2567360fef5e333e5bdb306eef99fc Mon Sep 17 00:00:00 2001 From: Jan Vansteenlandt Date: Mon, 27 Feb 2017 18:17:28 +0100 Subject: [PATCH 36/68] Bugfixes for listing linked datasets and maintaining the XLST file after editing a dataset --- app/views/ui/datasets/edit.blade.php | 60 +++++++++------------------- dev/js/admin.js | 21 +++++----- public/js/admin.min.js | 2 +- 3 files changed, 28 insertions(+), 55 deletions(-) diff --git a/app/views/ui/datasets/edit.blade.php b/app/views/ui/datasets/edit.blade.php index e915bdec..77bd5a34 100755 --- a/app/views/ui/datasets/edit.blade.php +++ b/app/views/ui/datasets/edit.blade.php @@ -151,13 +151,6 @@
    {{ $object->description }}
    - @if (in_array(strtolower($source_definition->type), array("xml")) && $parameter == 'uri') - -
    - {{ $object->description_xslt }} -
    - - @endif
    @endforeach @@ -362,40 +355,23 @@ window.count = 0; @endif - $("#linked-to-datasets").on("click", "button[id^='del']", function ( event ) { - event.preventDefault(); - if (window.count == 0) { - var li = $(this).parent(); - li.remove(); - var linkedToNum = "linkedto" + window.count; - var linkedToDescNum = "linkedto_desc" + window.count; - var linkedToIDNum = "linkedto_id" + window.count; - var btnAddNum = "add" + window.count; - var btnDelNum = "del" + window.count; - var ul = $("#linked-to-datasets"); - var linew = $("
  • ") - .append($("" - + "" - + "" - + "" - + "")); - linew.appendTo(ul); - return; - } - var li = $(this).parent(); - li.remove(); - window.count--; - }); - - $("#linked-to-datasets").on("focus.autocomplete", "input:text[name^='linkedto']", function () { - $(this).autocomplete({ - source: "/search/autocomplete?currentdef_id={{ $definition->id }}", - minLength: 0, - select: function(event, ui) { - $(this).val(ui.item.value); - $(this).closest('li').find('input[type=hidden]').val(ui.item.id); - } - }); + $("#linked-to-datasets").on("click", "button[id^='add']", function ( event ) { + event.preventDefault(); + window.count++; + var linkedToNum = "linkedto" + window.count; + var linkedToDescNum = "linkedto_desc" + window.count; + var linkedToIDNum = "linkedto_id" + window.count; + var btnAddNum = "add" + window.count; + var btnDelNum = "del" + window.count; + var ul = $("#linked-to-datasets"); + var li = $("
  • ") + .append($("" + + "" + + "" + + "" + + "")); + li.appendTo(ul); + }); $("#linked-to-datasets").on("click", "button[id^='del']", function ( event ) { event.preventDefault(); @@ -424,7 +400,7 @@ $("#linked-to-datasets").on("focus.autocomplete", "input:text[name^='linkedto']", function () { $(this).autocomplete({ - source: "/search/autocomplete", + source: "/search/autocomplete?currentdef_id={{ $definition->id }}", minLength: 0, select: function(event, ui) { $(this).val(ui.item.value); diff --git a/dev/js/admin.js b/dev/js/admin.js index 4e6bfe86..b21596bf 100644 --- a/dev/js/admin.js +++ b/dev/js/admin.js @@ -189,7 +189,7 @@ $('.btn-add-dataset').on('click', function(e){ window.location = baseURL + 'api/admin/datasets'; } } - }) + }) } //upload xml with xslt file else if( tab_pane.find("#fileupload_xslt").length && (tab_pane.find("#fileupload_xslt").length != 0 || tab_pane.find("#fileupload_xslt")[0].files.length != 0) ){ @@ -247,7 +247,7 @@ $('.btn-add-dataset').on('click', function(e){ } else { - // Upload dataset file + // Upload dataset file var file = tab_pane.find('input[type=file]')[0].files[0]; var fd = new FormData(); fd.append("fileupload", file); @@ -337,7 +337,7 @@ $('.btn-edit-dataset').on('click', function(e){ }) } }); - + // Check uri source (fileupload field) if( form.find("#fileupload").length == 0 || form.find("#fileupload")[0].files.length == 0 ){ // Ajax call: no file selected @@ -365,11 +365,8 @@ $('.btn-edit-dataset').on('click', function(e){ window.location = baseURL + 'api/admin/datasets'; } } - }) - } - //upload xml with xslt file - else if( tab_pane.find("#fileupload_xslt").length && (tab_pane.find("#fileupload_xslt").length != 0 || tab_pane.find("#fileupload_xslt")[0].files.length != 0) ){ - + }) + } else if( tab_pane.find("#fileupload_xslt").length && (tab_pane.find("#fileupload_xslt").length != 0 || tab_pane.find("#fileupload_xslt")[0].files.length != 0) ){ // Upload dataset file var file = tab_pane.find('input[type=file]')[0].files[0]; var fd = new FormData(); @@ -422,11 +419,11 @@ $('.btn-edit-dataset').on('click', function(e){ }); } else { - // Upload dataset file + // Upload dataset file var file = form.find('input[type=file]')[0].files[0]; var fd = new FormData(); fd.append("fileupload", file); - + // Ajax call: upload file $.ajax({ async: true, @@ -466,8 +463,8 @@ $('.btn-edit-dataset').on('click', function(e){ }, timeout: 10000 }); - } - + } + }); // Load google maps for GeoDCAT diff --git a/public/js/admin.min.js b/public/js/admin.min.js index 88016d7d..bd676992 100755 --- a/public/js/admin.min.js +++ b/public/js/admin.min.js @@ -1 +1 @@ -function buildURI(a){var b=$("#input_identifier_display").data("url"),c=$("#input_collection").val()+"/"+$("#input_resource_name").val();$("#input_identifier_display").html(b+c),$("#input_identifier").val(c)}!function(a,b){"object"==typeof exports?b(exports):"function"==typeof define&&define.amd?define(["exports"],b):b(a)}(this,function(a){function b(a){this._targetElement=a,this._options={nextLabel:"Next →",prevLabel:"← Back",skipLabel:"Skip",doneLabel:"Done",tooltipPosition:"bottom",tooltipClass:"",exitOnEsc:!0,exitOnOverlayClick:!0,showStepNumbers:!0,keyboardNavigation:!0,showButtons:!0,showBullets:!0}}function c(a){var b=[],c=this;if(this._options.steps)for(var d=[],h=0,j=this._options.steps.length;j>h;h++){var k=this._options.steps[h];k.step=h+1,"string"==typeof k.element&&(k.element=document.querySelector(k.element)),b.push(k)}else{var d=a.querySelectorAll("*[data-intro]");if(d.length<1)return!1;for(var h=0,l=d.length;l>h;h++){var m=d[h],o=parseInt(m.getAttribute("data-step"),10);o>0&&(b[o-1]={element:m,intro:m.getAttribute("data-intro"),step:parseInt(m.getAttribute("data-step"),10),tooltipClass:m.getAttribute("data-tooltipClass"),position:m.getAttribute("data-position")||this._options.tooltipPosition})}for(var p=0,h=0,l=d.length;l>h;h++){var m=d[h];if(null==m.getAttribute("data-step")){for(;;){if("undefined"==typeof b[p])break;p++}b[p]={element:m,intro:m.getAttribute("data-intro"),step:p+1,tooltipClass:m.getAttribute("data-tooltipClass"),position:m.getAttribute("data-position")||this._options.tooltipPosition}}}}for(var q=[],r=0;r0)for(var f=e.length-1;f>=0;f--)e[f].className=e[f].className.replace(/introjs-fixParent/g,"").replace(/^\s+|\s+$/g,"");window.removeEventListener?window.removeEventListener("keydown",this._onKeyDown,!0):document.detachEvent&&document.detachEvent("onkeydown",this._onKeyDown),this._currentStep=void 0}function h(a,b,c){if(b.style.top=null,b.style.right=null,b.style.bottom=null,b.style.left=null,this._introItems[this._currentStep]){var d="",e=this._introItems[this._currentStep];d="string"==typeof e.tooltipClass?e.tooltipClass:this._options.tooltipClass,b.className=("introjs-tooltip "+d).replace(/^\s+|\s+$/g,"");var d=this._options.tooltipClass,f=this._introItems[this._currentStep].position;switch(f){case"top":b.style.left="15px",b.style.top="-"+(o(b).height+10)+"px",c.className="introjs-arrow bottom";break;case"right":b.style.left=o(a).width+20+"px",c.className="introjs-arrow left";break;case"left":b.style.top="15px",b.style.right=o(a).width+20+"px",c.className="introjs-arrow right";break;case"bottom":default:b.style.bottom="-"+(o(b).height+10)+"px",c.className="introjs-arrow top"}}}function i(a){if(a){if(!this._introItems[this._currentStep])return;var b=o(this._introItems[this._currentStep].element);a.setAttribute("style","width: "+(b.width+10)+"px; height:"+(b.height+10)+"px; top:"+(b.top-5)+"px;left: "+(b.left-5)+"px;")}}function j(a){"undefined"!=typeof this._introChangeCallback&&this._introChangeCallback.call(this,a.element);var b=this,c=document.querySelector(".introjs-helperLayer");o(a.element);if(null!=c){var d=c.querySelector(".introjs-helperNumberLayer"),j=c.querySelector(".introjs-tooltiptext"),n=c.querySelector(".introjs-arrow"),p=c.querySelector(".introjs-tooltip"),q=c.querySelector(".introjs-skipbutton"),r=c.querySelector(".introjs-prevbutton"),s=c.querySelector(".introjs-nextbutton");p.style.opacity=0,i.call(b,c);var t=document.querySelectorAll(".introjs-fixParent");if(t&&t.length>0)for(var u=t.length-1;u>=0;u--)t[u].className=t[u].className.replace(/introjs-fixParent/g,"").replace(/^\s+|\s+$/g,"");var v=document.querySelector(".introjs-showElement");v.className=v.className.replace(/introjs-[a-zA-Z]+/g,"").replace(/^\s+|\s+$/g,""),b._lastShowElementTimer&&clearTimeout(b._lastShowElementTimer),b._lastShowElementTimer=setTimeout(function(){null!=d&&(d.innerHTML=a.step),j.innerHTML=a.intro,h.call(b,a.element,p,n),c.querySelector(".introjs-bullets li > a.active").className="",c.querySelector('.introjs-bullets li > a[data-stepnumber="'+a.step+'"]').className="active",p.style.opacity=1},350)}else{var w=document.createElement("div"),x=document.createElement("div"),y=document.createElement("div"),z=document.createElement("div"),A=document.createElement("div"),B=document.createElement("div");w.className="introjs-helperLayer",i.call(b,w),this._targetElement.appendChild(w),x.className="introjs-arrow",z.className="introjs-tooltiptext",z.innerHTML=a.intro,A.className="introjs-bullets",this._options.showBullets===!1&&(A.style.display="none");for(var C=document.createElement("ul"),u=0,D=this._introItems.length;D>u;u++){var E=document.createElement("li"),F=document.createElement("a");F.onclick=function(){b.goToStep(this.getAttribute("data-stepnumber"))},0===u&&(F.className="active"),F.href="javascript:void(0);",F.innerHTML=" ",F.setAttribute("data-stepnumber",this._introItems[u].step),E.appendChild(F),C.appendChild(E)}if(A.appendChild(C),B.className="introjs-tooltipbuttons",this._options.showButtons===!1&&(B.style.display="none"),y.className="introjs-tooltip",y.appendChild(z),y.appendChild(A),1==this._options.showStepNumbers){var G=document.createElement("span");G.className="introjs-helperNumberLayer",G.innerHTML=a.step,w.appendChild(G)}y.appendChild(x),w.appendChild(y);var s=document.createElement("a");s.onclick=function(){b._introItems.length-1!=b._currentStep&&e.call(b)},s.href="javascript:void(0);",s.innerHTML=this._options.nextLabel;var r=document.createElement("a");r.onclick=function(){0!=b._currentStep&&f.call(b)},r.href="javascript:void(0);",r.innerHTML=this._options.prevLabel;var q=document.createElement("a");q.className="introjs-button introjs-skipbutton",q.href="javascript:void(0);",q.innerHTML=this._options.skipLabel,q.onclick=function(){b._introItems.length-1==b._currentStep&&"function"==typeof b._introCompleteCallback&&b._introCompleteCallback.call(b),b._introItems.length-1!=b._currentStep&&"function"==typeof b._introExitCallback&&b._introExitCallback.call(b),g.call(b,b._targetElement)},B.appendChild(q),this._introItems.length>1&&(B.appendChild(r),B.appendChild(s)),y.appendChild(B),h.call(b,a.element,y,x)}0==this._currentStep?(r.className="introjs-button introjs-prevbutton introjs-disabled",s.className="introjs-button introjs-nextbutton",q.innerHTML=this._options.skipLabel):this._introItems.length-1==this._currentStep?(q.innerHTML=this._options.doneLabel,r.className="introjs-button introjs-prevbutton",s.className="introjs-button introjs-nextbutton introjs-disabled"):(r.className="introjs-button introjs-prevbutton",s.className="introjs-button introjs-nextbutton",q.innerHTML=this._options.skipLabel),s.focus(),a.element.className+=" introjs-showElement";var H=k(a.element,"position");"absolute"!==H&&"relative"!==H&&(a.element.className+=" introjs-relativePosition");for(var I=a.element.parentNode;null!=I&&"body"!==I.tagName.toLowerCase();){var J=k(I,"z-index");/[0-9]+/.test(J)&&(I.className+=" introjs-fixParent"),I=I.parentNode}if(!m(a.element)){var K=a.element.getBoundingClientRect(),L=l().height,M=K.bottom-(K.bottom-K.top),N=K.bottom-L;0>M||a.element.clientHeight>L?window.scrollBy(0,M-30):window.scrollBy(0,N+100)}}function k(a,b){var c="";return a.currentStyle?c=a.currentStyle[b]:document.defaultView&&document.defaultView.getComputedStyle&&(c=document.defaultView.getComputedStyle(a,null).getPropertyValue(b)),c&&c.toLowerCase?c.toLowerCase():c}function l(){if(void 0!=window.innerWidth)return{width:window.innerWidth,height:window.innerHeight};var a=document.documentElement;return{width:a.clientWidth,height:a.clientHeight}}function m(a){var b=a.getBoundingClientRect();return b.top>=0&&b.left>=0&&b.bottom+80<=window.innerHeight&&b.right<=window.innerWidth}function n(a){var b=document.createElement("div"),c="",d=this;if(b.className="introjs-overlay","body"===a.tagName.toLowerCase())c+="top: 0;bottom: 0; left: 0;right: 0;position: fixed;",b.setAttribute("style",c);else{var e=o(a);e&&(c+="width: "+e.width+"px; height:"+e.height+"px; top:"+e.top+"px;left: "+e.left+"px;",b.setAttribute("style",c))}return a.appendChild(b),b.onclick=function(){1==d._options.exitOnOverlayClick&&(g.call(d,a),void 0!=d._introExitCallback&&d._introExitCallback.call(d))},setTimeout(function(){c+="opacity: .8;",b.setAttribute("style",c)},10),!0}function o(a){var b={};b.width=a.offsetWidth,b.height=a.offsetHeight;for(var c=0,d=0;a&&!isNaN(a.offsetLeft)&&!isNaN(a.offsetTop);)c+=a.offsetLeft,d+=a.offsetTop,a=a.offsetParent;return b.top=d,b.left=c,b}function p(a,b){var c={};for(var d in a)c[d]=a[d];for(var d in b)c[d]=b[d];return c}var q="0.6.0",r=function(a){if("object"==typeof a)return new b(a);if("string"==typeof a){var c=document.querySelector(a);if(c)return new b(c);throw new Error("There is no element with given selector.")}return new b(document.body)};return r.version=q,r.fn=b.prototype={clone:function(){return new b(this)},setOption:function(a,b){return this._options[a]=b,this},setOptions:function(a){return this._options=p(this._options,a),this},start:function(){return c.call(this,this._targetElement),this},goToStep:function(a){return d.call(this,a),this},exit:function(){g.call(this,this._targetElement)},refresh:function(){return i.call(this,document.querySelector(".introjs-helperLayer")),this},onbeforechange:function(a){if("function"!=typeof a)throw new Error("Provided callback for onbeforechange was not a function");return this._introBeforeChangeCallback=a,this},onchange:function(a){if("function"!=typeof a)throw new Error("Provided callback for onchange was not a function.");return this._introChangeCallback=a,this},oncomplete:function(a){if("function"!=typeof a)throw new Error("Provided callback for oncomplete was not a function.");return this._introCompleteCallback=a,this},onexit:function(a){if("function"!=typeof a)throw new Error("Provided callback for onexit was not a function.");return this._introExitCallback=a,this}},a.introJs=r,r}),$(".delete").on("click",function(){return window.confirm("Are you sure you want to delete this?")}),$(".btn.edit-user").on("click",function(a){a.preventDefault();var b=$(this).parents(".dataset"),c=b.data("id"),d=b.data("name"),e=b.data("group"),f=$("#editUser");$("#inputEditId").val(c),$("#inputEditName").prop("disabled",!1).val(d),$("#inputEditGroup").prop("disabled",!1),$('#inputEditGroup option[value="'+e+'"]').prop("selected",!0),3>c&&($("#inputEditName").prop("disabled",!0),$("#inputEditGroup").prop("disabled",!0),2>c&&$("#inputEditPassword").prop("disabled",!0)),f.modal("show")}),$(".btn.edit-group").on("click",function(a){a.preventDefault();var b=$(this).parents(".dataset"),c=b.data("id"),d=b.data("name"),e=$("#editGroup");$("#inputEditId").val(c),$("#inputEditName").val(d),e.modal("show")}),$(".permissions").hide(),$(".edit-permissions").on("click",function(a){$(this).next(".permissions").toggle()}),$(".hover-help").tooltip(),$(".hover-help").on("click",function(a){a.preventDefault()}),$("form.add-dataset .identifier #input_collection, form.add-dataset .identifier #input_resource_name").on({keydown:buildURI,keyup:buildURI}),$(".btn-attribution").on("click",function(a){var b=$(a.target).parent().parent().parent(),c=JSON.parse($(a.target).next().val()),d=$("#person").html().replace("#ROLE#",c.name).replace("#DESC#",c.desc).replace("#OPTION#",c.option);b.append(d)}),$(".attribution-person .btn-delete").on("click",function(a){$(this).closest(".attribution-person").remove()}),$("input[name=publisher_uri], input[name=publisher_uri]").on("blur",function(a){var b=$(this).val();b&&"http:/"!==b.slice(0,6)&&"https:"!==b.slice(0,6)&&$(this).val("http://"+b)}),$(".btn-add-dataset").on("click",function(a){a.preventDefault();var b=$("form.add-dataset"),c=$(".tab-pane.active"),d=(c.data("mediatype"),{}),e=$("#input_identifier",b).val();$("input, textarea, select",c).each(function(){$(this).attr("name")&&("checkbox"==$(this).attr("type")?d[$(this).attr("name")]=$(this).prop("checked")?1:0:"profile"==d[$(this).attr("name")]?$(this).prop("checked")&&(d[$(this).attr("name")]=$(this).val()):d[$(this).attr("name")]=$(this).val())});var f=$(".linked-definitions");if($("input, textarea",f).each(function(){$(this).attr("name")&&("checkbox"==$(this).attr("type")?d[$(this).attr("name")]=$(this).prop("checked")?1:0:"profile"==d[$(this).attr("name")]?$(this).prop("checked")&&(d[$(this).attr("name")]=$(this).val()):d[$(this).attr("name")]=$(this).val())}),d.to_be_indexed=0,c.find(".indexed").is(":checked")&&(d.to_be_indexed=1),$(".attribution-person",c).each(function(){d.attribution||(d.attribution=[]);var a=$(this).find(".name").val(),b=$(this).find(".email").val();(a||b)&&d.attribution.push({role:$(this).data("role"),name:a,email:b})}),0==c.find("#fileupload").length||0==c.find("#fileupload")[0].files.length)$.ajax({url:baseURL+"api/definitions/"+e,data:JSON.stringify(d),method:"PUT",headers:{Accept:"application/json","Content-Type":"application/tdt.definition+json",Authorization:authHeader},success:function(a){window.location=baseURL+"api/admin/datasets"},error:function(a){if(405!=a.status){var b=JSON.parse(a.responseText);b.error&&b.error.message&&($(".error .text",c).html(b.error.message),$(".error",c).removeClass("hide").show().focus())}else window.location=baseURL+"api/admin/datasets"}});else if(!c.find("#fileupload_xslt").length||0==c.find("#fileupload_xslt").length&&0==c.find("#fileupload_xslt")[0].files.length){var g=c.find("input[type=file]")[0].files[0],h=new FormData;h.append("fileupload",g),$.ajax({async:!0,type:"POST",contentType:!1,url:baseURL+"upload-file",data:h,processData:!1,success:function(a){d.fileupload=a,$.ajax({url:baseURL+"api/definitions/"+e,data:JSON.stringify(d),method:"PUT",headers:{Accept:"application/json","Content-Type":"application/tdt.definition+json",Authorization:authHeader},success:function(a){window.location=baseURL+"api/admin/datasets"},error:function(a){if(405!=a.status){var b=JSON.parse(a.responseText);b.error&&b.error.message&&($(".error .text",c).html(b.error.message),$(".error",c).removeClass("hide").show().focus())}else window.location=baseURL+"api/admin/datasets"}})},timeout:1e4})}else{var g=c.find("input[type=file]")[0].files[0],h=new FormData;h.append("fileupload",g);var i=c.find("#fileupload_xslt")[0].files[0];h.append("fileupload_xslt",i),$.ajax({async:!0,type:"POST",contentType:!1,url:baseURL+"upload-file",data:h,processData:!1,success:function(a){d.fileupload=a,$.ajax({url:baseURL+"api/definitions/"+e,data:JSON.stringify(d),method:"PUT",headers:{Accept:"application/json","Content-Type":"application/tdt.definition+json",Authorization:authHeader},success:function(a){window.location=baseURL+"api/admin/datasets"},error:function(a){if(405!=a.status){var b=JSON.parse(a.responseText);b.error&&b.error.message&&($(".error .text",c).html(b.error.message),$(".error",c).removeClass("hide").show().focus())}else window.location=baseURL+"api/admin/datasets"}})},timeout:1e4})}}),$(".btn-edit-dataset").on("click",function(a){a.preventDefault();var b=$("form.edit-dataset"),c=(b.data("mediatype"),b.data("identifier")),d={};if($("input, textarea, select",b).each(function(){$(this).attr("name")&&("checkbox"==$(this).attr("type")?d[$(this).attr("name")]=$(this).prop("checked")?1:0:"profile"==$(this).attr("name")?$(this).prop("checked")&&(d[$(this).attr("name")]=$(this).val()):d[$(this).attr("name")]=$(this).val())}),$(".attribution-person").each(function(){d.attribution||(d.attribution=[]);var a=$(this).find(".name").val(),b=$(this).find(".email").val();(a||b)&&d.attribution.push({role:$(this).data("role"),name:a,email:b})}),0==b.find("#fileupload").length||0==b.find("#fileupload")[0].files.length)$.ajax({url:baseURL+"api/definitions/"+c,data:JSON.stringify(d),method:"POST",headers:{Accept:"application/json",Authorization:authHeader},success:function(a){window.location=baseURL+"api/admin/datasets"},error:function(a){if(405!=a.status){var b=JSON.parse(a.responseText);b.error&&b.error.message&&($(".error .text").html(b.error.message),$(".error").removeClass("hide").show().focus())}else window.location=baseURL+"api/admin/datasets"}});else{var e=b.find("input[type=file]")[0].files[0],f=new FormData;f.append("fileupload",e),$.ajax({async:!0,type:"POST",contentType:!1,url:baseURL+"upload-file",data:f,processData:!1,success:function(a){d.fileupload=a,$.ajax({url:baseURL+"api/definitions/"+c,data:JSON.stringify(d),method:"POST",headers:{Accept:"application/json",Authorization:authHeader},success:function(a){window.location=baseURL+"api/admin/datasets"},error:function(a){if(405!=a.status){var b=JSON.parse(a.responseText);b.error&&b.error.message&&($(".error .text").html(b.error.message),$(".error").removeClass("hide").show().focus())}else window.location=baseURL+"api/admin/datasets"}})},timeout:1e4})}});var mapScriptLoaded=!1;$(".location-picker").one("click",function(a){$(this).height("300px").removeClass("btn").removeClass("btn-default");var b,c,d,e=$(a.target).closest(".panel"),f=$("#"+$(this).data("id"),e),g=function(){d=new google.maps.Map($(".location-picker",e).get(0),{mapTypeControl:!1,streetViewControl:!1,center:{lat:50,lng:10},zoom:2});var a;try{var g=JSON.parse(JSON.parse(f.val()));a={north:g.coordinates[0][0][1],south:g.coordinates[0][2][1],east:g.coordinates[0][2][0],west:g.coordinates[0][0][0]}}catch(i){a={north:70,south:35,east:40,west:-10}}c=new google.maps.InfoWindow,b=new google.maps.Rectangle({bounds:a,draggable:!0,editable:!0}),b.addListener("bounds_changed",h),h(),b.setMap(d)},h=function(a){var e=b.getBounds().getNorthEast(),g=b.getBounds().getSouthWest(),h="North-east corner: "+e.lat()+", "+e.lng()+"
    South-west corner: "+g.lat()+", "+g.lng();f.val(JSON.stringify({type:"Polygon",coordinates:[[[g.lng(),e.lat()],[e.lng(),e.lat()],[e.lng(),g.lat()],[g.lng(),g.lat()],[g.lng(),e.lat()]]]})),c.setContent(h),c.setPosition(e),c.open(d)};if(mapScriptLoaded)g();else{var i=document.createElement("script");i.onload=g,i.setAttribute("type","text/javascript"),i.setAttribute("src","https://maps.googleapis.com/maps/api/js"),document.head.appendChild(i),mapScriptLoaded=!0}});var selectProfile=function(a,b){"dcat"==a?($(".profile-geodcat",b).hide(),$(".profile-dcat",b).show(),b.removeClass("geodcat-enabled")):($(".profile-dcat",b).hide(),$(".profile-geodcat",b).show(),b.addClass("geodcat-enabled"),$(".location-picker",b).click())};selectProfile($(".profile-selector input[name=profile]:checked").val(),$(".panel-dcat")),$(".profile-selector").on("change",function(a){var b=$(a.target).closest(".panel");selectProfile($(a.target).val(),b)}),$(".introjs").on("click",function(a){a.preventDefault(),introJs().start()}); \ No newline at end of file +function buildURI(a){var b=$("#input_identifier_display").data("url"),c=$("#input_collection").val()+"/"+$("#input_resource_name").val();$("#input_identifier_display").html(b+c),$("#input_identifier").val(c)}!function(a,b){"object"==typeof exports?b(exports):"function"==typeof define&&define.amd?define(["exports"],b):b(a)}(this,function(a){function b(a){this._targetElement=a,this._options={nextLabel:"Next →",prevLabel:"← Back",skipLabel:"Skip",doneLabel:"Done",tooltipPosition:"bottom",tooltipClass:"",exitOnEsc:!0,exitOnOverlayClick:!0,showStepNumbers:!0,keyboardNavigation:!0,showButtons:!0,showBullets:!0}}function c(a){var b=[],c=this;if(this._options.steps)for(var d=[],h=0,j=this._options.steps.length;j>h;h++){var k=this._options.steps[h];k.step=h+1,"string"==typeof k.element&&(k.element=document.querySelector(k.element)),b.push(k)}else{var d=a.querySelectorAll("*[data-intro]");if(d.length<1)return!1;for(var h=0,l=d.length;l>h;h++){var m=d[h],o=parseInt(m.getAttribute("data-step"),10);o>0&&(b[o-1]={element:m,intro:m.getAttribute("data-intro"),step:parseInt(m.getAttribute("data-step"),10),tooltipClass:m.getAttribute("data-tooltipClass"),position:m.getAttribute("data-position")||this._options.tooltipPosition})}for(var p=0,h=0,l=d.length;l>h;h++){var m=d[h];if(null==m.getAttribute("data-step")){for(;;){if("undefined"==typeof b[p])break;p++}b[p]={element:m,intro:m.getAttribute("data-intro"),step:p+1,tooltipClass:m.getAttribute("data-tooltipClass"),position:m.getAttribute("data-position")||this._options.tooltipPosition}}}}for(var q=[],r=0;r0)for(var f=e.length-1;f>=0;f--)e[f].className=e[f].className.replace(/introjs-fixParent/g,"").replace(/^\s+|\s+$/g,"");window.removeEventListener?window.removeEventListener("keydown",this._onKeyDown,!0):document.detachEvent&&document.detachEvent("onkeydown",this._onKeyDown),this._currentStep=void 0}function h(a,b,c){if(b.style.top=null,b.style.right=null,b.style.bottom=null,b.style.left=null,this._introItems[this._currentStep]){var d="",e=this._introItems[this._currentStep];d="string"==typeof e.tooltipClass?e.tooltipClass:this._options.tooltipClass,b.className=("introjs-tooltip "+d).replace(/^\s+|\s+$/g,"");var d=this._options.tooltipClass,f=this._introItems[this._currentStep].position;switch(f){case"top":b.style.left="15px",b.style.top="-"+(o(b).height+10)+"px",c.className="introjs-arrow bottom";break;case"right":b.style.left=o(a).width+20+"px",c.className="introjs-arrow left";break;case"left":b.style.top="15px",b.style.right=o(a).width+20+"px",c.className="introjs-arrow right";break;case"bottom":default:b.style.bottom="-"+(o(b).height+10)+"px",c.className="introjs-arrow top"}}}function i(a){if(a){if(!this._introItems[this._currentStep])return;var b=o(this._introItems[this._currentStep].element);a.setAttribute("style","width: "+(b.width+10)+"px; height:"+(b.height+10)+"px; top:"+(b.top-5)+"px;left: "+(b.left-5)+"px;")}}function j(a){"undefined"!=typeof this._introChangeCallback&&this._introChangeCallback.call(this,a.element);var b=this,c=document.querySelector(".introjs-helperLayer");o(a.element);if(null!=c){var d=c.querySelector(".introjs-helperNumberLayer"),j=c.querySelector(".introjs-tooltiptext"),n=c.querySelector(".introjs-arrow"),p=c.querySelector(".introjs-tooltip"),q=c.querySelector(".introjs-skipbutton"),r=c.querySelector(".introjs-prevbutton"),s=c.querySelector(".introjs-nextbutton");p.style.opacity=0,i.call(b,c);var t=document.querySelectorAll(".introjs-fixParent");if(t&&t.length>0)for(var u=t.length-1;u>=0;u--)t[u].className=t[u].className.replace(/introjs-fixParent/g,"").replace(/^\s+|\s+$/g,"");var v=document.querySelector(".introjs-showElement");v.className=v.className.replace(/introjs-[a-zA-Z]+/g,"").replace(/^\s+|\s+$/g,""),b._lastShowElementTimer&&clearTimeout(b._lastShowElementTimer),b._lastShowElementTimer=setTimeout(function(){null!=d&&(d.innerHTML=a.step),j.innerHTML=a.intro,h.call(b,a.element,p,n),c.querySelector(".introjs-bullets li > a.active").className="",c.querySelector('.introjs-bullets li > a[data-stepnumber="'+a.step+'"]').className="active",p.style.opacity=1},350)}else{var w=document.createElement("div"),x=document.createElement("div"),y=document.createElement("div"),z=document.createElement("div"),A=document.createElement("div"),B=document.createElement("div");w.className="introjs-helperLayer",i.call(b,w),this._targetElement.appendChild(w),x.className="introjs-arrow",z.className="introjs-tooltiptext",z.innerHTML=a.intro,A.className="introjs-bullets",this._options.showBullets===!1&&(A.style.display="none");for(var C=document.createElement("ul"),u=0,D=this._introItems.length;D>u;u++){var E=document.createElement("li"),F=document.createElement("a");F.onclick=function(){b.goToStep(this.getAttribute("data-stepnumber"))},0===u&&(F.className="active"),F.href="javascript:void(0);",F.innerHTML=" ",F.setAttribute("data-stepnumber",this._introItems[u].step),E.appendChild(F),C.appendChild(E)}if(A.appendChild(C),B.className="introjs-tooltipbuttons",this._options.showButtons===!1&&(B.style.display="none"),y.className="introjs-tooltip",y.appendChild(z),y.appendChild(A),1==this._options.showStepNumbers){var G=document.createElement("span");G.className="introjs-helperNumberLayer",G.innerHTML=a.step,w.appendChild(G)}y.appendChild(x),w.appendChild(y);var s=document.createElement("a");s.onclick=function(){b._introItems.length-1!=b._currentStep&&e.call(b)},s.href="javascript:void(0);",s.innerHTML=this._options.nextLabel;var r=document.createElement("a");r.onclick=function(){0!=b._currentStep&&f.call(b)},r.href="javascript:void(0);",r.innerHTML=this._options.prevLabel;var q=document.createElement("a");q.className="introjs-button introjs-skipbutton",q.href="javascript:void(0);",q.innerHTML=this._options.skipLabel,q.onclick=function(){b._introItems.length-1==b._currentStep&&"function"==typeof b._introCompleteCallback&&b._introCompleteCallback.call(b),b._introItems.length-1!=b._currentStep&&"function"==typeof b._introExitCallback&&b._introExitCallback.call(b),g.call(b,b._targetElement)},B.appendChild(q),this._introItems.length>1&&(B.appendChild(r),B.appendChild(s)),y.appendChild(B),h.call(b,a.element,y,x)}0==this._currentStep?(r.className="introjs-button introjs-prevbutton introjs-disabled",s.className="introjs-button introjs-nextbutton",q.innerHTML=this._options.skipLabel):this._introItems.length-1==this._currentStep?(q.innerHTML=this._options.doneLabel,r.className="introjs-button introjs-prevbutton",s.className="introjs-button introjs-nextbutton introjs-disabled"):(r.className="introjs-button introjs-prevbutton",s.className="introjs-button introjs-nextbutton",q.innerHTML=this._options.skipLabel),s.focus(),a.element.className+=" introjs-showElement";var H=k(a.element,"position");"absolute"!==H&&"relative"!==H&&(a.element.className+=" introjs-relativePosition");for(var I=a.element.parentNode;null!=I&&"body"!==I.tagName.toLowerCase();){var J=k(I,"z-index");/[0-9]+/.test(J)&&(I.className+=" introjs-fixParent"),I=I.parentNode}if(!m(a.element)){var K=a.element.getBoundingClientRect(),L=l().height,M=K.bottom-(K.bottom-K.top),N=K.bottom-L;0>M||a.element.clientHeight>L?window.scrollBy(0,M-30):window.scrollBy(0,N+100)}}function k(a,b){var c="";return a.currentStyle?c=a.currentStyle[b]:document.defaultView&&document.defaultView.getComputedStyle&&(c=document.defaultView.getComputedStyle(a,null).getPropertyValue(b)),c&&c.toLowerCase?c.toLowerCase():c}function l(){if(void 0!=window.innerWidth)return{width:window.innerWidth,height:window.innerHeight};var a=document.documentElement;return{width:a.clientWidth,height:a.clientHeight}}function m(a){var b=a.getBoundingClientRect();return b.top>=0&&b.left>=0&&b.bottom+80<=window.innerHeight&&b.right<=window.innerWidth}function n(a){var b=document.createElement("div"),c="",d=this;if(b.className="introjs-overlay","body"===a.tagName.toLowerCase())c+="top: 0;bottom: 0; left: 0;right: 0;position: fixed;",b.setAttribute("style",c);else{var e=o(a);e&&(c+="width: "+e.width+"px; height:"+e.height+"px; top:"+e.top+"px;left: "+e.left+"px;",b.setAttribute("style",c))}return a.appendChild(b),b.onclick=function(){1==d._options.exitOnOverlayClick&&(g.call(d,a),void 0!=d._introExitCallback&&d._introExitCallback.call(d))},setTimeout(function(){c+="opacity: .8;",b.setAttribute("style",c)},10),!0}function o(a){var b={};b.width=a.offsetWidth,b.height=a.offsetHeight;for(var c=0,d=0;a&&!isNaN(a.offsetLeft)&&!isNaN(a.offsetTop);)c+=a.offsetLeft,d+=a.offsetTop,a=a.offsetParent;return b.top=d,b.left=c,b}function p(a,b){var c={};for(var d in a)c[d]=a[d];for(var d in b)c[d]=b[d];return c}var q="0.6.0",r=function(a){if("object"==typeof a)return new b(a);if("string"==typeof a){var c=document.querySelector(a);if(c)return new b(c);throw new Error("There is no element with given selector.")}return new b(document.body)};return r.version=q,r.fn=b.prototype={clone:function(){return new b(this)},setOption:function(a,b){return this._options[a]=b,this},setOptions:function(a){return this._options=p(this._options,a),this},start:function(){return c.call(this,this._targetElement),this},goToStep:function(a){return d.call(this,a),this},exit:function(){g.call(this,this._targetElement)},refresh:function(){return i.call(this,document.querySelector(".introjs-helperLayer")),this},onbeforechange:function(a){if("function"!=typeof a)throw new Error("Provided callback for onbeforechange was not a function");return this._introBeforeChangeCallback=a,this},onchange:function(a){if("function"!=typeof a)throw new Error("Provided callback for onchange was not a function.");return this._introChangeCallback=a,this},oncomplete:function(a){if("function"!=typeof a)throw new Error("Provided callback for oncomplete was not a function.");return this._introCompleteCallback=a,this},onexit:function(a){if("function"!=typeof a)throw new Error("Provided callback for onexit was not a function.");return this._introExitCallback=a,this}},a.introJs=r,r}),$(".delete").on("click",function(){return window.confirm("Are you sure you want to delete this?")}),$(".btn.edit-user").on("click",function(a){a.preventDefault();var b=$(this).parents(".dataset"),c=b.data("id"),d=b.data("name"),e=b.data("group"),f=$("#editUser");$("#inputEditId").val(c),$("#inputEditName").prop("disabled",!1).val(d),$("#inputEditGroup").prop("disabled",!1),$('#inputEditGroup option[value="'+e+'"]').prop("selected",!0),3>c&&($("#inputEditName").prop("disabled",!0),$("#inputEditGroup").prop("disabled",!0),2>c&&$("#inputEditPassword").prop("disabled",!0)),f.modal("show")}),$(".btn.edit-group").on("click",function(a){a.preventDefault();var b=$(this).parents(".dataset"),c=b.data("id"),d=b.data("name"),e=$("#editGroup");$("#inputEditId").val(c),$("#inputEditName").val(d),e.modal("show")}),$(".permissions").hide(),$(".edit-permissions").on("click",function(a){$(this).next(".permissions").toggle()}),$(".hover-help").tooltip(),$(".hover-help").on("click",function(a){a.preventDefault()}),$("form.add-dataset .identifier #input_collection, form.add-dataset .identifier #input_resource_name").on({keydown:buildURI,keyup:buildURI}),$(".btn-attribution").on("click",function(a){var b=$(a.target).parent().parent().parent(),c=JSON.parse($(a.target).next().val()),d=$("#person").html().replace("#ROLE#",c.name).replace("#DESC#",c.desc).replace("#OPTION#",c.option);b.append(d)}),$(".attribution-person .btn-delete").on("click",function(a){$(this).closest(".attribution-person").remove()}),$("input[name=publisher_uri], input[name=publisher_uri]").on("blur",function(a){var b=$(this).val();b&&"http:/"!==b.slice(0,6)&&"https:"!==b.slice(0,6)&&$(this).val("http://"+b)}),$(".btn-add-dataset").on("click",function(a){a.preventDefault();var b=$("form.add-dataset"),c=$(".tab-pane.active"),d=(c.data("mediatype"),{}),e=$("#input_identifier",b).val();$("input, textarea, select",c).each(function(){$(this).attr("name")&&("checkbox"==$(this).attr("type")?d[$(this).attr("name")]=$(this).prop("checked")?1:0:"profile"==d[$(this).attr("name")]?$(this).prop("checked")&&(d[$(this).attr("name")]=$(this).val()):d[$(this).attr("name")]=$(this).val())});var f=$(".linked-definitions");if($("input, textarea",f).each(function(){$(this).attr("name")&&("checkbox"==$(this).attr("type")?d[$(this).attr("name")]=$(this).prop("checked")?1:0:"profile"==d[$(this).attr("name")]?$(this).prop("checked")&&(d[$(this).attr("name")]=$(this).val()):d[$(this).attr("name")]=$(this).val())}),d.to_be_indexed=0,c.find(".indexed").is(":checked")&&(d.to_be_indexed=1),$(".attribution-person",c).each(function(){d.attribution||(d.attribution=[]);var a=$(this).find(".name").val(),b=$(this).find(".email").val();(a||b)&&d.attribution.push({role:$(this).data("role"),name:a,email:b})}),0==c.find("#fileupload").length||0==c.find("#fileupload")[0].files.length)$.ajax({url:baseURL+"api/definitions/"+e,data:JSON.stringify(d),method:"PUT",headers:{Accept:"application/json","Content-Type":"application/tdt.definition+json",Authorization:authHeader},success:function(a){window.location=baseURL+"api/admin/datasets"},error:function(a){if(405!=a.status){var b=JSON.parse(a.responseText);b.error&&b.error.message&&($(".error .text",c).html(b.error.message),$(".error",c).removeClass("hide").show().focus())}else window.location=baseURL+"api/admin/datasets"}});else if(!c.find("#fileupload_xslt").length||0==c.find("#fileupload_xslt").length&&0==c.find("#fileupload_xslt")[0].files.length){var g=c.find("input[type=file]")[0].files[0],h=new FormData;h.append("fileupload",g),$.ajax({async:!0,type:"POST",contentType:!1,url:baseURL+"upload-file",data:h,processData:!1,success:function(a){d.fileupload=a,$.ajax({url:baseURL+"api/definitions/"+e,data:JSON.stringify(d),method:"PUT",headers:{Accept:"application/json","Content-Type":"application/tdt.definition+json",Authorization:authHeader},success:function(a){window.location=baseURL+"api/admin/datasets"},error:function(a){if(405!=a.status){var b=JSON.parse(a.responseText);b.error&&b.error.message&&($(".error .text",c).html(b.error.message),$(".error",c).removeClass("hide").show().focus())}else window.location=baseURL+"api/admin/datasets"}})},timeout:1e4})}else{var g=c.find("input[type=file]")[0].files[0],h=new FormData;h.append("fileupload",g);var i=c.find("#fileupload_xslt")[0].files[0];h.append("fileupload_xslt",i),$.ajax({async:!0,type:"POST",contentType:!1,url:baseURL+"upload-file",data:h,processData:!1,success:function(a){d.fileupload=a,$.ajax({url:baseURL+"api/definitions/"+e,data:JSON.stringify(d),method:"PUT",headers:{Accept:"application/json","Content-Type":"application/tdt.definition+json",Authorization:authHeader},success:function(a){window.location=baseURL+"api/admin/datasets"},error:function(a){if(405!=a.status){var b=JSON.parse(a.responseText);b.error&&b.error.message&&($(".error .text",c).html(b.error.message),$(".error",c).removeClass("hide").show().focus())}else window.location=baseURL+"api/admin/datasets"}})},timeout:1e4})}}),$(".btn-edit-dataset").on("click",function(a){a.preventDefault();var b=$("form.edit-dataset"),c=(b.data("mediatype"),b.data("identifier")),d={},e="";if($("input, textarea, select",b).each(function(){$(this).attr("name")&&("checkbox"==$(this).attr("type")?d[$(this).attr("name")]=$(this).prop("checked")?1:0:"profile"==$(this).attr("name")?$(this).prop("checked")&&(d[$(this).attr("name")]=$(this).val()):d[$(this).attr("name")]=$(this).val())}),$(".attribution-person").each(function(){d.attribution||(d.attribution=[]);var a=$(this).find(".name").val(),b=$(this).find(".email").val();(a||b)&&d.attribution.push({role:$(this).data("role"),name:a,email:b})}),0==b.find("#fileupload").length||0==b.find("#fileupload")[0].files.length)$.ajax({url:baseURL+"api/definitions/"+c,data:JSON.stringify(d),method:"POST",headers:{Accept:"application/json",Authorization:authHeader},success:function(a){window.location=baseURL+"api/admin/datasets"},error:function(a){if(405!=a.status){var b=JSON.parse(a.responseText);b.error&&b.error.message&&($(".error .text").html(b.error.message),$(".error").removeClass("hide").show().focus())}else window.location=baseURL+"api/admin/datasets"}});else if(!tab_pane.find("#fileupload_xslt").length||0==tab_pane.find("#fileupload_xslt").length&&0==tab_pane.find("#fileupload_xslt")[0].files.length){var f=b.find("input[type=file]")[0].files[0],g=new FormData;g.append("fileupload",f),$.ajax({async:!0,type:"POST",contentType:!1,url:baseURL+"upload-file",data:g,processData:!1,success:function(a){d.fileupload=a,$.ajax({url:baseURL+"api/definitions/"+c,data:JSON.stringify(d),method:"POST",headers:{Accept:"application/json",Authorization:authHeader},success:function(a){window.location=baseURL+"api/admin/datasets"},error:function(a){if(405!=a.status){var b=JSON.parse(a.responseText);b.error&&b.error.message&&($(".error .text").html(b.error.message),$(".error").removeClass("hide").show().focus())}else window.location=baseURL+"api/admin/datasets"}})},timeout:1e4})}else{var f=tab_pane.find("input[type=file]")[0].files[0],g=new FormData;g.append("fileupload",f);var h=tab_pane.find("#fileupload_xslt")[0].files[0];g.append("fileupload_xslt",h),$.ajax({async:!0,type:"POST",contentType:!1,url:baseURL+"upload-file",data:g,processData:!1,success:function(a){d.fileupload=a,$.ajax({url:baseURL+"api/definitions/"+e,data:JSON.stringify(d),method:"PUT",headers:{Accept:"application/json","Content-Type":"application/tdt.definition+json",Authorization:authHeader},success:function(a){window.location=baseURL+"api/admin/datasets"},error:function(a){if(405!=a.status){var b=JSON.parse(a.responseText);b.error&&b.error.message&&($(".error .text",tab_pane).html(b.error.message),$(".error",tab_pane).removeClass("hide").show().focus())}else window.location=baseURL+"api/admin/datasets"}})},timeout:1e4})}});var mapScriptLoaded=!1;$(".location-picker").one("click",function(a){$(this).height("300px").removeClass("btn").removeClass("btn-default");var b,c,d,e=$(a.target).closest(".panel"),f=$("#"+$(this).data("id"),e),g=function(){d=new google.maps.Map($(".location-picker",e).get(0),{mapTypeControl:!1,streetViewControl:!1,center:{lat:50,lng:10},zoom:2});var a;try{var g=JSON.parse(JSON.parse(f.val()));a={north:g.coordinates[0][0][1],south:g.coordinates[0][2][1],east:g.coordinates[0][2][0],west:g.coordinates[0][0][0]}}catch(i){a={north:70,south:35,east:40,west:-10}}c=new google.maps.InfoWindow,b=new google.maps.Rectangle({bounds:a,draggable:!0,editable:!0}),b.addListener("bounds_changed",h),h(),b.setMap(d)},h=function(a){var e=b.getBounds().getNorthEast(),g=b.getBounds().getSouthWest(),h="North-east corner: "+e.lat()+", "+e.lng()+"
    South-west corner: "+g.lat()+", "+g.lng();f.val(JSON.stringify({type:"Polygon",coordinates:[[[g.lng(),e.lat()],[e.lng(),e.lat()],[e.lng(),g.lat()],[g.lng(),g.lat()],[g.lng(),e.lat()]]]})),c.setContent(h),c.setPosition(e),c.open(d)};if(mapScriptLoaded)g();else{var i=document.createElement("script");i.onload=g,i.setAttribute("type","text/javascript"),i.setAttribute("src","https://maps.googleapis.com/maps/api/js"),document.head.appendChild(i),mapScriptLoaded=!0}});var selectProfile=function(a,b){"dcat"==a?($(".profile-geodcat",b).hide(),$(".profile-dcat",b).show(),b.removeClass("geodcat-enabled")):($(".profile-dcat",b).hide(),$(".profile-geodcat",b).show(),b.addClass("geodcat-enabled"),$(".location-picker",b).click())};selectProfile($(".profile-selector input[name=profile]:checked").val(),$(".panel-dcat")),$(".profile-selector").on("change",function(a){var b=$(a.target).closest(".panel");selectProfile($(a.target).val(),b)}),$(".introjs").on("click",function(a){a.preventDefault(),introJs().start()}); \ No newline at end of file From 8decc1aee73893d25b33587bfc49be48c8558d05 Mon Sep 17 00:00:00 2001 From: Jan Vansteenlandt Date: Thu, 2 Mar 2017 13:05:26 +0100 Subject: [PATCH 37/68] Revert "Development" --- dev/js/admin.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/dev/js/admin.js b/dev/js/admin.js index b4368141..b21596bf 100644 --- a/dev/js/admin.js +++ b/dev/js/admin.js @@ -368,13 +368,13 @@ $('.btn-edit-dataset').on('click', function(e){ }) } else if( tab_pane.find("#fileupload_xslt").length && (tab_pane.find("#fileupload_xslt").length != 0 || tab_pane.find("#fileupload_xslt")[0].files.length != 0) ){ // Upload dataset file - var file = form.find('input[type=file]')[0].files[0]; + var file = tab_pane.find('input[type=file]')[0].files[0]; var fd = new FormData(); fd.append("fileupload", file); // Upload xslt file - var fileupload_xslt = form.find('#fileupload_xslt')[0].files[0]; + var fileupload_xslt = tab_pane.find('#fileupload_xslt')[0].files[0]; fd.append("fileupload_xslt", fileupload_xslt); // Ajax call: upload file @@ -387,13 +387,14 @@ $('.btn-edit-dataset').on('click', function(e){ processData: false, success: function (data1) { data["fileupload"] = data1; - // Ajax call: edit dataset + // Ajax call: add dataset $.ajax({ - url: baseURL + "api/definitions/" + identifier, + url: baseURL + "api/definitions/" + collection, data: JSON.stringify(data), - method: "POST", + method: "PUT", headers: { 'Accept' : 'application/json', + 'Content-Type': 'application/tdt.definition+json', 'Authorization': authHeader }, success: function(e){ @@ -404,8 +405,8 @@ $('.btn-edit-dataset').on('click', function(e){ if(e.status != 405){ var error = JSON.parse(e.responseText); if(error.error && error.error.message){ - $('.error .text').html(error.error.message); - $('.error').removeClass('hide').show().focus(); + $('.error .text', tab_pane).html(error.error.message); + $('.error', tab_pane).removeClass('hide').show().focus(); } }else{ // Ajax followed location header -> ignore From 6de07a6d4be9ebcf937819448d80dfb5ac7c25f8 Mon Sep 17 00:00:00 2001 From: Jan Vansteenlandt Date: Thu, 2 Mar 2017 13:09:22 +0100 Subject: [PATCH 38/68] Small fix for XLS uploads/file permissions --- .../Core/DataControllers/XLSController.php | 44 +++++++++---------- .../Core/Definitions/DefinitionController.php | 15 +++---- .../XlsDefinitionRepositoryTest.php | 4 +- 3 files changed, 30 insertions(+), 33 deletions(-) diff --git a/app/Tdt/Core/DataControllers/XLSController.php b/app/Tdt/Core/DataControllers/XLSController.php index 1ea255c7..f44f1c45 100644 --- a/app/Tdt/Core/DataControllers/XLSController.php +++ b/app/Tdt/Core/DataControllers/XLSController.php @@ -40,7 +40,7 @@ public function readData($source_definition, $rest_parameters = array()) list($limit, $offset) = Pager::calculateLimitAndOffset(); // Disregard the paging when rest parameters are given - if (!empty($rest_parameters)) { + if (! empty($rest_parameters)) { $limit = PHP_INT_MAX; $offset = 0; } @@ -85,7 +85,7 @@ public function readData($source_definition, $rest_parameters = array()) $columns = $parsed_columns; if (empty($columns)) { - \App::abort(500, "Cannot find the columns from the XLS definition."); + \App::abort(500, 'Cannot find the columns from the XLS definition.'); } // Create aliases for the columns @@ -93,7 +93,7 @@ public function readData($source_definition, $rest_parameters = array()) $pk = null; foreach ($columns as $column) { - if (!empty($column['is_pk'])) { + if (! empty($column['is_pk'])) { $pk = $column['column_name_alias']; } } @@ -105,14 +105,14 @@ public function readData($source_definition, $rest_parameters = array()) $tmp_path = sys_get_temp_dir(); if (empty($tmp_path)) { - \App::abort(500, "The temp directory, retrieved by the operating system, could not be retrieved."); + \App::abort(500, 'The temp directory, retrieved by the operating system, could not be retrieved.'); } try { - if (substr($uri, 0, 4) == "http") { + if (substr($uri, 0, 4) == 'http') { $tmpFile = uniqid(); - file_put_contents($tmp_path . "/" . $tmpFile, file_get_contents($uri)); - $php_obj = self::loadExcel($tmp_path . "/" . $tmpFile, $this->getFileExtension($uri), $sheet); + file_put_contents($tmp_path . '/' . $tmpFile, file_get_contents($uri)); + $php_obj = self::loadExcel($tmp_path . '/' . $tmpFile, $this->getFileExtension($uri), $sheet); } else { $php_obj = self::loadExcel($uri, $this->getFileExtension($uri), $sheet); @@ -166,7 +166,7 @@ public function readData($source_definition, $rest_parameters = array()) } else { if (empty($row_objects[$rowobject->$pk])) { $row_objects[$rowobject->$pk] = $rowobject; - } elseif (!empty($row_objects[$rowobject->$pk])) { + } elseif (! empty($row_objects[$rowobject->$pk])) { $double = $rowobject->$pk; \Log::info("The primary key $double has been used already for another record!"); } else { @@ -208,18 +208,19 @@ public static function getFileExtension($file) public static function loadExcel($file, $type, $sheet) { - if ($type == "xls") { + if ($type == 'xls') { $reader = IOFactory::createReader('Excel5'); - } elseif ($type == "xlsx") { + } elseif ($type == 'xlsx') { $reader = IOFactory::createReader('Excel2007'); } else { - \App::abort(500, "The given file is not supported, supported file are xls or xlsx files."); + \App::abort(500, 'The given file is not supported, supported file are xls or xlsx files.'); } $reader->setReadDataOnly(true); + $file = str_replace('file://', '', $file); $sheet_info = $reader->listWorkSheetinfo($file); - if (empty($sheet) && !empty($sheet_info)) { + if (empty($sheet) && ! empty($sheet_info)) { $first_sheet_info = $sheet_info[0]; $sheet = $first_sheet_info['worksheetName']; @@ -236,7 +237,7 @@ public static function loadExcel($file, $type, $sheet) if (empty(self::$sheet)) { if (empty($sheet)) { - \App::abort(404, "No sheets were found in the XLS file."); + \App::abort(404, 'No sheets were found in the XLS file.'); } else { \App::abort(404, "The sheet provided ($sheet) has not been found."); } @@ -258,7 +259,7 @@ private function createValues($columns, $data) foreach ($columns as $column) { $value = @$data[$column['index']]; - if (!is_null($value)) { + if (! is_null($value)) { $result[$column['column_name_alias']] = $data[$column['index']]; } else { $index = $column['index']; @@ -280,7 +281,7 @@ public static function parseColumns($input) $aliases = array(); - if (!empty($columns_info)) { + if (! empty($columns_info)) { foreach ($columns_info as $column_info) { $aliases[$column_info['index']] = $column_info['column_name_alias']; } @@ -290,18 +291,18 @@ public static function parseColumns($input) $tmp_dir = sys_get_temp_dir(); if (empty($columns)) { - if (!is_dir($tmp_dir)) { + if (! is_dir($tmp_dir)) { mkdir($tmp_dir); } - $is_uri = (substr($input['uri'], 0, 4) == "http"); + $is_uri = (substr($input['uri'], 0, 4) == 'http'); try { if ($is_uri) { $tmp_file = uniqid(); - file_put_contents($tmp_dir. "/" . $tmp_file, file_get_contents($input['uri'])); - $php_obj = self::loadExcel($tmp_dir ."/" . $tmp_file, self::getFileExtension($input['uri']), $input['sheet']); + file_put_contents($tmp_dir . '/' . $tmp_file, file_get_contents($input['uri'])); + $php_obj = self::loadExcel($tmp_dir . '/' . $tmp_file, self::getFileExtension($input['uri']), $input['sheet']); } else { $php_obj = self::loadExcel($input['uri'], self::getFileExtension($input['uri']), $input['sheet']); } @@ -313,7 +314,6 @@ public static function parseColumns($input) \App::abort(404, "Something went wrong whilst retrieving the Excel file from uri $uri."); } - if (is_null($worksheet)) { \App::abort(404, "The sheet with name, self::$sheet, has not been found in the Excel file."); } @@ -331,7 +331,7 @@ public static function parseColumns($input) foreach ($cell_iterator as $cell) { $column_name = ''; - if ($cell->getValue() != "") { + if ($cell->getValue() != '') { $column_name = trim($cell->getCalculatedValue()); } else { @@ -371,7 +371,7 @@ public static function parseColumns($input) $php_obj->disconnectWorksheets(); if ($is_uri) { - unlink($tmp_dir . "/" . $tmp_file); + unlink($tmp_dir . '/' . $tmp_file); } } diff --git a/app/Tdt/Core/Definitions/DefinitionController.php b/app/Tdt/Core/Definitions/DefinitionController.php index f292b8a6..aac8e998 100755 --- a/app/Tdt/Core/Definitions/DefinitionController.php +++ b/app/Tdt/Core/Definitions/DefinitionController.php @@ -320,14 +320,13 @@ public function put($uri) if (isset($input['fileupload']) && $input['fileupload'] != '') { $input['uri'] = 'file://' . $input['fileupload']; } - + // Add uploaded file XSLT and change xslt_file. if (isset($input['fileupload_xslt']) && $input['fileupload_xslt'] != '') { + $file2 = $input['fileupload_xslt']; + $file3 = explode('\\', $file2); - $file2=$input['fileupload_xslt']; - $file3=explode("\\", $file2); - - $input['xslt_file'] =$file3[2] . '_' . date('Y-m-d'); + $input['xslt_file'] = $file3[2] . '_' . date('Y-m-d'); } // Check if dataset should be indexed @@ -432,10 +431,10 @@ public function patch($uri) //Add uploaded xslt file if (isset($input['fileupload_xslt']) && $input['fileupload_xslt'] != '') { - $file2=$input['fileupload_xslt']; - $file3=explode("\\", $file2); + $file2 = $input['fileupload_xslt']; + $file3 = explode('\\', $file2); - $input['xslt_file'] =$file3[2] . '_' . date('Y-m-d'); + $input['xslt_file'] = $file3[2] . '_' . date('Y-m-d'); } // Validate the input diff --git a/app/Tdt/Core/Tests/Repositories/XlsDefinitionRepositoryTest.php b/app/Tdt/Core/Tests/Repositories/XlsDefinitionRepositoryTest.php index f59ef51d..5183cc88 100644 --- a/app/Tdt/Core/Tests/Repositories/XlsDefinitionRepositoryTest.php +++ b/app/Tdt/Core/Tests/Repositories/XlsDefinitionRepositoryTest.php @@ -3,7 +3,6 @@ namespace Tdt\Core\Tests\Repositories; use Tdt\Core\Tests\TestCase; -use Symfony\Component\HttpFoundation\Request; class XlsDefinitionRepositoryTest extends TestCase { @@ -20,10 +19,8 @@ class XlsDefinitionRepositoryTest extends TestCase public function testPut() { - // Publish each XLS file in the test csv data folder. foreach ($this->test_data as $entry) { - $file = $entry['file']; $extension = $entry['extension']; $sheet = $entry['sheet']; @@ -39,6 +36,7 @@ public function testPut() // Test the XlsDefinitionRepository $xls_repository = \App::make('Tdt\Core\Repositories\Interfaces\XlsDefinitionRepositoryInterface'); + \Log::info($input); $xls_definition = $xls_repository->store($input); // Check for properties From 232ef9c58adcd6d31a95cec0f025d0ce8810262a Mon Sep 17 00:00:00 2001 From: Jan Vansteenlandt Date: Thu, 2 Mar 2017 13:19:08 +0100 Subject: [PATCH 39/68] Small tweak to load files --- .../Core/Tests/Repositories/XlsDefinitionRepositoryTest.php | 5 ----- 1 file changed, 5 deletions(-) diff --git a/app/Tdt/Core/Tests/Repositories/XlsDefinitionRepositoryTest.php b/app/Tdt/Core/Tests/Repositories/XlsDefinitionRepositoryTest.php index 5183cc88..9f554d12 100644 --- a/app/Tdt/Core/Tests/Repositories/XlsDefinitionRepositoryTest.php +++ b/app/Tdt/Core/Tests/Repositories/XlsDefinitionRepositoryTest.php @@ -36,7 +36,6 @@ public function testPut() // Test the XlsDefinitionRepository $xls_repository = \App::make('Tdt\Core\Repositories\Interfaces\XlsDefinitionRepositoryInterface'); - \Log::info($input); $xls_definition = $xls_repository->store($input); // Check for properties @@ -56,7 +55,6 @@ public function testGet() $this->assertEquals(count($this->test_data), count($all)); foreach ($all as $xls_definition) { - // Test the getById $xls_definition_clone = $xls_repository->getById($xls_definition['id']); @@ -65,7 +63,6 @@ public function testGet() // Test against the properties we've stored foreach ($this->test_data as $entry) { - $file = $entry['file']; $extension = $entry['extension']; $sheet = $entry['sheet']; @@ -86,7 +83,6 @@ public function testUpdate() $all = $xls_repository->getAll(); foreach ($all as $xls_definition) { - $updated_description = 'An updated description for object with description: ' . $xls_definition['description']; $updated_definition = $xls_repository->update($xls_definition['id'], array('description' => $updated_description)); @@ -103,7 +99,6 @@ public function testDelete() $all = $xls_repository->getAll(); foreach ($all as $xls_definition) { - $result = $xls_repository->delete($xls_definition['id']); $this->assertTrue($result); From 64a01566769929bb578d65dac44283434566d060 Mon Sep 17 00:00:00 2001 From: Jan Vansteenlandt Date: Thu, 2 Mar 2017 14:44:46 +0100 Subject: [PATCH 40/68] Small updates on composer.json --- app/Tdt/Core/DataControllers/XLSController.php | 4 ++-- app/Tdt/Core/Definitions/DefinitionController.php | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/Tdt/Core/DataControllers/XLSController.php b/app/Tdt/Core/DataControllers/XLSController.php index f44f1c45..d303a22b 100644 --- a/app/Tdt/Core/DataControllers/XLSController.php +++ b/app/Tdt/Core/DataControllers/XLSController.php @@ -188,7 +188,6 @@ public function readData($source_definition, $rest_parameters = array()) $data_result->preferred_formats = $this->getPreferredFormats(); return $data_result; - } catch (Exception $ex) { App::abort(500, "Failed to retrieve data from the XLS file on location $uri."); } @@ -204,10 +203,11 @@ public static function getFileExtension($file) /** * Create an Excel PHP Reader object from the Excel sheet. + * + * @return Reader */ public static function loadExcel($file, $type, $sheet) { - if ($type == 'xls') { $reader = IOFactory::createReader('Excel5'); } elseif ($type == 'xlsx') { diff --git a/app/Tdt/Core/Definitions/DefinitionController.php b/app/Tdt/Core/Definitions/DefinitionController.php index aac8e998..fac1a784 100755 --- a/app/Tdt/Core/Definitions/DefinitionController.php +++ b/app/Tdt/Core/Definitions/DefinitionController.php @@ -147,6 +147,10 @@ public function createLinkJob($uri, $input) } elseif ($params['extract']['type'] == 'xml') { $params['extract']['array_level'] = $input['array_level']; $params['extract']['encoding'] = 'UTF-8'; + } elseif ($params['extract']['type'] == 'xls') { + $params['extract']['has_header_row'] = $input['has_header_row']; + $params['extract']['start_row'] = $input['start_row']; + $params['extract']['sheet'] = $input['sheet']; } // Load class construction (always elasticsearch) @@ -430,7 +434,6 @@ public function patch($uri) //Add uploaded xslt file if (isset($input['fileupload_xslt']) && $input['fileupload_xslt'] != '') { - $file2 = $input['fileupload_xslt']; $file3 = explode('\\', $file2); From 16b887db21b31dae647dee9344a7135854f46e37 Mon Sep 17 00:00:00 2001 From: Jan Vansteenlandt Date: Thu, 2 Mar 2017 14:48:58 +0100 Subject: [PATCH 41/68] Change mockery dependency --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index f4e60569..f7d5adb6 100644 --- a/composer.json +++ b/composer.json @@ -34,7 +34,7 @@ "tdt/input": "dev-master" }, "require-dev": { - "mockery/mockery": "dev-master@dev" + "mockery/mockery": "0.9.7" }, "scripts": { "post-install-cmd": [ From f7e82ae312f1ca59d4d5c7767bcaebd77df6994d Mon Sep 17 00:00:00 2001 From: Jan Vansteenlandt Date: Thu, 2 Mar 2017 16:35:55 +0100 Subject: [PATCH 42/68] Allow XSLT to be edited --- app/views/ui/datasets/edit.blade.php | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/app/views/ui/datasets/edit.blade.php b/app/views/ui/datasets/edit.blade.php index 77bd5a34..c66a7256 100755 --- a/app/views/ui/datasets/edit.blade.php +++ b/app/views/ui/datasets/edit.blade.php @@ -35,11 +35,11 @@
    @if($definition->linkedFrom->count()) - @foreach ($definition->linkedFrom as $lnkdFrom) -

    {{ $lnkdFrom->collection_uri }}/{{ $lnkdFrom->resource_name }}

    - @endforeach + @foreach ($definition->linkedFrom as $lnkdFrom) +

    {{ $lnkdFrom->title }} ( {{ $lnkdFrom->pivot->description }} )

    + @endforeach @else -

    This dataset is not linked from any other dataset.

    +

    This dataset is not linked from any other dataset.

    @endif
    @@ -151,6 +151,13 @@
    {{ $object->description }}
    + @if (in_array(strtolower($source_definition->type), array("xml")) && $parameter == 'uri') + +
    + {{ $object->description_xslt }} +
    + + @endif
    @endforeach From 049ca7fc263e4ff6c08f0b17c60659edfbbd13ef Mon Sep 17 00:00:00 2001 From: Jan Vansteenlandt Date: Thu, 2 Mar 2017 21:38:53 +0100 Subject: [PATCH 43/68] Allow to upload shp files --- .../Core/DataControllers/SHPController.php | 99 +++++++++--------- .../Core/Definitions/DefinitionController.php | 54 ++++++++++ .../Repositories/ShpDefinitionRepository.php | 2 +- .../Repositories/TabularBaseRepository.php | 24 ++--- app/storage/data/shp/places/Archive.zip | Bin 0 -> 125979 bytes app/views/ui/datasets/add.blade.php | 28 ++--- 6 files changed, 130 insertions(+), 77 deletions(-) create mode 100644 app/storage/data/shp/places/Archive.zip diff --git a/app/Tdt/Core/DataControllers/SHPController.php b/app/Tdt/Core/DataControllers/SHPController.php index 8f34deb1..c8019c90 100644 --- a/app/Tdt/Core/DataControllers/SHPController.php +++ b/app/Tdt/Core/DataControllers/SHPController.php @@ -27,15 +27,15 @@ class SHPController extends ADataController private $geo_property; private static $RECORD_TYPES = [ - 0 => "Null Shape", - 1 => "Point", - 3 => "PolyLine", - 5 => "Polygon", - 8 => "MultiPoint", - 11 => "PointZ", - 13 => "PolyLineZ", - 15 => "PolygonZ", - 18 => "MultiPointZ" + 0 => 'Null Shape', + 1 => 'Point', + 3 => 'PolyLine', + 5 => 'Polygon', + 8 => 'MultiPoint', + 11 => 'PointZ', + 13 => 'PolyLineZ', + 15 => 'PolygonZ', + 18 => 'MultiPointZ' ]; public function __construct( @@ -57,7 +57,7 @@ public function readData($source_definition, $rest_parameters = array()) list($limit, $offset) = Pager::calculateLimitAndOffset(); // Disregard the paging when rest parameters are given - if (!empty($rest_parameters)) { + if (! empty($rest_parameters)) { $limit = PHP_INT_MAX; $offset = 0; } @@ -74,7 +74,7 @@ public function readData($source_definition, $rest_parameters = array()) if (empty($tmp_path)) { // If this occurs then the server is not configured correctly, thus a 500 error is thrown - \App::abort(500, "The temp directory, retrieved by the operating system, could not be retrieved."); + \App::abort(500, 'The temp directory, retrieved by the operating system, could not be retrieved.'); } // Get the columns @@ -89,8 +89,8 @@ public function readData($source_definition, $rest_parameters = array()) $geo[$geo_prop['property']] = $geo_prop['path']; } - if (!$columns) { - \App::abort(500, "Cannot find the columns of the SHP definition."); + if (! $columns) { + \App::abort(500, 'Cannot find the columns of the SHP definition.'); } try { @@ -98,19 +98,19 @@ public function readData($source_definition, $rest_parameters = array()) $arrayOfRowObjects = array(); // Prepare the options to read the SHP file - $is_url = (substr($uri, 0, 4) == "http"); + $is_url = (substr($uri, 0, 4) == 'http'); // If the shape files are located on an HTTP address, fetch them and store them locally if ($is_url) { $tmp_file_name = uniqid(); - $tmp_file = $tmp_path . "/" . $tmp_file_name; + $tmp_file = $tmp_path . '/' . $tmp_file_name; - file_put_contents($tmp_file . ".shp", file_get_contents(substr($uri, 0, strlen($uri) - 4) . ".shp")); - file_put_contents($tmp_file . ".dbf", file_get_contents(substr($uri, 0, strlen($uri) - 4) . ".dbf")); - file_put_contents($tmp_file . ".shx", file_get_contents(substr($uri, 0, strlen($uri) - 4) . ".shx")); + file_put_contents($tmp_file . '.shp', file_get_contents(substr($uri, 0, strlen($uri) - 4) . '.shp')); + file_put_contents($tmp_file . '.dbf', file_get_contents(substr($uri, 0, strlen($uri) - 4) . '.dbf')); + file_put_contents($tmp_file . '.shx', file_get_contents(substr($uri, 0, strlen($uri) - 4) . '.shx')); // Along this file the class will use file.shx and file.dbf - $shape_file = new ShapeFile($tmp_file . ".shp"); + $shape_file = new ShapeFile($tmp_file . '.shp'); } else { $shape_file = new ShapeFile($uri); // along this file the class will use file.shx and file.dbf } @@ -146,7 +146,7 @@ public function readData($source_definition, $rest_parameters = array()) $projCode = $projection['projection']; if (empty($projCode)) { - \App::abort(400, "Could not find a supported EPSG code."); + \App::abort(400, 'Could not find a supported EPSG code.'); } $this->proj4 = new Proj4php(); @@ -219,8 +219,8 @@ private function parsePoint($shp_data) $x = $shp_data['x']; $y = $shp_data['y']; - if (!empty($x) && !empty($y)) { - if (!empty($this->epsg) && $this->epsg != 4326) { + if (! empty($x) && ! empty($y)) { + if (! empty($this->epsg) && $this->epsg != 4326) { $pointSrc = new Point($x, $y); $pointDest = $this->proj4->transform($this->projSrc, $this->projDest, $pointSrc); @@ -242,8 +242,8 @@ private function parsePointZ($shp_data) $y = $shp_data['y']; $z = $shp_data['z']; - if (!empty($x) && !empty($y) && !empty($z)) { - if (!empty($this->epsg) && $this->epsg != 4326) { + if (! empty($x) && ! empty($y) && ! empty($z)) { + if (! empty($this->epsg) && $this->epsg != 4326) { $pointSrc = new Point($x, $y, $z); $pointDest = $this->proj4->transform($this->projSrc, $this->projDest, $pointSrc); @@ -272,7 +272,7 @@ private function parsePolyline($shp_data) $y = $point['y']; // Translate the coordinates to WSG84 geo coordinates - if (!empty($this->epsg)) { + if (! empty($this->epsg)) { $pointSrc = new Point($x, $y); $pointDest = $this->proj4->transform($this->projSrc, $this->projDest, $pointSrc); @@ -282,7 +282,7 @@ private function parsePolyline($shp_data) $points[] = $x . ',' . $y; } - array_push($parts, implode(" ", $points)); + array_push($parts, implode(' ', $points)); } return implode(';', $parts); @@ -301,7 +301,7 @@ private function parsePolylineZ($shp_data) $z = $point['z']; // Translate the coordinates to WSG84 geo coordinates - if (!empty($this->epsg)) { + if (! empty($this->epsg)) { $pointSrc = new Point($x, $y, $z); $pointDest = $this->proj4->transform($this->projSrc, $this->projDest, $pointSrc); @@ -311,7 +311,7 @@ private function parsePolylineZ($shp_data) $points[] = $x . ',' . $y . ',' . $z; } - array_push($parts, implode(" ", $points)); + array_push($parts, implode(' ', $points)); } return implode(';', $parts); @@ -332,7 +332,7 @@ private function parsePolygon($shp_data) $y = $point['y']; // Translate the coordinates to WSG84 geo coordinates - if (!empty($this->epsg)) { + if (! empty($this->epsg)) { $pointSrc = new Point($x, $y); $pointDest = $this->proj4->transform($this->projSrc, $this->projDest, $pointSrc); @@ -343,7 +343,7 @@ private function parsePolygon($shp_data) $points[] = $x . ',' . $y; } - array_push($parts, implode(" ", $points)); + array_push($parts, implode(' ', $points)); } return $parts = implode(';', $parts); @@ -365,7 +365,7 @@ private function parsePolygonZ($shp_data) $z = $point['z']; // Translate the coordinates to WSG84 geo coordinates - if (!empty($this->epsg)) { + if (! empty($this->epsg)) { $pointSrc = new Point($x, $y, $z); $pointDest = $this->proj4->transform($this->projSrc, $this->projDest, $pointSrc); @@ -376,7 +376,7 @@ private function parsePolygonZ($shp_data) $points[] = $x . ',' . $y . ',' . $z; } - array_push($parts, implode(" ", $points)); + array_push($parts, implode(' ', $points)); } return $parts = implode(';', $parts); @@ -388,8 +388,8 @@ private function parseMultipoint($shp_data) $x = $point['x']; $y = $point['y']; - if (!empty($x) && !empty($y)) { - if (!empty($this->epsg)) { + if (! empty($x) && ! empty($y)) { + if (! empty($this->epsg)) { $pointSrc = new Point($x, $y); $pointDest = $this->proj4->transform($this->projSrc, $this->projDest, $pointSrc); @@ -412,8 +412,8 @@ private function parseMultipointZ($shp_data) $y = $point['y']; $z = $point['z']; - if (!empty($x) && !empty($y) && !empty($z)) { - if (!empty($this->epsg)) { + if (! empty($x) && ! empty($y) && ! empty($z)) { + if (! empty($this->epsg)) { $pointSrc = new Point($x, $y, $z); $pointDest = $this->proj4->transform($this->projSrc, $this->projDest, $pointSrc); @@ -435,7 +435,7 @@ private function parseMultipointZ($shp_data) */ public static function parseColumns($options) { - $is_url = (substr($options['uri'], 0, 4) == "http"); + $is_url = (substr($options['uri'], 0, 4) == 'http'); $tmp_dir = sys_get_temp_dir(); $columns = array(); @@ -446,14 +446,14 @@ public static function parseColumns($options) // This remains untested $tmp_file = uniqid(); - file_put_contents($tmp_dir . '/' . $tmp_file . ".shp", file_get_contents(substr($options['uri'], 0, strlen($options['uri']) - 4) . ".shp")); - file_put_contents($tmp_dir . '/' . $tmp_file . ".dbf", file_get_contents(substr($options['uri'], 0, strlen($options['uri']) - 4) . ".dbf")); - file_put_contents($tmp_dir . '/' . $tmp_file . ".shx", file_get_contents(substr($options['uri'], 0, strlen($options['uri']) - 4) . ".shx")); + file_put_contents($tmp_dir . '/' . $tmp_file . '.shp', file_get_contents(substr($options['uri'], 0, strlen($options['uri']) - 4) . '.shp')); + file_put_contents($tmp_dir . '/' . $tmp_file . '.dbf', file_get_contents(substr($options['uri'], 0, strlen($options['uri']) - 4) . '.dbf')); + file_put_contents($tmp_dir . '/' . $tmp_file . '.shx', file_get_contents(substr($options['uri'], 0, strlen($options['uri']) - 4) . '.shx')); // Along this file the class will use file.shx and file.dbf - $shape_file = new Shapefile($tmp_dir . '/' . $tmp_file . ".shp", array('noparts' => false)); + $shape_file = new Shapefile($tmp_dir . '/' . $tmp_file . '.shp', array('noparts' => false)); } else { - // along this file the class will use file.shx and file.dbf + // along this file the class will use file.shx and file.dbf $shape_file = new Shapefile($options['uri'], array('noparts' => false)); } } catch (Exception $e) { @@ -463,7 +463,7 @@ public static function parseColumns($options) $record = $shape_file->getRecord(); // Read meta data - if (!$record) { + if (! $record) { $uri = $options['uri']; \App::abort(400, "We failed to retrieve a record from the provided shape file on uri $uri, make sure the corresponding dbf and shx files are at the same location."); } @@ -517,7 +517,6 @@ public static function parseColumns($options) return $columns; } - /** * Parse the geo column names out of a SHP file. */ @@ -530,18 +529,18 @@ public static function parseGeoProperty($options, $columns) $aliases[$column['column_name']] = $column['column_name_alias']; } - $is_url = (substr($options['uri'], 0, 4) == "http"); + $is_url = (substr($options['uri'], 0, 4) == 'http'); $tmp_dir = sys_get_temp_dir(); $geo_properties = array(); if ($is_url) { // This remains untested $tmp_file = uniqid(); - file_put_contents($tmp_dir . '/' . $tmp_file . ".shp", file_get_contents(substr($options['uri'], 0, strlen($options['uri']) - 4) . ".shp")); - file_put_contents($tmp_dir . '/' . $tmp_file . ".dbf", file_get_contents(substr($options['uri'], 0, strlen($options['uri']) - 4) . ".dbf")); - file_put_contents($tmp_dir . '/' . $tmp_file . ".shx", file_get_contents(substr($options['uri'], 0, strlen($options['uri']) - 4) . ".shx")); + file_put_contents($tmp_dir . '/' . $tmp_file . '.shp', file_get_contents(substr($options['uri'], 0, strlen($options['uri']) - 4) . '.shp')); + file_put_contents($tmp_dir . '/' . $tmp_file . '.dbf', file_get_contents(substr($options['uri'], 0, strlen($options['uri']) - 4) . '.dbf')); + file_put_contents($tmp_dir . '/' . $tmp_file . '.shx', file_get_contents(substr($options['uri'], 0, strlen($options['uri']) - 4) . '.shx')); - $shape_file = new ShapeFile($tmp_dir . '/' . $tmp_file . ".shp", array('noparts' => false)); + $shape_file = new ShapeFile($tmp_dir . '/' . $tmp_file . '.shp', array('noparts' => false)); } else { $shape_file = new ShapeFile($options['uri'], array('noparts' => false)); } @@ -549,7 +548,7 @@ public static function parseGeoProperty($options, $columns) $record = $shape_file->getRecord(); // read meta data - if (!$record) { + if (! $record) { $uri = $options['uri']; \App::abort(400, "We failed to retrieve a record from the provided shape file on uri $uri, make sure the corresponding dbf and shx files are at the same location."); } diff --git a/app/Tdt/Core/Definitions/DefinitionController.php b/app/Tdt/Core/Definitions/DefinitionController.php index fac1a784..17107240 100755 --- a/app/Tdt/Core/Definitions/DefinitionController.php +++ b/app/Tdt/Core/Definitions/DefinitionController.php @@ -10,6 +10,7 @@ use Tdt\Core\Repositories\Interfaces\DefinitionRepositoryInterface; use Config; use File; +use ZipArchive; /** * DefinitionController @@ -351,6 +352,7 @@ public function put($uri) } // Create the new definition + $input = $this->processZip($input); $definition = $this->definitions->store($input); // Check if dataset should be indexed: create job and link with previously created definition. @@ -377,6 +379,57 @@ public function put($uri) return $response; } + /** + * Check for any zip files as a URI for SHP data sources + * + * @param array $input + * @return array + */ + private function processZip($input) + { + if (strtolower($input['original-dataset-type']) == 'shp') { + // Check for a zip file as a URI + if (ends_with($input['uri'], '.zip')) { + $uri = $input['uri']; + $uri = str_replace('file://', '', $uri); + + $zip = new ZipArchive; + $success = $zip->open($uri); + + if ($success === true) { + $path = storage_path() . '/app/' . str_random(5); + + mkdir($path); + + $zip->extractTo($path); + $zip->close(); + + // Get the shp file in the new directory + $files = scandir($path); + $shp_file = ''; + + foreach ($files as $file) { + if (strlen($file) > 4) { + chmod($path . '/' . $file, 0655); + } + + if (ends_with($file, '.shp')) { + $shp_file = $file; + } + } + + if (! empty($shp_file)) { + $input['uri'] = $path . '/' . $shp_file; + } else { + throw new \Exception('No shape file was found in the zip archive.'); + } + } + } + } + + return $input; + } + /** * Delete a definition based on the URI given. */ @@ -448,6 +501,7 @@ public function patch($uri) \App::abort(400, $message); } + $input = $this->processZip($input); $this->definitions->update($uri, $input); // Dataset updates control diff --git a/app/Tdt/Core/Repositories/ShpDefinitionRepository.php b/app/Tdt/Core/Repositories/ShpDefinitionRepository.php index c86e1486..1a0ba649 100644 --- a/app/Tdt/Core/Repositories/ShpDefinitionRepository.php +++ b/app/Tdt/Core/Repositories/ShpDefinitionRepository.php @@ -58,7 +58,7 @@ public function getCreateParameters() 'required' => false, 'name' => 'EPSG code', 'description' => 'This parameter holds the EPSG code in which the geometric properties in the shape file are encoded.', - 'default_value' => "4326", + 'default_value' => '4326', 'type' => 'list', 'list' => 'api/geoprojections', 'list_option' => 'epsg', diff --git a/app/Tdt/Core/Repositories/TabularBaseRepository.php b/app/Tdt/Core/Repositories/TabularBaseRepository.php index 93c76e45..d35a17ec 100644 --- a/app/Tdt/Core/Repositories/TabularBaseRepository.php +++ b/app/Tdt/Core/Repositories/TabularBaseRepository.php @@ -25,7 +25,7 @@ public function store(array $input) $columns = array(); - if (!empty($input['columns'])) { + if (! empty($input['columns'])) { $columns = $input['columns']; } @@ -37,11 +37,11 @@ public function store(array $input) $geo = array(); - if (!empty($input['geo'])) { + if (! empty($input['geo'])) { $geo = $input['geo']; } - if (!empty($geo) || !empty($extracted_geo)) { + if (! empty($geo) || ! empty($extracted_geo)) { $geo = $this->geo_repository->validateBulk($extracted_geo, $geo); } @@ -59,7 +59,7 @@ public function store(array $input) // Store the columns and optional geo meta-data $this->tabular_repository->storeBulk($tabular_definition->id, $model_name, $columns); - if (!empty($geo)) { + if (! empty($geo)) { $this->geo_repository->storeBulk($tabular_definition->id, $model_name, $geo); } @@ -92,13 +92,13 @@ public function update($tabular_id, array $input) $geo = array(); - if (!empty($input['geo'])) { + if (! empty($input['geo'])) { $geo = $input['geo']; } - if (!empty($geo) || !empty($extracted_geo)) { + if (! empty($geo) || ! empty($extracted_geo)) { $geo = $this->geo_repository->validateBulk($extracted_geo, $geo); - } elseif (!isset($geo)) { + } elseif (! isset($geo)) { $geo = $this->geo_repository->getGeoProperties($tabular_id, $model_name); } @@ -115,14 +115,14 @@ public function update($tabular_id, array $input) // Check for a primary key, and add it to the columns $pk = @$input['pk']; - if (!is_null($pk) && is_numeric($pk) && $pk >= 0 && $pk < count($columns)) { + if (! is_null($pk) && is_numeric($pk) && $pk >= 0 && $pk < count($columns)) { $columns[$pk]['is_pk'] = 1; } // Store the columns and geo meta-data $this->tabular_repository->storeBulk($tabular_id, $model_name, $columns); - if (!empty($geo)) { + if (! empty($geo)) { $this->geo_repository->storeBulk($tabular_id, $model_name, $geo); } @@ -141,7 +141,7 @@ private function getModelName() * * column: index, is_pk, column_name, column_name_alias * - * @param array $input + * @param array $input * @return array columns */ abstract protected function extractColumns($input); @@ -149,8 +149,8 @@ abstract protected function extractColumns($input); /** * Process the columns and return geo properties * - * @param array $input - * @param array $columns + * @param array $input + * @param array $columns * @return array geo properties */ protected function extractGeoProperties($input, $columns) diff --git a/app/storage/data/shp/places/Archive.zip b/app/storage/data/shp/places/Archive.zip new file mode 100644 index 0000000000000000000000000000000000000000..defbf8136289a04b5799ea60ba30c16f2999f076 GIT binary patch literal 125979 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 v26+T-i!>pV3i{HqtKjZRuE%VMCaxm6 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

    2. {{ trans('admin.link_datasets') }}

    - +

    {{ trans('admin.link_datasets_select_to') }}

    -
      +
      • - +
      -
    +
    - +

    3. {{ trans('admin.select_type') }}

    @@ -166,7 +166,7 @@ @endforeach @endif - @if (in_array(strtolower($mediatype), array("csv", "xml", "xls", "json")) && $parameter == 'uri') + @if (in_array(strtolower($mediatype), array("csv", "xml", "xls", "json", "shp")) && $parameter == 'uri')
    {{ $object->description }} @@ -422,9 +422,9 @@
    @endforeach - + - + @stop \ No newline at end of file From 37e7cd92714545dc5ffb5cfd3e8b67ffc271fcb9 Mon Sep 17 00:00:00 2001 From: Jan Vansteenlandt Date: Thu, 2 Mar 2017 21:39:39 +0100 Subject: [PATCH 44/68] Remove test zip archive for shape --- app/storage/data/shp/places/Archive.zip | Bin 125979 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 app/storage/data/shp/places/Archive.zip diff --git a/app/storage/data/shp/places/Archive.zip b/app/storage/data/shp/places/Archive.zip deleted file mode 100644 index defbf8136289a04b5799ea60ba30c16f2999f076..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 125979 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 v26+T-i!>pV3i{HqtKjZRuE%VMCaxm6 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 Date: Fri, 3 Mar 2017 12:11:47 +0100 Subject: [PATCH 45/68] Add default value for XLS --- app/Tdt/Core/Repositories/XlsDefinitionRepository.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/Tdt/Core/Repositories/XlsDefinitionRepository.php b/app/Tdt/Core/Repositories/XlsDefinitionRepository.php index bfb0ea38..9b0244b3 100644 --- a/app/Tdt/Core/Repositories/XlsDefinitionRepository.php +++ b/app/Tdt/Core/Repositories/XlsDefinitionRepository.php @@ -59,6 +59,7 @@ public function getCreateParameters() 'name' => 'XLS sheet', 'description' => 'The sheet name in which the tabular data resides.', 'type' => 'string', + 'default_value' => 'Sheet1' ), 'has_header_row' => array( 'required' => false, From ad84aae2eb51e8070c51831ba199e65ebe94bcd6 Mon Sep 17 00:00:00 2001 From: Jan Vansteenlandt Date: Fri, 3 Mar 2017 15:02:46 +0100 Subject: [PATCH 46/68] Added XML validation --- .../Core/Definitions/DefinitionController.php | 12 +- .../Repositories/XmlDefinitionRepository.php | 2 +- app/Tdt/Core/Validators/CustomValidator.php | 56 ++++++++-- app/lang/en/validation.php | 103 +++++++++--------- 4 files changed, 109 insertions(+), 64 deletions(-) diff --git a/app/Tdt/Core/Definitions/DefinitionController.php b/app/Tdt/Core/Definitions/DefinitionController.php index 17107240..3028bdac 100755 --- a/app/Tdt/Core/Definitions/DefinitionController.php +++ b/app/Tdt/Core/Definitions/DefinitionController.php @@ -387,7 +387,17 @@ public function put($uri) */ private function processZip($input) { - if (strtolower($input['original-dataset-type']) == 'shp') { + $datasetType = @$input['original-dataset-type']; + + if (empty($input['original-dataset-type'])) { + $definition = \App::make('Tdt\Core\Repositories\Interfaces\DefinitionRepositoryInterface')->getByIdentifier($input['collection_uri'] . '/' . $input['resource_name']); + + $datasetType = $definition['source_type']; + } + + $datasetType = strtolower($datasetType); + + if ($datasetType == 'shp') { // Check for a zip file as a URI if (ends_with($input['uri'], '.zip')) { $uri = $input['uri']; diff --git a/app/Tdt/Core/Repositories/XmlDefinitionRepository.php b/app/Tdt/Core/Repositories/XmlDefinitionRepository.php index e6e4be72..c346bcc4 100644 --- a/app/Tdt/Core/Repositories/XmlDefinitionRepository.php +++ b/app/Tdt/Core/Repositories/XmlDefinitionRepository.php @@ -8,7 +8,7 @@ class XmlDefinitionRepository extends BaseDefinitionRepository implements XmlDef { protected $rules = array( - 'uri' => 'uri|required', + 'uri' => 'uri|required|xml', 'description' => 'required', ); diff --git a/app/Tdt/Core/Validators/CustomValidator.php b/app/Tdt/Core/Validators/CustomValidator.php index 222ee3b3..be0eff3a 100644 --- a/app/Tdt/Core/Validators/CustomValidator.php +++ b/app/Tdt/Core/Validators/CustomValidator.php @@ -18,13 +18,13 @@ public function validateUri($attribute, $value, $parameters) try { $url_pieces = parse_url($value); - if (!filter_var($value, FILTER_VALIDATE_URL) === false && ($url_pieces['scheme'] == 'http' || $url_pieces['scheme'] == 'https')) { + if (! filter_var($value, FILTER_VALIDATE_URL) === false && ($url_pieces['scheme'] == 'http' || $url_pieces['scheme'] == 'https')) { $status = $this->getHeadInfo($value); return $status == 200; } else { - $data =@ file_get_contents($value); + $data = @ file_get_contents($value); - return !empty($data); + return ! empty($data); } } catch (\Exception $ex) { return false; @@ -49,7 +49,7 @@ private function getHeadInfo($uri) $status = curl_getinfo($c); curl_close($c); - if (!empty($status['http_code'])) { + if (! empty($status['http_code'])) { return $status['http_code']; } else { return 500; @@ -65,7 +65,7 @@ private function getRemoteData($url) curl_setopt($c, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($c, CURLOPT_MAXREDIRS, 10); - $follow_allowed = ( ini_get('open_basedir') || ini_get('safe_mode')) ? false:true; + $follow_allowed = ( ini_get('open_basedir') || ini_get('safe_mode')) ? false : true; if ($follow_allowed) { curl_setopt($c, CURLOPT_FOLLOWLOCATION, 1); @@ -83,6 +83,40 @@ private function getRemoteData($url) return $data; } + /** + * Validate an XML string + * + * @param string $attribute + * @param string $value + * @param array $parameters + * @return bool + */ + public function validateXml($attribute, $value, $parameters) + { + $xml_string = ''; + + if (substr($value, 0, 4) == 'http') { + $curl = curl_init(); + curl_setopt($curl, CURLOPT_URL, $value); + curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); + + $xml_string = curl_exec($curl); + + curl_close($curl); + } else { + $xml_string = file_get_contents($value); + } + + try { + if (simplexml_load_string($xml_string)) { + return true; + } + } catch (\Exception $ex) { + } + + return false; + } + /** * Check if the given value is a proper file that can be opened with fopen(). */ @@ -90,9 +124,9 @@ public function validateFile($attribute, $value, $parameters) { try { $ssl_options = array( - "ssl"=>array( - "verify_peer"=>false, - "verify_peer_name"=>false, + 'ssl' => array( + 'verify_peer' => false, + 'verify_peer_name' => false, ), ); @@ -111,12 +145,12 @@ public function validateJson($attribute, $value, $parameters) try { $data = []; - if (!filter_var($value, FILTER_VALIDATE_URL) === false) { + if (! filter_var($value, FILTER_VALIDATE_URL) === false) { $ch = curl_init(); $data = $this->getRemoteData($value); curl_close($ch); } else { - $data =@ file_get_contents($value); + $data = @ file_get_contents($value); } if (empty($data)) { @@ -135,7 +169,7 @@ public function validateJson($attribute, $value, $parameters) public function validateInstalled($attribute, $value, $parameters) { try { - $class_file = app_path() . '/../installed/' . $value; + $class_file = app_path() . '/../installed/' . $value; return file_exists($class_file); diff --git a/app/lang/en/validation.php b/app/lang/en/validation.php index 5a24a40c..17fc0de8 100644 --- a/app/lang/en/validation.php +++ b/app/lang/en/validation.php @@ -13,61 +13,62 @@ | */ - "accepted" => "The :attribute must be accepted.", - "active_url" => "The :attribute is not a valid URL.", - "after" => "The :attribute must be a date after :date.", - "alpha" => "The :attribute may only contain letters.", - "alpha_dash" => "The :attribute may only contain letters, numbers, and dashes.", - "alpha_num" => "The :attribute may only contain letters and numbers.", - "array" => "The :attribute must be an array.", - "before" => "The :attribute must be a date before :date.", - "between" => array( - "numeric" => "The :attribute must be between :min - :max.", - "file" => "The :attribute must be between :min - :max kilobytes.", - "string" => "The :attribute must be between :min - :max characters.", - "array" => "The :attribute must have between :min - :max items.", + 'accepted' => 'The :attribute must be accepted.', + 'active_url' => 'The :attribute is not a valid URL.', + 'after' => 'The :attribute must be a date after :date.', + 'alpha' => 'The :attribute may only contain letters.', + 'alpha_dash' => 'The :attribute may only contain letters, numbers, and dashes.', + 'alpha_num' => 'The :attribute may only contain letters and numbers.', + 'array' => 'The :attribute must be an array.', + 'before' => 'The :attribute must be a date before :date.', + 'between' => array( + 'numeric' => 'The :attribute must be between :min - :max.', + 'file' => 'The :attribute must be between :min - :max kilobytes.', + 'string' => 'The :attribute must be between :min - :max characters.', + 'array' => 'The :attribute must have between :min - :max items.', ), - "confirmed" => "The :attribute confirmation does not match.", - "date" => "The :attribute is not a valid date.", - "date_format" => "The :attribute does not match the format :format.", - "different" => "The :attribute and :other must be different.", - "digits" => "The :attribute must be :digits digits.", - "digits_between" => "The :attribute must be between :min and :max digits.", - "email" => "The :attribute format is invalid.", - "exists" => "The selected :attribute is invalid.", - "image" => "The :attribute must be an image.", - "in" => "The selected :attribute is invalid.", - "integer" => "The :attribute must be an integer.", - "ip" => "The :attribute must be a valid IP address.", - "max" => array( - "numeric" => "The :attribute may not be greater than :max.", - "file" => "The :attribute may not be greater than :max kilobytes.", - "string" => "The :attribute may not be greater than :max characters.", - "array" => "The :attribute may not have more than :max items.", + 'confirmed' => 'The :attribute confirmation does not match.', + 'date' => 'The :attribute is not a valid date.', + 'date_format' => 'The :attribute does not match the format :format.', + 'different' => 'The :attribute and :other must be different.', + 'digits' => 'The :attribute must be :digits digits.', + 'digits_between' => 'The :attribute must be between :min and :max digits.', + 'email' => 'The :attribute format is invalid.', + 'exists' => 'The selected :attribute is invalid.', + 'image' => 'The :attribute must be an image.', + 'in' => 'The selected :attribute is invalid.', + 'integer' => 'The :attribute must be an integer.', + 'ip' => 'The :attribute must be a valid IP address.', + 'max' => array( + 'numeric' => 'The :attribute may not be greater than :max.', + 'file' => 'The :attribute may not be greater than :max kilobytes.', + 'string' => 'The :attribute may not be greater than :max characters.', + 'array' => 'The :attribute may not have more than :max items.', ), - "mimes" => "The :attribute must be a file of type: :values.", - "min" => array( - "numeric" => "The :attribute must be at least :min.", - "file" => "The :attribute must be at least :min kilobytes.", - "string" => "The :attribute must be at least :min characters.", - "array" => "The :attribute must have at least :min items.", + 'mimes' => 'The :attribute must be a file of type: :values.', + 'min' => array( + 'numeric' => 'The :attribute must be at least :min.', + 'file' => 'The :attribute must be at least :min kilobytes.', + 'string' => 'The :attribute must be at least :min characters.', + 'array' => 'The :attribute must have at least :min items.', ), - "not_in" => "The selected :attribute is invalid.", - "numeric" => "The :attribute must be a number.", - "regex" => "The :attribute format is invalid.", - "required" => "The :attribute field is required.", - "required_if" => "The :attribute field is required when :other is :value.", - "required_with" => "The :attribute field is required when :values is present.", - "required_without" => "The :attribute field is required when :values is not present.", - "same" => "The :attribute and :other must match.", - "size" => array( - "numeric" => "The :attribute must be :size.", - "file" => "The :attribute must be :size kilobytes.", - "string" => "The :attribute must be :size characters.", - "array" => "The :attribute must contain :size items.", + 'not_in' => 'The selected :attribute is invalid.', + 'numeric' => 'The :attribute must be a number.', + 'regex' => 'The :attribute format is invalid.', + 'required' => 'The :attribute field is required.', + 'required_if' => 'The :attribute field is required when :other is :value.', + 'required_with' => 'The :attribute field is required when :values is present.', + 'required_without' => 'The :attribute field is required when :values is not present.', + 'same' => 'The :attribute and :other must match.', + 'size' => array( + 'numeric' => 'The :attribute must be :size.', + 'file' => 'The :attribute must be :size kilobytes.', + 'string' => 'The :attribute must be :size characters.', + 'array' => 'The :attribute must contain :size items.', ), - "unique" => "The :attribute has already been taken.", - "url" => "The :attribute format is invalid.", + 'unique' => 'The :attribute has already been taken.', + 'url' => 'The :attribute format is invalid.', + 'xml' => 'The XML is not valid', /* |-------------------------------------------------------------------------- From f1b70068967de839ce850d5d987d184769664fff Mon Sep 17 00:00:00 2001 From: luisdelacalle Date: Fri, 3 Mar 2017 18:18:47 +0100 Subject: [PATCH 47/68] issue in edit view --- app/Tdt/Core/Definitions/DefinitionController.php | 4 ++-- app/Tdt/Core/Formatters/CSVFormatter.php | 4 ++-- app/views/ui/datasets/edit.blade.php | 2 ++ 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/Tdt/Core/Definitions/DefinitionController.php b/app/Tdt/Core/Definitions/DefinitionController.php index f292b8a6..a89d0c28 100755 --- a/app/Tdt/Core/Definitions/DefinitionController.php +++ b/app/Tdt/Core/Definitions/DefinitionController.php @@ -327,7 +327,7 @@ public function put($uri) $file2=$input['fileupload_xslt']; $file3=explode("\\", $file2); - $input['xslt_file'] =$file3[2] . '_' . date('Y-m-d'); + $input['xslt_file'] ='file://' . app_path() . '/storage/app/'. $file3[2] . '_' . date('Y-m-d') .'.xslt'; } // Check if dataset should be indexed @@ -435,7 +435,7 @@ public function patch($uri) $file2=$input['fileupload_xslt']; $file3=explode("\\", $file2); - $input['xslt_file'] =$file3[2] . '_' . date('Y-m-d'); + $input['xslt_file'] ='file://' . app_path() . '/storage/app/' .$file3[2] . '_' . date('Y-m-d').'.xslt'; } // Validate the input diff --git a/app/Tdt/Core/Formatters/CSVFormatter.php b/app/Tdt/Core/Formatters/CSVFormatter.php index 6d14b8c4..facae3c3 100644 --- a/app/Tdt/Core/Formatters/CSVFormatter.php +++ b/app/Tdt/Core/Formatters/CSVFormatter.php @@ -48,10 +48,10 @@ public static function getBody($dataObj) $xml->loadXML($dataObj->data ); $xsl = new DOMDocument; - $xsl->load(app_path() . '/storage/app/'.$name_xslt_file .'.xslt'); + $xsl->load($name_xslt_file); - // Configura el procesador + // Processor $proc = new XSLTProcessor; $proc->importStyleSheet($xsl); // adjunta las reglas XSL diff --git a/app/views/ui/datasets/edit.blade.php b/app/views/ui/datasets/edit.blade.php index da815bc2..9e3d7ccc 100755 --- a/app/views/ui/datasets/edit.blade.php +++ b/app/views/ui/datasets/edit.blade.php @@ -152,6 +152,8 @@ {{ $object->description }} @if (in_array(strtolower($source_definition->type), array("xml")) && $parameter == 'uri') +
    +

    {{ $object->description_xslt }} From 169c8889f37ebc52f0ecf0a4e55e8deb8db18bce Mon Sep 17 00:00:00 2001 From: Jan Vansteenlandt Date: Sat, 4 Mar 2017 20:43:53 +0100 Subject: [PATCH 48/68] Added some enhancements to facilitate indexing of mysql datasources --- .../Core/DataControllers/MYSQLController.php | 31 +++--- .../Core/Definitions/DefinitionController.php | 43 +++++--- .../MysqlDefinitionRepository.php | 100 ++++++++++-------- ...3929_change_column_name_mysql_resource.php | 36 +++++++ app/lang/en/parameters.php | 8 +- app/lang/fr/parameters.php | 28 ++--- app/lang/nl/parameters.php | 14 +-- app/models/sourcetypes/MysqlDefinition.php | 3 +- app/views/ui/datasets/add.blade.php | 2 +- 9 files changed, 160 insertions(+), 105 deletions(-) create mode 100644 app/database/migrations/2017_03_04_183929_change_column_name_mysql_resource.php diff --git a/app/Tdt/Core/DataControllers/MYSQLController.php b/app/Tdt/Core/DataControllers/MYSQLController.php index 202f2f7f..25bba8fe 100644 --- a/app/Tdt/Core/DataControllers/MYSQLController.php +++ b/app/Tdt/Core/DataControllers/MYSQLController.php @@ -37,7 +37,7 @@ public function readData($source_definition, $rest_parameters = array()) } // Disregard the paging when rest parameters are given - if (!empty($rest_parameters)) { + if (! empty($rest_parameters)) { $limit = 500; $offset = 0; } @@ -54,10 +54,10 @@ public function readData($source_definition, $rest_parameters = array()) $geo[$geo_prop['property']] = $geo_prop['path']; } - if (!$columns) { + if (! $columns) { // 500 error because this shouldn't happen in normal conditions // Columns are parsed upon adding a CSV resource and are always present - \App::abort(500, "Cannot find the columns of the MySQL table file, this might be due to a corrupted database or a broken configuration."); + \App::abort(500, 'Cannot find the columns of the MySQL table file, this might be due to a corrupted database or a broken configuration.'); } // Create aliases for the columns @@ -65,21 +65,21 @@ public function readData($source_definition, $rest_parameters = array()) $pk = null; foreach ($columns as $column) { - - if (!empty($column['is_pk'])) { + if (! empty($column['is_pk'])) { $pk = $column['column_name_alias']; } } // Connect to the database $db_config = array( - 'driver' => 'mysql', - 'host' => $source_definition['host'], - 'database' => $source_definition['database'], - 'username' => $source_definition['username'], - 'password' => $source_definition['password'], 'charset' => 'utf8', 'collation' => $source_definition['collation'], + 'database' => $source_definition['database'], + 'driver' => 'mysql', + 'host' => $source_definition['mysql_host'], + 'password' => $source_definition['mysql_password'], + 'port' => $source_definition['mysql_port'], + 'username' => $source_definition['mysql_username'], ); // Configure a connection @@ -92,7 +92,7 @@ public function readData($source_definition, $rest_parameters = array()) $query = $source_definition['query']; // Get the total amount of records for the query for pagination - preg_match("/select.*?(from.*)/msi", $query, $matches); + preg_match('/select.*?(from.*)/msi', $query, $matches); if (empty($matches[1])) { \App::abort(400, 'Failed to make a count statement, make sure the SQL query is valid.'); @@ -104,20 +104,19 @@ public function readData($source_definition, $rest_parameters = array()) $total_rows = $count_result[0]->count; - if (!$limitInQuery) { - if (!empty($limit)) { + if (! $limitInQuery) { + if (! empty($limit)) { $query .= ' limit ' . $limit; } - if (!empty($offset)) { + if (! empty($offset)) { $query .= ' offset ' . $offset; } } $result = $db->select($query); - } catch (QueryException $ex) { - \App::abort(400, "A bad query has been made, make sure all passed statements are SQL friendly. The error message was: " . $ex->getMessage()); + \App::abort(400, 'A bad query has been made, make sure all passed statements are SQL friendly. The error message was: ' . $ex->getMessage()); } // Get the paging headers diff --git a/app/Tdt/Core/Definitions/DefinitionController.php b/app/Tdt/Core/Definitions/DefinitionController.php index c31200e4..4f654f08 100755 --- a/app/Tdt/Core/Definitions/DefinitionController.php +++ b/app/Tdt/Core/Definitions/DefinitionController.php @@ -139,19 +139,25 @@ public function createLinkJob($uri, $input) // Extract class construction $params = []; $params['extract']['type'] = $input['original-dataset-type']; - $params['extract']['uri'] = $input['uri']; if ($params['extract']['type'] == 'csv') { $params['extract']['delimiter'] = $input['delimiter']; $params['extract']['has_header_row'] = $input['has_header_row']; $params['extract']['encoding'] = 'UTF-8'; + $params['extract']['uri'] = $input['uri']; } elseif ($params['extract']['type'] == 'xml') { $params['extract']['array_level'] = $input['array_level']; $params['extract']['encoding'] = 'UTF-8'; - } elseif ($params['extract']['type'] == 'xls') { - $params['extract']['has_header_row'] = $input['has_header_row']; - $params['extract']['start_row'] = $input['start_row']; - $params['extract']['sheet'] = $input['sheet']; + $params['extract']['uri'] = $input['uri']; + } elseif ($params['extract']['type'] == 'json') { + $params['extract']['uri'] = $input['uri']; + } elseif ($params['extract']['type'] = 'mysql') { + $params['extract']['database'] = $input['database']; + $params['extract']['host'] = $input['mysql_host']; + $params['extract']['port'] = @$input['mysql_port']; + $params['extract']['query'] = $input['query']; + $params['extract']['username'] = $input['mysql_username']; + $params['extract']['collation'] = @$input['collation']; } // Load class construction (always elasticsearch) @@ -229,17 +235,25 @@ private function editLinkedJob($uri, $input) // Extract class construction $params = []; $params['extract']['type'] = $input['original-dataset-type']; - $params['extract']['uri'] = $input['uri']; if ($params['extract']['type'] == 'csv') { $params['extract']['delimiter'] = $input['delimiter']; $params['extract']['has_header_row'] = $input['has_header_row']; $params['extract']['encoding'] = 'UTF-8'; + $params['extract']['uri'] = $input['uri']; } elseif ($params['extract']['type'] == 'xml') { $params['extract']['array_level'] = $input['array_level']; $params['extract']['encoding'] = 'UTF-8'; + $params['extract']['uri'] = $input['uri']; } elseif ($params['extract']['type'] == 'json') { - /* No extra fields */ + $params['extract']['uri'] = $input['uri']; + } elseif ($params['extract']['type'] = 'mysql') { + $params['extract']['database'] = $input['database']; + $params['extract']['host'] = $input['mysql_host']; + $params['extract']['port'] = @$input['mysql_port']; + $params['extract']['query'] = $input['query']; + $params['extract']['username'] = $input['mysql_username']; + $params['extract']['collation'] = @$input['collation']; } $params['load']['type'] = 'elasticsearch'; @@ -325,14 +339,13 @@ public function put($uri) if (isset($input['fileupload']) && $input['fileupload'] != '') { $input['uri'] = 'file://' . $input['fileupload']; } - + // Add uploaded file XSLT and change xslt_file. if (isset($input['fileupload_xslt']) && $input['fileupload_xslt'] != '') { + $file2 = $input['fileupload_xslt']; + $file3 = explode('\\', $file2); - $file2=$input['fileupload_xslt']; - $file3=explode("\\", $file2); - - $input['xslt_file'] ='file://' . app_path() . '/storage/app/'. $file3[2] . '_' . date('Y-m-d') .'.xslt'; + $input['xslt_file'] = 'file://' . app_path() . '/storage/app/' . $file3[2] . '_' . date('Y-m-d') . '.xslt'; } // Check if dataset should be indexed @@ -499,10 +512,10 @@ public function patch($uri) //Add uploaded xslt file if (isset($input['fileupload_xslt']) && $input['fileupload_xslt'] != '') { - $file2=$input['fileupload_xslt']; - $file3=explode("\\", $file2); + $file2 = $input['fileupload_xslt']; + $file3 = explode('\\', $file2); - $input['xslt_file'] ='file://' . app_path() . '/storage/app/' .$file3[2] . '_' . date('Y-m-d').'.xslt'; + $input['xslt_file'] = 'file://' . app_path() . '/storage/app/' . $file3[2] . '_' . date('Y-m-d') . '.xslt'; } // Validate the input diff --git a/app/Tdt/Core/Repositories/MysqlDefinitionRepository.php b/app/Tdt/Core/Repositories/MysqlDefinitionRepository.php index 0b868081..75b03437 100644 --- a/app/Tdt/Core/Repositories/MysqlDefinitionRepository.php +++ b/app/Tdt/Core/Repositories/MysqlDefinitionRepository.php @@ -49,58 +49,66 @@ public function getAllParameters() protected function extractColumns($input) { - $db_config = array( - 'driver' => 'mysql', - 'host' => $input['host'], - 'database' => $input['database'], - 'username' => $input['username'], - 'password' => $input['password'], - 'charset' => 'utf8', - 'collation' => $input['collation'], - ); - - // Configure a connection - \Config::set('database.connections.testconnection', $db_config); - - // Make a database connection - $db = \DB::connection('testconnection'); + try { + $db_config = array( + 'driver' => 'mysql', + 'host' => $input['mysql_host'], + 'database' => $input['database'], + 'username' => $input['mysql_username'], + 'password' => $input['mysql_password'], + 'charset' => 'utf8', + 'collation' => $input['collation'], + 'port' => $input['mysql_port'], + ); + + // Configure a connection + \Config::set('database.connections.testconnection', $db_config); + + // Make a database connection + $db = \DB::connection('testconnection'); + + // Get the schema builder of the database connection + $schema = $db->getSchemaBuilder(); + $connection = $schema->getConnection(); + $result = $connection->selectOne($input['query']); + + if (empty($result)) { + \App::abort(400, 'The query did not return any results.'); + } - // Get the schema builder of the database connection - $schema = $db->getSchemaBuilder(); - $connection = $schema->getConnection(); - $result = $connection->selectOne($input['query']); + $db_columns = array_keys((array)$result); - if (empty($result)) { - \App::abort(400, 'The query did not return any results.'); - } + $columns_info = @$config['columns']; + $pk = @$config['pk']; - $db_columns = array_keys((array)$result); + // Prepare the aliases + $aliases = array(); - $columns_info = @$config['columns']; - $pk = @$config['pk']; + if (! empty($columns_info)) { + foreach ($columns_info as $column_info) { + $aliases[$column_info['index']] = $column_info['column_name_alias']; + } + } - // Prepare the aliases - $aliases = array(); + // Create the columns array + $columns = array(); - if (!empty($columns_info)) { - foreach ($columns_info as $column_info) { - $aliases[$column_info['index']] = $column_info['column_name_alias']; + foreach ($db_columns as $index => $column) { + array_push($columns, array( + 'index' => $index, + 'column_name' => $column, + 'column_name_alias' => empty($aliases[$index]) ? $column : $aliases[$index], + 'pk' => ($pk === $index) + )); } - } - // Create the columns array - $columns = array(); + return $columns; + } catch (\Exception $ex) { + \Log::error('Something went wrong while extracting columns from the query results, or the query itself'); + \Log::error($ex->getMessage()); - foreach ($db_columns as $index => $column) { - array_push($columns, array( - 'index' => $index, - 'column_name' => $column, - 'column_name_alias' => empty($aliases[$index]) ? $column : $aliases[$index], - 'pk' => ($pk === $index) - )); + throw new \Exception('Something went wrong while connecting to the database, make sure the application can reach the database with the given credentials and that the query is valid. The technical error we got was: ' . $ex->getMessage()); } - - return $columns; } /** @@ -109,13 +117,13 @@ protected function extractColumns($input) public function getCreateParameters() { return array( - 'host' => array( + 'mysql_host' => array( 'required' => true, 'name' => 'Host', 'description' => 'The host of the MySQL database.', 'type' => 'string', ), - 'port' => array( + 'mysql_port' => array( 'required' => false, 'name' => 'Port', 'description' => 'The port of the MySQL database where a connection can be made to.', @@ -128,13 +136,13 @@ public function getCreateParameters() 'description' => 'The name of the database where the datatable, that needs to be published, resides.', 'type' => 'string', ), - 'username' => array( + 'mysql_username' => array( 'required' => true, 'name' => 'Username', 'description' => 'A username that has read permissions on the provided datatable. Safety first, make sure the user only has read permissions.', 'type' => 'string', ), - 'password' => array( + 'mysql_password' => array( 'required' => false, 'name' => 'Password', 'description' => 'The password for the user that has read permissions.', diff --git a/app/database/migrations/2017_03_04_183929_change_column_name_mysql_resource.php b/app/database/migrations/2017_03_04_183929_change_column_name_mysql_resource.php new file mode 100644 index 00000000..c1b924ae --- /dev/null +++ b/app/database/migrations/2017_03_04_183929_change_column_name_mysql_resource.php @@ -0,0 +1,36 @@ +renameColumn('host', 'mysql_host'); + $table->renameColumn('password', 'mysql_password'); + $table->renameColumn('port', 'mysql_port'); + $table->renameColumn('username', 'mysql_username'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('mysqldefinitions', function ($table) { + $table->renameColumn('mysql_host', 'host'); + $table->renameColumn('mysql_password', 'password'); + $table->renameColumn('mysql_port', 'port'); + $table->renameColumn('mysql_username', 'username'); + }); + } +} diff --git a/app/lang/en/parameters.php b/app/lang/en/parameters.php index 82da6ddf..24f3e9e3 100755 --- a/app/lang/en/parameters.php +++ b/app/lang/en/parameters.php @@ -81,15 +81,15 @@ 'mongo_username_desc' => 'A username that has read permissions on the provided collection. Safety first, make sure the user only has read permissions.', 'mongo_password' => 'Password', 'mongo_password_desc' => 'The password for the user that has read permissions.', - 'mysql_host' => 'Host', + 'mysql_mysql_host' => 'Host', 'mysql_host_desc' => 'The host of the MySQL database.', - 'mysql_port' => 'Port', + 'mysql_mysql_port' => 'Port', 'mysql_port_desc' => 'The port of the MySQL database where a connection can be made to.', 'mysql_database' => 'Database', 'mysql_database_desc' => 'The name of the database where the datatable, that needs to be published, resides.', - 'mysql_username' => 'Username', + 'mysql_mysql_username' => 'Username', 'mysql_username_desc' => 'A username that has read permissions on the provided datatable. Safety first, make sure the user only has read permissions.', - 'mysql_password' => 'Password', + 'mysql_mysql_password' => 'Password', 'mysql_password_desc' => 'The password for the user that has read permissions.', 'mysql_collation' => 'Collation', 'mysql_collation_desc' => 'The collation of the datatable.', diff --git a/app/lang/fr/parameters.php b/app/lang/fr/parameters.php index b0139089..95f49659 100755 --- a/app/lang/fr/parameters.php +++ b/app/lang/fr/parameters.php @@ -77,15 +77,15 @@ 'mongo_username_desc' => "Un nom d'utilisateur qui a lu des autorisations sur la collection fournie. Sécurité d'abord, assurez-vous que l'utilisateur a lu des autorisations uniquement.", 'mongo_password' => 'Mot de passe', 'mongo_password_desc' => "Le mot de passe pour l'utilisateur qui a les autorisations de lecture.", - 'mysql_host' => 'Hôte', + 'mysql_mysql_host' => 'Hôte', 'mysql_host_desc' => "L'hôte de la base de données MySQL.", - 'mysql_port' => 'Port', + 'mysql_mysql_port' => 'Port', 'mysql_port_desc' => 'Le port de la base de données MySQL où une connexion peut être mis en place.', 'mysql_database' => 'Base de données', 'mysql_database_desc' => 'Le nom de la base de données où la datatable, qui doit être publié, réside.', - 'mysql_username' => "Nom d'utilisateur", + 'mysql_mysql_username' => "Nom d'utilisateur", 'mysql_username_desc' => "Un nom d'utilisateur qui a lu des autorisations sur la collection fournie. Sécurité d'abord, assurez-vous que l'utilisateur a lu des autorisations uniquement.", - 'mysql_password' => 'Mot de passe', + 'mysql_mysql_password' => 'Mot de passe', 'mysql_password_desc' => "Le mot de passe pour l'utilisateur qui a les autorisations de lecture.", 'mysql_collation' => 'Collation', 'mysql_collation_desc' => 'La classement de la datatable', @@ -127,7 +127,7 @@ 'sparql_query_desc' => 'La requête à être exécutée.', 'sparql_endpoint_user' => "Nom d'utilisateur du SPARQL endpoint", 'sparql_endpoint_user_desc' => "Un nom d'utilisateur qui a lu des autorisations sur la collection fournie. Sécurité d'abord, assurez-vous que l'utilisateur a lu des autorisations uniquement.", - 'sparql_endpoint_password' => "Mot de passe", + 'sparql_endpoint_password' => 'Mot de passe', 'sparql_endpoint_password_desc' => "Le mot de passe pour l'utilisateur qui a les autorisations de lecture.", 'xls_uri' => 'URI', 'xls_uri_desc' => "L'emplacement du fichier XLS, une URL ou un emplacement de fichier local.", @@ -163,24 +163,24 @@ 'installed_title_desc' => 'Un nom donné à la ressource.', 'installed_description' => 'Description', 'installed_description_desc' => "Le texte descriptif ou d'information qui fournit un certain contexte pour vous publié des ensembles de données.", - 'elasticsearch_description' => "Description", + 'elasticsearch_description' => 'Description', 'elasticsearch_description_desc' => "Le texte descriptif ou d'information qui fournit un certain contexte pour vous publié des ensembles de données.", - 'elasticsearch_host' => "Hôte", + 'elasticsearch_host' => 'Hôte', 'elasticsearch_host_desc' => "L'hôte d'Elasticsearch.", - 'elasticsearch_es_type' => "Type", + 'elasticsearch_es_type' => 'Type', 'elasticsearch_es_type_desc' => "Le type de données à l'intérieur de l'index.", - 'elasticsearch_es_index' => "Index", + 'elasticsearch_es_index' => 'Index', 'elasticsearch_es_index_desc' => "Le nom de l'index Elasticsearch.", - 'elasticsearch_port' => "Port", - 'elasticsearch_port_desc' => "Le port de la Elasticsearch.", + 'elasticsearch_port' => 'Port', + 'elasticsearch_port_desc' => 'Le port de la Elasticsearch.', 'elasticsearch_username' => "Nom d'utilisateur", 'elasticsearch_username_desc' => "Un nom d'utilisateur qui a lu des autorisations sur la collection fournie. Sécurité d'abord, assurez-vous que l'utilisateur a lu des autorisations uniquement.", - 'elasticsearch_password' => "Mot de passe", + 'elasticsearch_password' => 'Mot de passe', 'elasticsearch_password_desc' => "Le mot de passe pour l'utilisateur qui a les autorisations de lecture.", - + 'csv_job_id' => 'Related Job', 'csv_job_id_desc' => 'Job linked to this dataset.', 'csv_original_file' => 'Original file', - 'csv_original_file_desc' => 'Original dataset file.', + 'csv_original_file_desc' => 'Original dataset file.', ); diff --git a/app/lang/nl/parameters.php b/app/lang/nl/parameters.php index c6583a65..fff3887c 100755 --- a/app/lang/nl/parameters.php +++ b/app/lang/nl/parameters.php @@ -75,15 +75,15 @@ 'mongo_username_desc' => 'Een gebruikersnaam die leesrechten heeft op de collectie.', 'mongo_password' => 'Wachtwoord', 'mongo_password_desc' => 'Het wachtwoord van de gebruiker.', - 'mysql_host' => 'Host', + 'mysql_mysql_host' => 'Host', 'mysql_host_desc' => 'De host van de MySQL database.', - 'mysql_port' => 'Poort', + 'mysql_mysql_port' => 'Poort', 'mysql_port_desc' => 'De poort van de MySQL database waar een verbinding mee kan gemaakt worden.', 'mysql_database' => 'Database', 'mysql_database_desc' => 'De naam van de database waar de tabel die gepubliceerd moet worden, in zit.', - 'mysql_username' => 'Gebruikersnaam', + 'mysql_mysql_username' => 'Gebruikersnaam', 'mysql_username_desc' => 'Een gebruikersnaam die leesrechten heeft op de collectie.', - 'mysql_password' => 'Wachtwoord', + 'mysql_mysql_password' => 'Wachtwoord', 'mysql_password_desc' => 'Het wachtwoord van de gebruiker.', 'mysql_collation' => 'Collatie', 'mysql_collation_desc' => 'De collatie van de datatabel.', @@ -123,7 +123,7 @@ 'sparql_query_desc' => 'De query waarvan de resultaten als open data worden gepubliceerd.', 'sparql_endpoint_user' => 'Gebruikersnaam', 'sparql_endpoint_user_desc' => 'De gebruiker die voldoende rechten heeft om het SPARQL endpoint te bevragen.', - 'sparql_endpoint_password' => "Wachtwoord", + 'sparql_endpoint_password' => 'Wachtwoord', 'sparql_endpoint_password_desc' => 'Wachtwoord van de gebruiker.', 'xls_uri' => 'URI', 'xls_uri_desc' => 'De locatie van het XLS file, dit kan een URI zijn of een lokaal pad.', @@ -171,9 +171,9 @@ 'elasticsearch_username_desc' => 'De gebruiker die voldoende rechten heeft om het SPARQL endpoint te bevragen.', 'elasticsearch_password' => 'Wachtwoord', 'elasticsearch_password_desc' => 'Wachtwoord van de gebruiker.', - + 'csv_job_id' => 'Related Job', 'csv_job_id_desc' => 'Job linked to this dataset.', 'csv_original_file' => 'Original file', - 'csv_original_file_desc' => 'Original dataset file.', + 'csv_original_file_desc' => 'Original dataset file.', ); diff --git a/app/models/sourcetypes/MysqlDefinition.php b/app/models/sourcetypes/MysqlDefinition.php index ee892c7c..c67b275f 100644 --- a/app/models/sourcetypes/MysqlDefinition.php +++ b/app/models/sourcetypes/MysqlDefinition.php @@ -12,7 +12,7 @@ class MysqlDefinition extends SourceType protected $table = 'mysqldefinitions'; - protected $fillable = array('host', 'port', 'database', 'username', 'password', 'collation', 'query', 'description'); + protected $fillable = array('mysql_host', 'mysql_port', 'database', 'mysql_username', 'mysql_password', 'collation', 'query', 'description'); /** * Relationship with the TabularColumns model. @@ -39,7 +39,6 @@ public function __get($name) { if ($name == 'pk') { - // Retrieve the primary key from the columns // Get the related columns $columns = $this->tabularColumns()->getResults(); diff --git a/app/views/ui/datasets/add.blade.php b/app/views/ui/datasets/add.blade.php index d9cb5c8f..e38b3613 100755 --- a/app/views/ui/datasets/add.blade.php +++ b/app/views/ui/datasets/add.blade.php @@ -365,7 +365,7 @@
    @endif - @if (in_array(strtolower($mediatype), array("csv", "xls", "json","shp"))) + @if (in_array(strtolower($mediatype), array("mysql", "csv", "xls", "json","shp")))
    - + @if(Sentry::check())
  • {{ trans('htmlview.created_by') }}
    @@ -37,8 +37,8 @@ @endforeach @endif
  • - @endif - + @endif + @if(!empty($source_definition['description']))
  • {{ trans('htmlview.description') }}
    diff --git a/app/views/ui/datasets/add.blade.php b/app/views/ui/datasets/add.blade.php index e38b3613..b7d63c21 100755 --- a/app/views/ui/datasets/add.blade.php +++ b/app/views/ui/datasets/add.blade.php @@ -59,33 +59,6 @@ -
    -
    -
    -

    2. {{ trans('admin.link_datasets') }}

    - -
    -
    -
    -
    -

    {{ trans('admin.link_datasets_select_to') }}

    -
      -
    • - - - - - -
    • -
    -
    -
    -
    -
    -
    -
    -
    -

    3. {{ trans('admin.select_type') }}