From 57f6d4d29b290dee3f1d96560a57e62f4336ebb5 Mon Sep 17 00:00:00 2001 From: Mark Friedrich Date: Fri, 31 Aug 2018 19:11:39 +0200 Subject: [PATCH] - full refactoring of the "signature module" #679 - improved "character info" tooltips in e.g. signature Table - improved performance with the live time counters in e.g. signature table - fixed a bug where mass delete signatures on a system sometimes failed - fixed a bug where "signature type" sometimes not get saved correctly - fixed a bug where "responsive table columns" were not shown on larger screens --- app/main/controller/api/signature.php | 11 +- app/main/model/systemsignaturemodel.php | 7 +- js/app/counter.js | 47 +- js/app/datatables.loader.js | 32 +- js/app/init.js | 10 +- js/app/map/overlay.js | 2 +- js/app/map/util.js | 3 +- js/app/module_map.js | 39 +- js/app/page.js | 4 +- js/app/ui/dialog/map_info.js | 28 +- js/app/ui/form_element.js | 2 +- js/app/ui/{ => module}/connection_info.js | 9 +- js/app/ui/{ => module}/system_graph.js | 0 js/app/ui/{ => module}/system_info.js | 4 +- js/app/ui/{ => module}/system_intel.js | 26 +- js/app/ui/{ => module}/system_killboard.js | 5 +- js/app/ui/{ => module}/system_route.js | 14 +- js/app/ui/{ => module}/system_signature.js | 21 +- js/app/ui/module/system_signature_new.js | 2461 ++++++++++++++++ js/app/util.js | 274 +- public/css/v1.4.1/pathfinder.css | 8 +- public/css/v1.4.1/pathfinder.css.map | 2 +- public/js/v1.4.1/app/counter.js | 47 +- public/js/v1.4.1/app/datatables.loader.js | 32 +- public/js/v1.4.1/app/init.js | 10 +- public/js/v1.4.1/app/map/overlay.js | 2 +- public/js/v1.4.1/app/map/util.js | 3 +- public/js/v1.4.1/app/module_map.js | 39 +- public/js/v1.4.1/app/page.js | 4 +- public/js/v1.4.1/app/ui/dialog/map_info.js | 28 +- public/js/v1.4.1/app/ui/form_element.js | 2 +- .../v1.4.1/app/ui/module/connection_info.js | 1013 +++++++ .../js/v1.4.1/app/ui/module/system_graph.js | 248 ++ public/js/v1.4.1/app/ui/module/system_info.js | 419 +++ .../js/v1.4.1/app/ui/module/system_intel.js | 841 ++++++ .../v1.4.1/app/ui/module/system_killboard.js | 407 +++ .../js/v1.4.1/app/ui/module/system_route.js | 1367 +++++++++ .../v1.4.1/app/ui/module/system_signature.js | 2512 +++++++++++++++++ .../app/ui/module/system_signature_new.js | 2461 ++++++++++++++++ public/js/v1.4.1/app/util.js | 274 +- public/templates/dialog/settings.html | 4 +- public/templates/dialog/signature_reader.html | 10 +- public/templates/modules/system_info.html | 2 +- public/templates/tooltip/character_info.html | 58 +- .../templates/tooltip/character_switch.html | 22 +- sass/bootstrap/_wells.scss | 2 +- sass/layout/_animation.scss | 27 + sass/layout/_main.scss | 35 +- sass/layout/_popover.scss | 18 +- sass/layout/_system-info.scss | 21 +- .../data-tables/_dataTables-fontAwesome.scss | 3 +- .../x-editable/_bootstrap-editable.scss | 9 +- 52 files changed, 12396 insertions(+), 533 deletions(-) rename js/app/ui/{ => module}/connection_info.js (99%) rename js/app/ui/{ => module}/system_graph.js (100%) rename js/app/ui/{ => module}/system_info.js (99%) rename js/app/ui/{ => module}/system_intel.js (97%) rename js/app/ui/{ => module}/system_killboard.js (99%) rename js/app/ui/{ => module}/system_route.js (99%) rename js/app/ui/{ => module}/system_signature.js (99%) create mode 100644 js/app/ui/module/system_signature_new.js create mode 100644 public/js/v1.4.1/app/ui/module/connection_info.js create mode 100644 public/js/v1.4.1/app/ui/module/system_graph.js create mode 100644 public/js/v1.4.1/app/ui/module/system_info.js create mode 100644 public/js/v1.4.1/app/ui/module/system_intel.js create mode 100644 public/js/v1.4.1/app/ui/module/system_killboard.js create mode 100644 public/js/v1.4.1/app/ui/module/system_route.js create mode 100644 public/js/v1.4.1/app/ui/module/system_signature.js create mode 100644 public/js/v1.4.1/app/ui/module/system_signature_new.js diff --git a/app/main/controller/api/signature.php b/app/main/controller/api/signature.php index c256910c..b930e18e 100644 --- a/app/main/controller/api/signature.php +++ b/app/main/controller/api/signature.php @@ -173,20 +173,25 @@ class Signature extends Controller\AccessController { * @throws \Exception */ public function delete(\Base $f3){ - $signatureIds = $f3->get('POST.signatureIds'); + $signatureIds = array_unique(array_map('intval', (array)$f3->get('POST.signatureIds'))); $activeCharacter = $this->getCharacter(); + $return = (object) []; + $return->deletedSignatureIds = []; + /** * @var Model\SystemSignatureModel $signature */ $signature = Model\BasicModel::getNew('SystemSignatureModel'); foreach($signatureIds as $signatureId){ $signature->getById($signatureId); - $signature->delete( $activeCharacter ); + if($signature->delete($activeCharacter)){ + $return->deletedSignatureIds[] = $signatureId; + } $signature->reset(); } - echo json_encode([]); + echo json_encode($return); } } \ No newline at end of file diff --git a/app/main/model/systemsignaturemodel.php b/app/main/model/systemsignaturemodel.php index 1ea081cd..0482c746 100644 --- a/app/main/model/systemsignaturemodel.php +++ b/app/main/model/systemsignaturemodel.php @@ -218,14 +218,17 @@ class SystemSignatureModel extends AbstractMapTrackingModel { /** * delete signature * @param CharacterModel $characterModel + * @return bool */ - public function delete(CharacterModel $characterModel){ + public function delete(CharacterModel $characterModel) : bool { + $deleted = false; if( !$this->dry() ){ // check if character has access if($this->hasAccess($characterModel)){ - $this->erase(); + $deleted = $this->erase(); } } + return $deleted; } /** diff --git a/js/app/counter.js b/js/app/counter.js index f54387ca..444538d5 100644 --- a/js/app/counter.js +++ b/js/app/counter.js @@ -2,7 +2,7 @@ define([ 'jquery', 'app/init', 'app/util' -], function($, Init, Util) { +], ($, Init, Util) => { 'use strict'; let config = { @@ -16,7 +16,7 @@ define([ * @param tempDate * @param round */ - let updateDateDiff = function(element, tempDate, round){ + let updateDateDiff = (element, tempDate, round) => { let diff = Util.getTimeDiffParts(tempDate, new Date()); let days = diff.days; let hrs = diff.hours; @@ -65,17 +65,21 @@ define([ /** * destroy all active counter recursive */ - $.fn.destroyTimestampCounter = function(){ + $.fn.destroyTimestampCounter = function(recursive){ return this.each(function(){ - let parentElement = $(this); - parentElement.find('[data-counter="init"]').each(function(){ + let element = $(this); + let counterSelector = '[data-counter="init"]'; + let counterElements = element.filter(counterSelector); + if(recursive){ + counterElements = counterElements.add(element.find(counterSelector)); + } + + counterElements.each(function(){ let element = $(this); let interval = element.data('interval'); if(interval){ clearInterval(interval); - element.removeAttr('data-counter') - .removeData('interval') - .removeClass('stopCounter'); + element.removeAttr('data-counter').removeData('interval').removeClass('stopCounter'); } }); }); @@ -102,18 +106,27 @@ define([ // show element (if invisible) after first update element.css({'visibility': 'initial'}); - let refreshIntervalId = window.setInterval(function(){ + // calc ms until next second + // -> makes sure all counter update in sync no matter when init + let msUntilSecond = 1500 - new Date().getMilliseconds(); + setTimeout(function(){ + let refreshIntervalId = window.setInterval(function(){ - // update element with current time - if( !element.hasClass('stopCounter')){ - updateDateDiff(element, date, round); - }else{ - clearInterval( element.data('interval') ); - } - }, 500); + // update element with current time + if( !element.hasClass('stopCounter')){ + updateDateDiff(element, date, round); + }else{ + clearInterval( element.data('interval') ); + } + }, 500); - element.data('interval', refreshIntervalId); + element.data('interval', refreshIntervalId); + }, msUntilSecond); } }); }; + + return { + updateDateDiff: updateDateDiff + }; }); diff --git a/js/app/datatables.loader.js b/js/app/datatables.loader.js index 82f451bc..79873ffb 100644 --- a/js/app/datatables.loader.js +++ b/js/app/datatables.loader.js @@ -1,11 +1,41 @@ define([ + 'jquery', + 'app/init', 'datatables.net', 'datatables.net-buttons', 'datatables.net-buttons-html', 'datatables.net-responsive', 'datatables.net-select' -], (a, b) => { +], ($, Init) => { 'use strict'; // all Datatables stuff is available... + let initDefaultDatatablesConfig = () => { + + + + $.extend(true, $.fn.dataTable.defaults, { + pageLength: -1, + pagingType: 'simple_numbers', + lengthMenu: [[5, 10, 25, 50, -1], [5, 10, 25, 50, 'All']], + order: [], // no default order because columnDefs is empty + autoWidth: false, + responsive: { + breakpoints: Init.breakpoints, + details: false + }, + columnDefs: [], + data: [] + }); + + // global open event + $(document).on('destroy.dt', '.dataTable ', function(e, settings){ + let table = $(this); + + // remove all active counters in table + table.destroyTimestampCounter(true); + }); + }; + + initDefaultDatatablesConfig(); }); \ No newline at end of file diff --git a/js/app/init.js b/js/app/init.js index d2cb50bc..77ff3329 100644 --- a/js/app/init.js +++ b/js/app/init.js @@ -60,10 +60,12 @@ define(['jquery'], ($) => { gitHubReleases: '/api/github/releases' // ajax URL - get release info from GitHub }, breakpoints: [ - { name: 'desktop', width: Infinity }, - { name: 'tablet', width: 1200 }, - { name: 'fablet', width: 780 }, - { name: 'phone', width: 480 } + { name: 'screen-xl', width: Infinity }, + { name: 'screen-l', width: 1600 }, + { name: 'screen-m', width: 1200 }, + { name: 'screen-d', width: 1000 }, + { name: 'screen-s', width: 780 }, + { name: 'screen-xs', width: 480 } ], animationSpeed: { splashOverlay: 300, // "splash" loading overlay diff --git a/js/app/map/overlay.js b/js/app/map/overlay.js index 7a7be63b..2ce722c6 100644 --- a/js/app/map/overlay.js +++ b/js/app/map/overlay.js @@ -65,7 +65,7 @@ define([ * @param connectionsData */ let addConnectionsOverlay = (connections, connectionsData) => { - let SystemSignatures = require('app/ui/system_signature'); + let SystemSignatures = require('app/ui/module/system_signature_new'); /** * add label to endpoint diff --git a/js/app/map/util.js b/js/app/map/util.js index b5092946..6c39c260 100644 --- a/js/app/map/util.js +++ b/js/app/map/util.js @@ -367,7 +367,7 @@ define([ connection && connectionData.signatures // signature data is required... ){ - let SystemSignatures = require('app/ui/system_signature'); + let SystemSignatures = require('app/ui/module/system_signature_new'); let connectionId = connection.getParameter('connectionId'); let sourceEndpoint = connection.endpoints[0]; @@ -1426,6 +1426,7 @@ define([ /** * add a wormhole tooltip with wh specific data to elements * @param tooltipData + * @param options * @returns {*} */ $.fn.addWormholeInfoTooltip = function(tooltipData, options){ diff --git a/js/app/module_map.js b/js/app/module_map.js index 32687753..734c039d 100644 --- a/js/app/module_map.js +++ b/js/app/module_map.js @@ -5,13 +5,14 @@ define([ 'app/map/map', 'app/map/util', 'sortable', - 'app/ui/system_info', - 'app/ui/system_graph', - 'app/ui/system_signature', - 'app/ui/system_route', - 'app/ui/system_intel', - 'app/ui/system_killboard', - 'app/ui/connection_info', + 'app/ui/module/system_info', + 'app/ui/module/system_graph', + //'app/ui/module/system_signature', + 'app/ui/module/system_signature_new', + 'app/ui/module/system_route', + 'app/ui/module/system_intel', + 'app/ui/module/system_killboard', + 'app/ui/module/connection_info', 'app/counter' ], ( $, @@ -180,11 +181,12 @@ define([ * @param moduleElement * @param Module * @param callback + * @param addSpacer */ let removeModule = (moduleElement, Module, callback, addSpacer) => { if(moduleElement.length > 0){ - if(typeof Module.beforeReDraw === 'function'){ - Module.beforeReDraw(); + if(typeof Module.beforeHide === 'function'){ + Module.beforeHide(moduleElement); } moduleElement.velocity('reverse',{ @@ -336,8 +338,6 @@ define([ } }; - - return new Promise(drawModuleExecutor); }; @@ -539,23 +539,25 @@ define([ let clickY = e.pageY - posY; // check for top-left click - if(clickX <= 8 && clickY <= 8 && clickX >= 0 && clickY >= 0){ + if(clickX <= 9 && clickY <= 9 && clickX >= 0 && clickY >= 0){ // remember height - if(! moduleElement.data('origHeight')){ + if( !moduleElement.data('origHeight') ){ moduleElement.data('origHeight', moduleElement.outerHeight()); } - if(moduleElement.hasClass( config.moduleClosedClass )){ + if(moduleElement.hasClass(config.moduleClosedClass)){ let moduleHeight = moduleElement.data('origHeight'); moduleElement.velocity('finish').velocity({ height: [ moduleHeight + 'px', [ 400, 15 ] ] },{ duration: 400, easing: 'easeOutSine', - complete: function(){ - moduleElement.removeClass( config.moduleClosedClass ); + complete: function(moduleElement){ + moduleElement = $(moduleElement); + moduleElement.removeClass(config.moduleClosedClass); moduleElement.removeData('origHeight'); + moduleElement.css({height: ''}); } }); }else{ @@ -564,8 +566,9 @@ define([ },{ duration: 400, easing: 'easeOutSine', - complete: function(){ - moduleElement.addClass( config.moduleClosedClass ); + complete: function(moduleElement){ + moduleElement = $(moduleElement); + moduleElement.addClass(config.moduleClosedClass); } }); } diff --git a/js/app/page.js b/js/app/page.js index 7caf12fb..223bafaf 100644 --- a/js/app/page.js +++ b/js/app/page.js @@ -70,7 +70,7 @@ define([ dynamicElementWrapperId: 'pf-dialog-wrapper', // class for container element that holds hidden "context menus" // system signature module - systemSignatureModuleClass: 'pf-signature-table-module', // module wrapper (signatures) + systemSignatureModuleClass: 'pf-system-signature-module', // module wrapper (signatures) systemIntelModuleClass: 'pf-system-intel-module', // module wrapper (intel) }; @@ -744,7 +744,7 @@ define([ // global "modal" callback (for all modals) $('body').on('hide.bs.modal', '> .modal', function(e) { let modalElement = $(this); - modalElement.destroyTimestampCounter(); + modalElement.destroyTimestampCounter(true); // destroy all Select2 modalElement.find('.' + Util.config.select2Class) diff --git a/js/app/ui/dialog/map_info.js b/js/app/ui/dialog/map_info.js index 68841b20..dd92dc53 100644 --- a/js/app/ui/dialog/map_info.js +++ b/js/app/ui/dialog/map_info.js @@ -321,10 +321,6 @@ define([ tooltipElements.tooltip(); }); - systemTable.on('destroy.dt', function(){ - $(this).destroyTimestampCounter(); - }); - // prepare data for dataTables let systemsData = []; for(let i = 0; i < mapData.data.systems.length; i++){ @@ -470,11 +466,6 @@ define([ lengthMenu: [[5, 10, 20, 50, -1], [5, 10, 20, 50, 'All']], ordering: true, order: [[ 9, 'desc' ], [ 3, 'asc' ]], - autoWidth: false, - responsive: { - breakpoints: Init.breakpoints, - details: false - }, hover: false, data: systemsData, columnDefs: [], @@ -488,7 +479,7 @@ define([ { title: 'type', width: '25px', - className: ['min-desktop'].join(' '), + className: ['min-screen-l'].join(' '), data: 'type', render: { _: 'type', @@ -506,7 +497,7 @@ define([ },{ title: 'sec', width: '18px', - className: ['text-center', 'min-desktop'].join(' '), + className: ['text-center', 'min-screen-l'].join(' '), searchable: false, data: 'trueSec', render: { @@ -516,7 +507,7 @@ define([ },{ title: '', width: '10px', - className: ['text-center', 'min-desktop'].join(' '), + className: ['text-center', 'min-screen-l'].join(' '), searchable: false, data: 'shattered', render: { @@ -593,7 +584,7 @@ define([ title: 'updated', width: '80px', searchable: false, - className: ['text-right', config.tableCellCounterClass, 'min-desktop'].join(' '), + className: ['text-right', config.tableCellCounterClass, 'min-screen-l'].join(' '), data: 'updated', createdCell: function(cell, cellData, rowData, rowIndex, colIndex){ $(cell).initTimestampCounter(); @@ -863,11 +854,6 @@ define([ lengthMenu: [[5, 10, 20, 50, -1], [5, 10, 20, 50, 'All']], ordering: true, order: [[ 3, 'asc' ]], - autoWidth: false, - responsive: { - breakpoints: Init.breakpoints, - details: false - }, hover: false, data: usersData, language: { @@ -962,7 +948,7 @@ define([ width: 26, orderable: false, searchable: false, - className: [config.tableCellImageClass, config.tableCellImageSmallClass, 'min-desktop'].join(' '), + className: [config.tableCellImageClass, config.tableCellImageSmallClass, 'min-screen-l'].join(' '), data: 'corporation', render: { _: function(data, type, row, meta){ @@ -978,7 +964,7 @@ define([ title: 'corporation', orderable: true, searchable: true, - className: [config.tableCellActionClass, 'min-desktop'].join(' '), + className: [config.tableCellActionClass, 'min-screen-l'].join(' '), data: 'corporation', render: { _: function (data, type, row, meta) { @@ -1041,7 +1027,7 @@ define([ width: 30, orderable: true, searchable: true, - className: ['text-right', 'min-desktop'].join(' '), + className: ['text-right', 'min-screen-l'].join(' '), data: 'role', render: { _: function (data, type, row, meta) { diff --git a/js/app/ui/form_element.js b/js/app/ui/form_element.js index 23345ac5..37d9d2ab 100644 --- a/js/app/ui/form_element.js +++ b/js/app/ui/form_element.js @@ -654,7 +654,7 @@ define([ */ $.fn.initSignatureTypeSelect = function(options, hasOptGroups){ let defaultConfig = { - minimumResultsForSearch: 6, + minimumResultsForSearch: 10, width: '220px', dropdownParent: this.parents('.popover-content') }; diff --git a/js/app/ui/connection_info.js b/js/app/ui/module/connection_info.js similarity index 99% rename from js/app/ui/connection_info.js rename to js/app/ui/module/connection_info.js index 6c5999ff..feba0d52 100644 --- a/js/app/ui/connection_info.js +++ b/js/app/ui/module/connection_info.js @@ -1,5 +1,5 @@ /** - * connection info module + * Connection info module */ define([ @@ -764,7 +764,7 @@ define([ }); for(let i = 0; i < animationRows.length; i++){ - $(animationRows[i]).pulseTableRow($(animationRows[i]).data('animationStatus')); + $(animationRows[i]).pulseBackgroundColor($(animationRows[i]).data('animationStatus')); $(animationRows[i]).removeData('animationStatus'); } @@ -808,10 +808,6 @@ define([ $(cell).html(content); }); }); - - logTable.on('destroy.dt', function(){ - $(this).destroyTimestampCounter(); - }); } }; @@ -981,7 +977,6 @@ define([ * @returns {*|jQuery|HTMLElement} */ let getModule = (parentElement, mapId, connections) => { - // create new module container let moduleElement = $('
').append( $('
', { class: config.moduleHeadClass diff --git a/js/app/ui/system_graph.js b/js/app/ui/module/system_graph.js similarity index 100% rename from js/app/ui/system_graph.js rename to js/app/ui/module/system_graph.js diff --git a/js/app/ui/system_info.js b/js/app/ui/module/system_info.js similarity index 99% rename from js/app/ui/system_info.js rename to js/app/ui/module/system_info.js index 9a74e619..8fc98496 100644 --- a/js/app/ui/system_info.js +++ b/js/app/ui/module/system_info.js @@ -1,5 +1,5 @@ /** - * System info module + * System info module */ define([ @@ -156,8 +156,6 @@ define([ * @param systemData */ let getModule = (parentElement, mapId, systemData) => { - - // create new module container let moduleElement = $('
'); // store systemId -> module can be updated with the correct data diff --git a/js/app/ui/system_intel.js b/js/app/ui/module/system_intel.js similarity index 97% rename from js/app/ui/system_intel.js rename to js/app/ui/module/system_intel.js index 91ee7846..1b557f7a 100644 --- a/js/app/ui/system_intel.js +++ b/js/app/ui/module/system_intel.js @@ -1,5 +1,5 @@ /** - * system route module + * System intel module */ define([ @@ -16,6 +16,8 @@ define([ moduleName: 'systemIntel', moduleHeadClass: 'pf-module-head', // class for module header moduleHandlerClass: 'pf-module-handler-drag', // class for "drag" handler + + // system info module moduleTypeClass: 'pf-system-intel-module', // class for this module // headline toolbar @@ -398,7 +400,6 @@ define([ let getModule = (parentElement, mapId, systemData) => { let corporationId = Util.getCurrentUserInfo('corporationId'); - // create new module container let moduleElement = $('
').append( $('
', { class: config.moduleHeadClass @@ -460,7 +461,7 @@ define([ class: 'text-center', data: 'status', render: { - display: data => getStatusData(data), + display: data => getStatusData(data), sort: data => data.id }, createdCell: function(cell, cellData, rowData, rowIndex, colIndex){ @@ -542,7 +543,7 @@ define([ data: null, render: { display: data => { - let icon = ''; + let icon = ''; if(data.corporation.id !== corporationId){ icon = ''; } @@ -660,7 +661,7 @@ define([ for(let i = 0; i < animationRows.length; i++){ let animationRow = $(animationRows[i]); - animationRow.pulseTableRow(animationRow.data('animationStatus')); + animationRow.pulseBackgroundColor(animationRow.data('animationStatus')); animationRow.removeData('animationStatus'); } }, @@ -817,11 +818,24 @@ define([ }); }; + /** + * before module destroy callback + * @param moduleElement + */ + let beforeDestroy = moduleElement => { + // Destroying the data tables throws + // -> safety remove all dataTables + let structureTableElement = moduleElement.find('.' + config.systemStructuresTableClass); + let tableApi = structureTableElement.DataTable(); + tableApi.destroy(); + }; + return { config: config, getModule: getModule, initModule: initModule, - updateModule: updateModule + updateModule: updateModule, + beforeDestroy: beforeDestroy }; }); \ No newline at end of file diff --git a/js/app/ui/system_killboard.js b/js/app/ui/module/system_killboard.js similarity index 99% rename from js/app/ui/system_killboard.js rename to js/app/ui/module/system_killboard.js index e11c0605..6b2198f0 100644 --- a/js/app/ui/system_killboard.js +++ b/js/app/ui/module/system_killboard.js @@ -1,3 +1,7 @@ +/** + * System killboard module + */ + define([ 'jquery', 'app/init', @@ -378,7 +382,6 @@ define([ * @returns {jQuery} */ let getModule = (parentElement, mapId, systemData) => { - // create new module container let moduleElement = $('
').append( $('
', { class: config.moduleHeadClass diff --git a/js/app/ui/system_route.js b/js/app/ui/module/system_route.js similarity index 99% rename from js/app/ui/system_route.js rename to js/app/ui/module/system_route.js index 1ee400a7..2feb6979 100644 --- a/js/app/ui/system_route.js +++ b/js/app/ui/module/system_route.js @@ -1,5 +1,5 @@ /** - * system route module + * System route module */ define([ @@ -18,8 +18,6 @@ define([ moduleHeadClass: 'pf-module-head', // class for module header moduleHandlerClass: 'pf-module-handler-drag', // class for "drag" handler - routeCacheTTL: 5, // route cache timer (client) in seconds - // system route module moduleTypeClass: 'pf-system-route-module', // class for this module @@ -42,7 +40,9 @@ define([ dataTableRouteCellClass: 'pf-table-route-cell', // class for "route" cells dataTableJumpCellClass: 'pf-table-jump-cell', // class for "route jump" cells - rallyClass: 'pf-rally' // class for "rally point" style + rallyClass: 'pf-rally', // class for "rally point" style + + routeCacheTTL: 5 // route cache timer (client) in seconds }; // cache for system routes @@ -875,8 +875,6 @@ define([ * @returns {jQuery} */ let getModule = (parentElement, mapId, systemData) => { - - // create new module container let moduleElement = $('
').append( $('
', { class: config.moduleHeadClass @@ -921,7 +919,7 @@ define([ moduleElement.append(table); // init empty table - let routesTable = table.DataTable( { + let routesTable = table.dataTable( { paging: false, ordering: true, order: [[ 2, 'asc' ], [ 0, 'asc' ]], @@ -1137,7 +1135,7 @@ define([ for(let i = 0; i < animationRows.length; i++){ let animationRow = $(animationRows[i]); - animationRow.pulseTableRow(animationRow.data('animationStatus')); + animationRow.pulseBackgroundColor(animationRow.data('animationStatus')); animationRow.removeData('animationStatus'); } }, diff --git a/js/app/ui/system_signature.js b/js/app/ui/module/system_signature.js similarity index 99% rename from js/app/ui/system_signature.js rename to js/app/ui/module/system_signature.js index a52058f1..aae66ae9 100644 --- a/js/app/ui/system_signature.js +++ b/js/app/ui/module/system_signature.js @@ -1,5 +1,5 @@ /** - * System signature module + * System signature module */ define([ @@ -24,7 +24,7 @@ define([ moduleClass: 'pf-module', // class for each module // system signature module - moduleTypeClass: 'pf-signature-table-module', // module wrapper + moduleTypeClass: 'pf-system-signature-module', // module wrapper // headline toolbar moduleHeadlineIconClass: 'pf-module-icon-button', // class for toolbar icons in the head @@ -395,7 +395,7 @@ define([ if(changedRowElement){ // highlight - changedRowElement.pulseTableRow('changed'); + changedRowElement.pulseBackgroundColor('changed'); notificationCounter.changed++; } } @@ -439,7 +439,7 @@ define([ if(newRowElement){ // highlight - newRowElement.pulseTableRow('added'); + newRowElement.pulseBackgroundColor('added'); notificationCounter.added++; } } @@ -921,7 +921,7 @@ define([ /** * check the "delete signature" button. show/hide the button if a signature is selected - * @param moduleElement + * @param tableApi */ let checkDeleteSignaturesButton = tableApi => { let selectedRows = getSelectedRows(tableApi); @@ -1907,8 +1907,8 @@ define([ highlight: false, title: 'filter groups', value: selectedValues, - source: sourceOptions, prepend: prependOptions, + source: sourceOptions, inputclass: config.editableUnknownInputClass, display: function(value, sourceData){ // update filter button label @@ -2231,7 +2231,7 @@ define([ if(newRowElement){ // highlight - newRowElement.pulseTableRow('added'); + newRowElement.pulseBackgroundColor('added'); // prepare "add signature" table for new entry -> reset ------------------- let signatureData = formatSignatureData(systemData, [emptySignatureData], emptySignatureOptions); @@ -2429,7 +2429,6 @@ define([ * @returns {*|jQuery|HTMLElement} */ let getModule = function(parentElement, mapId, systemData){ - // create new module container let moduleElement = $('
').append( $('
', { class: config.moduleHeadClass @@ -2481,9 +2480,9 @@ define([ }; /** - * before module reDraw callback + * before module hide callback */ - let beforeReDraw = () => { + let beforeHide = () => { // disable update lockSignatureTable(); }; @@ -2504,8 +2503,8 @@ define([ config: config, getModule: getModule, initModule: initModule, - beforeReDraw: beforeReDraw, updateModule: updateModule, + beforeHide: beforeHide, beforeDestroy: beforeDestroy, getAllSignatureNamesBySystem: getAllSignatureNamesBySystem }; diff --git a/js/app/ui/module/system_signature_new.js b/js/app/ui/module/system_signature_new.js new file mode 100644 index 00000000..ef192dd4 --- /dev/null +++ b/js/app/ui/module/system_signature_new.js @@ -0,0 +1,2461 @@ +/** + * System signature module + */ + +define([ + 'jquery', + 'app/init', + 'app/util', + 'bootbox', + 'app/counter', + 'app/map/map', + 'app/map/util', + 'app/ui/form_element' +], ($, Init, Util, bootbox, Counter, Map, MapUtil, FormElement) => { + 'use strict'; + + let config = { + // module info + modulePosition: 4, + moduleName: 'systemSignature', + moduleHeadClass: 'pf-module-head', // class for module header + moduleHandlerClass: 'pf-module-handler-drag', // class for "drag" handler + + // system signature module + moduleTypeClass: 'pf-system-signature-module', // class for this module + + // headline toolbar + moduleHeadlineIconClass: 'pf-module-icon-button', // class for toolbar icons in the head + moduleHeadlineIconAddClass: 'pf-module-icon-button-add', // class for "add signature" icon + moduleHeadlineIconReaderClass: 'pf-module-icon-button-reader', // class for "signature reader" icon + moduleHeadlineIconLazyClass: 'pf-module-icon-button-lazy', // class for "lazy delete" toggle icon + moduleHeadlineProgressBarClass: 'pf-system-progress-scanned', // class for signature progress bar + + // tables + tableToolsActionClass: 'pf-table-tools-action', // class for "new signature" table (hidden) + + // table toolbar + sigTableClearButtonClass: 'pf-sig-table-clear-button', // class for "clear" signatures button + + // signature table + sigTableId: 'pf-sig-table-', // Table id prefix + sigTableClass: 'pf-sig-table', // Table class for all Signature Tables + sigTablePrimaryClass: 'pf-sig-table-primary', // class for primary sig table + sigTableSecondaryClass: 'pf-sig-table-secondary', // class for secondary sig table + sigTableRowIdPrefix: 'pf-sig-row_', // id prefix for table rows + + sigTableEditSigNameInput: 'pf-sig-table-edit-name-input', // class for editable fields (sig name) + + tableCellConnectionClass: 'pf-table-connection-cell', // class for "connection" cells + tableCellFocusClass: 'pf-table-focus-cell', // class for "tab-able" cells. enable focus() + tableCellCounterClass: 'pf-table-counter-cell', // class for "counter" cells + tableCellActionClass: 'pf-table-action-cell', // class for "action" cells + + // xEditable + editableNameInputClass: 'pf-editable-name', // class for "name" input + editableDescriptionInputClass: 'pf-editable-description', // class for "description" textarea + editableUnknownInputClass: 'pf-editable-unknown', // class for input fields (e.g. checkboxes) with "unknown" status + + signatureGroupsLabels: Util.getSignatureGroupOptions('label'), + signatureGroupsNames: Util.getSignatureGroupOptions('name') + }; + + let lockedTables = {}; // locked tables (e.g. disable cops&paste, disable table update) + + let sigNameCache = {}; // cache signature names + + let validSignatureNames = [ // allowed signature type/names + 'Cosmic Anomaly', + 'Cosmic Signature', + 'Kosmische Anomalie', + 'Kosmische Signatur', + 'Anomalie cosmique', + 'Signature cosmique', + 'Космическая аномалия', // == "Cosmic Anomaly" + 'Источники сигналов' // == "Cosmic Signature" + ]; + + let emptySignatureData = { + id: 0, + name: '', + groupId: 0, + typeId: 0 + }; + + let editableDefaults = { // xEditable default options for signature fields + url: Init.path.saveSignatureData, + dataType: 'json', + container: 'body', + highlight: false, // i use a custom implementation. xEditable uses inline styles for bg color animation -> does not work properly on datatables "sort" cols + error: function(jqXHR, newValue){ + let reason = ''; + let status = 'Error'; + if(jqXHR.statusText){ + reason = jqXHR.statusText; + }else if(jqXHR.name){ + // validation error new sig (new row data save function) + reason = jqXHR.name; + // re-open "name" fields (its a collection of fields but we need "id" field) + jqXHR.name.field.$element.editable('show'); + }else{ + reason = jqXHR.responseJSON.text; + status = jqXHR.status; + } + + Util.showNotify({title: status + ': save signature', text: reason, type: 'error'}); + $(document).setProgramStatus('problem'); + return reason; + } + }; + + /** + * get custom "metaData" from dataTables API + * @param tableApi + * @returns {*} + */ + let getTableMetaData = tableApi => { + let data = null; + if(tableApi){ + data = tableApi.init().pfMeta; + } + return data; + }; + + /** + * lock signature tableApi and lockType + * @param tableApi + * @param lockType + */ + let lockTable = (tableApi, lockType = 'update') => { + let metaData = getTableMetaData(tableApi); + if(metaData.systemId){ + if( !lockedTables.hasOwnProperty(metaData.systemId) ){ + lockedTables[metaData.systemId] = {}; + } + lockedTables[metaData.systemId][lockType] = true; + }else{ + console.warn('metaData.systemId required in lockTable()', metaData.systemId); + } + }; + + /** + * check whether a signature tableApi is locked by lockType + * @param tableApi + * @param lockType + * @returns {boolean} + */ + let isLockedTable = (tableApi, lockType = 'update') => { + let locked = false; + if(tableApi){ + let metaData = getTableMetaData(tableApi); + if(metaData.systemId){ + if( + lockedTables.hasOwnProperty(metaData.systemId) && + lockedTables[metaData.systemId].hasOwnProperty(lockType) + ){ + locked = true; + } + }else{ + console.warn('metaData.systemId required in isLockedTable()', metaData.systemId); + } + } + + return locked; + }; + + /** + * unlock signature tableApi and lockType + * @param tableApi + * @param lockType + */ + let unlockTable = (tableApi, lockType = 'update') => { + if(tableApi){ + let metaData = getTableMetaData(tableApi); + if(isLockedTable(tableApi, lockType)){ + delete lockedTables[metaData.systemId][lockType]; + } + if( + lockedTables.hasOwnProperty(metaData.systemId) && + !Object.getOwnPropertyNames(lockedTables[metaData.systemId]).length + ){ + delete lockedTables[metaData.systemId]; + } + } + }; + + /** + * get dataTable id + * @param mapId + * @param systemId + * @param tableType + * @returns {string} + */ + let getTableId = (mapId, systemId, tableType) => config.sigTableId + [mapId, systemId, tableType].join('-'); + + /** + * get a dataTableApi instance from global cache + * @param mapId + * @param systemId + * @param tableType + * @returns {*} + */ + let getDataTableInstance = (mapId, systemId, tableType) => { + let instance = null; + let table = $.fn.dataTable.tables({ visible: false, api: true }).table('#' + getTableId(mapId, systemId, tableType)); + if(table.node()){ + instance = table; + } + return instance; + }; + + /** + * Update/set tooltip for an element + * @param element + * @param title + */ + let updateTooltip = (element, title) => { + $(element).attr('data-container', 'body') + .attr('title', title.toUpperCase()) + .tooltip('fixTitle').tooltip('setContent'); + }; + + /** + * sum up all options in nested (or not nested) object of objects + * -> e.g. + * { + * first: { + * count = [4, 2, 1] + * test = { ... } + * }, + * second: { + * count = [12, 13] + * test = { ... } + * } + * } + * -> getOptionsCount('count', obj) => 5; + * @param key + * @param obj + * @returns {number} + */ + let getOptionsCount = (key, obj) => { + let sum = 0; + for(let entry of obj){ + if(entry.hasOwnProperty(key)){ + sum += entry[key].length; + }else{ + sum++; + } + } + return sum; + }; + + /** + * get possible frig holes that could spawn in a system + * filtered by "systemTypeId" + * @param systemTypeId + * @returns {{}} + */ + let getFrigateHolesBySystem = systemTypeId => { + let signatureNames = {}; + if(Init.frigateWormholes[systemTypeId]){ + signatureNames = Init.frigateWormholes[systemTypeId]; + } + return signatureNames; + }; + + /** + * get all signature types that can exist for a given system + * -> result is partially cached + * @param systemData + * @param systemTypeId + * @param areaId + * @param groupId + * @returns {Array} + */ + let getAllSignatureNames = (systemData, systemTypeId, areaId, groupId) => { + systemTypeId = parseInt(systemTypeId || 0); + areaId = parseInt(areaId || 0); + groupId = parseInt(groupId || 0); + let newSelectOptions = []; + let newSelectOptionsCount = 0; + + if(!systemTypeId || !areaId || !groupId){ + return newSelectOptions; + } + + let cacheKey = [systemTypeId, areaId, groupId].join('_'); + + // check for cached signature names + if(sigNameCache.hasOwnProperty( cacheKey )){ + // cached signatures do not include static WHs! + // -> ".slice(0)" creates copy + newSelectOptions = sigNameCache[cacheKey].slice(0); + newSelectOptionsCount = getOptionsCount('children', newSelectOptions); + }else{ + // get new Options ---------- + // get all possible "static" signature names by the selected groupId + let tempSelectOptions = Util.getAllSignatureNames(systemTypeId, areaId, groupId); + + // format options into array with objects advantages: keep order, add more options (whs), use optgroup + if(tempSelectOptions){ + let fixSelectOptions = []; + for(let key in tempSelectOptions){ + if ( + key > 0 && + tempSelectOptions.hasOwnProperty(key) + ){ + newSelectOptionsCount++; + fixSelectOptions.push({value: newSelectOptionsCount, text: tempSelectOptions[key]}); + } + } + + if(newSelectOptionsCount > 0){ + if(groupId === 5){ + // "wormhole" selected => multiple available + newSelectOptions.push({ text: 'Wandering', children: fixSelectOptions}); + }else{ + newSelectOptions = fixSelectOptions; + } + } + } + + // wormhole (cached signatures) + if( groupId === 5 ){ + + // add possible frigate holes + let frigateHoles = getFrigateHolesBySystem(areaId); + let frigateWHData = []; + for(let frigKey in frigateHoles){ + if ( + frigKey > 0 && + frigateHoles.hasOwnProperty(frigKey) + ){ + newSelectOptionsCount++; + frigateWHData.push( {value: newSelectOptionsCount, text: frigateHoles[frigKey]} ); + } + } + + if(frigateWHData.length > 0){ + newSelectOptions.push({ text: 'Frigate', children: frigateWHData}); + } + + // add possible incoming holes + let incomingWHData = []; + for(let incomingKey in Init.incomingWormholes){ + if ( + incomingKey > 0 && + Init.incomingWormholes.hasOwnProperty(incomingKey) + ){ + newSelectOptionsCount++; + incomingWHData.push( {value: newSelectOptionsCount, text: Init.incomingWormholes[incomingKey]} ); + } + } + + if(incomingWHData.length > 0){ + newSelectOptions.push({ text: 'Incoming', children: incomingWHData}); + } + }else{ + // groups without "children" (optgroup) should be sorted by "value" + // this is completely optional and not necessary! + newSelectOptions = newSelectOptions.sortBy('text'); + } + + // update cache (clone array) -> further manipulation to this array, should not be cached + sigNameCache[cacheKey] = newSelectOptions.slice(0); + } + + // static wormholes (DO NOT CACHE) (not all C2 WHs have the same statics,... + if( groupId === 5 ){ + // add static WH(s) for this system + if(systemData.statics){ + let staticWHData = []; + for(let wormholeName of systemData.statics){ + let wormholeData = Object.assign({}, Init.wormholes[wormholeName]); + let staticWHName = wormholeData.name + ' - ' + wormholeData.security; + + newSelectOptionsCount++; + staticWHData.push( {value: newSelectOptionsCount, text: staticWHName} ); + } + + if(staticWHData.length > 0){ + newSelectOptions.unshift({ text: 'Static', children: staticWHData}); + } + } + } + + return newSelectOptions; + }; + + /** + * get all signature types that can exist for a system (jQuery obj) + * @param systemElement + * @param groupId + * @returns {Array} + */ + let getAllSignatureNamesBySystem = (systemElement, groupId) => { + let systemTypeId = systemElement.data('typeId'); + let areaId = Util.getAreaIdBySecurity(systemElement.data('security')); + let systemData = {statics: systemElement.data('statics')}; + return getAllSignatureNames(systemData, systemTypeId, areaId, groupId); + }; + + /** + * get all connection select options + * @param mapId + * @param systemData + * @returns {Array} + */ + let getSignatureConnectionOptions = (mapId, systemData) => { + let map = Map.getMapInstance( mapId ); + let systemId = MapUtil.getSystemId(mapId, systemData.id); + let systemConnections = MapUtil.searchConnectionsBySystems(map, [systemId], 'wh'); + let newSelectOptions = []; + let connectionOptions = []; + + for(let systemConnection of systemConnections){ + let connectionData = MapUtil.getDataByConnection(systemConnection); + + // connectionId is required (must be stored) + if(connectionData.id){ + // check whether "source" or "target" system is relevant for this connection + // -> hint "source" === 'target' --> loop + if(systemData.id !== connectionData.target){ + let targetSystemData = MapUtil.getSystemData(mapId, connectionData.target); + if(targetSystemData){ + // take target... + connectionOptions.push({ + value: connectionData.id, + text: connectionData.targetAlias + ' - ' + targetSystemData.security + }); + } + }else if(systemData.id !== connectionData.source){ + let sourceSystemData = MapUtil.getSystemData(mapId, connectionData.source); + if(sourceSystemData){ + // take source... + connectionOptions.push({ + value: connectionData.id, + text: connectionData.sourceAlias + ' - ' + sourceSystemData.security + }); + } + } + } + } + + if(connectionOptions.length > 0){ + newSelectOptions.push({ text: 'System', children: connectionOptions}); + } + + return newSelectOptions; + }; + + /** + * show/hides a table rowElement + * @param rowElement + */ + let toggleTableRow = rowElement => { + + let toggleTableRowExecutor = (resolve, reject) => { + let cellElements = rowElement.children('td'); + let duration = 350; + // wrap each into a container (for better animation performance) + // slideUp new wrapper divs + if(rowElement.is(':visible')){ + // hide row + + // stop sig counter by adding a stopClass to each , remove padding + cellElements.addClass('stopCounter') + .velocity({ + paddingTop: [0, '4px'], + paddingBottom: [0, '4px'], + opacity: [0, 1] + },{ + duration: duration, + easing: 'linear' + }).wrapInner('
') + .children() + .css({ + 'willChange': 'height' + }).velocity('slideUp', { + duration: duration, + easing: 'linear', + complete: function(animationElements){ + // remove wrapper + $(animationElements).children().unwrap(); + + resolve({ + action: 'rowHidden', + row: rowElement + }); + } + }); + }else{ + // show row + + // remove padding on "hidden" cells for smother animation + cellElements.css({ + 'padding-top': 0, + 'padding-bottom': 0, + 'willChange': 'padding-top, padding-top, height' + }); + + // add hidden wrapper for ea + cellElements.wrapInner($('
').hide()); + + // show row for padding animation + rowElement.show(); + + cellElements.velocity({ + paddingTop: ['4px', 0], + paddingBottom: ['4px', 0] + },{ + duration: duration, + queue: false, + complete: function(){ + // animate wrapper + cellElements.children() + .css({ + 'willChange': 'height' + }).velocity('slideDown', { + duration: duration, + complete: function(animationElements){ + // remove wrapper + for(let i = 0; i < animationElements.length; i++){ + let currentWrapper = $(animationElements[i]); + if(currentWrapper.children().length > 0){ + currentWrapper.children().unwrap(); + }else{ + currentWrapper.parent().html( currentWrapper.html() ); + } + } + + resolve({ + action: 'rowShown', + row: rowElement + }); + } + }); + } + }); + } + }; + + return new Promise(toggleTableRowExecutor); + }; + + /** + * update scanned signatures progress bar + * @param tableApi + * @param options + */ + let updateScannedSignaturesBar = (tableApi, options) => { + let tableElement = tableApi.table().node(); + let moduleElement = $(tableElement).parents('.' + config.moduleTypeClass); + let progressBar = moduleElement.find('.progress-bar'); + let progressBarLabel = moduleElement.find('.progress-label-right'); + + let percent = 0; + let progressBarType = ''; + let columnGroupData = tableApi.column('group:name').data(); + let sigCount = columnGroupData.length; + let sigIncompleteCount = columnGroupData.filter((value, index) => !value).length; + + if(sigCount){ + percent = 100 - Math.round( 100 / sigCount * sigIncompleteCount ); + } + + if(percent < 30){ + progressBarType = 'progress-bar-danger' ; + }else if(percent < 100){ + progressBarType = 'progress-bar-warning'; + }else{ + progressBarType = 'progress-bar-success'; + } + + progressBarLabel.text(percent + '%'); + progressBar.removeClass().addClass('progress-bar').addClass(progressBarType); + progressBar.attr('aria-valuenow', percent); + progressBar.css({width: percent + '%'}); + + // show notifications + if(options.showNotice !== false){ + let notification = (sigCount - sigIncompleteCount) + ' / ' + sigCount + ' (' + percent + '%) signatures scanned'; + + if(percent < 100){ + Util.showNotify({title: 'Unscanned signatures', text: notification, type: 'info'}); + }else{ + Util.showNotify({title: 'System is scanned', text: notification, type: 'success'}); + } + } + }; + + /** + * open "signature reader" dialog for signature table + * @param systemData + */ + $.fn.showSignatureReaderDialog = function(systemData){ + let moduleElement = $(this); + + requirejs(['text!templates/dialog/signature_reader.html', 'mustache'], (template, Mustache) => { + let signatureReaderDialog = bootbox.dialog({ + title: 'Signature reader', + message: Mustache.render(template, {}), + buttons: { + close: { + label: 'cancel', + className: 'btn-default' + }, + success: { + label: ' update signatures', + className: 'btn-success', + callback: function (){ + let form = this.find('form'); + let formData = form.getFormValues(); + let signatureOptions = { + deleteOld: (formData.deleteOld) ? 1 : 0 + }; + updateSignatureTableByClipboard(moduleElement, systemData, formData.clipboard, signatureOptions); + } + } + } + }); + + // dialog shown event + signatureReaderDialog.on('shown.bs.modal', function(e){ + signatureReaderDialog.initTooltips(); + + // set focus on sig-input textarea + signatureReaderDialog.find('textarea').focus(); + }); + }); + }; + + /** + * parses a copy&paste string from ingame scanning window + * @param systemData + * @param clipboard + * @returns {Array} + */ + let parseSignatureString = (systemData, clipboard) => { + let signatureData = []; + + if(clipboard.length){ + let signatureRows = clipboard.split(/\r\n|\r|\n/g); + let signatureGroupOptions = config.signatureGroupsNames; + let invalidSignatures = 0; + + for(let i = 0; i < signatureRows.length; i++){ + let rowData = signatureRows[i].split(/\t/g); + if(rowData.length === 6){ + // check if sig Type = anomaly or combat site + if(validSignatureNames.indexOf( rowData[1] ) !== -1){ + + let sigGroup = $.trim(rowData[2]).toLowerCase(); + let sigDescription = $.trim(rowData[3]); + let sigGroupId = 0; + let typeId = 0; + + // get groupId by groupName + for(let groupOption of signatureGroupOptions){ + let reg = new RegExp(groupOption.text, 'i'); + if(reg.test(sigGroup)){ + sigGroupId = groupOption.value; + break; + } + } + + // wormhole type cant be extracted from signature string -> skip function call + if(sigGroupId !== 5){ + // try to get "typeId" by description string + typeId = Util.getSignatureTypeIdByName(systemData, sigGroupId, sigDescription); + + // set signature name as "description" if signature matching failed + sigDescription = (typeId === 0) ? sigDescription : ''; + }else{ + sigDescription = ''; + } + + // map array values to signature Object + let signatureObj = { + systemId: systemData.id, + name: $.trim( rowData[0] ).toLowerCase(), + groupId: sigGroupId, + typeId: typeId, + description: sigDescription + }; + + signatureData.push(signatureObj); + }else{ + invalidSignatures++; + } + } + } + + if(invalidSignatures > 0){ + let notification = invalidSignatures + ' / ' + signatureRows.length + ' signatures invalid'; + Util.showNotify({title: 'Invalid signature(s)', text: notification, type: 'warning'}); + } + } + + return signatureData; + }; + + /** + * updates the signature table with all signatures pasted into the "signature reader" dialog + * -> Hint: copy&paste signature data (without any open dialog) will add signatures as well + * @param tableApi + * @param systemData + * @param clipboard data stream + * @param options + */ + let updateSignatureTableByClipboard = (tableApi, systemData, clipboard, options) => { + if(isLockedTable(tableApi, 'clipboard')) return; + + let saveSignatureData = signatureData => { + // lock update function until request is finished + lockTable(tableApi); + + // lock copy during request (prevent spamming (ctrl + c ) + lockTable(tableApi, 'clipboard'); + + let requestData = { + signatures: signatureData, + deleteOld: (options.deleteOld) ? 1 : 0, + systemId: parseInt(systemData.id) + }; + + $.ajax({ + type: 'POST', + url: Init.path.saveSignatureData, + data: requestData, + dataType: 'json', + context: { + tableApi: tableApi + } + }).done(function(responseData){ + // unlock table for update + unlockTable(this.tableApi); + // updates table with new/updated signature information + updateSignatureTable(this.tableApi, responseData.signatures, false); + }).fail(function( jqXHR, status, error){ + let reason = status + ' ' + error; + Util.showNotify({title: jqXHR.status + ': Update signatures', text: reason, type: 'warning'}); + $(document).setProgramStatus('problem'); + }).always(function(){ + unlockTable(this.tableApi); + unlockTable(this.tableApi, 'clipboard'); + }); + }; + + // parse input stream + let signatureData = parseSignatureString(systemData, clipboard); + if(signatureData.length > 0){ + // valid signature data parsed + + // check if signatures will be added to a system where character is currently in + // if user is not in any system -> id === undefined -> no "confirmation required + let currentLocationData = Util.getCurrentLocationData(); + if( + currentLocationData.id && + currentLocationData.id !== systemData.id + ){ + + let systemNameStr = (systemData.name === systemData.alias) ? '"' + systemData.name + '"' : '"' + systemData.alias + '" (' + systemData.name + ')'; + systemNameStr = '' + systemNameStr + ''; + + let msg = 'Update signatures in ' + systemNameStr + ' ? This not your current location, "' + currentLocationData.name + '" !'; + bootbox.confirm(msg, function(result){ + if(result){ + saveSignatureData(signatureData); + } + }); + }else{ + // current system selected -> no "confirmation" required + saveSignatureData(signatureData); + } + } + }; + + /** + * deletes signature rows from signature table + * @param tableApi + * @param rows + */ + let deleteSignatures = (tableApi, rows) => { + // get unique id array from rows -> in case there are 2 rows with same id -> you never know + let signatureIds = [...new Set(rows.data().toArray().map(rowData => rowData.id))]; + + let requestData = { + signatureIds: signatureIds + }; + + $.ajax({ + type: 'POST', + url: Init.path.deleteSignatureData, + data: requestData, + dataType: 'json', + context: { + tableApi: tableApi + } + }).done(function(responseData){ + // promises for all delete rows + let promisesToggleRow = []; + // get deleted rows -> match with response data + let rows = this.tableApi.rows((idx, rowData, node) => responseData.deletedSignatureIds.includes(rowData.id)); + // toggle hide animation for rows one by one... + rows.every(function(rowIdx, tableLoop, rowLoop){ + let row = this; + let rowElement = row.nodes().to$(); + + rowElement.pulseBackgroundColor('deleted'); + + promisesToggleRow.push(toggleTableRow(rowElement)); + }); + + // ... all hide animations done ... + Promise.all(promisesToggleRow).then(payloads => { + // ... get deleted (hide animation done) and delete them + this.tableApi.rows(payloads.map(payload => payload.row)).remove().draw(); + + // update signature bar + updateScannedSignaturesBar(this.tableApi, {showNotice: false}); + + // update connection conflicts + checkConnectionConflicts(); + + let notificationOptions = { + type: 'success' + }; + if(payloads.length === 1){ + notificationOptions.title = 'Signature deleted'; + }else{ + notificationOptions.title = payloads.length + ' Signatures deleted '; + } + Util.showNotify(notificationOptions); + }); + }).fail(function( jqXHR, status, error){ + let reason = status + ' ' + error; + Util.showNotify({title: jqXHR.status + ': Delete signature', text: reason, type: 'warning'}); + $(document).setProgramStatus('problem'); + }); + }; + + /** + * updates a single cell with new data (e.g. "updated" cell) + * @param tableApi + * @param rowIndex + * @param columnSelector + * @param data + */ + let updateSignatureCell = (tableApi, rowIndex, columnSelector, data) => { + tableApi.cell(rowIndex, columnSelector).data(data); + }; + + /** + * check connectionIds for conflicts (multiple signatures -> same connection) + * -> show "conflict" icon next to select + */ + let checkConnectionConflicts = () => { + setTimeout(() => { + let connectionSelects = $('.' + config.tableCellConnectionClass + '.editable'); + let connectionIds = []; + let duplicateConnectionIds = []; + let groupedSelects = []; + + connectionSelects.each(function(){ + let select = $(this); + let value = parseInt(select.editable('getValue', true) )|| 0; + + if( + connectionIds.indexOf(value) > -1 && + duplicateConnectionIds.indexOf(value) === -1 + ){ + // duplicate found + duplicateConnectionIds.push(value); + } + + if(groupedSelects[value] !== undefined){ + groupedSelects[value].push(select[0]); + }else{ + groupedSelects[value] = [select[0]]; + } + + connectionIds.push(value); + }); + + // update "conflict" icon next to select label for connectionIds + connectionSelects.each(function(){ + let select = $(this); + let value = parseInt(select.editable('getValue', true) )|| 0; + let conflictIcon = select.find('.fa-exclamation-triangle'); + if( + duplicateConnectionIds.indexOf(value) > -1 && + groupedSelects[value].indexOf(select[0]) > -1 + ){ + conflictIcon.removeClass('hide'); + }else{ + conflictIcon.addClass('hide'); + } + }); + }, 200); + }; + + /** + * get group label by groupId + * @param groupId + * @returns {string} + */ + let getGroupLabelById = (groupId) => { + let options = config.signatureGroupsLabels.filter(option => option.value === groupId); + return options.length ? options[0].text : ''; + }; + + /** + * helper function - get cell by columnSelector from same row as cell + * @param tableApi + * @param cell + * @param columnSelector + * @returns {*} + */ + let getNeighboringCell = (tableApi, cell, columnSelector) => { + return tableApi.cell(tableApi.row(cell).index(), columnSelector); + }; + + /** + * get next cell by columnSelector + * @param tableApi + * @param cell + * @param columnSelectors + * @returns {*} + */ + let searchNextCell = (tableApi, cell, columnSelectors) => { + if(columnSelectors.length){ + // copy selectors -> .shift() modifies the orig array, important! + columnSelectors = columnSelectors.slice(0); + let nextCell = getNeighboringCell(tableApi, cell, columnSelectors.shift()); + let nextCellElement = nextCell.nodes().to$(); + if( nextCellElement.data('editable') ){ + // cell is xEditable field -> skip "disabled" OR check value + let nextCellValue = nextCellElement.editable('getValue', true); + if( + [0, null].includes(nextCellValue) && + !nextCellElement.data('editable').options.disabled + ){ + // xEditable value is empty + return nextCell; + }else{ + // search next cell + return searchNextCell(tableApi, cell, columnSelectors); + } + }else if( nextCell.index().column === tableApi.column(-1).index() ){ + // NO xEditable cell BUT last column (=> action cell) -> OK + return nextCell; + }else{ + console.error('No cell found for activation!'); + } + }else{ + // return origin cell + return tableApi.cell(cell); + } + }; + + /** + * make cell active -> focus() + show xEditable + * @param cell + */ + let activateCell = (cell) => { + let cellElement = cell.nodes().to$(); + // NO xEditable + cellElement.focus(); + + if( cellElement.data('editable') ){ + // cell is xEditable field -> show xEditable form + cellElement.editable('show'); + } + }; + + /** + * search neighboring cell (same row) and set "active" -> show editable + * @param tableApi + * @param cell + * @param columnSelectors + */ + let activateNextCell = (tableApi, cell, columnSelectors) => { + let nextCell = searchNextCell(tableApi, cell, columnSelectors); + activateCell(nextCell); + let test; + }; + + /** + * helper function - set 'save' observer for xEditable cell + * -> show "neighboring" xEditable field + * @param tableApi + * @param cell + * @param columnSelectorsAjax - used for Ajax save (edit signature) + * @param columnSelectorsDry - used for dry save (new signature) + */ + let editableOnSave = (tableApi, cell, columnSelectorsAjax = [], columnSelectorsDry = []) => { + $(cell).on('save', function(e, params){ + if(params.response){ + // send by Ajax + activateNextCell(tableApi, cell, columnSelectorsAjax); + }else{ + // dry save - no request + activateNextCell(tableApi, cell, columnSelectorsDry); + } + }); + }; + + /** + * helper function - set 'hidden' observer for xEditable cell + * -> set focus() on xEditable field + * @param tableApi + * @param cell + */ + let editableOnHidden = (tableApi, cell) => { + $(cell).on('hidden', function(e, reason){ + // re-focus element on close (keyboard navigation) + // 'save' event handles default focus (e.g. open new xEditable) + // 'hide' handles all the rest (experimental) + if(reason !== 'save'){ + this.focus(); + } + }); + }; + + /** + * helper function - set 'shown' observer for xEditable type cell + * -> enable Select2 for xEditable form + * @param cell + */ + let editableGroupOnShown = cell => { + $(cell).on('shown', function(e, editable){ + let inputField = editable.input.$input; + inputField.addClass('pf-select2').initSignatureGroupSelect(); + }); + }; + + /** + * helper function - set 'save' observer for xEditable group cell + * -> update scanned signature bar + * @param tableApi + * @param cell + */ + let editableGroupOnSave = (tableApi, cell) => { + $(cell).on('save', function(e, params){ + if(params.response){ + // send by Ajax + updateScannedSignaturesBar(tableApi, {showNotice: true}); + } + }); + }; + + /** + * helper function - set 'init' observer for xEditable type cell + * -> disable xEditable field if no options available + * @param cell + */ + let editableTypeOnInit = cell => { + $(cell).on('init', function(e, editable){ + if(!editable.options.source().length){ + editableDisable($(this)); + } + }); + }; + + /** + * helper function - set 'shown' observer for xEditable type cell + * -> enable Select2 for xEditable form + * @param cell + */ + let editableTypeOnShown = cell => { + $(cell).on('shown', function(e, editable){ + // destroy possible open popovers (e.g. wormhole types) + $(this).destroyPopover(true); + + let inputField = editable.input.$input; + let hasOptGroups = inputField.has('optgroup').length > 0; + inputField.addClass('pf-select2').initSignatureTypeSelect({}, hasOptGroups); + }); + }; + + /** + * helper function - set 'shown' observer for xEditable description cell + * -> change height for "new signature" table wrapper + * @param cell + */ + let editableDescriptionOnShown = cell => { + $(cell).on('shown', function(e, editable){ + $(this).parents('.' + config.tableToolsActionClass).css( 'height', '+=35px' ); + }); + }; + + /** + * helper function - set 'hidden' observer for xEditable description cell + * -> change height for "new signature" table wrapper + * @param cell + */ + let editableDescriptionOnHidden = cell => { + $(cell).on('hidden', function(e, editable){ + $(this).parents('.' + config.tableToolsActionClass).css( 'height', '-=35px' ); + }); + }; + + /** + * helper function - set 'init' observer for xEditable connection cell + * -> set focus() on xEditable field + * @param cell + */ + let editableConnectionOnInit = cell => { + $(cell).on('init', function(e, editable){ + if(editable.value > 0){ + // empty connection selects ON INIT don´t make a difference for conflicts + checkConnectionConflicts(); + } + }); + }; + + /** + * helper function - set 'shown' observer for xEditable connection cell + * -> enable Select2 for xEditable form + * @param cell + */ + let editableConnectionOnShown = cell => { + $(cell).on('shown', function(e, editable){ + let inputField = editable.input.$input; + inputField.addClass('pf-select2').initSignatureConnectionSelect(); + }); + }; + + /** + * helper function - set 'save' observer for xEditable connection cell + * -> check connection conflicts + * @param cell + */ + let editableConnectionOnSave = cell => { + $(cell).on('save', function(e, params){ + checkConnectionConflicts(); + }); + }; + + /** + * enable xEditable element + * @param element + */ + let editableEnable = element => { + element.editable('enable'); + // (re)-enable focus on element by tabbing, xEditable removes "tabindex" on 'disable' + element.attr('tabindex', 0); + }; + + /** + * disable xEditable element + * @param element + */ + let editableDisable = element => { + element.editable('disable'); + // xEditable sets 'tabindex = -1' + }; + + /** + * get dataTables default options for signature tables + * @param mapId + * @param systemData + * @returns {{}} + */ + let getSignatureDataTableDefaults = (mapId, systemData) => { + + /** + * add map/system specific data for each editable field in the sig-table + * @param params + * @returns {*} + */ + let modifyFieldParamsOnSend = params => { + params.systemId = systemData.id; + return params; + }; + + let dataTableDefaults = { + pfMeta: { + 'mapId': mapId, + 'systemId': systemData.id + }, + order: [1, 'asc'], + rowId: rowData => config.sigTableRowIdPrefix + rowData.id, + language: { + emptyTable: 'No signatures added', + info: 'Showing _START_ to _END_ of _TOTAL_ signatures', + infoEmpty: 'Showing 0 to 0 of 0 signatures', + infoFiltered: '( from _MAX_ total)', + lengthMenu: 'Show _MENU_', + zeroRecords: 'No signatures recorded' + }, + columnDefs: [ + { + targets: 0, + name: 'status', + orderable: true, + searchable: false, + title: '', + width: 2, + class: ['text-center'].join(' '), + data: 'updated', + type: 'html', + render: { + _: (cellData, type, rowData, meta) => { + let value = ''; + if(cellData && cellData.character){ + value = Util.getStatusInfoForCharacter(cellData.character, 'class'); + } + + if(type === 'display'){ + value = ''; + } + return value; + } + } + },{ + targets: 1, + name: 'id', + orderable: true, + searchable: true, + title: 'id', + type: 'string', + width: 15, + class: [config.tableCellFocusClass, config.sigTableEditSigNameInput].join(' '), + data: 'name', + createdCell: function(cell, cellData, rowData, rowIndex, colIndex){ + let tableApi = this.api(); + + updateTooltip(cell, cellData); + + editableOnSave(tableApi, cell, [], ['group:name', 'type:name', 'action:name']); + editableOnHidden(tableApi, cell); + + $(cell).editable($.extend({ + mode: 'popup', + type: 'text', + title: 'signature id', + name: 'name', + pk: rowData.id || null, + emptytext: '? ? ?', + value: cellData, + inputclass: config.editableNameInputClass, + display: function(value){ + // change display value to first 3 letters + $(this).text($.trim( value.substr(0, 3) ).toLowerCase()); + }, + validate: function(value){ + let msg = false; + if($.trim(value).length < 3){ + msg = 'Id is less than min of "3"'; + }else if($.trim(value).length > 10){ + msg = 'Id is more than max of "10"'; + } + + if(msg){ + return {newValue: value, msg: msg, field: this}; + } + }, + params: modifyFieldParamsOnSend, + success: function(response, newValue){ + tableApi.cell(cell).data(newValue); + + $(this).pulseBackgroundColor('changed'); + updateTooltip(cell, newValue); + + if(response){ + let newRowData = response.signatures[0]; + updateSignatureCell(tableApi, rowIndex, 'status:name', newRowData.updated); + updateSignatureCell(tableApi, rowIndex, 'updated:name', newRowData.updated.updated); + } + tableApi.draw(); + } + }, editableDefaults)); + } + },{ + targets: 2, + name: 'group', + orderable: true, + searchable: true, + title: 'group', + type: 'string', // required for sort/filter because initial data type is numeric + width: 40, + class: [config.tableCellFocusClass].join(' '), + data: 'groupId', + render: { + sort: getGroupLabelById, + filter: getGroupLabelById + }, + createdCell: function(cell, cellData, rowData, rowIndex, colIndex){ + let tableApi = this.api(); + + editableOnSave(tableApi, cell, ['type:name'], ['type:name', 'action:name']); + editableOnHidden(tableApi, cell); + editableGroupOnShown(cell); + editableGroupOnSave(tableApi, cell); + + $(cell).editable($.extend({ + mode: 'popup', + type: 'select', + title: 'group', + name: 'groupId', + pk: rowData.id || null, + emptytext: 'unknown', + onblur: 'submit', + showbuttons: false, + value: cellData, + prepend: [{value: 0, text: ''}], + params: modifyFieldParamsOnSend, + source: config.signatureGroupsLabels, + display: function(value, sourceData){ + let selected = $.fn.editableutils.itemsByValue(value, sourceData); + if(selected.length && selected[0].value > 0){ + $(this).html(selected[0].text); + }else{ + $(this).empty(); + } + }, + validate: function(value){ + // convert string to int -> important for further processing + // -> on submit record (new signature) validate() is called and no error should be returned + // value should already be integer + if( !Number.isInteger(value) ){ + return {newValue: parseInt(value) || 0, msg: null}; + } + }, + success: function(response, newValue){ + tableApi.cell(cell).data(newValue); + + $(this).pulseBackgroundColor('changed'); + + if(response){ + let newRowData = response.signatures[0]; + updateSignatureCell(tableApi, rowIndex, 'status:name', newRowData.updated); + updateSignatureCell(tableApi, rowIndex, 'updated:name', newRowData.updated.updated); + } + tableApi.draw(); + + // find related "type" select (same row) and change options + let signatureTypeCell = getNeighboringCell(tableApi, cell, 'type:name'); + let signatureTypeField = signatureTypeCell.nodes().to$(); + + let typeOptions = getAllSignatureNames( + systemData, + systemData.type.id, + Util.getAreaIdBySecurity(systemData.security), + newValue + ); + signatureTypeField.editable('option', 'source', typeOptions); + + if( + newValue > 0 && + typeOptions.length > 0 + ){ + editableEnable(signatureTypeField); + }else{ + editableDisable(signatureTypeField); + } + signatureTypeCell.data(0); + signatureTypeField.editable('setValue', 0); + + + // find "connection" select (same row) and change "enabled" flag + let signatureConnectionCell = getNeighboringCell(tableApi, cell, 'connection:name'); + let signatureConnectionField = signatureConnectionCell.nodes().to$(); + + if(newValue === 5){ + // wormhole + editableEnable(signatureConnectionField); + }else{ + checkConnectionConflicts(); + editableDisable(signatureConnectionField); + } + signatureConnectionCell.data(0); + signatureConnectionField.editable('setValue', 0); + } + }, editableDefaults)); + } + },{ + targets: 3, + name: 'type', + orderable: false, + searchable: false, + title: 'type', + type: 'string', // required for sort/filter because initial data type is numeric + width: 180, + class: [config.tableCellFocusClass].join(' '), + data: 'typeId', + createdCell: function(cell, cellData, rowData, rowIndex, colIndex){ + let tableApi = this.api(); + + editableOnSave(tableApi, cell, ['connection:name'], ['action:name']); + editableOnHidden(tableApi, cell); + editableTypeOnInit(cell); + editableTypeOnShown(cell); + + $(cell).editable($.extend({ + mode: 'popup', + type: 'select', + title: 'type', + name: 'typeId', + pk: rowData.id || null, + emptytext: 'unknown', + onblur: 'submit', + showbuttons: false, + disabled: rowData.groupId <= 0, // initial disabled if groupId not set + value: cellData, + prepend: [{value: 0, text: ''}], + params: modifyFieldParamsOnSend, + source: function(){ + // get current row data (important!) + // -> "rowData" param is not current state, values are "on createCell()" state + let rowData = tableApi.row($(cell).parents('tr')).data(); + + let typeOptions = getAllSignatureNames( + systemData, + systemData.type.id, + Util.getAreaIdBySecurity(systemData.security), + rowData.groupId + ); + return typeOptions; + }, + display: function(value, sourceData){ + let selected = $.fn.editableutils.itemsByValue(value, sourceData); + if(selected.length && selected[0].value > 0){ + $(this).html(FormElement.formatSignatureTypeSelectionData({text: selected[0].text})); + }else{ + $(this).empty(); + } + }, + validate: function(value){ + // convert string to int -> important for further processing + // -> on submit record (new signature) validate() is called and no error should be returned + // value should already be integer + if( !Number.isInteger(value) ){ + return {newValue: parseInt(value) || 0, msg: null}; + } + }, + success: function(response, newValue){ + tableApi.cell(cell).data(newValue); + + $(this).pulseBackgroundColor('changed'); + + if(response){ + let newRowData = response.signatures[0]; + updateSignatureCell(tableApi, rowIndex, 'status:name', newRowData.updated); + updateSignatureCell(tableApi, rowIndex, 'updated:name', newRowData.updated.updated); + } + tableApi.draw(); + } + }, editableDefaults)); + } + },{ + targets: 4, + name: 'description', + orderable: false, + searchable: false, + title: 'description', + class: [config.tableCellFocusClass, config.tableCellActionClass].join(' '), + type: 'html', + data: 'description', + defaultContent: '', + createdCell: function(cell, cellData, rowData, rowIndex, colIndex){ + let tableApi = this.api(); + + editableOnSave(tableApi, cell, [], ['action:name']); + editableOnHidden(tableApi, cell); + editableDescriptionOnShown(cell); + editableDescriptionOnHidden(cell); + + $(cell).editable($.extend({ + mode: 'inline', + type: 'textarea', + title: 'description', + name: 'description', + pk: rowData.id || null, + emptytext: '', + onblur: 'submit', + showbuttons: false, + inputclass: config.editableDescriptionInputClass, + emptyclass: config.moduleHeadlineIconClass, + params: modifyFieldParamsOnSend, + success: function(response, newValue){ + tableApi.cell(cell).data(newValue); + + $(this).pulseBackgroundColor('changed'); + + if(response){ + let newRowData = response.signatures[0]; + updateSignatureCell(tableApi, rowIndex, 'status:name', newRowData.updated); + updateSignatureCell(tableApi, rowIndex, 'updated:name', newRowData.updated.updated); + } + tableApi.draw(); + } + }, editableDefaults)); + } + },{ + targets: 5, + name: 'connection', + orderable: false, + searchable: false, + title: 'leads to', + type: 'string', // required for sort/filter because initial data type is numeric + className: [config.tableCellFocusClass, config.tableCellConnectionClass].join(' '), + width: 80, + data: 'connection.id', + defaultContent: 0, + createdCell: function(cell, cellData, rowData, rowIndex, colIndex){ + let tableApi = this.api(); + + editableOnSave(tableApi, cell, [], ['action:name']); + editableOnHidden(tableApi, cell); + editableConnectionOnInit(cell); + editableConnectionOnShown(cell); + editableConnectionOnSave(cell); + + $(cell).editable($.extend({ + mode: 'popup', + type: 'select', + title: 'system', + name: 'connectionId', + pk: rowData.id || null, + emptytext: 'unknown', + onblur: 'submit', + showbuttons: false, + disabled: rowData.groupId !== 5, // initial disabled if NON wh + value: cellData, + prepend: [{value: 0, text: ''}], + params: modifyFieldParamsOnSend, + source: function(){ + let activeMap = Util.getMapModule().getActiveMap(); + let mapId = activeMap.data('id'); + let connectionOptions = getSignatureConnectionOptions(mapId, systemData); + return connectionOptions; + }, + display: function(value, sourceData){ + let selected = $.fn.editableutils.itemsByValue(value, sourceData); + if(selected.length && selected[0].value > 0){ + let errorIcon = ' '; + $(this).html(FormElement.formatSignatureConnectionSelectionData({text: selected[0].text})).prepend(errorIcon); + }else{ + $(this).empty() ; + } + }, + validate: function(value, b, c){ + // convert string to int -> important for further processing + // -> on submit record (new signature) validate() is called and no error should be returned + // value should already be integer + if( !Number.isInteger(value) ){ + return {newValue: parseInt(value) || 0, msg: null}; + } + }, + success: function(response, newValue){ + tableApi.cell(cell).data(newValue); + + $(this).pulseBackgroundColor('changed'); + + if(response){ + let newRowData = response.signatures[0]; + updateSignatureCell(tableApi, rowIndex, 'status:name', newRowData.updated); + updateSignatureCell(tableApi, rowIndex, 'updated:name', newRowData.updated.updated); + } + tableApi.draw(); + } + }, editableDefaults)); + } + },{ + targets: 6, + name: 'created', + title: 'created', + searchable: false, + width: 80, + className: ['text-right', config.tableCellCounterClass, 'min-screen-d'].join(' '), + data: 'created.created', + defaultContent: '' + },{ + targets: 7, + name: 'updated', + title: 'updated', + searchable: false, + width: 80, + className: ['text-right', config.tableCellCounterClass, 'min-screen-d'].join(' '), + data: 'updated.updated', + defaultContent: '', + createdCell: function(cell, cellData, rowData, rowIndex, colIndex){ + // highlight cell + let diff = Math.floor((new Date()).getTime()) - cellData * 1000; + + // age > 1 day + if( diff > 86400000){ + $(cell).addClass('txt-color txt-color-warning'); + } + } + },{ + targets: 8, + name: 'info', + title: '', + orderable: false, + searchable: false, + width: 10, + class: ['text-center', Util.config.helpClass , Util.config.popoverTriggerClass].join(' '), + data: 'created.created', + defaultContent: '', + render: { + display: (cellData, type, rowData, meta) => { + if(cellData){ + return ''; + } + } + } + },{ + targets: 9, + name: 'action', + title: '', + orderable: false, + searchable: false, + width: 10, + class: ['text-center', config.tableCellFocusClass, config.tableCellActionClass].join(' '), + data: null, + render: { + display: (cellData, type, rowData, meta) => { + let val = ''; + if(rowData.id){ + val = ''; + } + return val; + } + }, + createdCell: function(cell, cellData, rowData, rowIndex, colIndex){ + let tableApi = this.api(); + + if(rowData.id){ + // delete signature ----------------------------------------------------------------------- + let confirmationSettings = { + container: 'body', + placement: 'left', + btnCancelClass: 'btn btn-sm btn-default', + btnCancelLabel: 'cancel', + btnCancelIcon: 'fas fa-fw fa-ban', + title: 'delete signature', + btnOkClass: 'btn btn-sm btn-danger', + btnOkLabel: 'delete', + btnOkIcon: 'fas fa-fw fa-times', + onConfirm: function(e, target){ + // top scroll to top + e.preventDefault(); + + let deleteRowElement = $(target).parents('tr'); + let row = tableApi.rows(deleteRowElement); + deleteSignatures(tableApi, row); + } + }; + + $(cell).confirmation(confirmationSettings); + }else{ + // add new signature ---------------------------------------------------------------------- + $(cell).on('click', {tableApi: tableApi, rowIndex: rowIndex}, function(e){ + e.stopPropagation(); + e.preventDefault(); + + let secondaryTableApi = e.data.tableApi; + let metaData = getTableMetaData(secondaryTableApi); + let primaryTableApi = getDataTableInstance(metaData.mapId, metaData.systemId, 'primary'); + + let formFields = secondaryTableApi.row(e.data.rowIndex).nodes().to$().find('.editable'); + + // the "hide" makes sure to take care about open editable fields (e.g. description) + // otherwise, changes would not be submitted in this field (not necessary) + formFields.editable('hide'); + + // submit all xEditable fields + formFields.editable('submit', { + url: Init.path.saveSignatureData, + ajaxOptions: { + dataType: 'json', //assuming json response + beforeSend: function(xhr, settings){ + lockTable(primaryTableApi); + }, + context: { + primaryTableApi: primaryTableApi, + secondaryTableApi: secondaryTableApi, + } + }, + data: { + systemId: metaData.systemId, // additional data to submit + pk: 0 // new data no primary key + }, + error: editableDefaults.error, // user default xEditable error function + success: function(data, editableConfig){ + let context = editableConfig.ajaxOptions.context; + let primaryTableApi = context.primaryTableApi; + let secondaryTableApi = context.secondaryTableApi; + + unlockTable(primaryTableApi); + + let signatureData = data.signatures[0]; + let row = addSignatureRow(primaryTableApi, signatureData); + if(row){ + primaryTableApi.draw(); + // highlight + row.nodes().to$().pulseBackgroundColor('added'); + + // prepare "add signature" table for new entry -> reset ------------------- + secondaryTableApi.clear().row.add($.extend(true, {}, emptySignatureData)).draw(); + + Util.showNotify({ + title: 'Signature added', + text: 'Name: ' + signatureData.name, + type: 'success' + }); + + // update signature bar + updateScannedSignaturesBar(primaryTableApi, {showNotice: true}); + } + } + }); + }); + } + } + } + ], + createdRow: function(row, data, dataIndex){ + // enable tabbing for interactive cells + let focusCells = $(row).find('.' + config.tableCellFocusClass + ':not(.editable-disabled)').attr('tabindex', 0); + // enable "return" key -> click() + focusCells.on('keydown', function(e){ + e.stopPropagation(); + if(e.which === 13){ + $(this).trigger('click'); + } + }); + } + }; + + return dataTableDefaults; + }; + + /** + * draw signature table toolbar (add signature button, scan progress bar + * @param moduleElement + * @param mapId + * @param systemData + */ + let drawSignatureTableNew = (moduleElement, mapId, systemData) => { + let secondaryTableContainer = $('
', { + class: config.tableToolsActionClass + }); + + // create "empty table for new signature + let table = $('', { + id: getTableId(mapId, systemData.id, 'secondary'), + class: ['stripe', 'row-border', 'compact', 'nowrap', config.sigTableClass, config.sigTableSecondaryClass].join(' ') + }); + + secondaryTableContainer.append(table); + + moduleElement.find('.' + config.moduleHeadClass).after(secondaryTableContainer); + + let dataTableOptions = { + paging: false, + info: false, + searching: false, + tabIndex: -1, + data: [$.extend(true, {}, emptySignatureData)] + }; + + $.extend(true, dataTableOptions, getSignatureDataTableDefaults(mapId, systemData)); + + let tableApi = table.DataTable(dataTableOptions); + + // "Responsive" dataTables plugin did not load automatic (because table is invisible onInit) + // -> manually start "Responsive" extension -> see default dataTable setting for config e.g. breakpoints + new $.fn.dataTable.Responsive(tableApi); + }; + + /** + * filter table "group" column + * @param tableApi + * @param newValue + * @param sourceOptions + */ + let searchGroupColumn = (tableApi, newValue, sourceOptions) => { + let column = tableApi.column('group:name'); + let pattern = ''; + + if(newValue.length <= sourceOptions.length){ + // all options selected + "prepend" option + let selected = $.fn.editableutils.itemsByValue(newValue, sourceOptions); + + pattern = selected.map(option => option.value !== 0 ? $.fn.dataTable.util.escapeRegex(option.text) : '^$').join('|'); + } + column.search(pattern, true, false).draw(); + }; + + /** + * init table filter button "group" column + * @param tableApi + */ + let initGroupFilterButton = tableApi => { + let characterId = Util.getCurrentCharacterId(); + + let promiseStore = MapUtil.getLocaleData('character', Util.getCurrentCharacterId()); + promiseStore.then(data => { + let filterButton = tableApi.button('tableTools', 'filterGroup:name').node(); + let prependOptions = [{value: 0, text: 'unknown'}]; + let sourceOptions = config.signatureGroupsLabels; + let selectedValues = []; + + if(data && data.filterSignatureGroups && data.filterSignatureGroups.length){ + // select local stored values + selectedValues = data.filterSignatureGroups; + }else{ + // no default group filter options -> show all + selectedValues = sourceOptions.map(option => option.value); + selectedValues.unshift(0); + } + + filterButton.editable({ + mode: 'popup', + container: 'body', + type: 'checklist', + showbuttons: false, + onblur: 'submit', + highlight: false, + title: 'filter groups', + value: selectedValues, + prepend: prependOptions, + source: sourceOptions, + inputclass: config.editableUnknownInputClass, + display: function(value, sourceData){ + // update filter button label + let html = 'group'; + let allSelected = value.length >= sourceData.length; + if( !allSelected ){ + html += ' (' + value.length + ')'; + } + $(this).toggleClass('active', !allSelected).html(html); + }, + validate: function(value){ + // convert string to int -> important for further processing + return {newValue: value.map(num => parseInt(num)), msg: null}; + } + }); + + let allOptions = prependOptions.concat(sourceOptions); + + filterButton.on('save', {tableApi: tableApi, sourceOptions: allOptions}, function(e, params){ + // store values local -> IndexDB + MapUtil.storeLocaleCharacterData('filterSignatureGroups', params.newValue); + + searchGroupColumn(e.data.tableApi, params.newValue, e.data.sourceOptions); + }); + + // set initial search string -> even if table ist currently empty + searchGroupColumn(tableApi, selectedValues, allOptions); + }); + }; + + /** + * draw empty signature table + * @param moduleElement + * @param mapId + * @param systemData + */ + let drawSignatureTable = (moduleElement, mapId, systemData) => { + let table = $('
', { + id: getTableId(mapId, systemData.id, 'primary'), + class: ['display', 'compact', 'nowrap', config.sigTableClass, config.sigTablePrimaryClass].join(' ') + }); + + moduleElement.append(table); + + let dataTableOptions = { + tabIndex: -1, + dom: '<"row"<"col-xs-3"l><"col-xs-5"B><"col-xs-4"f>>' + + '<"row"<"col-xs-12"tr>>' + + '<"row"<"col-xs-5"i><"col-xs-7"p>>', + buttons: { + name: 'tableTools', + buttons: [ + { + name: 'filterGroup', + className: config.moduleHeadlineIconClass, + text: '' // set by js (xEditable) + }, + { + name: 'selectAll', + className: config.moduleHeadlineIconClass, + text: 'select all', + action: function(e, tableApi, node, conf){ + let allRows = tableApi.rows(); + let selectedRows = getSelectedRows(tableApi); + let allRowElements = allRows.nodes().to$(); + + if(allRows.data().length === selectedRows.data().length){ + allRowElements.removeClass('selected'); + }else{ + allRowElements.addClass('selected'); + } + + // check delete button + checkDeleteSignaturesButton(tableApi); + } + }, + { + name: 'delete', + className: [config.moduleHeadlineIconClass, config.sigTableClearButtonClass].join(' '), + text: 'delete (0)', + action: function(e, tableApi, node, conf){ + let selectedRows = getSelectedRows(tableApi); + bootbox.confirm('Delete ' + selectedRows.data().length + ' signature?', function(result){ + if(result){ + deleteSignatures(tableApi, selectedRows); + } + }); + } + } + ] + }, + initComplete: function (settings, json){ + let tableApi = this.api(); + + initGroupFilterButton(tableApi); + + // init update counter for timestamp columns + // mark as init + this.attr('data-counter', 'init'); + let refreshIntervalId = window.setInterval(() => { + tableApi.cells(null, ['created:name', 'updated:name']).every(function(rowIndex, colIndex, tableLoopCount, cellLoopCount){ + let cell = this; + let node = cell.node(); + let data = cell.data(); + if(data && Number.isInteger(data) && !node.classList.contains('stopCounter')){ + // timestamp expected int > 0 + let date = new Date(data * 1000); + Counter.updateDateDiff( cell.nodes().to$(), date); + } + }); + }, 500); + this.data('interval', refreshIntervalId); + } + }; + + $.extend(true, dataTableOptions, getSignatureDataTableDefaults(mapId, systemData)); + + let tableApi = table.DataTable(dataTableOptions); + + // "Responsive" dataTables plugin did not load automatic (because table is invisible onInit) + // -> manually start "Responsive" extension -> see default dataTable setting for config e.g. breakpoints + new $.fn.dataTable.Responsive(tableApi); + + // lock table until module is fully rendered + lockTable(tableApi); + }; + + /** + * open xEditable input field in "new Signature" table + * @param moduleElement + */ + let focusNewSignatureEditableField = moduleElement => { + moduleElement.find('.' + config.sigTableSecondaryClass) + .find('td.' + config.sigTableEditSigNameInput).editable('show'); + }; + + /** + * get all selected rows of a table + * @param tableApi + * @returns {*} + */ + let getSelectedRows = tableApi => { + return tableApi.rows('.selected'); + }; + + /** + * check the "delete signature" button. show/hide the button if a signature is selected + * @param tableApi + */ + let checkDeleteSignaturesButton = tableApi => { + let selectedRows = getSelectedRows(tableApi); + let selectedRowCount = selectedRows.data().length; + let clearButton = tableApi.button('tableTools', 'delete:name').node(); + + if(selectedRowCount > 0){ + let allRows = tableApi.rows(); + let rowCount = allRows.data().length; + + let countText = selectedRowCount; + if(selectedRowCount >= rowCount){ + countText = 'all'; + } + clearButton.find('i+span').text(countText); + + // update clear signatures button text + clearButton.velocity('stop'); + + if( clearButton.is(':hidden') ){ + // show button + clearButton.velocity('transition.expandIn', { + duration: 100 + }); + }else{ + // highlight button + clearButton.velocity('callout.pulse', { + duration: 200 + }); + } + }else{ + // hide button + clearButton.velocity('transition.expandOut', { + duration: 100 + }); + } + }; + + /** + * set module observer and look for relevant signature data to update + * @param moduleElement + * @param mapId + * @param systemData + */ + let setModuleObserver = (moduleElement, mapId, systemData) => { + let primaryTable = moduleElement.find('.' + config.sigTablePrimaryClass); + let primaryTableApi = getDataTableInstance(mapId, systemData.id, 'primary'); + + // add signature toggle --------------------------------------------------------------------------------------- + let toggleAddSignature = (show = 'auto') => { + let button = moduleElement.find('.' + config.moduleHeadlineIconAddClass); + let toolsElement = moduleElement.find('.' + config.tableToolsActionClass); + button.toggleClass('active', show === 'auto' ? undefined : show); + + if(toolsElement.is(':visible') && (!show || show === 'auto')){ + // hide container + toolsElement.velocity('stop').velocity({ + opacity: [0, 1], + height: [0, '70px'] + },{ + duration: 150, + display: 'none' + }); + }else if(!toolsElement.is(':visible') && (show || show === 'auto')){ + // show container + toolsElement.velocity('stop').velocity({ + opacity: [1, 0], + height: ['70px', 0] + },{ + duration: 150, + display: 'block', + complete: function(){ + focusNewSignatureEditableField(moduleElement); + } + }); + }else if(toolsElement.is(':visible') && show){ + // still visible -> no animation + focusNewSignatureEditableField(moduleElement); + } + }; + + moduleElement.find('.' + config.moduleHeadlineIconAddClass).on('click', function(e){ + toggleAddSignature('auto'); + }); + + moduleElement.on('pf:showSystemSignatureModuleAddNew', function(e){ + toggleAddSignature(true); + }); + + // signature reader dialog ------------------------------------------------------------------------------------ + moduleElement.find('.' + config.moduleHeadlineIconReaderClass).on('click', function(e){ + moduleElement.showSignatureReaderDialog(systemData); + }); + + // "lazy update" toggle --------------------------------------------------------------------------------------- + moduleElement.find('.' + config.moduleHeadlineIconLazyClass).on('click', function(e){ + let button = $(this); + button.toggleClass('active'); + }); + + // set multi row select --------------------------------------------------------------------------------------- + primaryTable.on('mousedown', 'td', {tableApi: primaryTableApi}, function(e){ + if(e.ctrlKey){ + e.preventDefault(); + e.stopPropagation(); + // xEditable field should not open -> on 'click' + // -> therefore disable "pointer-events" on "td" for some ms -> 'click' event is not triggered + $(this).css('pointer-events', 'none'); + $(e.target.parentNode).toggleClass('selected'); + + // check delete button + checkDeleteSignaturesButton(e.data.tableApi); + + setTimeout(() => { + $(this).css('pointer-events', 'auto'); + }, 250); + } + }); + + // draw event for signature table ----------------------------------------------------------------------------- + primaryTableApi.on('draw.dt', function(e, settings){ + // check delete button + let tableApi = $(this).dataTable().api(); + checkDeleteSignaturesButton(tableApi); + }); + + // event listener for global "paste" signatures into the page ------------------------------------------------- + moduleElement.on('pf:updateSystemSignatureModuleByClipboard', {tableApi: primaryTableApi}, function(e, clipboard){ + let signatureOptions = { + deleteOld: moduleElement.find('.' + config.moduleHeadlineIconLazyClass).hasClass('active') ? 1 : 0 + }; + updateSignatureTableByClipboard(e.data.tableApi, systemData, clipboard, signatureOptions); + }); + + // signature column - "type" popover -------------------------------------------------------------------------- + moduleElement.find('.' + config.sigTableClass).hoverIntent({ + over: function(e){ + let staticWormholeElement = $(this); + let wormholeName = staticWormholeElement.attr('data-name'); + let wormholeData = Util.getObjVal(Init, 'wormholes.' + wormholeName); + if(wormholeData){ + staticWormholeElement.addWormholeInfoTooltip(wormholeData, { + trigger: 'manual', + placement: 'top', + show: true + }); + } + }, + out: function(e){ + $(this).destroyPopover(); + }, + selector: '.editable-click:not(.editable-open) span[class^="pf-system-sec-"]' + }); + + // signature column - "info" popover -------------------------------------------------------------------------- + moduleElement.find('.' + config.sigTablePrimaryClass).hoverIntent({ + over: function(e){ + let cellElement = $(this); + let rowData = primaryTableApi.row(cellElement.parents('tr')).data(); + cellElement.addCharacterInfoTooltip(rowData, { + trigger: 'manual', + placement: 'top', + show: true + }); + }, + out: function(e){ + $(this).destroyPopover(); + }, + selector: 'td.' + Util.config.helpClass + }); + }; + + /** + * add new row to signature table + * @param tableApi + * @param signatureData + * @returns {*} + */ + let addSignatureRow = (tableApi, signatureData) => { + let row = null; + if(tableApi){ + row = tableApi.row.add(signatureData); + } + return row; + }; + + /** + * update signature table with new signatures + * -> add/update/delete rows + * @param tableApi + * @param signaturesDataOrig + * @param deleteOutdatedSignatures + */ + let updateSignatureTable = (tableApi, signaturesDataOrig, deleteOutdatedSignatures = false) => { + if(isLockedTable(tableApi)) return; + + // disable tableApi until update finished; + lockTable(tableApi); + + // clone signature array because of further manipulation + let signaturesData = $.extend([], signaturesDataOrig); + + let rowIdsExist = []; + + let promisesAdded = []; + let promisesChanged = []; + let promisesDeleted = []; + + let allRows = tableApi.rows(); + let updateEmptyTable = !allRows.any(); + + let rowUpdate = function(rowIndex, colIndex, tableLoopCount, cellLoopCount){ + let cell = this; + let node = cell.nodes().to$(); + if(node.data('editable')){ + // xEditable is active -> should always be active! + // set new value even if no change -> e.g. render selected Ids as text labels + let oldValue = node.editable('getValue', true); + node.editable('setValue', cell.data()); + + if(oldValue !== cell.data()){ + // highlight cell on data change + node.pulseBackgroundColor('changed'); + } + }else if(node.hasClass(config.tableCellCounterClass)){ + // "updated" timestamp always changed + node.pulseBackgroundColor('changed'); + } + }; + + // update signatures ------------------------------------------------------------------------------------------ + allRows.every(function(rowIdx, tableLoop, rowLoop){ + let row = this; + let rowData = row.data(); + let rowElement = row.nodes().to$(); + + for(let i = 0; i < signaturesData.length; i++){ + if(signaturesData[i].id === rowData.id){ + let rowId = row.id(true); + + // check if row was updated + if(signaturesData[i].updated.updated > rowData.updated.updated){ + // set new row data -> draw() is executed after all changes made + row.data(signaturesData[i]); + + // bind new signature dataTable data() -> to xEditable inputs + row.cells(row.id(true), ['id:name', 'group:name', 'type:name', 'description:name', 'connection:name', 'updated:name']) + .every(rowUpdate); + + promisesChanged.push(new Promise((resolve, reject) => { + resolve({action: 'changed', rowId: rowId}); + })); + } + + rowIdsExist.push(rowId); + + // remove signature data -> all left signatures will be added + signaturesData.splice(i, 1); + i--; + } + } + }); + + // delete signatures ------------------------------------------------------------------------------------------ + if(deleteOutdatedSignatures){ + let rows = tableApi.rows((rowIdx, rowData, node) => !rowIdsExist.includes('#' + config.sigTableRowIdPrefix + rowData.id)); + rows.every(function(rowIdx, tableLoop, rowLoop){ + let row = this; + let rowId = row.id(true); + let rowElement = row.nodes().to$(); + + // hide open editable fields on the row before removing them + rowElement.find('.editable').editable('destroy'); + + // destroy possible open popovers (e.g. wormhole types, update popover) + rowElement.destroyPopover(true); + + rowElement.pulseBackgroundColor('deleted'); + + promisesDeleted.push(new Promise((resolve, reject) => { + toggleTableRow(rowElement).then(payload => resolve({action: 'deleted', rowIdx: rowId})); + })); + }).remove(); + } + + // add new signatures ----------------------------------------------------------------------------------------- + for(let signatureData of signaturesData){ + let row = addSignatureRow(tableApi, signatureData); + let rowId = row.id(true); + let rowElement = row.nodes().to$(); + rowElement.pulseBackgroundColor('added'); + + promisesAdded.push(new Promise((resolve, reject) => { + resolve({action: 'added', rowId: rowId}); + })); + } + + // done ------------------------------------------------------------------------------------------------------- + Promise.all(promisesAdded.concat(promisesChanged, promisesDeleted)).then(payloads => { + if(payloads.length){ + // table data changed -> draw() table changes + tableApi.draw(); + + if(!updateEmptyTable){ + // no notifications if table was empty just progressbar notification is needed + // sum payloads by "action" + let notificationCounter = payloads.reduce((acc, payload) => { + if(!acc[payload.action]){ + acc[payload.action] = 0; + } + acc[payload.action]++; + return acc; + }, {}); + + let notification = ''; + if(notificationCounter.added > 0){ + notification += notificationCounter.added + ' added
'; + } + if(notificationCounter.changed > 0){ + notification += notificationCounter.changed + ' updated
'; + } + if(notificationCounter.deleted > 0){ + notification += notificationCounter.deleted + ' deleted
'; + } + if(notification.length){ + Util.showNotify({title: 'Signatures updated', text: notification, type: 'success'}); + } + } + + updateScannedSignaturesBar(tableApi, {showNotice: true}); + } + + // unlock table + unlockTable(tableApi); + }); + }; + + /** + * update trigger function for this module + * compare data and update module + * @param moduleElement + * @param systemData + */ + let updateModule = (moduleElement, systemData) => { + + if(systemData.signatures){ + let mapId = moduleElement.data('mapId'); + let systemId = moduleElement.data('systemId'); + let tableApi = getDataTableInstance(mapId, systemId, 'primary'); + updateSignatureTable(tableApi, systemData.signatures, true); + } + + moduleElement.hideLoadingAnimation(); + }; + + /** + * init callback + * @param moduleElement + * @param mapId + * @param systemData + */ + let initModule = (moduleElement, mapId, systemData) => { + let tableApi = getDataTableInstance(mapId, systemData.id, 'primary'); + unlockTable(tableApi); + }; + + /** + * get module toolbar element + * @returns {jQuery} + */ + let getHeadlineToolbar = () => { + let headlineToolbar = $('
', { + class: 'pull-right' + }).append( + $('', { + class: 'progress-label-right', + text: '0%' + }), + $('', { + class: ['fas', 'fa-fw', 'fa-plus', config.moduleHeadlineIconClass, config.moduleHeadlineIconAddClass].join(' '), + title: 'add' + }).attr('data-toggle', 'tooltip'), + $('', { + class: ['fas', 'fa-fw', 'fa-paste', config.moduleHeadlineIconClass, config.moduleHeadlineIconReaderClass].join(' '), + title: 'signature reader' + }).attr('data-toggle', 'tooltip'), + $('', { + class: ['fas', 'fa-fw', 'fa-exchange-alt', config.moduleHeadlineIconClass, config.moduleHeadlineIconLazyClass].join(' '), + title: 'lazy \'delete\' signatures' + }).attr('data-toggle', 'tooltip') + ); + + headlineToolbar.find('[data-toggle="tooltip"]').tooltip({ + container: 'body' + }); + + return headlineToolbar; + }; + + /** + * get module element + * @param parentElement + * @param mapId + * @param systemData + * @returns {jQuery} + */ + let getModule = (parentElement, mapId, systemData) => { + let moduleElement = $('
').append( + $('
', { + class: config.moduleHeadClass + }).append( + $('
', { + class: config.moduleHandlerClass + }), + $('
', { + text: 'Signatures' + }), + getHeadlineToolbar() + ) + ); + + // scanned signatures progress bar ---------------------------------------------------------------------------- + requirejs(['text!templates/form/progress.html', 'mustache'], (template, Mustache) => { + let data = { + label: true, + wrapperClass: config.moduleHeadlineProgressBarClass, + class: ['progress-bar-success'].join(' '), + percent: 0 + }; + moduleElement.find('.' + config.moduleHeadClass).append(Mustache.render(template, data)); + }); + + moduleElement.data('mapId', mapId); + moduleElement.data('systemId', systemData.id); + + moduleElement.showLoadingAnimation(); + + // draw "new signature" add table + drawSignatureTableNew(moduleElement, mapId, systemData); + + // draw signature table + drawSignatureTable(moduleElement, mapId, systemData); + + // set module observer + setModuleObserver(moduleElement, mapId, systemData); + + return moduleElement; + }; + + /** + * before module hide callback + * @param moduleElement + */ + let beforeHide = moduleElement => { + // disable update + let mapId = moduleElement.data('mapId'); + let systemId = moduleElement.data('systemId'); + let tableApi = getDataTableInstance(mapId, systemId, 'primary'); + lockTable(tableApi); + }; + + /** + * before module destroy callback + * @param moduleElement + */ + let beforeDestroy = moduleElement => { + // Destroying the data tables throws + // -> safety remove all dataTables + let mapId = moduleElement.data('mapId'); + let systemId = moduleElement.data('systemId'); + let primaryTableApi = getDataTableInstance(mapId, systemId, 'primary'); + let secondaryTableApi = getDataTableInstance(mapId, systemId, 'secondary'); + primaryTableApi.destroy(); + secondaryTableApi.destroy(); + }; + + return { + config: config, + getModule: getModule, + initModule: initModule, + updateModule: updateModule, + beforeHide: beforeHide, + beforeDestroy: beforeDestroy, + getAllSignatureNamesBySystem: getAllSignatureNamesBySystem + }; +}); \ No newline at end of file diff --git a/js/app/util.js b/js/app/util.js index 8ec89d08..bf7b7242 100644 --- a/js/app/util.js +++ b/js/app/util.js @@ -33,7 +33,6 @@ define([ // head headMapTrackingId: 'pf-head-map-tracking', // id for "map tracking" toggle (checkbox) - headCharacterSwitchId: 'pf-head-character-switch', // id for "character switch" popover headCurrentLocationId: 'pf-head-current-location', // id for "show current location" element // menu @@ -66,10 +65,12 @@ define([ // animation animationPulseSuccessClass: 'pf-animation-pulse-success', // animation class animationPulseWarningClass: 'pf-animation-pulse-warning', // animation class + animationPulseDangerClass: 'pf-animation-pulse-danger', // animation class // popover - popoverSmallClass: 'pf-popover-small', // class for "small" popover popoverTriggerClass: 'pf-popover-trigger', // class for "popover" trigger elements + popoverSmallClass: 'pf-popover-small', // class for small "popover" + popoverCharacterClass: 'pf-popover-character', // class for character "popover" // help helpDefaultClass: 'pf-help-default', // class for "help" tooltip elements @@ -231,7 +232,7 @@ define([ }else{ callback(responseData.img); } - }).fail(function( jqXHR, status, error) { + }).fail(function( jqXHR, status, error){ let reason = status + ' ' + error; showNotify({title: jqXHR.status + ': getCaptchaImage', text: reason, type: 'error'}); }); @@ -424,7 +425,7 @@ define([ let width = element.offsetWidth; let height = element.offsetHeight; - while(element.offsetParent) { + while(element.offsetParent){ element = element.offsetParent; top += element.offsetTop; left += element.offsetLeft; @@ -494,7 +495,7 @@ define([ * @returns {*} */ $.fn.destroyTooltip = function(recursive){ - return this.each(function() { + return this.each(function(){ let element = $(this); let tooltipSelector = '[title]'; let tooltipElements = element.filter(tooltipSelector); @@ -502,18 +503,20 @@ define([ tooltipElements = tooltipElements.add(element.find(tooltipSelector)); } - tooltipElements.each(function() { + tooltipElements.each(function(){ $(this).tooltip('destroy'); }); }); }; /** - * adds a popup tooltip with character information (created/updated) + * add a popup tooltip with character information (created/updated) * @param tooltipData + * @param options + * @returns {*} */ - $.fn.addCharacterInfoTooltip = function(tooltipData){ - let element = $(this); + $.fn.addCharacterInfoTooltip = function(tooltipData, options){ + let data = {}; if( tooltipData.created.character && @@ -522,59 +525,60 @@ define([ let createdData = tooltipData.created; let updatedData = tooltipData.updated; - // check if data has changed - if( - element.data('created') !== createdData.created || - element.data('updated') !== updatedData.updated - ){ - // data changed - // set new data for next check - element.data('created', createdData.created); - element.data('updated', updatedData.updated); + let statusCreatedClass = getStatusInfoForCharacter(createdData.character, 'class'); + let statusUpdatedClass = getStatusInfoForCharacter(updatedData.character, 'class'); - let statusCreatedClass = getStatusInfoForCharacter(createdData.character, 'class'); - let statusUpdatedClass = getStatusInfoForCharacter(updatedData.character, 'class'); + // convert timestamps + let dateCreated = new Date(createdData.created * 1000); + let dateUpdated = new Date(updatedData.updated * 1000); + let dateCreatedUTC = convertDateToUTC(dateCreated); + let dateUpdatedUTC = convertDateToUTC(dateUpdated); - // convert timestamps - let dateCreated = new Date(createdData.created * 1000); - let dateUpdated = new Date(updatedData.updated * 1000); - let dateCreatedUTC = convertDateToUTC(dateCreated); - let dateUpdatedUTC = convertDateToUTC(dateUpdated); - - let data = { - created: createdData, - updated: updatedData, - createdTime: convertDateToString(dateCreatedUTC), - updatedTime: convertDateToString(dateUpdatedUTC), - createdStatusClass: statusCreatedClass, - updatedStatusClass: statusUpdatedClass - }; - - requirejs(['text!templates/tooltip/character_info.html', 'mustache'], function(template, Mustache) { - let content = Mustache.render(template, data); - - element.popover({ - placement: 'top', - html: true, - trigger: 'hover', - content: '', - container: 'body', - title: 'Created / Updated', - delay: { - show: 250, - hide: 0 - } - }); - - // set new popover content - let popover = element.data('bs.popover'); - popover.options.content = content; - }); - - } + data = { + popoverClass: config.popoverCharacterClass, + ccpImageServerUrl: Init.url.ccpImageServer, + created: createdData, + updated: updatedData, + createdTime: convertDateToString(dateCreatedUTC), + updatedTime: convertDateToString(dateUpdatedUTC), + createdStatusClass: statusCreatedClass, + updatedStatusClass: statusUpdatedClass + }; } - return element; + let defaultOptions = { + placement: 'top', + html: true, + trigger: 'hover', + container: 'body', + title: 'Created / Updated', + delay: { + show: 150, + hide: 0 + } + }; + + options = $.extend({}, defaultOptions, options); + + return this.each(function(){ + let element = $(this); + + requirejs(['text!templates/tooltip/character_info.html', 'mustache'], (template, Mustache) => { + let content = Mustache.render(template, data); + + element.popover(options); + + // set new popover content + let popover = element.data('bs.popover'); + popover.options.content = content; + + if(options.show){ + element.popover('show'); + } + + }); + + }); }; /** @@ -585,10 +589,10 @@ define([ let elements = $(this); let eventNamespace = 'hideCharacterPopup'; - requirejs(['text!templates/tooltip/character_switch.html', 'mustache'], function (template, Mustache) { + requirejs(['text!templates/tooltip/character_switch.html', 'mustache'], function (template, Mustache){ let data = { - id: config.headCharacterSwitchId, + popoverClass: config.popoverCharacterClass, browserTabId: getBrowserTabId(), routes: Init.routes, userData: userData, @@ -608,7 +612,7 @@ define([ let content = Mustache.render(template, data); - return elements.each(function() { + return elements.each(function(){ let element = $(this); // check if popover already exists -> remove it @@ -616,7 +620,7 @@ define([ element.off('click').popover('destroy'); } - element.on('click', function(e) { + element.on('click', function(e){ e.preventDefault(); e.stopPropagation(); @@ -631,7 +635,7 @@ define([ if(popoverData === undefined){ - button.on('shown.bs.popover', function (e) { + button.on('shown.bs.popover', function (e){ let tmpPopupElement = $(this).data('bs.popover').tip(); tmpPopupElement.find('.btn').on('click', function(e){ // close popover @@ -662,7 +666,7 @@ define([ // character switch detected $('body').data('characterSwitch', true); // ... and remove "characterSwitch" data again! after "unload" - setTimeout(function() { + setTimeout(function(){ $('body').removeData('characterSwitch'); }, 500); }); @@ -690,7 +694,7 @@ define([ * @returns {*} */ $.fn.destroyPopover = function(recursive){ - return this.each(function() { + return this.each(function(){ let element = $(this); let popoverSelector = '.' + config.popoverTriggerClass; let popoverElements = element.filter(popoverSelector); @@ -698,7 +702,7 @@ define([ popoverElements = popoverElements.add(element.find(popoverSelector)); } - popoverElements.each(function() { + popoverElements.each(function(){ let popoverElement = $(this); if(popoverElement.data('bs.popover')){ popoverElement.popover('destroy'); @@ -713,9 +717,9 @@ define([ * @returns {*} */ $.fn.initPopoverClose = function(eventNamespace){ - return this.each(function() { - $('body').off('click.' + eventNamespace).on('click.' + eventNamespace + ' contextmenu', function (e) { - $('.' + config.popoverTriggerClass).each(function () { + return this.each(function(){ + $('body').off('click.' + eventNamespace).on('click.' + eventNamespace + ' contextmenu', function (e){ + $('.' + config.popoverTriggerClass).each(function (){ let popoverElement = $(this); //the 'is' for buttons that trigger popups //the 'has' for icons within a button that triggers a popup @@ -743,7 +747,7 @@ define([ * @returns {*} */ $.fn.setPopoverSmall = function(){ - return this.each(function() { + return this.each(function(){ let element = $(this); let popover = element.data('bs.popover'); if(popover){ @@ -760,7 +764,7 @@ define([ $.fn.showMessage = function(config){ let containerElement = $(this); - requirejs(['text!templates/form/message.html', 'mustache'], function(template, Mustache) { + requirejs(['text!templates/form/message.html', 'mustache'], function(template, Mustache){ let messageTypeClass = 'alert-danger'; let messageTextClass = 'txt-color-danger'; @@ -809,7 +813,7 @@ define([ * add/remove css class for keyframe animation * @returns {any|JQuery|*} */ - $.fn.pulseTableRow = function(status, clear){ + $.fn.pulseBackgroundColor = function(status, clear){ let animationClass = ''; switch(status){ @@ -819,9 +823,12 @@ define([ case 'changed': animationClass = config.animationPulseWarningClass; break; + case 'deleted': + animationClass = config.animationPulseDangerClass; + break; } - let clearTimer = function(element) { + let clearTimer = element => { element.removeClass( animationClass ); let currentTimer = element.data('animationTimer'); @@ -841,7 +848,7 @@ define([ } if(clear !== true){ - element.addClass( animationClass ); + element.addClass(animationClass); let timer = setTimeout(clearTimer, 1500, element); element.data('animationTimer', timer); animationTimerCache[timer] = true; @@ -902,14 +909,14 @@ define([ const prepareSafeListener = (listener, passive) => { if (!passive) return listener; - return function (e) { + return function (e){ e.preventDefault = () => {}; return listener.call(this, e); }; }; const overwriteAddEvent = (superMethod) => { - EventTarget.prototype.addEventListener = function (type, listener, options) { // jshint ignore:line + EventTarget.prototype.addEventListener = function (type, listener, options){ // jshint ignore:line const usesListenerOptions = typeof options === 'object'; const useCapture = usesListenerOptions ? options.capture : options; @@ -927,20 +934,20 @@ define([ try { const opts = Object.defineProperty({}, 'passive', { - get() { + get(){ supported = true; } }); window.addEventListener('test', null, opts); window.removeEventListener('test', null, opts); - } catch (e) {} + } catch (e){} return supported; }; let supportsPassive = eventListenerOptionsSupported (); - if (supportsPassive) { + if (supportsPassive){ const addEvent = EventTarget.prototype.addEventListener; // jshint ignore:line overwriteAddEvent(addEvent); } @@ -953,8 +960,8 @@ define([ // Array diff // [1,2,3,4,5,6].diff( [3,4,5] ); // => [1, 2, 6] - Array.prototype.diff = function(a) { - return this.filter(function(i) {return a.indexOf(i) < 0;}); + Array.prototype.diff = function(a){ + return this.filter(function(i){return a.indexOf(i) < 0;}); }; /** @@ -962,7 +969,7 @@ define([ * @param p * @returns {Array.} */ - Array.prototype.sortBy = function(p) { + Array.prototype.sortBy = function(p){ return this.slice(0).sort((a,b) => { return (a[p] > b[p]) ? 1 : (a[p] < b[p]) ? -1 : 0; }); @@ -972,10 +979,10 @@ define([ * get hash from string * @returns {number} */ - String.prototype.hashCode = function() { + String.prototype.hashCode = function(){ let hash = 0, i, chr; if (this.length === 0) return hash; - for (i = 0; i < this.length; i++) { + for (i = 0; i < this.length; i++){ chr = this.charCodeAt(i); hash = ((hash << 5) - hash) + chr; hash |= 0; // Convert to 32bit integer @@ -1094,6 +1101,12 @@ define([ if(resultsWrapper){ resultsWrapper.mCustomScrollbar('destroy'); } + + // select2 sets :focus to the select2 field. This is bad! + // we want to keep the focus where it is (e.g. signature table cell) + // the only way to prevent this is to remove the element + // https://stackoverflow.com/questions/17995057/prevent-select2-from-autmatically-focussing-its-search-input-when-dropdown-is-op + $(this).parents('.editableform').find(this).next().find('.select2-selection').remove(); }); }; @@ -1262,7 +1275,7 @@ define([ // line breaks are 2 characters! let newLines = value.match(/(\r\n|\n|\r)/g); let addition = 0; - if (newLines != null) { + if(newLines != null){ addition = newLines.length; } inputLength += addition; @@ -1300,7 +1313,7 @@ define([ * stop browser tab title "blinking" */ let stopTabBlink = function(){ - requirejs(['notification'], function(Notification) { + requirejs(['notification'], function(Notification){ Notification.stopTabBlink(); }); }; @@ -1388,7 +1401,7 @@ define([ */ let ajaxSetup = () => { $.ajaxSetup({ - beforeSend: function(jqXHR, settings) { + beforeSend: function(jqXHR, settings){ // store request URL for later use (e.g. in error messages) jqXHR.url = location.protocol + '//' + location.host + settings.url; @@ -1579,11 +1592,13 @@ define([ }; /** - * get Area ID by security string + * get areaId by security string + * areaId is required as a key for signature names + * if areaId is 0, no signature data is available for this system * @param security * @returns {number} */ - let getAreaIdBySecurity = (security) => { + let getAreaIdBySecurity = security => { let areaId = 0; switch(security){ case 'H': @@ -1646,7 +1661,6 @@ define([ * @returns {string} */ let getStatusInfoForCharacter = (characterData, option) => { - let statusInfo = ''; // character status can not be checked if there are no reference data @@ -1898,20 +1912,17 @@ define([ /** * get signature group information * @param option - * @returns {{}} + * @returns {Array} */ - let getSignatureGroupInfo = function(option){ - - let groupInfo = {}; - - for (let prop in Init.signatureGroups) { - if(Init.signatureGroups.hasOwnProperty(prop)){ - prop = parseInt(prop); - groupInfo[prop] = Init.signatureGroups[prop][option]; - } + let getSignatureGroupOptions = option => { + let options = []; + for(let [key, data] of Object.entries(Init.signatureGroups)){ + options.push({ + value: parseInt(key), + text: data[option] + }); } - - return groupInfo; + return options; }; /** @@ -1943,28 +1954,22 @@ define([ * @param name * @returns {number} */ - let getSignatureTypeIdByName = function(systemData, sigGroupId, name){ - + let getSignatureTypeIdByName = (systemData, sigGroupId, name) => { let signatureTypeId = 0; - let areaId = getAreaIdBySecurity(systemData.security); - if(areaId > 0){ - let signatureNames = getAllSignatureNames(systemData.type.id, areaId, sigGroupId ); + let signatureNames = getAllSignatureNames(systemData.type.id, areaId, sigGroupId); name = name.toLowerCase(); - - for(let prop in signatureNames) { - + for(let prop in signatureNames){ if( signatureNames.hasOwnProperty(prop) && signatureNames[prop].toLowerCase() === name ){ - signatureTypeId = parseInt( prop ); + signatureTypeId = parseInt(prop); break; } } } - return signatureTypeId; }; @@ -1995,9 +2000,8 @@ define([ * to keep the data always up2data * @param mapUserData */ - let setCurrentMapUserData = (mapUserData) => { + let setCurrentMapUserData = mapUserData => { Init.currentMapUserData = mapUserData; - return getCurrentMapUserData(); }; @@ -2006,7 +2010,7 @@ define([ * @param mapId * @returns {boolean} */ - let getCurrentMapUserData = (mapId) => { + let getCurrentMapUserData = mapId => { let currentMapUserData = false; if(Init.currentMapUserData){ @@ -2041,7 +2045,7 @@ define([ * @param mapId * @returns {boolean|int} */ - let getCurrentMapUserDataIndex = (mapId) => { + let getCurrentMapUserDataIndex = mapId => { return getDataIndexByMapId(Init.currentMapUserData, mapId); }; @@ -2049,7 +2053,7 @@ define([ * update cached mapUserData for a single map * @param mapUserData */ - let updateCurrentMapUserData = (mapUserData) => { + let updateCurrentMapUserData = mapUserData => { let mapUserDataIndex = getCurrentMapUserDataIndex( mapUserData.config.id ); if( !Array.isArray(Init.currentMapUserData) ){ @@ -2072,7 +2076,7 @@ define([ * to keep the data always up2data * @param mapData */ - let setCurrentMapData = (mapData) => { + let setCurrentMapData = mapData => { Init.currentMapData = mapData; return getCurrentMapData(); @@ -2083,7 +2087,7 @@ define([ * @param mapId * @returns {boolean} */ - let getCurrentMapData = (mapId) => { + let getCurrentMapData = mapId => { let currentMapData = false; if( mapId === parseInt(mapId, 10) ){ @@ -2107,7 +2111,7 @@ define([ * @param mapId * @returns {boolean|int} */ - let getCurrentMapDataIndex = (mapId) => { + let getCurrentMapDataIndex = mapId => { return getDataIndexByMapId(Init.currentMapData, mapId); }; @@ -2115,7 +2119,7 @@ define([ * update cached mapData for a single map * @param mapData */ - let updateCurrentMapData = (mapData) => { + let updateCurrentMapData = mapData => { let mapDataIndex = getCurrentMapDataIndex( mapData.config.id ); if(mapDataIndex !== false){ @@ -2146,7 +2150,7 @@ define([ * delete map data by mapId from currentMapData * @param mapId */ - let deleteCurrentMapData = (mapId) => { + let deleteCurrentMapData = mapId => { Init.currentMapData = Init.currentMapData.filter((mapData) => { return (mapData.config.id !== mapId); }); @@ -2176,7 +2180,7 @@ define([ * @param option * @returns {boolean} */ - let getCurrentUserInfo = (option) => { + let getCurrentUserInfo = option => { let currentUserData = getCurrentUserData(); let userInfo = false; @@ -2297,7 +2301,7 @@ define([ characterData = characterData.filter(function(tmpCharacterData, index, allData){ let keepData = true; - for(let tmpJump in data) { + for(let tmpJump in data){ // just scan systems with > jumps than current system if(tmpJump > jumps){ let filteredFinalData = data[tmpJump].filter(filterFinalCharData, tmpCharacterData); @@ -2325,7 +2329,7 @@ define([ } jumps++; - for(let prop in nearBySystems.tree) { + for(let prop in nearBySystems.tree){ if( nearBySystems.tree.hasOwnProperty(prop) ){ let tmpSystemData = nearBySystems.tree[prop]; data = getNearByCharacterData(tmpSystemData, userData, jumps, data); @@ -2374,7 +2378,7 @@ define([ responseData.systemData && responseData.systemData.length > 0 ){ - for (let j = 0; j < responseData.systemData.length; j++) { + for (let j = 0; j < responseData.systemData.length; j++){ showNotify({title: this.description, text: 'System: ' + responseData.systemData[j].name, type: 'success'}); } } @@ -2388,7 +2392,7 @@ define([ } } - }).fail(function( jqXHR, status, error) { + }).fail(function( jqXHR, status, error){ let reason = status + ' ' + error; showNotify({title: jqXHR.status + ': ' + this.description, text: reason, type: 'warning'}); }); @@ -2452,7 +2456,7 @@ define([ }else{ showNotify({title: 'Open window in client', text: 'Check your EVE client', type: 'success'}); } - }).fail(function( jqXHR, status, error) { + }).fail(function( jqXHR, status, error){ let reason = status + ' ' + error; showNotify({title: jqXHR.status + ': openWindow', text: reason, type: 'error'}); }); @@ -2585,9 +2589,9 @@ define([ element.off(eventName).on(eventName, function(e){ clicks++; - if (clicks === 1) { + if (clicks === 1){ setTimeout(element => { - if(clicks === 1) { + if(clicks === 1){ singleClickCallback.call(element, e); } else { doubleClickCallback.call(element, e); @@ -2666,7 +2670,7 @@ define([ if(data.reroute){ redirect(data.reroute, ['logout']); } - }).fail(function( jqXHR, status, error) { + }).fail(function( jqXHR, status, error){ let reason = status + ' ' + error; showNotify({title: jqXHR.status + ': logout', text: reason, type: 'error'}); }); @@ -2709,13 +2713,13 @@ define([ let name = cname + '='; let ca = document.cookie.split(';'); - for(let i = 0; i li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:18px}dt,dd{line-height:1.5}dt{font-weight:bold}dd{margin-left:0}@media (min-width: 480px){.dl-horizontal dt{float:left;width:80px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:100px}.dl-horizontal dd:before,.dl-horizontal dd:after{content:" ";display:table}.dl-horizontal dd:after{clear:both}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #63676a}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:9px 18px;margin:0 0 18px;font-size:15px;border-left:5px solid #5cb85c}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.5;color:#63676a}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #5cb85c;border-left:0;text-align:right}.blockquote-reverse footer:before,.blockquote-reverse small:before,.blockquote-reverse .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,.blockquote-reverse small:after,.blockquote-reverse .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:18px;font-style:normal;line-height:1.5}code,kbd,pre,samp{font-family:Consolas,monospace,Menlo,Monaco,"Courier New"}code{padding:2px 4px;font-size:90%;color:#1d1d1d;background-color:#63676a;white-space:nowrap;border-radius:3px}kbd{padding:2px 4px;font-size:90%;color:#adadad;background-color:#2b2b2b;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}pre{display:block;padding:8.5px;margin:0 0 9px;font-size:11px;line-height:1.5;word-break:break-all;word-wrap:break-word;color:#1d1d1d;background-color:#63676a;border-radius:3px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:10px;padding-right:10px}.container:before,.container:after{content:" ";display:table}.container:after{clear:both}@media (min-width: 780px){.container{width:740px}}@media (min-width: 1200px){.container{width:1080px}}@media (min-width: 1600px){.container{width:1260px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:10px;padding-right:10px}.container-fluid:before,.container-fluid:after{content:" ";display:table}.container-fluid:after{clear:both}.row{margin-left:-10px;margin-right:-10px}.row:before,.row:after{content:" ";display:table}.row:after{clear:both}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:10px;padding-right:10px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-1{width:8.33333%}.col-xs-2{width:16.66667%}.col-xs-3{width:25%}.col-xs-4{width:33.33333%}.col-xs-5{width:41.66667%}.col-xs-6{width:50%}.col-xs-7{width:58.33333%}.col-xs-8{width:66.66667%}.col-xs-9{width:75%}.col-xs-10{width:83.33333%}.col-xs-11{width:91.66667%}.col-xs-12{width:100%}.col-xs-pull-0{right:0%}.col-xs-pull-1{right:8.33333%}.col-xs-pull-2{right:16.66667%}.col-xs-pull-3{right:25%}.col-xs-pull-4{right:33.33333%}.col-xs-pull-5{right:41.66667%}.col-xs-pull-6{right:50%}.col-xs-pull-7{right:58.33333%}.col-xs-pull-8{right:66.66667%}.col-xs-pull-9{right:75%}.col-xs-pull-10{right:83.33333%}.col-xs-pull-11{right:91.66667%}.col-xs-pull-12{right:100%}.col-xs-push-0{left:0%}.col-xs-push-1{left:8.33333%}.col-xs-push-2{left:16.66667%}.col-xs-push-3{left:25%}.col-xs-push-4{left:33.33333%}.col-xs-push-5{left:41.66667%}.col-xs-push-6{left:50%}.col-xs-push-7{left:58.33333%}.col-xs-push-8{left:66.66667%}.col-xs-push-9{left:75%}.col-xs-push-10{left:83.33333%}.col-xs-push-11{left:91.66667%}.col-xs-push-12{left:100%}.col-xs-offset-0{margin-left:0%}.col-xs-offset-1{margin-left:8.33333%}.col-xs-offset-2{margin-left:16.66667%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-4{margin-left:33.33333%}.col-xs-offset-5{margin-left:41.66667%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-7{margin-left:58.33333%}.col-xs-offset-8{margin-left:66.66667%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-10{margin-left:83.33333%}.col-xs-offset-11{margin-left:91.66667%}.col-xs-offset-12{margin-left:100%}@media (min-width: 780px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-1{width:8.33333%}.col-sm-2{width:16.66667%}.col-sm-3{width:25%}.col-sm-4{width:33.33333%}.col-sm-5{width:41.66667%}.col-sm-6{width:50%}.col-sm-7{width:58.33333%}.col-sm-8{width:66.66667%}.col-sm-9{width:75%}.col-sm-10{width:83.33333%}.col-sm-11{width:91.66667%}.col-sm-12{width:100%}.col-sm-pull-0{right:0%}.col-sm-pull-1{right:8.33333%}.col-sm-pull-2{right:16.66667%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.33333%}.col-sm-pull-5{right:41.66667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.33333%}.col-sm-pull-8{right:66.66667%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.33333%}.col-sm-pull-11{right:91.66667%}.col-sm-pull-12{right:100%}.col-sm-push-0{left:0%}.col-sm-push-1{left:8.33333%}.col-sm-push-2{left:16.66667%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.33333%}.col-sm-push-5{left:41.66667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.33333%}.col-sm-push-8{left:66.66667%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.33333%}.col-sm-push-11{left:91.66667%}.col-sm-push-12{left:100%}.col-sm-offset-0{margin-left:0%}.col-sm-offset-1{margin-left:8.33333%}.col-sm-offset-2{margin-left:16.66667%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333%}.col-sm-offset-5{margin-left:41.66667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.33333%}.col-sm-offset-8{margin-left:66.66667%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333%}.col-sm-offset-11{margin-left:91.66667%}.col-sm-offset-12{margin-left:100%}}@media (min-width: 1200px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-1{width:8.33333%}.col-md-2{width:16.66667%}.col-md-3{width:25%}.col-md-4{width:33.33333%}.col-md-5{width:41.66667%}.col-md-6{width:50%}.col-md-7{width:58.33333%}.col-md-8{width:66.66667%}.col-md-9{width:75%}.col-md-10{width:83.33333%}.col-md-11{width:91.66667%}.col-md-12{width:100%}.col-md-pull-0{right:0%}.col-md-pull-1{right:8.33333%}.col-md-pull-2{right:16.66667%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.33333%}.col-md-pull-5{right:41.66667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.33333%}.col-md-pull-8{right:66.66667%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.33333%}.col-md-pull-11{right:91.66667%}.col-md-pull-12{right:100%}.col-md-push-0{left:0%}.col-md-push-1{left:8.33333%}.col-md-push-2{left:16.66667%}.col-md-push-3{left:25%}.col-md-push-4{left:33.33333%}.col-md-push-5{left:41.66667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.33333%}.col-md-push-8{left:66.66667%}.col-md-push-9{left:75%}.col-md-push-10{left:83.33333%}.col-md-push-11{left:91.66667%}.col-md-push-12{left:100%}.col-md-offset-0{margin-left:0%}.col-md-offset-1{margin-left:8.33333%}.col-md-offset-2{margin-left:16.66667%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333%}.col-md-offset-5{margin-left:41.66667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.33333%}.col-md-offset-8{margin-left:66.66667%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333%}.col-md-offset-11{margin-left:91.66667%}.col-md-offset-12{margin-left:100%}}@media (min-width: 1600px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-1{width:8.33333%}.col-lg-2{width:16.66667%}.col-lg-3{width:25%}.col-lg-4{width:33.33333%}.col-lg-5{width:41.66667%}.col-lg-6{width:50%}.col-lg-7{width:58.33333%}.col-lg-8{width:66.66667%}.col-lg-9{width:75%}.col-lg-10{width:83.33333%}.col-lg-11{width:91.66667%}.col-lg-12{width:100%}.col-lg-pull-0{right:0%}.col-lg-pull-1{right:8.33333%}.col-lg-pull-2{right:16.66667%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.33333%}.col-lg-pull-5{right:41.66667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.33333%}.col-lg-pull-8{right:66.66667%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.33333%}.col-lg-pull-11{right:91.66667%}.col-lg-pull-12{right:100%}.col-lg-push-0{left:0%}.col-lg-push-1{left:8.33333%}.col-lg-push-2{left:16.66667%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.33333%}.col-lg-push-5{left:41.66667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.33333%}.col-lg-push-8{left:66.66667%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.33333%}.col-lg-push-11{left:91.66667%}.col-lg-push-12{left:100%}.col-lg-offset-0{margin-left:0%}.col-lg-offset-1{margin-left:8.33333%}.col-lg-offset-2{margin-left:16.66667%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333%}.col-lg-offset-5{margin-left:41.66667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.33333%}.col-lg-offset-8{margin-left:66.66667%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333%}.col-lg-offset-11{margin-left:91.66667%}.col-lg-offset-12{margin-left:100%}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:0;border-spacing:0}.table>thead>tr>th,.table>thead>tr>td,.table>tbody>tr>th,.table>tbody>tr>td,.table>tfoot>tr>th,.table>tfoot>tr>td{padding:8px;line-height:1.5;vertical-align:top;border-top:1px solid #313335}.table>thead>tr>th{vertical-align:bottom;border-bottom:0px solid #313335}.table>caption+thead>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>th,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #313335}.table .table{background-color:#1d1d1d}.table-condensed>thead>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>tfoot>tr>td{padding:2px}.table-bordered{border:1px solid #313335}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>tfoot>tr>td{border:1px solid #313335}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{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:#ecf3f8}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>thead>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th{background-color:#ecf3f8}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th{background-color:#d9e7f1}.table>thead>tr>td.success,.table>thead>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th{background-color:#d1e8d1}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th{background-color:#c0e0c0}.table>thead>tr>td.info,.table>thead>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th{background-color:#abc9e2}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th{background-color:#98bcdc}.table>thead>tr>td.warning,.table>thead>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th{background-color:#fdedd8}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th{background-color:#fbe3c0}.table>thead>tr>td.danger,.table>thead>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th{background-color:#f6d1d0}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th{background-color:#f1bcba}@media (max-width: 779px){.table-responsive{width:100%;margin-bottom:13.5px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #313335;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:18px;font-size:18px;line-height:inherit;color:#313335;border:0;border-bottom:1px solid #e5e5e5}label,.editable-input .editable-checklist>div>label>span{display:inline-block;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;outline-color:#568a89}output{display:block;padding-top:7px;font-size:12px;line-height:1.5;color:#adadad}.form-control{display:block;width:100%;height:32px;padding:6px 12px;font-size:12px;line-height:1.5;color:#adadad;background-color:#313335;background-image:none;border:1px solid #63676a;border-radius:0px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-out 0.15s,box-shadow ease-out 0.15s;transition:border-color ease-out 0.15s,box-shadow ease-out 0.15s}.form-control:focus{border-color:#568a89;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(86,138,137,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(86,138,137,0.6)}.form-control::-moz-placeholder{color:#63676a;opacity:1}.form-control:-ms-input-placeholder{color:#63676a}.form-control::-webkit-input-placeholder{color:#63676a}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#3c3f41;opacity:1}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}input[type="date"]{line-height:32px}.form-group{margin-bottom:15px}.radio,.checkbox,.editable-input .editable-checklist>div>label{display:block;min-height:18px;margin-top:10px;margin-bottom:10px;padding-left:20px}.radio label,.radio .editable-input .editable-checklist>div>label>span,.editable-input .radio .editable-checklist>div>label>span,.checkbox label,.editable-input .editable-checklist>div>label label,.editable-input .editable-checklist>div>label>span{display:inline;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.editable-input .editable-checklist>div>label input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px}.radio+.radio,.checkbox+.checkbox,.editable-input .editable-checklist>div>label+.checkbox,.editable-input .editable-checklist>div>.checkbox+label,.editable-input .editable-checklist>div>label+label{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],fieldset[disabled] input[type="radio"],input[type="checkbox"][disabled],fieldset[disabled] input[type="checkbox"],.radio[disabled],fieldset[disabled] .radio,.radio-inline[disabled],fieldset[disabled] .radio-inline,.checkbox[disabled],.editable-input .editable-checklist>div>label[disabled],fieldset[disabled] .checkbox,fieldset[disabled] .editable-input .editable-checklist>div>label,.editable-input fieldset[disabled] .editable-checklist>div>label,.checkbox-inline[disabled],fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:28px;padding:5px 10px;font-size:11px;line-height:1.5;border-radius:3px}select.input-sm,.input-group-sm>select.form-control,.input-group-sm>select.input-group-addon,.input-group-sm>.input-group-btn>select.btn{height:28px;line-height:28px}textarea.input-sm,.input-group-sm>textarea.form-control,.input-group-sm>textarea.input-group-addon,.input-group-sm>.input-group-btn>textarea.btn,select[multiple].input-sm,.input-group-sm>select[multiple].form-control,.input-group-sm>select[multiple].input-group-addon,.input-group-sm>.input-group-btn>select[multiple].btn{height:auto}.input-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:42px;padding:10px 16px;font-size:15px;line-height:1.33;border-radius:6px}select.input-lg,.input-group-lg>select.form-control,.input-group-lg>select.input-group-addon,.input-group-lg>.input-group-btn>select.btn{height:42px;line-height:42px}textarea.input-lg,.input-group-lg>textarea.form-control,.input-group-lg>textarea.input-group-addon,.input-group-lg>.input-group-btn>textarea.btn,select[multiple].input-lg,.input-group-lg>select[multiple].form-control,.input-group-lg>select[multiple].input-group-addon,.input-group-lg>.input-group-btn>select[multiple].btn{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:40px}.has-feedback .form-control-feedback{position:absolute;top:23px;right:0;display:block;width:32px;height:32px;line-height:32px;text-align:center}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .editable-input .editable-checklist>div>label,.editable-input .has-success .editable-checklist>div>label,.has-success .radio-inline,.has-success .checkbox-inline{color:#5cb85c}.has-success .form-control{border-color:#5cb85c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #a3d7a3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #a3d7a3}.has-success .select2-selection{border:1px solid !important;border-color:#5cb85c !important;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .input-group-addon{color:#5cb85c;border-color:#5cb85c;background-color:#d1e8d1}.has-success .form-control-feedback{color:#5cb85c}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .editable-input .editable-checklist>div>label,.editable-input .has-warning .editable-checklist>div>label,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#2b2b2b}.has-warning .form-control{border-color:#2b2b2b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #5e5e5e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #5e5e5e}.has-warning .select2-selection{border:1px solid !important;border-color:#2b2b2b !important;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .input-group-addon{color:#2b2b2b;border-color:#2b2b2b;background-color:#fdedd8}.has-warning .form-control-feedback{color:#2b2b2b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .editable-input .editable-checklist>div>label,.editable-input .has-error .editable-checklist>div>label,.has-error .radio-inline,.has-error .checkbox-inline{color:#d9534f}.has-error .form-control{border-color:#d9534f;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #eba5a3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #eba5a3}.has-error .select2-selection{border:1px solid !important;border-color:#d9534f !important;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .input-group-addon{color:#d9534f;border-color:#d9534f;background-color:#f6d1d0}.has-error .form-control-feedback{color:#d9534f}.form-control-static{margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#7c8184}@media (min-width: 780px){.form-inline .form-group,.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control,.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group>.form-control,.navbar-form .input-group>.form-control{width:100%}.form-inline .control-label,.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.navbar-form .radio,.form-inline .checkbox,.navbar-form .checkbox,.form-inline .editable-input .editable-checklist>div>label,.editable-input .form-inline .editable-checklist>div>label,.navbar-form .editable-input .editable-checklist>div>label,.editable-input .navbar-form .editable-checklist>div>label{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.form-inline .radio input[type="radio"],.navbar-form .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"],.navbar-form .checkbox input[type="checkbox"],.form-inline .editable-input .editable-checklist>div>label input[type="checkbox"],.editable-input .form-inline .editable-checklist>div>label input[type="checkbox"],.navbar-form .editable-input .editable-checklist>div>label input[type="checkbox"],.editable-input .navbar-form .editable-checklist>div>label input[type="checkbox"]{float:none;margin-left:0}.form-inline .has-feedback .form-control-feedback,.navbar-form .has-feedback .form-control-feedback{top:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .editable-input .editable-checklist>div>label,.editable-input .form-horizontal .editable-checklist>div>label,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .editable-input .editable-checklist>div>label,.editable-input .form-horizontal .editable-checklist>div>label{min-height:25px}.form-horizontal .form-group{margin-left:-10px;margin-right:-10px}.form-horizontal .form-group:before,.form-horizontal .form-group:after{content:" ";display:table}.form-horizontal .form-group:after{clear:both}.form-horizontal .form-control-static{padding-top:7px}@media (min-width: 780px){.form-horizontal .control-label{text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:10px}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:12px;line-height:1.5;border-radius:0px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;outline-color:#568a89}.btn:hover,.btn:focus{color:#eaeaea;text-decoration:none;-webkit-box-shadow:none;box-shadow:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:0 5px 11px 0 rgba(0,0,0,0.18),0 4px 15px 0 rgba(0,0,0,0.15);box-shadow:0 5px 11px 0 rgba(0,0,0,0.18),0 4px 15px 0 rgba(0,0,0,0.15)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#eaeaea;background-color:#63676a;border-color:#575a5d}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active:not(.toggle-on):not(.toggle-off){color:#eaeaea;background-color:#777b7f;border-color:#74797c}.open .btn-default.dropdown-toggle{color:#eaeaea;background-color:#777b7f;border-color:#74797c}.btn-default:active,.btn-default.active{background-image:none}.open .btn-default.dropdown-toggle{background-image:none}.btn-default.disabled,.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled:active,.btn-default.disabled.active,.btn-default[disabled],.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled]:active,.btn-default[disabled].active,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default.active{background-color:#63676a;border-color:#575a5d}.btn-default .badge{color:#63676a;background-color:#eaeaea}.btn-primary{color:#eaeaea;background-color:#375959;border-color:#2d4949}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active:not(.toggle-on):not(.toggle-off){color:#eaeaea;background-color:#477272;border-color:#456f6f}.open .btn-primary.dropdown-toggle{color:#eaeaea;background-color:#477272;border-color:#456f6f}.btn-primary:active,.btn-primary.active{background-image:none}.open .btn-primary.dropdown-toggle{background-image:none}.btn-primary.disabled,.btn-primary.disabled:hover,.btn-primary.disabled:focus,.btn-primary.disabled:active,.btn-primary.disabled.active,.btn-primary[disabled],.btn-primary[disabled]:hover,.btn-primary[disabled]:focus,.btn-primary[disabled]:active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary:hover,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary.active{background-color:#375959;border-color:#2d4949}.btn-primary .badge{color:#375959;background-color:#eaeaea}.btn-success,.modal-content .pf-wizard-navigation li.active a:not(.btn-danger){color:#eaeaea;background-color:#4f9e4f;border-color:#478d47}.btn-success:hover,.modal-content .pf-wizard-navigation li.active a:hover:not(.btn-danger),.btn-success:focus,.modal-content .pf-wizard-navigation li.active a:focus:not(.btn-danger),.btn-success:active,.modal-content .pf-wizard-navigation li.active a:active:not(.btn-danger),.btn-success.active:not(.toggle-on):not(.toggle-off),.modal-content .pf-wizard-navigation li.active a.active:not(.toggle-on):not(.toggle-off):not(.btn-danger){color:#eaeaea;background-color:#64b264;border-color:#61b061}.open .btn-success.dropdown-toggle,.open .modal-content .pf-wizard-navigation li.active a.dropdown-toggle:not(.btn-danger),.modal-content .pf-wizard-navigation li.active .open a.dropdown-toggle:not(.btn-danger){color:#eaeaea;background-color:#64b264;border-color:#61b061}.btn-success:active,.modal-content .pf-wizard-navigation li.active a:active:not(.btn-danger),.btn-success.active,.modal-content .pf-wizard-navigation li.active a.active:not(.btn-danger){background-image:none}.open .btn-success.dropdown-toggle,.open .modal-content .pf-wizard-navigation li.active a.dropdown-toggle:not(.btn-danger),.modal-content .pf-wizard-navigation li.active .open a.dropdown-toggle:not(.btn-danger){background-image:none}.btn-success.disabled,.modal-content .pf-wizard-navigation li.active a.disabled:not(.btn-danger),.btn-success.disabled:hover,.modal-content .pf-wizard-navigation li.active a.disabled:hover:not(.btn-danger),.btn-success.disabled:focus,.modal-content .pf-wizard-navigation li.active a.disabled:focus:not(.btn-danger),.btn-success.disabled:active,.modal-content .pf-wizard-navigation li.active a.disabled:active:not(.btn-danger),.btn-success.disabled.active,.modal-content .pf-wizard-navigation li.active a.disabled.active:not(.btn-danger),.btn-success[disabled],.modal-content .pf-wizard-navigation li.active a[disabled]:not(.btn-danger),.btn-success[disabled]:hover,.modal-content .pf-wizard-navigation li.active a[disabled]:hover:not(.btn-danger),.btn-success[disabled]:focus,.modal-content .pf-wizard-navigation li.active a[disabled]:focus:not(.btn-danger),.btn-success[disabled]:active,.modal-content .pf-wizard-navigation li.active a[disabled]:active:not(.btn-danger),.btn-success[disabled].active,.modal-content .pf-wizard-navigation li.active a[disabled].active:not(.btn-danger),fieldset[disabled] .btn-success,fieldset[disabled] .modal-content .pf-wizard-navigation li.active a:not(.btn-danger),.modal-content .pf-wizard-navigation li.active fieldset[disabled] a:not(.btn-danger),fieldset[disabled] .btn-success:hover,fieldset[disabled] .modal-content .pf-wizard-navigation li.active a:hover:not(.btn-danger),.modal-content .pf-wizard-navigation li.active fieldset[disabled] a:hover:not(.btn-danger),fieldset[disabled] .btn-success:focus,fieldset[disabled] .modal-content .pf-wizard-navigation li.active a:focus:not(.btn-danger),.modal-content .pf-wizard-navigation li.active fieldset[disabled] a:focus:not(.btn-danger),fieldset[disabled] .btn-success:active,fieldset[disabled] .modal-content .pf-wizard-navigation li.active a:active:not(.btn-danger),.modal-content .pf-wizard-navigation li.active fieldset[disabled] a:active:not(.btn-danger),fieldset[disabled] .btn-success.active,fieldset[disabled] .modal-content .pf-wizard-navigation li.active a.active:not(.btn-danger),.modal-content .pf-wizard-navigation li.active fieldset[disabled] a.active:not(.btn-danger){background-color:#4f9e4f;border-color:#478d47}.btn-success .badge,.modal-content .pf-wizard-navigation li.active a:not(.btn-danger) .badge{color:#4f9e4f;background-color:#eaeaea}.btn-info{color:#eaeaea;background-color:#316490;border-color:#2b577d}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active:not(.toggle-on):not(.toggle-off){color:#eaeaea;background-color:#3b79ae;border-color:#3a76ab}.open .btn-info.dropdown-toggle{color:#eaeaea;background-color:#3b79ae;border-color:#3a76ab}.btn-info:active,.btn-info.active{background-image:none}.open .btn-info.dropdown-toggle{background-image:none}.btn-info.disabled,.btn-info.disabled:hover,.btn-info.disabled:focus,.btn-info.disabled:active,.btn-info.disabled.active,.btn-info[disabled],.btn-info[disabled]:hover,.btn-info[disabled]:focus,.btn-info[disabled]:active,.btn-info[disabled].active,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info:hover,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info.active{background-color:#316490;border-color:#2b577d}.btn-info .badge{color:#316490;background-color:#eaeaea}.btn-warning{color:#eaeaea;background-color:#c2760c;border-color:#aa670b}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active:not(.toggle-on):not(.toggle-off){color:#eaeaea;background-color:#e88d0e;border-color:#e48a0e}.open .btn-warning.dropdown-toggle{color:#eaeaea;background-color:#e88d0e;border-color:#e48a0e}.btn-warning:active,.btn-warning.active{background-image:none}.open .btn-warning.dropdown-toggle{background-image:none}.btn-warning.disabled,.btn-warning.disabled:hover,.btn-warning.disabled:focus,.btn-warning.disabled:active,.btn-warning.disabled.active,.btn-warning[disabled],.btn-warning[disabled]:hover,.btn-warning[disabled]:focus,.btn-warning[disabled]:active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning:hover,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning.active{background-color:#c2760c;border-color:#aa670b}.btn-warning .badge{color:#c2760c;background-color:#eaeaea}.btn-danger{color:#eaeaea;background-color:#a52521;border-color:#90201d}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active:not(.toggle-on):not(.toggle-off){color:#eaeaea;background-color:#c72d28;border-color:#c32c27}.open .btn-danger.dropdown-toggle{color:#eaeaea;background-color:#c72d28;border-color:#c32c27}.btn-danger:active,.btn-danger.active{background-image:none}.open .btn-danger.dropdown-toggle{background-image:none}.btn-danger.disabled,.btn-danger.disabled:hover,.btn-danger.disabled:focus,.btn-danger.disabled:active,.btn-danger.disabled.active,.btn-danger[disabled],.btn-danger[disabled]:hover,.btn-danger[disabled]:focus,.btn-danger[disabled]:active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger:hover,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger.active{background-color:#a52521;border-color:#90201d}.btn-danger .badge{color:#a52521;background-color:#eaeaea}.btn-link{color:#375959;font-weight:normal;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#1a2a2a;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:hover,fieldset[disabled] .btn-link:focus{color:#63676a;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:15px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:11px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:11px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;will-change:height;-webkit-transition:height 0.35s ease;transition:height 0.35s ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.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:12px;background-color:#adadad;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.4);box-shadow:0 6px 12px rgba(0,0,0,0.4);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:5px 0;overflow:hidden;background-color:#63676a}.dropdown-menu>li>a{display:block;padding:3px 15px;clear:both;font-weight:normal;line-height:1.5;color:#313335;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#1d1d1d;background-color:#63676a}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#adadad;text-decoration:none;outline:0;background-color:#375959}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#63676a}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:11px;line-height:1.5;color:#63676a}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width: 480px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:none}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar:before,.btn-toolbar:after{content:" ";display:table}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.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>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle,.btn-group-lg.btn-group>.btn+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret,.btn-group-lg>.btn .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret,.dropup .btn-group-lg>.btn .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{content:" ";display:table}.btn-group-vertical>.btn-group:after{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:0px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:0px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}[data-toggle="buttons"]>.btn>input[type="radio"],[data-toggle="buttons"]>.btn>input[type="checkbox"]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:12px;font-weight:normal;line-height:1;color:#63676a;text-align:center;background-color:#2b2b2b;border:1px solid #63676a;border-radius:0px}.input-group-addon.input-sm,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.input-group-addon.btn{padding:5px 10px;font-size:11px;border-radius:3px}.input-group-addon.input-lg,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.input-group-addon.btn{padding:10px 16px;font-size:15px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav:before,.nav:after{content:" ";display:table}.nav:after{clear:both}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:5px 6px 5px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#3c3f41}.nav>li.disabled>a{color:#63676a}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#63676a;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#3c3f41;border-color:#375959}.nav .nav-divider{height:1px;margin:5px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #adadad}.nav-tabs>li{float:left;margin-bottom:-1px;margin-right:2px}.nav-tabs>li>a{line-height:1.5;border:1px solid transparent}.nav-tabs>li>a:hover{border-color:#adadad #adadad #adadad}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#313335;border:1px solid #adadad;border-bottom-color:transparent;cursor:default}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:0px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#375959}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified,.nav-tabs.nav-justified{width:100%}.nav-justified>li,.nav-tabs.nav-justified>li{float:none}.nav-justified>li>a,.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width: 780px){.nav-justified>li,.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a,.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified,.nav-tabs.nav-justified{border-bottom:0}.nav-tabs-justified>li>a,.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:0px}.nav-tabs-justified>.active>a,.nav-tabs.nav-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width: 780px){.nav-tabs-justified>li>a,.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:0px 0px 0 0}.nav-tabs-justified>.active>a,.nav-tabs.nav-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#1d1d1d}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:30px;margin-bottom:18px}.navbar:before,.navbar:after{content:" ";display:table}.navbar:after{clear:both}@media (min-width: 480px){.navbar{border-radius:0px}}.navbar-header:before,.navbar-header:after{content:" ";display:table}.navbar-header:after{clear:both}@media (min-width: 480px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:10px;padding-left:10px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse:before,.navbar-collapse:after{content:" ";display:table}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media (min-width: 480px){.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-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.container>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-header,.container-fluid>.navbar-collapse{margin-right:-10px;margin-left:-10px}@media (min-width: 480px){.container>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-header,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width: 480px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width: 480px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:6px 10px;font-size:1.2em;line-height:18px;height:30px;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width: 480px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-10px}}.navbar-toggle{position:relative;float:right;margin-right:10px;margin-left:10px;padding:6px 12px;margin-top:-2px;margin-bottom:-2px;background-color:#313335;background-image:none;border:1px solid #a0a0a0;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}.navbar-toggle:focus{outline:none}.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: 480px){.navbar-toggle{display:none}}.navbar-nav{margin:3px -10px;float:left;margin:0}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:18px}@media (max-width: 479px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:18px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}.navbar-nav>li{float:left;margin-right:2px}.navbar-nav>li>a{padding-top:6px;padding-bottom:6px}.navbar-nav.navbar-right:last-child{margin-right:-10px}@media (min-width: 480px){.navbar-left{float:left !important}.navbar-right{float:right !important}}.navbar-form{margin-left:-10px;margin-right:-10px;padding:10px 10px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:-1px;margin-bottom:-1px}@media (max-width: 479px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width: 480px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-10px}}.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-btn{margin-top:-1px;margin-bottom:-1px}.navbar-btn.btn-sm,.btn-group-sm>.navbar-btn.btn{margin-top:1px;margin-bottom:1px}.navbar-btn.btn-xs,.btn-group-xs>.navbar-btn.btn{margin-top:4px;margin-bottom:4px}.navbar-text{margin-top:6px;margin-bottom:6px;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;float:left;margin-left:10px;margin-right:10px}.navbar-text.navbar-right:last-child{margin-right:0}.navbar-default{background:rgba(43,43,43,0.9);border-color:none}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#568a89;background-color:transparent}.navbar-default .navbar-text{color:#63676a}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#6caead;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus{color:#568a89;background-color:transparent}.navbar-default .navbar-nav>.active>a:hover{color:#6caead}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#3c3f41;background-color:transparent}.navbar-default .navbar-toggle{border-color:#477372;color:#2b2b2b;cursor:pointer}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{border-color:#518382;background-color:#3d4042}.navbar-default .navbar-toggle:hover .icon-bar,.navbar-default .navbar-toggle:focus .icon-bar{background-color:#568a89}.navbar-default .navbar-toggle .icon-bar{background-color:#477372}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:none}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:transparent;color:#568a89}@media (max-width: 479px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#6caead;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#568a89;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#3c3f41;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#6caead}.navbar-inverse{background-color:#222;border-color:#090909}.navbar-inverse .navbar-brand{color:#63676a}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#63676a}.navbar-inverse .navbar-nav>li>a{color:#63676a}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#090909}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#090909;color:#fff}@media (max-width: 479px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#63676a}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#63676a}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:0px 0px;margin-bottom:18px;list-style:none;background-color:none;border-radius:0px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/ ";padding:0 5px;color:#63676a}.breadcrumb>.active{color:#5cb85c}.pagination{display:inline-block;padding-left:0;margin:18px 0;border-radius:0px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.5;text-decoration:none;color:#375959;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:0px;border-top-left-radius:0px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:0px;border-top-right-radius:0px}.pagination>li>a:hover,.pagination>li>a:focus,.pagination>li>span:hover,.pagination>li>span:focus{color:#1a2a2a;background-color:#adadad;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:hover,.pagination>.active>a:focus,.pagination>.active>span,.pagination>.active>span:hover,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#375959;border-color:#375959;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#63676a;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:15px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:11px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:18px 0;list-style:none;text-align:center}.pager:before,.pager:after{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:hover,.pager li>a:focus{text-decoration:none;background-color:#adadad}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#63676a;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:2px 5px;font-size:75%;font-weight:bold;line-height:1;color:#000;text-align:center;white-space:nowrap;vertical-align:baseline;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#63676a}.label-default[href]:hover,.label-default[href]:focus{background-color:#4a4d50}.label-primary{background-color:#375959}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#243939}.label-success{background-color:#4f9e4f}.label-success[href]:hover,.label-success[href]:focus{background-color:#3e7c3e}.label-info{background-color:#316490}.label-info[href]:hover,.label-info[href]:focus{background-color:#244a6a}.label-warning{background-color:#e28a0d}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#b26d0a}.label-danger{background-color:#a52521}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#7b1b19}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:11px;font-weight:bold;color:#eaeaea;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#63676a;text-indent:initial;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#375959;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.thumbnail{display:block;padding:4px;margin-bottom:18px;line-height:1.5;background-color:#1d1d1d;border:1px solid #ddd;border-radius:0px;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.thumbnail>img,.thumbnail a>img{display:block;max-width:100%;height:auto;margin-left:auto;margin-right:auto}.thumbnail .caption{padding:9px;color:#63676a}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#375959}.alert{padding:15px;margin-bottom:18px;border:1px solid transparent;border-radius:0px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#d1e8d1;border-color:#4f9e4f;color:#2b2b2b}.alert-success hr{border-top-color:#478d47}.alert-success .alert-link{color:#121212}.alert-info{background-color:#abc9e2;border-color:#316490;color:#2b2b2b}.alert-info hr{border-top-color:#2b577d}.alert-info .alert-link{color:#121212}.alert-warning{background-color:#fdedd8;border-color:#e28a0d;color:#2b2b2b}.alert-warning hr{border-top-color:#ca7b0c}.alert-warning .alert-link{color:#121212}.alert-danger{background-color:#f6d1d0;border-color:#a52521;color:#2b2b2b}.alert-danger hr{border-top-color:#90201d}.alert-danger .alert-link{color:#121212}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:18px;margin-bottom:18px;background-color:#f5f5f5;border-radius:0px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:11px;line-height:18px;color:#fff;text-align:center;background-color:#375959;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0));background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#4f9e4f}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0))}.progress-bar-info{background-color:#316490}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0))}.progress-bar-warning{background-color:#e28a0d}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0))}.progress-bar-danger{background-color:#a52521}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0))}.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:6px 8px;background-color:#adadad;border-bottom:1px solid #63676a;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif}.list-group-item:first-child{border-top-right-radius:0px;border-top-left-radius:0px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:0px;border-bottom-left-radius:0px}.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:hover,a.list-group-item:focus{text-decoration:none;background-color:#63676a;color:#1d1d1d}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{z-index:2;color:#eaeaea;background-color:#375959;border-color:#375959}a.list-group-item.active .list-group-item-heading,a.list-group-item.active:hover .list-group-item-heading,a.list-group-item.active:focus .list-group-item-heading{color:inherit}a.list-group-item.active .list-group-item-text,a.list-group-item.active:hover .list-group-item-text,a.list-group-item.active:focus .list-group-item-text{color:#9bc1c1}.list-group-item-success{color:#2b2b2b;background-color:#d1e8d1}a.list-group-item-success{color:#2b2b2b}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#2b2b2b;background-color:#c0e0c0}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#2b2b2b;border-color:#2b2b2b}.list-group-item-info{color:#2b2b2b;background-color:#abc9e2}a.list-group-item-info{color:#2b2b2b}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#2b2b2b;background-color:#98bcdc}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#2b2b2b;border-color:#2b2b2b}.list-group-item-warning{color:#2b2b2b;background-color:#fdedd8}a.list-group-item-warning{color:#2b2b2b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#2b2b2b;background-color:#fbe3c0}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#2b2b2b;border-color:#2b2b2b}.list-group-item-danger{color:#2b2b2b;background-color:#f6d1d0}a.list-group-item-danger{color:#2b2b2b}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#2b2b2b;background-color:#f1bcba}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#2b2b2b;border-color:#2b2b2b}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:18px;background-color:#3c3f41;border:1px solid transparent;border-radius:5px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-body:before,.panel-body:after{content:" ";display:table}.panel-body:after{clear:both}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:4px;border-top-left-radius:4px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:13px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#353739;border-top:1px solid #313335;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:4px;border-top-left-radius:4px}.panel>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:4px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:4px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:4px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:4px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #313335}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:18px}.panel-group .panel{margin-bottom:0;border-radius:5px;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 #313335}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #313335}.panel-default{border-color:#1d1d1d}.panel-default>.panel-heading{color:#63676a;background-color:#353739;border-color:#1d1d1d}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#1d1d1d}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#1d1d1d}.panel-primary{border-color:#1d1d1d}.panel-primary>.panel-heading{color:#1d1d1d;background-color:#375959;border-color:#1d1d1d}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#1d1d1d}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#1d1d1d}.panel-success{border-color:#1d1d1d}.panel-success>.panel-heading{color:#2b2b2b;background-color:#d1e8d1;border-color:#1d1d1d}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#1d1d1d}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#1d1d1d}.panel-info{border-color:#1d1d1d}.panel-info>.panel-heading{color:#2b2b2b;background-color:#abc9e2;border-color:#1d1d1d}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#1d1d1d}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#1d1d1d}.panel-warning{border-color:#1d1d1d}.panel-warning>.panel-heading{color:#1d1d1d;background-color:#e28a0d;border-color:#1d1d1d}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#1d1d1d}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#1d1d1d}.panel-danger{border-color:#1d1d1d}.panel-danger>.panel-heading{color:#2b2b2b;background-color:#f6d1d0;border-color:#1d1d1d}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#1d1d1d}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#1d1d1d}.well{min-height:20px;padding:10px;margin-bottom:20px;background-color:#63676a;border:1px solid #313335;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;color:#2b2b2b;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well a{color:#6caead}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:18px;font-weight:bold;line-height:1;color:#a52521}.close:hover,.close:focus{color:#a52521;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:auto;overflow-y:auto;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);-moz-transition:-moz-transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);-o-transition:-o-transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);transition:transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275)}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);transform:translate(0, 0)}.modal-dialog{position:relative;width:auto;margin:10px;z-index:1050}.modal-content{position:relative;background-color:#3c3f41;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box;outline:none}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.3;filter:alpha(opacity=30)}.modal-header{padding:14px;border-bottom:1px solid #303234;min-height:15.5px;background-color:#353739}.modal-header .bootbox-close-button,.modal-body .bootbox-close-button{padding:0 5px;font-size:22px;margin-top:-2px}.modal-title{margin:0;line-height:1.5}.modal-body{position:relative;padding:14px;color:#adadad}.modal-footer{padding:13px 14px 14px;text-align:right;border-top:1px solid #303234;background-color:#353739}.modal-footer:before,.modal-footer:after{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 (min-width: 780px){.modal-dialog{width:700px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width: 1200px){.modal-lg{width:1100px}}.tooltip{position:absolute;z-index:1010;display:block;visibility:visible;font-size:11px;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:0px}.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:1030;display:none;max-width:276px;padding:1px;text-align:left;background-color:#3c3f41;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);white-space:normal}.popover.top{margin-top:-7px}.popover.right{margin-left:7px}.popover.bottom{margin-top:7px}.popover.left{margin-left:-7px}.popover-title{margin:0;padding:8px 14px;font-size:12px;font-weight:normal;line-height:18px;background-color:#353739;border-bottom:1px solid #282a2c;border-radius:5px 5px 0 0;color:#63676a}.popover-content{padding:7px 10px}.popover-content pre{margin-bottom:5px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:8px}.popover>.arrow:after{border-width:7px;content:""}.popover.top>.arrow{left:50%;margin-left:-8px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);bottom:-8px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-7px;border-bottom-width:0;border-top-color:#63676a}.popover.right>.arrow{top:50%;left:-8px;margin-top:-8px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-7px;border-left-width:0;border-right-color:#63676a}.popover.bottom>.arrow{left:50%;margin-left:-8px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);top:-8px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-7px;border-top-width:0;border-bottom-color:#63676a}.popover.left>.arrow{top:50%;right:-8px;margin-top:-8px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#63676a;bottom:-7px}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important;visibility:hidden !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}@media (max-width: 779px){.visible-xs{display:block !important}table.visible-xs{display:table}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (min-width: 780px) and (max-width: 1199px){.visible-sm{display:block !important}table.visible-sm{display:table}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width: 1200px) and (max-width: 1599px){.visible-md{display:block !important}table.visible-md{display:table}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width: 1600px){.visible-lg{display:block !important}table.visible-lg{display:table}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (max-width: 779px){.hidden-xs{display:none !important}}@media (min-width: 780px) and (max-width: 1199px){.hidden-sm{display:none !important}}@media (min-width: 1200px) and (max-width: 1599px){.hidden-md{display:none !important}}@media (min-width: 1600px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}@media print{.hidden-print{display:none !important}}/*! + */*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:transparent}body{font-family:"Oxygen","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;font-size:12px;line-height:1.5;color:#63676a;background-color:#1d1d1d}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#375959;text-decoration:none}a:hover,a:focus{color:#1a2a2a;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;outline-color:#568a89;text-decoration:none}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.5;background-color:#1d1d1d;border:1px solid #ddd;border-radius:0px;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:18px;margin-bottom:18px;border:0;border-top:1px solid #adadad}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Oxygen","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:700;line-height:1.1;color:inherit}h1 small,h1 .small,h2 small,h2 .small,h3 small,h3 .small,h4 small,h4 .small,h5 small,h5 .small,h6 small,h6 .small,.h1 small,.h1 .small,.h2 small,.h2 .small,.h3 small,.h3 .small,.h4 small,.h4 .small,.h5 small,.h5 .small,.h6 small,.h6 .small{font-weight:normal;line-height:1;color:#63676a}h1,.h1,h2,.h2,h3,.h3{margin-top:18px;margin-bottom:9px}h1 small,h1 .small,.h1 small,.h1 .small,h2 small,h2 .small,.h2 small,.h2 .small,h3 small,h3 .small,.h3 small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:9px;margin-bottom:9px}h4 small,h4 .small,.h4 small,.h4 .small,h5 small,h5 .small,.h5 small,.h5 .small,h6 small,h6 .small,.h6 small,.h6 .small{font-size:75%}h1,.h1{font-size:22px}h2,.h2{font-size:20px}h3,.h3{font-size:17px}h4,.h4{font-size:12px}h5,.h5{font-size:14px}h6,.h6{font-size:13px}p{margin:0 0 9px}.lead{margin-bottom:18px;font-size:16px;font-weight:200;line-height:1.4}@media (min-width: 780px){.lead{font-size:16px}}small,.small{font-size:85%}cite{font-style:normal}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-muted{color:#63676a}.text-primary{color:#375959}a.text-primary:hover{color:#243939}.text-success{color:#2b2b2b}a.text-success:hover{color:#121212}.text-info{color:#2b2b2b}a.text-info:hover{color:#121212}.text-warning{color:#2b2b2b}a.text-warning:hover{color:#121212}.text-danger{color:#2b2b2b}a.text-danger:hover{color:#121212}.bg-primary{color:#fff}.bg-primary{background-color:#375959}a.bg-primary:hover{background-color:#243939}.bg-success{background-color:#d1e8d1}a.bg-success:hover{background-color:#afd7af}.bg-info{background-color:#abc9e2}a.bg-info:hover{background-color:#85b0d5}.bg-warning{background-color:#fdedd8}a.bg-warning:hover{background-color:#fad8a8}.bg-danger{background-color:#f6d1d0}a.bg-danger:hover{background-color:#eda7a5}.page-header{padding-bottom:8px;margin:36px 0 18px;border-bottom:1px solid #adadad}ul,ol{margin-top:0;margin-bottom:9px}ul ul,ul ol,ol ul,ol ol{margin-bottom:0}.list-unstyled,.list-inline{padding-left:0;list-style:none}.list-inline{margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:18px}dt,dd{line-height:1.5}dt{font-weight:bold}dd{margin-left:0}@media (min-width: 480px){.dl-horizontal dt{float:left;width:80px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:100px}.dl-horizontal dd:before,.dl-horizontal dd:after{content:" ";display:table}.dl-horizontal dd:after{clear:both}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #63676a}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:9px 18px;margin:0 0 18px;font-size:15px;border-left:5px solid #5cb85c}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.5;color:#63676a}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #5cb85c;border-left:0;text-align:right}.blockquote-reverse footer:before,.blockquote-reverse small:before,.blockquote-reverse .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,.blockquote-reverse small:after,.blockquote-reverse .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:18px;font-style:normal;line-height:1.5}code,kbd,pre,samp{font-family:Consolas,monospace,Menlo,Monaco,"Courier New"}code{padding:2px 4px;font-size:90%;color:#1d1d1d;background-color:#63676a;white-space:nowrap;border-radius:3px}kbd{padding:2px 4px;font-size:90%;color:#adadad;background-color:#2b2b2b;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}pre{display:block;padding:8.5px;margin:0 0 9px;font-size:11px;line-height:1.5;word-break:break-all;word-wrap:break-word;color:#1d1d1d;background-color:#63676a;border-radius:3px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:10px;padding-right:10px}.container:before,.container:after{content:" ";display:table}.container:after{clear:both}@media (min-width: 780px){.container{width:740px}}@media (min-width: 1200px){.container{width:1080px}}@media (min-width: 1600px){.container{width:1260px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:10px;padding-right:10px}.container-fluid:before,.container-fluid:after{content:" ";display:table}.container-fluid:after{clear:both}.row{margin-left:-10px;margin-right:-10px}.row:before,.row:after{content:" ";display:table}.row:after{clear:both}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:10px;padding-right:10px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-1{width:8.33333%}.col-xs-2{width:16.66667%}.col-xs-3{width:25%}.col-xs-4{width:33.33333%}.col-xs-5{width:41.66667%}.col-xs-6{width:50%}.col-xs-7{width:58.33333%}.col-xs-8{width:66.66667%}.col-xs-9{width:75%}.col-xs-10{width:83.33333%}.col-xs-11{width:91.66667%}.col-xs-12{width:100%}.col-xs-pull-0{right:0%}.col-xs-pull-1{right:8.33333%}.col-xs-pull-2{right:16.66667%}.col-xs-pull-3{right:25%}.col-xs-pull-4{right:33.33333%}.col-xs-pull-5{right:41.66667%}.col-xs-pull-6{right:50%}.col-xs-pull-7{right:58.33333%}.col-xs-pull-8{right:66.66667%}.col-xs-pull-9{right:75%}.col-xs-pull-10{right:83.33333%}.col-xs-pull-11{right:91.66667%}.col-xs-pull-12{right:100%}.col-xs-push-0{left:0%}.col-xs-push-1{left:8.33333%}.col-xs-push-2{left:16.66667%}.col-xs-push-3{left:25%}.col-xs-push-4{left:33.33333%}.col-xs-push-5{left:41.66667%}.col-xs-push-6{left:50%}.col-xs-push-7{left:58.33333%}.col-xs-push-8{left:66.66667%}.col-xs-push-9{left:75%}.col-xs-push-10{left:83.33333%}.col-xs-push-11{left:91.66667%}.col-xs-push-12{left:100%}.col-xs-offset-0{margin-left:0%}.col-xs-offset-1{margin-left:8.33333%}.col-xs-offset-2{margin-left:16.66667%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-4{margin-left:33.33333%}.col-xs-offset-5{margin-left:41.66667%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-7{margin-left:58.33333%}.col-xs-offset-8{margin-left:66.66667%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-10{margin-left:83.33333%}.col-xs-offset-11{margin-left:91.66667%}.col-xs-offset-12{margin-left:100%}@media (min-width: 780px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-1{width:8.33333%}.col-sm-2{width:16.66667%}.col-sm-3{width:25%}.col-sm-4{width:33.33333%}.col-sm-5{width:41.66667%}.col-sm-6{width:50%}.col-sm-7{width:58.33333%}.col-sm-8{width:66.66667%}.col-sm-9{width:75%}.col-sm-10{width:83.33333%}.col-sm-11{width:91.66667%}.col-sm-12{width:100%}.col-sm-pull-0{right:0%}.col-sm-pull-1{right:8.33333%}.col-sm-pull-2{right:16.66667%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.33333%}.col-sm-pull-5{right:41.66667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.33333%}.col-sm-pull-8{right:66.66667%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.33333%}.col-sm-pull-11{right:91.66667%}.col-sm-pull-12{right:100%}.col-sm-push-0{left:0%}.col-sm-push-1{left:8.33333%}.col-sm-push-2{left:16.66667%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.33333%}.col-sm-push-5{left:41.66667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.33333%}.col-sm-push-8{left:66.66667%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.33333%}.col-sm-push-11{left:91.66667%}.col-sm-push-12{left:100%}.col-sm-offset-0{margin-left:0%}.col-sm-offset-1{margin-left:8.33333%}.col-sm-offset-2{margin-left:16.66667%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333%}.col-sm-offset-5{margin-left:41.66667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.33333%}.col-sm-offset-8{margin-left:66.66667%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333%}.col-sm-offset-11{margin-left:91.66667%}.col-sm-offset-12{margin-left:100%}}@media (min-width: 1200px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-1{width:8.33333%}.col-md-2{width:16.66667%}.col-md-3{width:25%}.col-md-4{width:33.33333%}.col-md-5{width:41.66667%}.col-md-6{width:50%}.col-md-7{width:58.33333%}.col-md-8{width:66.66667%}.col-md-9{width:75%}.col-md-10{width:83.33333%}.col-md-11{width:91.66667%}.col-md-12{width:100%}.col-md-pull-0{right:0%}.col-md-pull-1{right:8.33333%}.col-md-pull-2{right:16.66667%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.33333%}.col-md-pull-5{right:41.66667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.33333%}.col-md-pull-8{right:66.66667%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.33333%}.col-md-pull-11{right:91.66667%}.col-md-pull-12{right:100%}.col-md-push-0{left:0%}.col-md-push-1{left:8.33333%}.col-md-push-2{left:16.66667%}.col-md-push-3{left:25%}.col-md-push-4{left:33.33333%}.col-md-push-5{left:41.66667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.33333%}.col-md-push-8{left:66.66667%}.col-md-push-9{left:75%}.col-md-push-10{left:83.33333%}.col-md-push-11{left:91.66667%}.col-md-push-12{left:100%}.col-md-offset-0{margin-left:0%}.col-md-offset-1{margin-left:8.33333%}.col-md-offset-2{margin-left:16.66667%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333%}.col-md-offset-5{margin-left:41.66667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.33333%}.col-md-offset-8{margin-left:66.66667%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333%}.col-md-offset-11{margin-left:91.66667%}.col-md-offset-12{margin-left:100%}}@media (min-width: 1600px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-1{width:8.33333%}.col-lg-2{width:16.66667%}.col-lg-3{width:25%}.col-lg-4{width:33.33333%}.col-lg-5{width:41.66667%}.col-lg-6{width:50%}.col-lg-7{width:58.33333%}.col-lg-8{width:66.66667%}.col-lg-9{width:75%}.col-lg-10{width:83.33333%}.col-lg-11{width:91.66667%}.col-lg-12{width:100%}.col-lg-pull-0{right:0%}.col-lg-pull-1{right:8.33333%}.col-lg-pull-2{right:16.66667%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.33333%}.col-lg-pull-5{right:41.66667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.33333%}.col-lg-pull-8{right:66.66667%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.33333%}.col-lg-pull-11{right:91.66667%}.col-lg-pull-12{right:100%}.col-lg-push-0{left:0%}.col-lg-push-1{left:8.33333%}.col-lg-push-2{left:16.66667%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.33333%}.col-lg-push-5{left:41.66667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.33333%}.col-lg-push-8{left:66.66667%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.33333%}.col-lg-push-11{left:91.66667%}.col-lg-push-12{left:100%}.col-lg-offset-0{margin-left:0%}.col-lg-offset-1{margin-left:8.33333%}.col-lg-offset-2{margin-left:16.66667%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333%}.col-lg-offset-5{margin-left:41.66667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.33333%}.col-lg-offset-8{margin-left:66.66667%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333%}.col-lg-offset-11{margin-left:91.66667%}.col-lg-offset-12{margin-left:100%}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:0;border-spacing:0}.table>thead>tr>th,.table>thead>tr>td,.table>tbody>tr>th,.table>tbody>tr>td,.table>tfoot>tr>th,.table>tfoot>tr>td{padding:8px;line-height:1.5;vertical-align:top;border-top:1px solid #313335}.table>thead>tr>th{vertical-align:bottom;border-bottom:0px solid #313335}.table>caption+thead>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>th,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #313335}.table .table{background-color:#1d1d1d}.table-condensed>thead>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>tfoot>tr>td{padding:2px}.table-bordered{border:1px solid #313335}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>tfoot>tr>td{border:1px solid #313335}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{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:#ecf3f8}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>thead>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th{background-color:#ecf3f8}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th{background-color:#d9e7f1}.table>thead>tr>td.success,.table>thead>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th{background-color:#d1e8d1}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th{background-color:#c0e0c0}.table>thead>tr>td.info,.table>thead>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th{background-color:#abc9e2}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th{background-color:#98bcdc}.table>thead>tr>td.warning,.table>thead>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th{background-color:#fdedd8}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th{background-color:#fbe3c0}.table>thead>tr>td.danger,.table>thead>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th{background-color:#f6d1d0}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th{background-color:#f1bcba}@media (max-width: 779px){.table-responsive{width:100%;margin-bottom:13.5px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #313335;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:18px;font-size:18px;line-height:inherit;color:#313335;border:0;border-bottom:1px solid #e5e5e5}label,.editable-input .editable-checklist>div>label>span{display:inline-block;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;outline-color:#568a89}output{display:block;padding-top:7px;font-size:12px;line-height:1.5;color:#adadad}.form-control{display:block;width:100%;height:32px;padding:6px 12px;font-size:12px;line-height:1.5;color:#adadad;background-color:#313335;background-image:none;border:1px solid #63676a;border-radius:0px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-out 0.15s,box-shadow ease-out 0.15s;transition:border-color ease-out 0.15s,box-shadow ease-out 0.15s}.form-control:focus{border-color:#568a89;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(86,138,137,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(86,138,137,0.6)}.form-control::-moz-placeholder{color:#63676a;opacity:1}.form-control:-ms-input-placeholder{color:#63676a}.form-control::-webkit-input-placeholder{color:#63676a}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#3c3f41;opacity:1}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}input[type="date"]{line-height:32px}.form-group{margin-bottom:15px}.radio,.checkbox,.editable-input .editable-checklist>div>label{display:block;min-height:18px;margin-top:10px;margin-bottom:10px;padding-left:20px}.radio label,.radio .editable-input .editable-checklist>div>label>span,.editable-input .radio .editable-checklist>div>label>span,.checkbox label,.editable-input .editable-checklist>div>label label,.editable-input .editable-checklist>div>label>span{display:inline;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.editable-input .editable-checklist>div>label input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px}.radio+.radio,.checkbox+.checkbox,.editable-input .editable-checklist>div>label+.checkbox,.editable-input .editable-checklist>div>.checkbox+label,.editable-input .editable-checklist>div>label+label{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],fieldset[disabled] input[type="radio"],input[type="checkbox"][disabled],fieldset[disabled] input[type="checkbox"],.radio[disabled],fieldset[disabled] .radio,.radio-inline[disabled],fieldset[disabled] .radio-inline,.checkbox[disabled],.editable-input .editable-checklist>div>label[disabled],fieldset[disabled] .checkbox,fieldset[disabled] .editable-input .editable-checklist>div>label,.editable-input fieldset[disabled] .editable-checklist>div>label,.checkbox-inline[disabled],fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:28px;padding:5px 10px;font-size:11px;line-height:1.5;border-radius:3px}select.input-sm,.input-group-sm>select.form-control,.input-group-sm>select.input-group-addon,.input-group-sm>.input-group-btn>select.btn{height:28px;line-height:28px}textarea.input-sm,.input-group-sm>textarea.form-control,.input-group-sm>textarea.input-group-addon,.input-group-sm>.input-group-btn>textarea.btn,select[multiple].input-sm,.input-group-sm>select[multiple].form-control,.input-group-sm>select[multiple].input-group-addon,.input-group-sm>.input-group-btn>select[multiple].btn{height:auto}.input-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:42px;padding:10px 16px;font-size:15px;line-height:1.33;border-radius:6px}select.input-lg,.input-group-lg>select.form-control,.input-group-lg>select.input-group-addon,.input-group-lg>.input-group-btn>select.btn{height:42px;line-height:42px}textarea.input-lg,.input-group-lg>textarea.form-control,.input-group-lg>textarea.input-group-addon,.input-group-lg>.input-group-btn>textarea.btn,select[multiple].input-lg,.input-group-lg>select[multiple].form-control,.input-group-lg>select[multiple].input-group-addon,.input-group-lg>.input-group-btn>select[multiple].btn{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:40px}.has-feedback .form-control-feedback{position:absolute;top:23px;right:0;display:block;width:32px;height:32px;line-height:32px;text-align:center}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .editable-input .editable-checklist>div>label,.editable-input .has-success .editable-checklist>div>label,.has-success .radio-inline,.has-success .checkbox-inline{color:#5cb85c}.has-success .form-control{border-color:#5cb85c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #a3d7a3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #a3d7a3}.has-success .select2-selection{border:1px solid !important;border-color:#5cb85c !important;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .input-group-addon{color:#5cb85c;border-color:#5cb85c;background-color:#d1e8d1}.has-success .form-control-feedback{color:#5cb85c}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .editable-input .editable-checklist>div>label,.editable-input .has-warning .editable-checklist>div>label,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#2b2b2b}.has-warning .form-control{border-color:#2b2b2b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #5e5e5e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #5e5e5e}.has-warning .select2-selection{border:1px solid !important;border-color:#2b2b2b !important;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .input-group-addon{color:#2b2b2b;border-color:#2b2b2b;background-color:#fdedd8}.has-warning .form-control-feedback{color:#2b2b2b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .editable-input .editable-checklist>div>label,.editable-input .has-error .editable-checklist>div>label,.has-error .radio-inline,.has-error .checkbox-inline{color:#d9534f}.has-error .form-control{border-color:#d9534f;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #eba5a3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #eba5a3}.has-error .select2-selection{border:1px solid !important;border-color:#d9534f !important;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .input-group-addon{color:#d9534f;border-color:#d9534f;background-color:#f6d1d0}.has-error .form-control-feedback{color:#d9534f}.form-control-static{margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#7c8184}@media (min-width: 780px){.form-inline .form-group,.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control,.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group>.form-control,.navbar-form .input-group>.form-control{width:100%}.form-inline .control-label,.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.navbar-form .radio,.form-inline .checkbox,.navbar-form .checkbox,.form-inline .editable-input .editable-checklist>div>label,.editable-input .form-inline .editable-checklist>div>label,.navbar-form .editable-input .editable-checklist>div>label,.editable-input .navbar-form .editable-checklist>div>label{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.form-inline .radio input[type="radio"],.navbar-form .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"],.navbar-form .checkbox input[type="checkbox"],.form-inline .editable-input .editable-checklist>div>label input[type="checkbox"],.editable-input .form-inline .editable-checklist>div>label input[type="checkbox"],.navbar-form .editable-input .editable-checklist>div>label input[type="checkbox"],.editable-input .navbar-form .editable-checklist>div>label input[type="checkbox"]{float:none;margin-left:0}.form-inline .has-feedback .form-control-feedback,.navbar-form .has-feedback .form-control-feedback{top:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .editable-input .editable-checklist>div>label,.editable-input .form-horizontal .editable-checklist>div>label,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .editable-input .editable-checklist>div>label,.editable-input .form-horizontal .editable-checklist>div>label{min-height:25px}.form-horizontal .form-group{margin-left:-10px;margin-right:-10px}.form-horizontal .form-group:before,.form-horizontal .form-group:after{content:" ";display:table}.form-horizontal .form-group:after{clear:both}.form-horizontal .form-control-static{padding-top:7px}@media (min-width: 780px){.form-horizontal .control-label{text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:10px}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:12px;line-height:1.5;border-radius:0px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;outline-color:#568a89}.btn:hover,.btn:focus{color:#eaeaea;text-decoration:none;-webkit-box-shadow:none;box-shadow:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:0 5px 11px 0 rgba(0,0,0,0.18),0 4px 15px 0 rgba(0,0,0,0.15);box-shadow:0 5px 11px 0 rgba(0,0,0,0.18),0 4px 15px 0 rgba(0,0,0,0.15)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#eaeaea;background-color:#63676a;border-color:#575a5d}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active:not(.toggle-on):not(.toggle-off){color:#eaeaea;background-color:#777b7f;border-color:#74797c}.open .btn-default.dropdown-toggle{color:#eaeaea;background-color:#777b7f;border-color:#74797c}.btn-default:active,.btn-default.active{background-image:none}.open .btn-default.dropdown-toggle{background-image:none}.btn-default.disabled,.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled:active,.btn-default.disabled.active,.btn-default[disabled],.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled]:active,.btn-default[disabled].active,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default.active{background-color:#63676a;border-color:#575a5d}.btn-default .badge{color:#63676a;background-color:#eaeaea}.btn-primary{color:#eaeaea;background-color:#375959;border-color:#2d4949}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active:not(.toggle-on):not(.toggle-off){color:#eaeaea;background-color:#477272;border-color:#456f6f}.open .btn-primary.dropdown-toggle{color:#eaeaea;background-color:#477272;border-color:#456f6f}.btn-primary:active,.btn-primary.active{background-image:none}.open .btn-primary.dropdown-toggle{background-image:none}.btn-primary.disabled,.btn-primary.disabled:hover,.btn-primary.disabled:focus,.btn-primary.disabled:active,.btn-primary.disabled.active,.btn-primary[disabled],.btn-primary[disabled]:hover,.btn-primary[disabled]:focus,.btn-primary[disabled]:active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary:hover,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary.active{background-color:#375959;border-color:#2d4949}.btn-primary .badge{color:#375959;background-color:#eaeaea}.btn-success,.modal-content .pf-wizard-navigation li.active a:not(.btn-danger){color:#eaeaea;background-color:#4f9e4f;border-color:#478d47}.btn-success:hover,.modal-content .pf-wizard-navigation li.active a:hover:not(.btn-danger),.btn-success:focus,.modal-content .pf-wizard-navigation li.active a:focus:not(.btn-danger),.btn-success:active,.modal-content .pf-wizard-navigation li.active a:active:not(.btn-danger),.btn-success.active:not(.toggle-on):not(.toggle-off),.modal-content .pf-wizard-navigation li.active a.active:not(.toggle-on):not(.toggle-off):not(.btn-danger){color:#eaeaea;background-color:#64b264;border-color:#61b061}.open .btn-success.dropdown-toggle,.open .modal-content .pf-wizard-navigation li.active a.dropdown-toggle:not(.btn-danger),.modal-content .pf-wizard-navigation li.active .open a.dropdown-toggle:not(.btn-danger){color:#eaeaea;background-color:#64b264;border-color:#61b061}.btn-success:active,.modal-content .pf-wizard-navigation li.active a:active:not(.btn-danger),.btn-success.active,.modal-content .pf-wizard-navigation li.active a.active:not(.btn-danger){background-image:none}.open .btn-success.dropdown-toggle,.open .modal-content .pf-wizard-navigation li.active a.dropdown-toggle:not(.btn-danger),.modal-content .pf-wizard-navigation li.active .open a.dropdown-toggle:not(.btn-danger){background-image:none}.btn-success.disabled,.modal-content .pf-wizard-navigation li.active a.disabled:not(.btn-danger),.btn-success.disabled:hover,.modal-content .pf-wizard-navigation li.active a.disabled:hover:not(.btn-danger),.btn-success.disabled:focus,.modal-content .pf-wizard-navigation li.active a.disabled:focus:not(.btn-danger),.btn-success.disabled:active,.modal-content .pf-wizard-navigation li.active a.disabled:active:not(.btn-danger),.btn-success.disabled.active,.modal-content .pf-wizard-navigation li.active a.disabled.active:not(.btn-danger),.btn-success[disabled],.modal-content .pf-wizard-navigation li.active a[disabled]:not(.btn-danger),.btn-success[disabled]:hover,.modal-content .pf-wizard-navigation li.active a[disabled]:hover:not(.btn-danger),.btn-success[disabled]:focus,.modal-content .pf-wizard-navigation li.active a[disabled]:focus:not(.btn-danger),.btn-success[disabled]:active,.modal-content .pf-wizard-navigation li.active a[disabled]:active:not(.btn-danger),.btn-success[disabled].active,.modal-content .pf-wizard-navigation li.active a[disabled].active:not(.btn-danger),fieldset[disabled] .btn-success,fieldset[disabled] .modal-content .pf-wizard-navigation li.active a:not(.btn-danger),.modal-content .pf-wizard-navigation li.active fieldset[disabled] a:not(.btn-danger),fieldset[disabled] .btn-success:hover,fieldset[disabled] .modal-content .pf-wizard-navigation li.active a:hover:not(.btn-danger),.modal-content .pf-wizard-navigation li.active fieldset[disabled] a:hover:not(.btn-danger),fieldset[disabled] .btn-success:focus,fieldset[disabled] .modal-content .pf-wizard-navigation li.active a:focus:not(.btn-danger),.modal-content .pf-wizard-navigation li.active fieldset[disabled] a:focus:not(.btn-danger),fieldset[disabled] .btn-success:active,fieldset[disabled] .modal-content .pf-wizard-navigation li.active a:active:not(.btn-danger),.modal-content .pf-wizard-navigation li.active fieldset[disabled] a:active:not(.btn-danger),fieldset[disabled] .btn-success.active,fieldset[disabled] .modal-content .pf-wizard-navigation li.active a.active:not(.btn-danger),.modal-content .pf-wizard-navigation li.active fieldset[disabled] a.active:not(.btn-danger){background-color:#4f9e4f;border-color:#478d47}.btn-success .badge,.modal-content .pf-wizard-navigation li.active a:not(.btn-danger) .badge{color:#4f9e4f;background-color:#eaeaea}.btn-info{color:#eaeaea;background-color:#316490;border-color:#2b577d}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active:not(.toggle-on):not(.toggle-off){color:#eaeaea;background-color:#3b79ae;border-color:#3a76ab}.open .btn-info.dropdown-toggle{color:#eaeaea;background-color:#3b79ae;border-color:#3a76ab}.btn-info:active,.btn-info.active{background-image:none}.open .btn-info.dropdown-toggle{background-image:none}.btn-info.disabled,.btn-info.disabled:hover,.btn-info.disabled:focus,.btn-info.disabled:active,.btn-info.disabled.active,.btn-info[disabled],.btn-info[disabled]:hover,.btn-info[disabled]:focus,.btn-info[disabled]:active,.btn-info[disabled].active,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info:hover,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info.active{background-color:#316490;border-color:#2b577d}.btn-info .badge{color:#316490;background-color:#eaeaea}.btn-warning{color:#eaeaea;background-color:#c2760c;border-color:#aa670b}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active:not(.toggle-on):not(.toggle-off){color:#eaeaea;background-color:#e88d0e;border-color:#e48a0e}.open .btn-warning.dropdown-toggle{color:#eaeaea;background-color:#e88d0e;border-color:#e48a0e}.btn-warning:active,.btn-warning.active{background-image:none}.open .btn-warning.dropdown-toggle{background-image:none}.btn-warning.disabled,.btn-warning.disabled:hover,.btn-warning.disabled:focus,.btn-warning.disabled:active,.btn-warning.disabled.active,.btn-warning[disabled],.btn-warning[disabled]:hover,.btn-warning[disabled]:focus,.btn-warning[disabled]:active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning:hover,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning.active{background-color:#c2760c;border-color:#aa670b}.btn-warning .badge{color:#c2760c;background-color:#eaeaea}.btn-danger{color:#eaeaea;background-color:#a52521;border-color:#90201d}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active:not(.toggle-on):not(.toggle-off){color:#eaeaea;background-color:#c72d28;border-color:#c32c27}.open .btn-danger.dropdown-toggle{color:#eaeaea;background-color:#c72d28;border-color:#c32c27}.btn-danger:active,.btn-danger.active{background-image:none}.open .btn-danger.dropdown-toggle{background-image:none}.btn-danger.disabled,.btn-danger.disabled:hover,.btn-danger.disabled:focus,.btn-danger.disabled:active,.btn-danger.disabled.active,.btn-danger[disabled],.btn-danger[disabled]:hover,.btn-danger[disabled]:focus,.btn-danger[disabled]:active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger:hover,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger.active{background-color:#a52521;border-color:#90201d}.btn-danger .badge{color:#a52521;background-color:#eaeaea}.btn-link{color:#375959;font-weight:normal;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#1a2a2a;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:hover,fieldset[disabled] .btn-link:focus{color:#63676a;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:15px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:11px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:11px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;will-change:height;-webkit-transition:height 0.35s ease;transition:height 0.35s ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.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:12px;background-color:#adadad;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.4);box-shadow:0 6px 12px rgba(0,0,0,0.4);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:5px 0;overflow:hidden;background-color:#63676a}.dropdown-menu>li>a{display:block;padding:3px 15px;clear:both;font-weight:normal;line-height:1.5;color:#313335;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#1d1d1d;background-color:#63676a}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#adadad;text-decoration:none;outline:0;background-color:#375959}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#63676a}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:11px;line-height:1.5;color:#63676a}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width: 480px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:none}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar:before,.btn-toolbar:after{content:" ";display:table}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.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>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle,.btn-group-lg.btn-group>.btn+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret,.btn-group-lg>.btn .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret,.dropup .btn-group-lg>.btn .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{content:" ";display:table}.btn-group-vertical>.btn-group:after{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:0px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:0px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}[data-toggle="buttons"]>.btn>input[type="radio"],[data-toggle="buttons"]>.btn>input[type="checkbox"]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:12px;font-weight:normal;line-height:1;color:#63676a;text-align:center;background-color:#2b2b2b;border:1px solid #63676a;border-radius:0px}.input-group-addon.input-sm,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.input-group-addon.btn{padding:5px 10px;font-size:11px;border-radius:3px}.input-group-addon.input-lg,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.input-group-addon.btn{padding:10px 16px;font-size:15px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav:before,.nav:after{content:" ";display:table}.nav:after{clear:both}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:5px 6px 5px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#3c3f41}.nav>li.disabled>a{color:#63676a}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#63676a;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#3c3f41;border-color:#375959}.nav .nav-divider{height:1px;margin:5px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #adadad}.nav-tabs>li{float:left;margin-bottom:-1px;margin-right:2px}.nav-tabs>li>a{line-height:1.5;border:1px solid transparent}.nav-tabs>li>a:hover{border-color:#adadad #adadad #adadad}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#313335;border:1px solid #adadad;border-bottom-color:transparent;cursor:default}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:0px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#375959}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified,.nav-tabs.nav-justified{width:100%}.nav-justified>li,.nav-tabs.nav-justified>li{float:none}.nav-justified>li>a,.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width: 780px){.nav-justified>li,.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a,.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified,.nav-tabs.nav-justified{border-bottom:0}.nav-tabs-justified>li>a,.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:0px}.nav-tabs-justified>.active>a,.nav-tabs.nav-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width: 780px){.nav-tabs-justified>li>a,.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:0px 0px 0 0}.nav-tabs-justified>.active>a,.nav-tabs.nav-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#1d1d1d}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:30px;margin-bottom:18px}.navbar:before,.navbar:after{content:" ";display:table}.navbar:after{clear:both}@media (min-width: 480px){.navbar{border-radius:0px}}.navbar-header:before,.navbar-header:after{content:" ";display:table}.navbar-header:after{clear:both}@media (min-width: 480px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:10px;padding-left:10px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse:before,.navbar-collapse:after{content:" ";display:table}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media (min-width: 480px){.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-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.container>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-header,.container-fluid>.navbar-collapse{margin-right:-10px;margin-left:-10px}@media (min-width: 480px){.container>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-header,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width: 480px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width: 480px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:6px 10px;font-size:1.2em;line-height:18px;height:30px;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width: 480px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-10px}}.navbar-toggle{position:relative;float:right;margin-right:10px;margin-left:10px;padding:6px 12px;margin-top:-2px;margin-bottom:-2px;background-color:#313335;background-image:none;border:1px solid #a0a0a0;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}.navbar-toggle:focus{outline:none}.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: 480px){.navbar-toggle{display:none}}.navbar-nav{margin:3px -10px;float:left;margin:0}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:18px}@media (max-width: 479px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:18px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}.navbar-nav>li{float:left;margin-right:2px}.navbar-nav>li>a{padding-top:6px;padding-bottom:6px}.navbar-nav.navbar-right:last-child{margin-right:-10px}@media (min-width: 480px){.navbar-left{float:left !important}.navbar-right{float:right !important}}.navbar-form{margin-left:-10px;margin-right:-10px;padding:10px 10px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:-1px;margin-bottom:-1px}@media (max-width: 479px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width: 480px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-10px}}.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-btn{margin-top:-1px;margin-bottom:-1px}.navbar-btn.btn-sm,.btn-group-sm>.navbar-btn.btn{margin-top:1px;margin-bottom:1px}.navbar-btn.btn-xs,.btn-group-xs>.navbar-btn.btn{margin-top:4px;margin-bottom:4px}.navbar-text{margin-top:6px;margin-bottom:6px;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;float:left;margin-left:10px;margin-right:10px}.navbar-text.navbar-right:last-child{margin-right:0}.navbar-default{background:rgba(43,43,43,0.9);border-color:none}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#568a89;background-color:transparent}.navbar-default .navbar-text{color:#63676a}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#6caead;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus{color:#568a89;background-color:transparent}.navbar-default .navbar-nav>.active>a:hover{color:#6caead}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#3c3f41;background-color:transparent}.navbar-default .navbar-toggle{border-color:#477372;color:#2b2b2b;cursor:pointer}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{border-color:#518382;background-color:#3d4042}.navbar-default .navbar-toggle:hover .icon-bar,.navbar-default .navbar-toggle:focus .icon-bar{background-color:#568a89}.navbar-default .navbar-toggle .icon-bar{background-color:#477372}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:none}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:transparent;color:#568a89}@media (max-width: 479px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#6caead;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#568a89;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#3c3f41;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#6caead}.navbar-inverse{background-color:#222;border-color:#090909}.navbar-inverse .navbar-brand{color:#63676a}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#63676a}.navbar-inverse .navbar-nav>li>a{color:#63676a}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#090909}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#090909;color:#fff}@media (max-width: 479px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#63676a}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#63676a}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:0px 0px;margin-bottom:18px;list-style:none;background-color:none;border-radius:0px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/ ";padding:0 5px;color:#63676a}.breadcrumb>.active{color:#5cb85c}.pagination{display:inline-block;padding-left:0;margin:18px 0;border-radius:0px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.5;text-decoration:none;color:#375959;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:0px;border-top-left-radius:0px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:0px;border-top-right-radius:0px}.pagination>li>a:hover,.pagination>li>a:focus,.pagination>li>span:hover,.pagination>li>span:focus{color:#1a2a2a;background-color:#adadad;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:hover,.pagination>.active>a:focus,.pagination>.active>span,.pagination>.active>span:hover,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#375959;border-color:#375959;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#63676a;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:15px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:11px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:18px 0;list-style:none;text-align:center}.pager:before,.pager:after{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:hover,.pager li>a:focus{text-decoration:none;background-color:#adadad}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#63676a;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:2px 5px;font-size:75%;font-weight:bold;line-height:1;color:#000;text-align:center;white-space:nowrap;vertical-align:baseline;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#63676a}.label-default[href]:hover,.label-default[href]:focus{background-color:#4a4d50}.label-primary{background-color:#375959}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#243939}.label-success{background-color:#4f9e4f}.label-success[href]:hover,.label-success[href]:focus{background-color:#3e7c3e}.label-info{background-color:#316490}.label-info[href]:hover,.label-info[href]:focus{background-color:#244a6a}.label-warning{background-color:#e28a0d}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#b26d0a}.label-danger{background-color:#a52521}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#7b1b19}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:11px;font-weight:bold;color:#eaeaea;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#63676a;text-indent:initial;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#375959;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.thumbnail{display:block;padding:4px;margin-bottom:18px;line-height:1.5;background-color:#1d1d1d;border:1px solid #ddd;border-radius:0px;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.thumbnail>img,.thumbnail a>img{display:block;max-width:100%;height:auto;margin-left:auto;margin-right:auto}.thumbnail .caption{padding:9px;color:#63676a}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#375959}.alert{padding:15px;margin-bottom:18px;border:1px solid transparent;border-radius:0px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#d1e8d1;border-color:#4f9e4f;color:#2b2b2b}.alert-success hr{border-top-color:#478d47}.alert-success .alert-link{color:#121212}.alert-info{background-color:#abc9e2;border-color:#316490;color:#2b2b2b}.alert-info hr{border-top-color:#2b577d}.alert-info .alert-link{color:#121212}.alert-warning{background-color:#fdedd8;border-color:#e28a0d;color:#2b2b2b}.alert-warning hr{border-top-color:#ca7b0c}.alert-warning .alert-link{color:#121212}.alert-danger{background-color:#f6d1d0;border-color:#a52521;color:#2b2b2b}.alert-danger hr{border-top-color:#90201d}.alert-danger .alert-link{color:#121212}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:18px;margin-bottom:18px;background-color:#f5f5f5;border-radius:0px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:11px;line-height:18px;color:#fff;text-align:center;background-color:#375959;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0));background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#4f9e4f}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0))}.progress-bar-info{background-color:#316490}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0))}.progress-bar-warning{background-color:#e28a0d}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0))}.progress-bar-danger{background-color:#a52521}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0))}.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:6px 8px;background-color:#adadad;border-bottom:1px solid #63676a;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif}.list-group-item:first-child{border-top-right-radius:0px;border-top-left-radius:0px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:0px;border-bottom-left-radius:0px}.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:hover,a.list-group-item:focus{text-decoration:none;background-color:#63676a;color:#1d1d1d}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{z-index:2;color:#eaeaea;background-color:#375959;border-color:#375959}a.list-group-item.active .list-group-item-heading,a.list-group-item.active:hover .list-group-item-heading,a.list-group-item.active:focus .list-group-item-heading{color:inherit}a.list-group-item.active .list-group-item-text,a.list-group-item.active:hover .list-group-item-text,a.list-group-item.active:focus .list-group-item-text{color:#9bc1c1}.list-group-item-success{color:#2b2b2b;background-color:#d1e8d1}a.list-group-item-success{color:#2b2b2b}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#2b2b2b;background-color:#c0e0c0}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#2b2b2b;border-color:#2b2b2b}.list-group-item-info{color:#2b2b2b;background-color:#abc9e2}a.list-group-item-info{color:#2b2b2b}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#2b2b2b;background-color:#98bcdc}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#2b2b2b;border-color:#2b2b2b}.list-group-item-warning{color:#2b2b2b;background-color:#fdedd8}a.list-group-item-warning{color:#2b2b2b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#2b2b2b;background-color:#fbe3c0}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#2b2b2b;border-color:#2b2b2b}.list-group-item-danger{color:#2b2b2b;background-color:#f6d1d0}a.list-group-item-danger{color:#2b2b2b}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#2b2b2b;background-color:#f1bcba}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#2b2b2b;border-color:#2b2b2b}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:18px;background-color:#3c3f41;border:1px solid transparent;border-radius:5px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-body:before,.panel-body:after{content:" ";display:table}.panel-body:after{clear:both}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:4px;border-top-left-radius:4px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:13px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#353739;border-top:1px solid #313335;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:4px;border-top-left-radius:4px}.panel>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:4px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:4px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:4px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:4px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #313335}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:18px}.panel-group .panel{margin-bottom:0;border-radius:5px;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 #313335}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #313335}.panel-default{border-color:#1d1d1d}.panel-default>.panel-heading{color:#63676a;background-color:#353739;border-color:#1d1d1d}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#1d1d1d}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#1d1d1d}.panel-primary{border-color:#1d1d1d}.panel-primary>.panel-heading{color:#1d1d1d;background-color:#375959;border-color:#1d1d1d}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#1d1d1d}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#1d1d1d}.panel-success{border-color:#1d1d1d}.panel-success>.panel-heading{color:#2b2b2b;background-color:#d1e8d1;border-color:#1d1d1d}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#1d1d1d}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#1d1d1d}.panel-info{border-color:#1d1d1d}.panel-info>.panel-heading{color:#2b2b2b;background-color:#abc9e2;border-color:#1d1d1d}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#1d1d1d}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#1d1d1d}.panel-warning{border-color:#1d1d1d}.panel-warning>.panel-heading{color:#1d1d1d;background-color:#e28a0d;border-color:#1d1d1d}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#1d1d1d}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#1d1d1d}.panel-danger{border-color:#1d1d1d}.panel-danger>.panel-heading{color:#2b2b2b;background-color:#f6d1d0;border-color:#1d1d1d}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#1d1d1d}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#1d1d1d}.well{min-height:20px;padding:10px;margin-bottom:20px;background-color:#63676a;border:1px solid #313335;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;color:#2b2b2b;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well a{color:#6caead}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:7px;border-radius:3px}.close{float:right;font-size:18px;font-weight:bold;line-height:1;color:#a52521}.close:hover,.close:focus{color:#a52521;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:auto;overflow-y:auto;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);-moz-transition:-moz-transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);-o-transition:-o-transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);transition:transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275)}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);transform:translate(0, 0)}.modal-dialog{position:relative;width:auto;margin:10px;z-index:1050}.modal-content{position:relative;background-color:#3c3f41;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box;outline:none}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.3;filter:alpha(opacity=30)}.modal-header{padding:14px;border-bottom:1px solid #303234;min-height:15.5px;background-color:#353739}.modal-header .bootbox-close-button,.modal-body .bootbox-close-button{padding:0 5px;font-size:22px;margin-top:-2px}.modal-title{margin:0;line-height:1.5}.modal-body{position:relative;padding:14px;color:#adadad}.modal-footer{padding:13px 14px 14px;text-align:right;border-top:1px solid #303234;background-color:#353739}.modal-footer:before,.modal-footer:after{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 (min-width: 780px){.modal-dialog{width:700px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width: 1200px){.modal-lg{width:1100px}}.tooltip{position:absolute;z-index:1010;display:block;visibility:visible;font-size:11px;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:0px}.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:1030;display:none;max-width:276px;padding:1px;text-align:left;background-color:#3c3f41;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);white-space:normal}.popover.top{margin-top:-7px}.popover.right{margin-left:7px}.popover.bottom{margin-top:7px}.popover.left{margin-left:-7px}.popover-title{margin:0;padding:8px 14px;font-size:12px;font-weight:normal;line-height:18px;background-color:#353739;border-bottom:1px solid #282a2c;border-radius:5px 5px 0 0;color:#63676a}.popover-content{padding:7px 10px}.popover-content pre{margin-bottom:5px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:8px}.popover>.arrow:after{border-width:7px;content:""}.popover.top>.arrow{left:50%;margin-left:-8px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);bottom:-8px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-7px;border-bottom-width:0;border-top-color:#63676a}.popover.right>.arrow{top:50%;left:-8px;margin-top:-8px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-7px;border-left-width:0;border-right-color:#63676a}.popover.bottom>.arrow{left:50%;margin-left:-8px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);top:-8px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-7px;border-top-width:0;border-bottom-color:#63676a}.popover.left>.arrow{top:50%;right:-8px;margin-top:-8px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#63676a;bottom:-7px}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important;visibility:hidden !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}@media (max-width: 779px){.visible-xs{display:block !important}table.visible-xs{display:table}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (min-width: 780px) and (max-width: 1199px){.visible-sm{display:block !important}table.visible-sm{display:table}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width: 1200px) and (max-width: 1599px){.visible-md{display:block !important}table.visible-md{display:table}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width: 1600px){.visible-lg{display:block !important}table.visible-lg{display:table}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (max-width: 779px){.hidden-xs{display:none !important}}@media (min-width: 780px) and (max-width: 1199px){.hidden-sm{display:none !important}}@media (min-width: 1200px) and (max-width: 1599px){.hidden-md{display:none !important}}@media (min-width: 1600px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}@media print{.hidden-print{display:none !important}}/*! * Font Awesome Free 5.2.0 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) */.fa,.fas,.pf-landing .pf-landing-list li>i,.far,.fal,.fab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw,.pf-landing .pf-landing-list li>i,.modal-content h2[data-toggle="collapse"]:after,.modal-content h4[data-toggle="collapse"]:after,.panel-body h2[data-toggle="collapse"]:after,.panel-body h4[data-toggle="collapse"]:after{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li,.pf-landing .pf-landing-list li>i{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid 0.08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fas.fa-pull-left,.pf-landing .pf-landing-list li>i.fa-pull-left,.far.fa-pull-left,.fal.fa-pull-left,.fab.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fas.fa-pull-right,.pf-landing .pf-landing-list li>i.fa-pull-right,.far.fa-pull-right,.fal.fa-pull-right,.fab.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180,#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper.pf-character-active:after{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";transform:scale(1, -1)}.fa-flip-horizontal.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";transform:scale(-1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root #pf-landing-login .pf-dynamic-area .pf-character-image-wrapper.pf-character-active:after,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before,.pf-landing .pf-landing-list li>i:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-balance-scale:before{content:"\f24e"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bicycle:before{content:"\f206"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blind:before{content:"\f29d"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-certificate:before{content:"\f0a3"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-concierge-bell:before{content:"\f562"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-credit-card:before{content:"\f09d"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-deviantart:before{content:"\f1bd"}.fa-diagnoses:before{content:"\f470"}.fa-dice:before{content:"\f522"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-gift:before{content:"\f06b"}.fa-git:before{content:"\f1d3"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hashtag:before{content:"\f292"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-houzz:before{content:"\f27c"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-internet-explorer:before{content:"\f26b"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mercury:before{content:"\f223"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-motorcycle:before{content:"\f21c"}.fa-mouse-pointer:before{content:"\f245"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-nintendo-switch:before{content:"\f418"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-people-carry:before{content:"\f4ce"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-volume:before{content:"\f2a0"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poo:before{content:"\f2fe"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-r-project:before{content:"\f4f7"}.fa-random:before{content:"\f074"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-rendact:before{content:"\f3e4"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-sass:before{content:"\f41e"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-search:before{content:"\f002"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skull:before{content:"\f54c"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowflake:before{content:"\f2dc"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-swatchbook:before{content:"\f5c3"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toolbox:before{content:"\f552"}.fa-tooth:before{content:"\f5c9"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-train:before{content:"\f238"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0, 0, 0, 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}/*! @@ -30,10 +30,10 @@ */@font-face{font-family:'Font Awesome 5 Brands';font-style:normal;font-weight:normal;src:url("../../fonts/fa-brands-400.eot");src:url("../../fonts/fa-brands-400.eot?#iefix") format("embedded-opentype"),url("../../fonts/fa-brands-400.woff2") format("woff2"),url("../../fonts/fa-brands-400.woff") format("woff"),url("../../fonts/fa-brands-400.ttf") format("truetype"),url("../../fonts/fa-brands-400.svg#fontawesome") format("svg")}.fab{font-family:'Font Awesome 5 Brands'}.mCustomScrollbar{-ms-touch-action:pinch-zoom;touch-action:pinch-zoom}.mCustomScrollbar.mCS_no_scrollbar,.mCustomScrollbar.mCS_touch_action{-ms-touch-action:auto;touch-action:auto}.mCustomScrollBox{position:relative;overflow:hidden;height:100%;max-width:100%;outline:none;direction:ltr}.mCSB_container{overflow:hidden;width:auto;height:auto}.mCSB_inside>.mCSB_container{margin-right:20px}.mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden{margin-right:0}.mCS-dir-rtl>.mCSB_inside>.mCSB_container{margin-right:0;margin-left:20px}.mCS-dir-rtl>.mCSB_inside>.mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden{margin-left:0}.mCSB_scrollTools{position:absolute;width:16px;height:auto;left:auto;top:0;right:0;bottom:0}.mCSB_outside+.mCSB_scrollTools{right:-26px}.mCS-dir-rtl>.mCSB_inside>.mCSB_scrollTools,.mCS-dir-rtl>.mCSB_outside+.mCSB_scrollTools{right:auto;left:0}.mCS-dir-rtl>.mCSB_outside+.mCSB_scrollTools{left:-26px}.mCSB_scrollTools .mCSB_draggerContainer{position:absolute;top:0;left:0;bottom:0;right:0;height:auto}.mCSB_scrollTools a+.mCSB_draggerContainer{margin:20px 0}.mCSB_scrollTools .mCSB_draggerRail{width:2px;height:100%;margin:0 auto;-webkit-border-radius:16px;-moz-border-radius:16px;border-radius:16px}.mCSB_scrollTools .mCSB_dragger{cursor:pointer;width:100%;height:30px;z-index:1}.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{position:relative;width:4px;height:100%;margin:0 auto;-webkit-border-radius:16px;-moz-border-radius:16px;border-radius:16px;text-align:center}.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{width:12px}.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{width:8px}.mCSB_scrollTools .mCSB_buttonUp,.mCSB_scrollTools .mCSB_buttonDown{display:block;position:absolute;height:20px;width:100%;overflow:hidden;margin:0 auto;cursor:pointer}.mCSB_scrollTools .mCSB_buttonDown{bottom:0}.mCSB_horizontal.mCSB_inside>.mCSB_container{margin-right:0;margin-bottom:20px}.mCSB_horizontal.mCSB_outside>.mCSB_container{min-height:100%}.mCSB_horizontal>.mCSB_container.mCS_no_scrollbar_x.mCS_x_hidden{margin-bottom:0}.mCSB_scrollTools.mCSB_scrollTools_horizontal{width:auto;height:16px;top:auto;right:0;bottom:0;left:0}.mCustomScrollBox+.mCSB_scrollTools.mCSB_scrollTools_horizontal,.mCustomScrollBox+.mCSB_scrollTools+.mCSB_scrollTools.mCSB_scrollTools_horizontal{bottom:-26px}.mCSB_scrollTools.mCSB_scrollTools_horizontal a+.mCSB_draggerContainer{margin:0 20px}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:2px;margin:7px 0}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger{width:30px;height:100%;left:0}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{width:100%;height:4px;margin:6px auto}.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{height:12px;margin:2px auto}.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{height:8px;margin:4px 0}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft,.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight{display:block;position:absolute;width:20px;height:100%;overflow:hidden;margin:0 auto;cursor:pointer}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft{left:0}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight{right:0}.mCSB_container_wrapper{position:absolute;height:auto;width:auto;overflow:hidden;top:0;left:0;right:0;bottom:0;margin-right:20px;margin-bottom:20px}.mCSB_container_wrapper>.mCSB_container{padding-right:20px;padding-bottom:20px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mCSB_vertical_horizontal>.mCSB_scrollTools.mCSB_scrollTools_vertical{bottom:20px}.mCSB_vertical_horizontal>.mCSB_scrollTools.mCSB_scrollTools_horizontal{right:20px}.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden+.mCSB_scrollTools.mCSB_scrollTools_vertical{bottom:0}.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden+.mCSB_scrollTools ~ .mCSB_scrollTools.mCSB_scrollTools_horizontal,.mCS-dir-rtl>.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_scrollTools.mCSB_scrollTools_horizontal{right:0}.mCS-dir-rtl>.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_scrollTools.mCSB_scrollTools_horizontal{left:20px}.mCS-dir-rtl>.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden+.mCSB_scrollTools ~ .mCSB_scrollTools.mCSB_scrollTools_horizontal{left:0}.mCS-dir-rtl>.mCSB_inside>.mCSB_container_wrapper{margin-right:0;margin-left:20px}.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden>.mCSB_container{padding-right:0}.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden>.mCSB_container{padding-bottom:0}.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden{margin-right:0;margin-left:0}.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden{margin-bottom:0}.mCSB_scrollTools,.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCSB_scrollTools .mCSB_buttonUp,.mCSB_scrollTools .mCSB_buttonDown,.mCSB_scrollTools .mCSB_buttonLeft,.mCSB_scrollTools .mCSB_buttonRight{-webkit-transition:opacity .2s ease-in-out, background-color .2s ease-in-out;-moz-transition:opacity .2s ease-in-out, background-color .2s ease-in-out;-o-transition:opacity .2s ease-in-out, background-color .2s ease-in-out;transition:opacity .2s ease-in-out, background-color .2s ease-in-out}.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger_bar,.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerRail,.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger_bar,.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerRail{-webkit-transition:width .2s ease-out .2s, height .2s ease-out .2s, margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, opacity .2s ease-in-out, background-color .2s ease-in-out;-moz-transition:width .2s ease-out .2s, height .2s ease-out .2s, margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, opacity .2s ease-in-out, background-color .2s ease-in-out;-o-transition:width .2s ease-out .2s, height .2s ease-out .2s, margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, opacity .2s ease-in-out, background-color .2s ease-in-out;transition:width .2s ease-out .2s, height .2s ease-out .2s, margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, opacity .2s ease-in-out, background-color .2s ease-in-out}.mCSB_scrollTools{opacity:0.75;filter:"alpha(opacity=75)";-ms-filter:"alpha(opacity=75)"}.mCS-autoHide>.mCustomScrollBox>.mCSB_scrollTools,.mCS-autoHide>.mCustomScrollBox ~ .mCSB_scrollTools{opacity:0;filter:"alpha(opacity=0)";-ms-filter:"alpha(opacity=0)"}.mCustomScrollbar>.mCustomScrollBox>.mCSB_scrollTools.mCSB_scrollTools_onDrag,.mCustomScrollbar>.mCustomScrollBox ~ .mCSB_scrollTools.mCSB_scrollTools_onDrag,.mCustomScrollBox:hover>.mCSB_scrollTools,.mCustomScrollBox:hover ~ .mCSB_scrollTools,.mCS-autoHide:hover>.mCustomScrollBox>.mCSB_scrollTools,.mCS-autoHide:hover>.mCustomScrollBox ~ .mCSB_scrollTools{opacity:1;filter:"alpha(opacity=100)";-ms-filter:"alpha(opacity=100)"}.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,0.4);filter:"alpha(opacity=40)";-ms-filter:"alpha(opacity=40)"}.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#adadad;background-color:rgba(173,173,173,0.75);filter:"alpha(opacity=75)";-ms-filter:"alpha(opacity=75)"}.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#e28a0d;background-color:rgba(226,138,13,0.85);filter:"alpha(opacity=85)";-ms-filter:"alpha(opacity=85)"}.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{background-color:#e28a0d;background-color:rgba(226,138,13,0.9);filter:"alpha(opacity=90)";-ms-filter:"alpha(opacity=90)"}.mCSB_scrollTools .mCSB_buttonUp,.mCSB_scrollTools .mCSB_buttonDown,.mCSB_scrollTools .mCSB_buttonLeft,.mCSB_scrollTools .mCSB_buttonRight{background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACQCAYAAACPtWCAAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoxMURDMzE5NzIzQkNFMTExOTY0QkYwNzFDNzkwNTlDNCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDOTMwRUZENEMxMUUxMUUzOUYxQkJGN0E1MDMzNTg1MCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDOTMwRUZEM0MxMUUxMUUzOUYxQkJGN0E1MDMzNTg1MCIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1MGJlMjMyZC1hNzgzLTI1NGQtOTI4Yy02NDI0YmQxNTg0YWEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MTFEQzMxOTcyM0JDRTExMTk2NEJGMDcxQzc5MDU5QzQiLz4gPC9yZGY6RGVzY3Jp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');background-repeat:no-repeat;opacity:0.4;filter:"alpha(opacity=40)";-ms-filter:"alpha(opacity=40)"}.mCSB_scrollTools .mCSB_buttonUp{background-position:0 0}.mCSB_scrollTools .mCSB_buttonDown{background-position:0 -20px}.mCSB_scrollTools .mCSB_buttonLeft{background-position:0 -40px}.mCSB_scrollTools .mCSB_buttonRight{background-position:0 -56px}.mCSB_scrollTools .mCSB_buttonUp:hover,.mCSB_scrollTools .mCSB_buttonDown:hover,.mCSB_scrollTools .mCSB_buttonLeft:hover,.mCSB_scrollTools .mCSB_buttonRight:hover{opacity:0.75;filter:"alpha(opacity=75)";-ms-filter:"alpha(opacity=75)"}.mCSB_scrollTools .mCSB_buttonUp:active,.mCSB_scrollTools .mCSB_buttonDown:active,.mCSB_scrollTools .mCSB_buttonLeft:active,.mCSB_scrollTools .mCSB_buttonRight:active{opacity:0.9;filter:"alpha(opacity=90)";-ms-filter:"alpha(opacity=90)"}.mCS-light-3.mCSB_scrollTools .mCSB_draggerRail,.mCS-dark-3.mCSB_scrollTools .mCSB_draggerRail{width:6px;background-color:#000;background-color:rgba(0,0,0,0.2)}.mCS-light-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-dark-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:6px}.mCS-light-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-dark-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-light-3.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-dark-3.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:6px;margin:5px 0}.mCS-light-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-light-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,.mCS-dark-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-dark-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{width:12px}.mCS-light-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-light-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,.mCS-dark-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-dark-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{height:12px;margin:2px 0}.mCS-light-3.mCSB_scrollTools .mCSB_buttonUp{background-position:-32px -72px}.mCS-light-3.mCSB_scrollTools .mCSB_buttonDown{background-position:-32px -92px}.mCS-light-3.mCSB_scrollTools .mCSB_buttonLeft{background-position:-40px -112px}.mCS-light-3.mCSB_scrollTools .mCSB_buttonRight{background-position:-40px -128px}table.dataTable{width:100%;margin:0 auto;clear:both;border-collapse:separate;border-spacing:0}table.dataTable thead th,table.dataTable tfoot th{font-weight:bold}table.dataTable thead th,table.dataTable thead td{padding:10px 18px;border-bottom:1px solid #3c3f41}table.dataTable thead th:active,table.dataTable thead td:active{outline:none}table.dataTable tfoot th,table.dataTable tfoot td{padding:10px 18px 6px 18px;border-top:1px solid #3c3f41}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc{cursor:pointer;*cursor:hand}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc_disabled{background-repeat:no-repeat;background-position:center right}table.dataTable thead .sorting{background-image:url("../img/data-tables/sort_both.png")}table.dataTable thead .sorting_asc{background-image:url("../img/data-tables/sort_asc.png")}table.dataTable thead .sorting_desc{background-image:url("../img/data-tables/sort_desc.png")}table.dataTable thead .sorting_asc_disabled{background-image:url("../img/data-tables/sort_asc_disabled.png")}table.dataTable thead .sorting_desc_disabled{background-image:url("../img/data-tables/sort_desc_disabled.png")}table.dataTable tbody tr{background-color:#212121}table.dataTable tbody tr.selected{background-color:#1b2326}table.dataTable tbody th,table.dataTable tbody td{padding:8px 10px}table.dataTable.row-border tbody th,table.dataTable.row-border tbody td,table.dataTable.display tbody th,table.dataTable.display tbody td{border-top:1px solid #3c3f41}table.dataTable.row-border tbody tr:first-child th,table.dataTable.row-border tbody tr:first-child td,table.dataTable.display tbody tr:first-child th,table.dataTable.display tbody tr:first-child td{border-top:none}table.dataTable.cell-border tbody th,table.dataTable.cell-border tbody td{border-top:1px solid #ddd;border-right:1px solid #ddd}table.dataTable.cell-border tbody tr th:first-child,table.dataTable.cell-border tbody tr td:first-child{border-left:1px solid #ddd}table.dataTable.cell-border tbody tr:first-child th,table.dataTable.cell-border tbody tr:first-child td{border-top:none}table.dataTable.stripe tbody tr.odd,table.dataTable.display tbody tr.odd{background-color:#2b2b2b}table.dataTable.stripe tbody tr.odd.selected,table.dataTable.display tbody tr.odd.selected{background-color:#1b2326}table.dataTable.hover tbody tr:hover,table.dataTable.display tbody tr:hover{outline:1px solid #c2760c;outline-offset:-1px}table.dataTable.hover tbody tr:hover td,table.dataTable.display tbody tr:hover td{background-color:rgba(194,118,12,0.08)}table.dataTable.hover tbody tr:hover.selected,table.dataTable.display tbody tr:hover.selected{background-color:#925909}table.dataTable.order-column tbody tr>.sorting_1,table.dataTable.order-column tbody tr>.sorting_2,table.dataTable.order-column tbody tr>.sorting_3,table.dataTable.display tbody tr>.sorting_1,table.dataTable.display tbody tr>.sorting_2,table.dataTable.display tbody tr>.sorting_3{background-color:#2b2b2b}table.dataTable.order-column tbody tr.selected>.sorting_1,table.dataTable.order-column tbody tr.selected>.sorting_2,table.dataTable.order-column tbody tr.selected>.sorting_3,table.dataTable.display tbody tr.selected>.sorting_1,table.dataTable.display tbody tr.selected>.sorting_2,table.dataTable.display tbody tr.selected>.sorting_3{background-color:#acbad5}table.dataTable.display tbody tr.odd>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd>.sorting_1{background-color:#212C30}table.dataTable.display tbody tr.odd>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd>.sorting_2{background-color:#1b2326}table.dataTable.display tbody tr.odd>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd>.sorting_3{background-color:#101517}table.dataTable.display tbody tr.odd.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_1{background-color:#171e20}table.dataTable.display tbody tr.odd.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_2{background-color:#a8b5cf}table.dataTable.display tbody tr.odd.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_3{background-color:#a9b7d1}table.dataTable.display tbody tr.even>.sorting_1,table.dataTable.order-column.stripe tbody tr.even>.sorting_1{background-color:#212C30}table.dataTable.display tbody tr.even>.sorting_2,table.dataTable.order-column.stripe tbody tr.even>.sorting_2{background-color:#1b2326}table.dataTable.display tbody tr.even>.sorting_3,table.dataTable.order-column.stripe tbody tr.even>.sorting_3{background-color:#101517}table.dataTable.display tbody tr.even.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_1{background-color:#171e20}table.dataTable.display tbody tr.even.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_2{background-color:#aebcd6}table.dataTable.display tbody tr.even.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_3{background-color:#afbdd8}table.dataTable.display tbody tr:hover>.sorting_1,table.dataTable.order-column.hover tbody tr:hover>.sorting_1{background-color:rgba(2,1,0,0.2)}table.dataTable.display tbody tr:hover>.sorting_2,table.dataTable.order-column.hover tbody tr:hover>.sorting_2{background-color:rgba(0,0,0,0.2)}table.dataTable.display tbody tr:hover>.sorting_3,table.dataTable.order-column.hover tbody tr:hover>.sorting_3{background-color:rgba(0,0,0,0.2)}table.dataTable.display tbody tr:hover.selected>.sorting_1,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1{background-color:#885308}table.dataTable.display tbody tr:hover.selected>.sorting_2,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2{background-color:#a3b0c9}table.dataTable.display tbody tr:hover.selected>.sorting_3,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3{background-color:#a5b2cb}table.dataTable.no-footer{border-bottom:1px solid #3c3f41}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}table.dataTable.compact thead th:not(.sorting_disabled),table.dataTable.compact thead td:not(.sorting_disabled){padding:4px 17px 4px 4px}table.dataTable.compact thead th,table.dataTable.compact thead td{padding:4px 4px 4px 4px}table.dataTable.compact tfoot th,table.dataTable.compact tfoot td{padding:4px}table.dataTable.compact tbody th,table.dataTable.compact tbody td{padding:4px}table.dataTable th.dt-left,table.dataTable td.dt-left{text-align:left}table.dataTable th.dt-center,table.dataTable td.dt-center,table.dataTable td.dataTables_empty{text-align:center}table.dataTable th.dt-right,table.dataTable td.dt-right{text-align:right}table.dataTable th.dt-justify,table.dataTable td.dt-justify{text-align:justify}table.dataTable th.dt-nowrap,table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable thead th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody th.dt-body-left,table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center,table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right,table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify,table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap,table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable,table.dataTable th,table.dataTable td{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.dataTables_wrapper{position:relative;clear:both;*zoom:1;zoom:1}.dataTables_wrapper .dataTables_length{float:left}.dataTables_wrapper .dataTables_filter{float:right;text-align:right}.dataTables_wrapper .dataTables_filter input{margin-left:0.5em}.dataTables_wrapper .dataTables_info{clear:both;float:left;padding-top:0.9em}.dataTables_wrapper .dataTables_paginate{float:right;text-align:right;padding-top:0.5em}.dataTables_wrapper .dataTables_paginate .paginate_button{box-sizing:border-box;display:inline-block;min-width:1.5em;padding:0.3em 0.8em;margin-left:2px;text-align:center;text-decoration:none !important;cursor:pointer;*cursor:hand;color:#6f7477 !important;border:1px solid transparent;border-radius:2px}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{color:#adadad !important;border:1px solid transparent;background-color:#313335;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #313335), color-stop(100%, #2b2b2b));background:-webkit-linear-gradient(top, #313335 0%, #2b2b2b 100%);background:-moz-linear-gradient(top, #313335 0%, #2b2b2b 100%);background:-ms-linear-gradient(top, #313335 0%, #2b2b2b 100%);background:-o-linear-gradient(top, #313335 0%, #2b2b2b 100%);background:linear-gradient(to bottom, #313335 0%,#2b2b2b 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active{cursor:default;color:#4f5355 !important;border:1px solid transparent;background:transparent;box-shadow:none;pointer-events:all;cursor:not-allowed}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{color:#313335 !important;border:1px solid transparent;background-color:#c2760c;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #c2760c), color-stop(100%, #c2760c));background:-webkit-linear-gradient(top, #c2760c 0%, #c2760c 100%);background:-moz-linear-gradient(top, #c2760c 0%, #c2760c 100%);background:-ms-linear-gradient(top, #c2760c 0%, #c2760c 100%);background:-o-linear-gradient(top, #c2760c 0%, #c2760c 100%);background:linear-gradient(to bottom, #c2760c 0%,#c2760c 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button:active{outline:none;background-color:#c2760c;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #c2760c), color-stop(100%, #c2760c));background:-webkit-linear-gradient(top, #c2760c 0%, #c2760c 100%);background:-moz-linear-gradient(top, #c2760c 0%, #c2760c 100%);background:-ms-linear-gradient(top, #c2760c 0%, #c2760c 100%);background:-o-linear-gradient(top, #c2760c 0%, #c2760c 100%);background:linear-gradient(to bottom, #c2760c 0%,#c2760c 100%)}.dataTables_wrapper .dataTables_paginate .ellipsis{padding:0 1em}.dataTables_wrapper .dataTables_processing{position:absolute;top:50%;left:50%;width:100%;height:40px;margin-left:-50%;margin-top:-25px;padding-top:20px;text-align:center;font-size:1.2em;background-color:white;background:-webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255,255,255,0)), color-stop(25%, rgba(255,255,255,0.9)), color-stop(75%, rgba(255,255,255,0.9)), color-stop(100%, rgba(255,255,255,0)));background:-webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-moz-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-ms-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-o-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:linear-gradient(to right, rgba(255,255,255,0) 0%,rgba(255,255,255,0.9) 25%,rgba(255,255,255,0.9) 75%,rgba(255,255,255,0) 100%)}.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_processing,.dataTables_wrapper .dataTables_paginate{color:#63676a}.dataTables_wrapper .dataTables_scroll{clear:both}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody{*margin-top:-1px;-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td{vertical-align:middle}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td>div.dataTables_sizing{height:0;overflow:hidden;margin:0 !important;padding:0 !important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:1px solid #111}.dataTables_wrapper.no-footer div.dataTables_scrollHead table,.dataTables_wrapper.no-footer div.dataTables_scrollBody table{border-bottom:none}.dataTables_wrapper:after{visibility:hidden;display:block;content:"";clear:both;height:0}@media screen and (max-width: 767px){.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_paginate{float:none;text-align:center}.dataTables_wrapper .dataTables_paginate{margin-top:0.5em}}@media screen and (max-width: 640px){.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter{float:none;text-align:center}.dataTables_wrapper .dataTables_filter{margin-top:0.5em}}div.dt-button-info{position:fixed;top:50%;left:50%;width:400px;margin-top:-100px;margin-left:-200px;background-color:white;border:2px solid #111;box-shadow:3px 3px 8px rgba(0,0,0,0.3);border-radius:3px;text-align:center;z-index:21}div.dt-button-info h2{padding:0.5em;margin:0;font-weight:normal;border-bottom:1px solid #ddd;background-color:#f3f3f3}div.dt-button-info>div{padding:1em}ul.dt-button-collection.dropdown-menu{display:block;z-index:2002;-webkit-column-gap:8px;-moz-column-gap:8px;-ms-column-gap:8px;-o-column-gap:8px;column-gap:8px}ul.dt-button-collection.dropdown-menu.fixed{position:fixed;top:50%;left:50%;margin-left:-75px;border-radius:0}ul.dt-button-collection.dropdown-menu.fixed.two-column{margin-left:-150px}ul.dt-button-collection.dropdown-menu.fixed.three-column{margin-left:-225px}ul.dt-button-collection.dropdown-menu.fixed.four-column{margin-left:-300px}ul.dt-button-collection.dropdown-menu>*{-webkit-column-break-inside:avoid;break-inside:avoid}ul.dt-button-collection.dropdown-menu.two-column{width:300px;padding-bottom:1px;-webkit-column-count:2;-moz-column-count:2;-ms-column-count:2;-o-column-count:2;column-count:2}ul.dt-button-collection.dropdown-menu.three-column{width:450px;padding-bottom:1px;-webkit-column-count:3;-moz-column-count:3;-ms-column-count:3;-o-column-count:3;column-count:3}ul.dt-button-collection.dropdown-menu.four-column{width:600px;padding-bottom:1px;-webkit-column-count:4;-moz-column-count:4;-ms-column-count:4;-o-column-count:4;column-count:4}div.dt-button-background{position:fixed;top:0;left:0;width:100%;height:100%;z-index:2001}@media screen and (max-width: 767px){div.dt-buttons{float:none;width:100%;text-align:center;margin-bottom:0.5em}div.dt-buttons a.btn{float:none}}/*! * DataTables + Font Awesome integration * License: MIT - http://datatables.net/license - */table.dataTable thead th{position:relative;background-image:none !important}table.dataTable thead th.sorting:after,table.dataTable thead th.sorting_asc:after,table.dataTable thead th.sorting_desc:after{position:absolute;top:12px;right:5px;display:block;font-family:'Font Awesome 5 Free';margin-top:-8px}table.dataTable thead th.sorting:after{content:"\f0dc";color:#5cb85c;font-size:0.8em;margin-top:-8px}table.dataTable thead th.sorting_asc:after{content:"\f0de"}table.dataTable thead th.sorting_desc:after{content:"\f0dd"}div.dataTables_scrollBody table.dataTable thead th.sorting:after,div.dataTables_scrollBody table.dataTable thead th.sorting_asc:after,div.dataTables_scrollBody table.dataTable thead th.sorting_desc:after{content:""}div.dataTables_paginate a.paginate_button.first,div.dataTables_paginate a.paginate_button.previous{position:relative;padding-left:24px}div.dataTables_paginate a.paginate_button.next,div.dataTables_paginate a.paginate_button.last{position:relative;padding-right:24px}div.dataTables_paginate a.first:before,div.dataTables_paginate a.previous:before{position:absolute;top:4px;left:10px;display:block;font-weight:bold;font-family:'Font Awesome 5 Free'}div.dataTables_paginate a.next:after,div.dataTables_paginate a.last:after{position:absolute;top:4px;right:10px;display:block;font-weight:bold;font-family:'Font Awesome 5 Free'}div.dataTables_paginate a.first:before{content:"\f100"}div.dataTables_paginate a.previous:before{content:"\f104"}div.dataTables_paginate a.next:after{content:"\f105"}div.dataTables_paginate a.last:after{content:"\f101"}table.dataTable.dtr-inline.collapsed>tbody>tr>td.child,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty{cursor:default !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty:before{display:none !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td:first-child,table.dataTable.dtr-inline.collapsed>tbody>tr>th:first-child{position:relative;padding-left:30px;cursor:pointer}table.dataTable.dtr-inline.collapsed>tbody>tr>td:first-child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th:first-child:before{top:9px;left:4px;height:14px;width:14px;display:block;position:absolute;color:white;border:2px solid white;border-radius:14px;box-shadow:0 0 3px #444;box-sizing:content-box;text-align:center;font-family:'Courier New', Courier, monospace;line-height:14px;content:'+';background-color:#31b131}table.dataTable.dtr-inline.collapsed>tbody>tr.parent>td:first-child:before,table.dataTable.dtr-inline.collapsed>tbody>tr.parent>th:first-child:before{content:'-';background-color:#d33333}table.dataTable.dtr-inline.collapsed>tbody>tr.child td:before{display:none}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td:first-child,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th:first-child{padding-left:27px}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td:first-child:before,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th:first-child:before{top:5px;left:4px;height:14px;width:14px;border-radius:14px;line-height:14px;text-indent:3px}table.dataTable.dtr-column>tbody>tr>td.control,table.dataTable.dtr-column>tbody>tr>th.control{position:relative;cursor:pointer}table.dataTable.dtr-column>tbody>tr>td.control:before,table.dataTable.dtr-column>tbody>tr>th.control:before{top:50%;left:50%;height:16px;width:16px;margin-top:-10px;margin-left:-10px;display:block;position:absolute;color:white;border:2px solid white;border-radius:14px;box-shadow:0 0 3px #444;box-sizing:content-box;text-align:center;font-family:'Courier New', Courier, monospace;line-height:14px;content:'+';background-color:#31b131}table.dataTable.dtr-column>tbody>tr.parent td.control:before,table.dataTable.dtr-column>tbody>tr.parent th.control:before{content:'-';background-color:#d33333}table.dataTable>tbody>tr.child{padding:0.5em 1em}table.dataTable>tbody>tr.child:hover{background:transparent !important}table.dataTable>tbody>tr.child ul{display:inline-block;list-style-type:none;margin:0;padding:0}table.dataTable>tbody>tr.child ul li{border-bottom:1px solid #efefef;padding:0.5em 0}table.dataTable>tbody>tr.child ul li:first-child{padding-top:0}table.dataTable>tbody>tr.child ul li:last-child{border-bottom:none}table.dataTable>tbody>tr.child span.dtr-title{display:inline-block;min-width:75px;font-weight:bold}div.dtr-modal{position:fixed;box-sizing:border-box;top:0;left:0;height:100%;width:100%;z-index:100;padding:10em 1em}div.dtr-modal div.dtr-modal-display{position:absolute;top:0;left:0;bottom:0;right:0;width:50%;height:50%;overflow:auto;margin:auto;z-index:102;background-color:#f5f5f7;border:1px solid black;border-radius:0.5em;box-shadow:0 12px 30px rgba(0,0,0,0.6)}div.dtr-modal div.dtr-modal-content{position:relative;padding:1em}div.dtr-modal div.dtr-modal-close{position:absolute;top:6px;right:6px;width:22px;height:22px;border:1px solid #eaeaea;background-color:#f9f9f9;text-align:center;border-radius:3px;cursor:pointer;z-index:12}div.dtr-modal div.dtr-modal-close:hover{background-color:#eaeaea}div.dtr-modal div.dtr-modal-background{position:fixed;top:0;left:0;right:0;bottom:0;z-index:101;background:rgba(0,0,0,0.6)}@media screen and (max-width: 767px){div.dtr-modal div.dtr-modal-display{width:95%}}table.dataTable tbody>tr.selected,table.dataTable tbody>tr>.selected{background-color:#1b2326}table.dataTable.stripe tbody>tr.odd.selected,table.dataTable.stripe tbody>tr.odd>.selected,table.dataTable.display tbody>tr.odd.selected,table.dataTable.display tbody>tr.odd>.selected{background-color:#1b2326}table.dataTable.hover tbody>tr.selected:hover,table.dataTable.hover tbody>tr>.selected:hover,table.dataTable.display tbody>tr.selected:hover,table.dataTable.display tbody>tr>.selected:hover{background-color:#925909}table.dataTable.order-column tbody>tr.selected>.sorting_1,table.dataTable.order-column tbody>tr.selected>.sorting_2,table.dataTable.order-column tbody>tr.selected>.sorting_3,table.dataTable.order-column tbody>tr>.selected,table.dataTable.display tbody>tr.selected>.sorting_1,table.dataTable.display tbody>tr.selected>.sorting_2,table.dataTable.display tbody>tr.selected>.sorting_3,table.dataTable.display tbody>tr>.selected{background-color:#acbad5}table.dataTable.display tbody>tr.odd.selected>.sorting_1,table.dataTable.order-column.stripe tbody>tr.odd.selected>.sorting_1{background-color:#171e20}table.dataTable.display tbody>tr.odd.selected>.sorting_2,table.dataTable.order-column.stripe tbody>tr.odd.selected>.sorting_2{background-color:#a8b5cf}table.dataTable.display tbody>tr.odd.selected>.sorting_3,table.dataTable.order-column.stripe tbody>tr.odd.selected>.sorting_3{background-color:#a9b7d1}table.dataTable.display tbody>tr.even.selected>.sorting_1,table.dataTable.order-column.stripe tbody>tr.even.selected>.sorting_1{background-color:#171e20}table.dataTable.display tbody>tr.even.selected>.sorting_2,table.dataTable.order-column.stripe tbody>tr.even.selected>.sorting_2{background-color:#aebcd6}table.dataTable.display tbody>tr.even.selected>.sorting_3,table.dataTable.order-column.stripe tbody>tr.even.selected>.sorting_3{background-color:#afbdd8}table.dataTable.display tbody>tr.odd>.selected,table.dataTable.order-column.stripe tbody>tr.odd>.selected{background-color:#171e20}table.dataTable.display tbody>tr.even>.selected,table.dataTable.order-column.stripe tbody>tr.even>.selected{background-color:#acbad5}table.dataTable.display tbody>tr.selected:hover>.sorting_1,table.dataTable.order-column.hover tbody>tr.selected:hover>.sorting_1{background-color:#925909}table.dataTable.display tbody>tr.selected:hover>.sorting_2,table.dataTable.order-column.hover tbody>tr.selected:hover>.sorting_2{background-color:#a3b0c9}table.dataTable.display tbody>tr.selected:hover>.sorting_3,table.dataTable.order-column.hover tbody>tr.selected:hover>.sorting_3{background-color:#a5b2cb}table.dataTable.display tbody>tr:hover>.selected,table.dataTable.display tbody>tr>.selected:hover,table.dataTable.order-column.hover tbody>tr:hover>.selected,table.dataTable.order-column.hover tbody>tr>.selected:hover{background-color:#a2aec7}table.dataTable td.select-checkbox{position:relative}table.dataTable td.select-checkbox:before,table.dataTable td.select-checkbox:after{display:block;position:absolute;top:1.2em;left:50%;width:12px;height:12px;box-sizing:border-box}table.dataTable td.select-checkbox:before{content:' ';margin-top:-6px;margin-left:-6px;border:1px solid black;border-radius:3px}table.dataTable tr.selected td.select-checkbox:after{content:'\2714';margin-top:-11px;margin-left:-4px;text-align:center;text-shadow:1px 1px #B0BED9, -1px -1px #B0BED9, 1px -1px #B0BED9, -1px 1px #B0BED9}div.dataTables_wrapper span.select-info,div.dataTables_wrapper span.select-item{margin-left:0.5em}@media screen and (max-width: 640px){div.dataTables_wrapper span.select-info,div.dataTables_wrapper span.select-item{margin-left:0;display:block}}/*! X-editable - v1.5.0 + */table.dataTable thead th{position:relative;background-image:none !important}table.dataTable thead th.sorting:after,table.dataTable thead th.sorting_asc:after,table.dataTable thead th.sorting_desc:after{position:absolute;top:12px;right:5px;display:block;font-family:'Font Awesome 5 Free';margin-top:-8px}table.dataTable thead th.sorting:after{content:"\f0dc";font-size:0.8em;margin-top:-8px}table.dataTable thead th.sorting_asc:after{content:"\f0de";color:#5cb85c}table.dataTable thead th.sorting_desc:after{content:"\f0dd";color:#5cb85c}div.dataTables_scrollBody table.dataTable thead th.sorting:after,div.dataTables_scrollBody table.dataTable thead th.sorting_asc:after,div.dataTables_scrollBody table.dataTable thead th.sorting_desc:after{content:""}div.dataTables_paginate a.paginate_button.first,div.dataTables_paginate a.paginate_button.previous{position:relative;padding-left:24px}div.dataTables_paginate a.paginate_button.next,div.dataTables_paginate a.paginate_button.last{position:relative;padding-right:24px}div.dataTables_paginate a.first:before,div.dataTables_paginate a.previous:before{position:absolute;top:4px;left:10px;display:block;font-weight:bold;font-family:'Font Awesome 5 Free'}div.dataTables_paginate a.next:after,div.dataTables_paginate a.last:after{position:absolute;top:4px;right:10px;display:block;font-weight:bold;font-family:'Font Awesome 5 Free'}div.dataTables_paginate a.first:before{content:"\f100"}div.dataTables_paginate a.previous:before{content:"\f104"}div.dataTables_paginate a.next:after{content:"\f105"}div.dataTables_paginate a.last:after{content:"\f101"}table.dataTable.dtr-inline.collapsed>tbody>tr>td.child,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty{cursor:default !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty:before{display:none !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td:first-child,table.dataTable.dtr-inline.collapsed>tbody>tr>th:first-child{position:relative;padding-left:30px;cursor:pointer}table.dataTable.dtr-inline.collapsed>tbody>tr>td:first-child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th:first-child:before{top:9px;left:4px;height:14px;width:14px;display:block;position:absolute;color:white;border:2px solid white;border-radius:14px;box-shadow:0 0 3px #444;box-sizing:content-box;text-align:center;font-family:'Courier New', Courier, monospace;line-height:14px;content:'+';background-color:#31b131}table.dataTable.dtr-inline.collapsed>tbody>tr.parent>td:first-child:before,table.dataTable.dtr-inline.collapsed>tbody>tr.parent>th:first-child:before{content:'-';background-color:#d33333}table.dataTable.dtr-inline.collapsed>tbody>tr.child td:before{display:none}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td:first-child,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th:first-child{padding-left:27px}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td:first-child:before,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th:first-child:before{top:5px;left:4px;height:14px;width:14px;border-radius:14px;line-height:14px;text-indent:3px}table.dataTable.dtr-column>tbody>tr>td.control,table.dataTable.dtr-column>tbody>tr>th.control{position:relative;cursor:pointer}table.dataTable.dtr-column>tbody>tr>td.control:before,table.dataTable.dtr-column>tbody>tr>th.control:before{top:50%;left:50%;height:16px;width:16px;margin-top:-10px;margin-left:-10px;display:block;position:absolute;color:white;border:2px solid white;border-radius:14px;box-shadow:0 0 3px #444;box-sizing:content-box;text-align:center;font-family:'Courier New', Courier, monospace;line-height:14px;content:'+';background-color:#31b131}table.dataTable.dtr-column>tbody>tr.parent td.control:before,table.dataTable.dtr-column>tbody>tr.parent th.control:before{content:'-';background-color:#d33333}table.dataTable>tbody>tr.child{padding:0.5em 1em}table.dataTable>tbody>tr.child:hover{background:transparent !important}table.dataTable>tbody>tr.child ul{display:inline-block;list-style-type:none;margin:0;padding:0}table.dataTable>tbody>tr.child ul li{border-bottom:1px solid #efefef;padding:0.5em 0}table.dataTable>tbody>tr.child ul li:first-child{padding-top:0}table.dataTable>tbody>tr.child ul li:last-child{border-bottom:none}table.dataTable>tbody>tr.child span.dtr-title{display:inline-block;min-width:75px;font-weight:bold}div.dtr-modal{position:fixed;box-sizing:border-box;top:0;left:0;height:100%;width:100%;z-index:100;padding:10em 1em}div.dtr-modal div.dtr-modal-display{position:absolute;top:0;left:0;bottom:0;right:0;width:50%;height:50%;overflow:auto;margin:auto;z-index:102;background-color:#f5f5f7;border:1px solid black;border-radius:0.5em;box-shadow:0 12px 30px rgba(0,0,0,0.6)}div.dtr-modal div.dtr-modal-content{position:relative;padding:1em}div.dtr-modal div.dtr-modal-close{position:absolute;top:6px;right:6px;width:22px;height:22px;border:1px solid #eaeaea;background-color:#f9f9f9;text-align:center;border-radius:3px;cursor:pointer;z-index:12}div.dtr-modal div.dtr-modal-close:hover{background-color:#eaeaea}div.dtr-modal div.dtr-modal-background{position:fixed;top:0;left:0;right:0;bottom:0;z-index:101;background:rgba(0,0,0,0.6)}@media screen and (max-width: 767px){div.dtr-modal div.dtr-modal-display{width:95%}}table.dataTable tbody>tr.selected,table.dataTable tbody>tr>.selected{background-color:#1b2326}table.dataTable.stripe tbody>tr.odd.selected,table.dataTable.stripe tbody>tr.odd>.selected,table.dataTable.display tbody>tr.odd.selected,table.dataTable.display tbody>tr.odd>.selected{background-color:#1b2326}table.dataTable.hover tbody>tr.selected:hover,table.dataTable.hover tbody>tr>.selected:hover,table.dataTable.display tbody>tr.selected:hover,table.dataTable.display tbody>tr>.selected:hover{background-color:#925909}table.dataTable.order-column tbody>tr.selected>.sorting_1,table.dataTable.order-column tbody>tr.selected>.sorting_2,table.dataTable.order-column tbody>tr.selected>.sorting_3,table.dataTable.order-column tbody>tr>.selected,table.dataTable.display tbody>tr.selected>.sorting_1,table.dataTable.display tbody>tr.selected>.sorting_2,table.dataTable.display tbody>tr.selected>.sorting_3,table.dataTable.display tbody>tr>.selected{background-color:#acbad5}table.dataTable.display tbody>tr.odd.selected>.sorting_1,table.dataTable.order-column.stripe tbody>tr.odd.selected>.sorting_1{background-color:#171e20}table.dataTable.display tbody>tr.odd.selected>.sorting_2,table.dataTable.order-column.stripe tbody>tr.odd.selected>.sorting_2{background-color:#a8b5cf}table.dataTable.display tbody>tr.odd.selected>.sorting_3,table.dataTable.order-column.stripe tbody>tr.odd.selected>.sorting_3{background-color:#a9b7d1}table.dataTable.display tbody>tr.even.selected>.sorting_1,table.dataTable.order-column.stripe tbody>tr.even.selected>.sorting_1{background-color:#171e20}table.dataTable.display tbody>tr.even.selected>.sorting_2,table.dataTable.order-column.stripe tbody>tr.even.selected>.sorting_2{background-color:#aebcd6}table.dataTable.display tbody>tr.even.selected>.sorting_3,table.dataTable.order-column.stripe tbody>tr.even.selected>.sorting_3{background-color:#afbdd8}table.dataTable.display tbody>tr.odd>.selected,table.dataTable.order-column.stripe tbody>tr.odd>.selected{background-color:#171e20}table.dataTable.display tbody>tr.even>.selected,table.dataTable.order-column.stripe tbody>tr.even>.selected{background-color:#acbad5}table.dataTable.display tbody>tr.selected:hover>.sorting_1,table.dataTable.order-column.hover tbody>tr.selected:hover>.sorting_1{background-color:#925909}table.dataTable.display tbody>tr.selected:hover>.sorting_2,table.dataTable.order-column.hover tbody>tr.selected:hover>.sorting_2{background-color:#a3b0c9}table.dataTable.display tbody>tr.selected:hover>.sorting_3,table.dataTable.order-column.hover tbody>tr.selected:hover>.sorting_3{background-color:#a5b2cb}table.dataTable.display tbody>tr:hover>.selected,table.dataTable.display tbody>tr>.selected:hover,table.dataTable.order-column.hover tbody>tr:hover>.selected,table.dataTable.order-column.hover tbody>tr>.selected:hover{background-color:#a2aec7}table.dataTable td.select-checkbox{position:relative}table.dataTable td.select-checkbox:before,table.dataTable td.select-checkbox:after{display:block;position:absolute;top:1.2em;left:50%;width:12px;height:12px;box-sizing:border-box}table.dataTable td.select-checkbox:before{content:' ';margin-top:-6px;margin-left:-6px;border:1px solid black;border-radius:3px}table.dataTable tr.selected td.select-checkbox:after{content:'\2714';margin-top:-11px;margin-left:-4px;text-align:center;text-shadow:1px 1px #B0BED9, -1px -1px #B0BED9, 1px -1px #B0BED9, -1px 1px #B0BED9}div.dataTables_wrapper span.select-info,div.dataTables_wrapper span.select-item{margin-left:0.5em}@media screen and (max-width: 640px){div.dataTables_wrapper span.select-info,div.dataTables_wrapper span.select-item{margin-left:0;display:block}}/*! X-editable - v1.5.0 * In-place editing with Twitter Bootstrap, jQuery UI or pure jQuery * http://github.com/vitalets/x-editable -* Copyright (c) 2013 Vitaliy Potapov; Licensed MIT */.editableform{margin-bottom:0}.editableform .form-group{margin-left:0 !important}.editableform .control-group{margin-bottom:0;white-space:nowrap;line-height:20px}.editable-buttons{display:inline-block;vertical-align:top;margin-left:7px;zoom:1;*display:inline}.editable-buttons.editable-buttons-bottom{display:block;margin-top:7px;margin-left:0}.editable-input{vertical-align:top;display:inline-block;width:auto;white-space:normal;zoom:1;*display:inline}.editable-buttons .editable-cancel{margin-left:7px}.editable-buttons button.ui-button-icon-only{height:24px;width:30px}.editableform-loading{height:25px;width:auto;min-width:25px;text-align:center}.editableform-loading i{margin-top:10px}.editable-inline .editableform-loading{background-position:left 5px}.editable-error-block{max-width:300px;margin:5px 0 0 0;width:auto;white-space:normal}.editable-error-block.ui-state-error{padding:3px}.editable-error{color:red}.editableform .editable-date{padding:0;margin:0;float:left}.editable-inline .add-on .icon-th{margin-top:3px;margin-left:1px}.editable-checklist label input[type="checkbox"],.editable-input .editable-checklist>div>label>span input[type="checkbox"],.editable-checklist label span,.editable-input .editable-checklist>div>label>span span{vertical-align:middle;margin:0}.editable-checklist label,.editable-input .editable-checklist>div>label>span{white-space:nowrap}.editable-wysihtml5{width:566px;height:250px}.editable-clear{clear:both;font-size:0.9em;text-decoration:none;text-align:right}.editable-clear-x{display:block;width:13px;height:13px;position:absolute;opacity:0.6;z-index:100;top:50%;right:6px;margin-top:-6px}.editable-clear-x:hover{opacity:1}.editable-pre-wrapped{white-space:pre-wrap}.editable-container.editable-popup{max-width:none !important}.editable-container.popover{width:auto}.editable-container.editable-inline{display:inline-block;vertical-align:middle;width:auto;zoom:1;*display:inline}.editable-container.ui-widget{font-size:inherit;z-index:9990}.editable-click,a.editable-click,a.editable-click:hover{text-decoration:none}.editable-click.editable-disabled,a.editable-click.editable-disabled,a.editable-click.editable-disabled:hover{color:#585858;cursor:default;border-bottom:none}.editable-empty,.editable-empty:hover,.editable-empty:focus{font-style:italic;color:#d9534f;text-decoration:none}.editable-unsaved{font-weight:bold}.editable-bg-transition{-webkit-transition:background-color 1400ms ease-out;-moz-transition:background-color 1400ms ease-out;-o-transition:background-color 1400ms ease-out;-ms-transition:background-color 1400ms ease-out;transition:background-color 1400ms ease-out}.form-horizontal .editable{padding-top:5px;display:inline-block}/*! +* Copyright (c) 2013 Vitaliy Potapov; Licensed MIT */.editableform{margin-bottom:0}.editableform .form-group{margin-left:0 !important}.editableform .control-group{margin-bottom:0;white-space:nowrap;line-height:20px}.editable-buttons{display:inline-block;vertical-align:top;margin-left:7px;zoom:1;*display:inline}.editable-buttons.editable-buttons-bottom{display:block;margin-top:7px;margin-left:0}.editable-input{vertical-align:top;display:inline-block;width:auto;white-space:normal;zoom:1;*display:inline}.editable-buttons .editable-cancel{margin-left:7px}.editable-buttons button.ui-button-icon-only{height:24px;width:30px}.editableform-loading{height:25px;width:auto;min-width:25px;display:flex;flex-direction:column;justify-content:center;align-items:center}.editable-inline .editableform-loading{background-position:left 5px}.editable-error-block{max-width:300px;margin:5px 0 0 0;width:auto;white-space:normal}.editable-error-block.ui-state-error{padding:3px}.editable-error{color:red}.editableform .editable-date{padding:0;margin:0;float:left}.editable-inline .add-on .icon-th{margin-top:3px;margin-left:1px}.editable-checklist label input[type="checkbox"],.editable-input .editable-checklist>div>label>span input[type="checkbox"],.editable-checklist label span,.editable-input .editable-checklist>div>label>span span{vertical-align:middle;margin:0}.editable-checklist label,.editable-input .editable-checklist>div>label>span{white-space:nowrap}.editable-wysihtml5{width:566px;height:250px}.editable-clear{clear:both;font-size:0.9em;text-decoration:none;text-align:right}.editable-clear-x{display:block;width:13px;height:13px;position:absolute;opacity:0.6;z-index:100;top:50%;right:6px;margin-top:-6px}.editable-clear-x:hover{opacity:1}.editable-pre-wrapped{white-space:pre-wrap}.editable-container.editable-popup{max-width:none !important}.editable-container.popover{width:auto}.editable-container.editable-inline{display:inline-block;vertical-align:middle;width:auto;zoom:1;*display:inline}.editable-container.ui-widget{font-size:inherit;z-index:9990}.editable-click,a.editable-click,a.editable-click:hover{text-decoration:none}.editable-click.editable-disabled,a.editable-click.editable-disabled,a.editable-click.editable-disabled:hover{color:#585858;cursor:default;border-bottom:none}.editable-empty,.editable-empty:hover,.editable-empty:focus{font-style:italic;color:#d9534f;text-decoration:none}.editable-unsaved{font-weight:bold}.editable-bg-transition{-webkit-transition:background-color 1400ms ease-out;-moz-transition:background-color 1400ms ease-out;-o-transition:background-color 1400ms ease-out;-ms-transition:background-color 1400ms ease-out;transition:background-color 1400ms ease-out}.form-horizontal .editable{padding-top:5px;display:inline-block}/*! * Datepicker for Bootstrap * * Copyright 2012 Stefan Petre @@ -51,5 +51,5 @@ Link : http://sciactive.com/pnotify/ * ======================================================================== * Copyright 2014 Min Hur, The New York Times Company * Licensed under MIT - * ======================================================================== */.checkbox label .toggle,.editable-input .editable-checklist>div>label label .toggle,.editable-input .editable-checklist>div>label>span .toggle,.checkbox-inline .toggle{margin-left:-20px;margin-right:5px}.toggle{position:relative;overflow:hidden}.toggle input[type="checkbox"]{display:none}.toggle-group{position:absolute;width:200%;top:0;bottom:0;left:0;transition:left 0.18s ease-in-out;-webkit-transition:left 0.18s ease-in-out;-moz-user-select:none;-webkit-user-select:none}.toggle.off .toggle-group{left:-100%}.toggle-on{position:absolute;top:0;bottom:0;left:0;right:50%;margin:0;border:0;border-radius:0}.toggle-off{position:absolute;top:0;bottom:0;left:50%;right:0;margin:0;border:0;border-radius:0}.toggle-handle{position:relative;margin:0 auto;padding-top:0;padding-bottom:0;height:100%;width:0;border-width:0 1px;background:#54585a}.toggle.btn{min-width:59px;min-height:34px}.toggle-on.btn{padding-right:24px}.toggle-off.btn{padding-left:24px}.toggle.btn-lg,.btn-group-lg>.toggle.btn{min-width:79px;min-height:45px}.toggle-on.btn-lg,.btn-group-lg>.toggle-on.btn{padding-right:31px}.toggle-off.btn-lg,.btn-group-lg>.toggle-off.btn{padding-left:31px}.toggle-handle.btn-lg,.btn-group-lg>.toggle-handle.btn{width:40px}.toggle.btn-sm,.btn-group-sm>.toggle.btn{min-width:50px;min-height:28px}.toggle-on.btn-sm,.btn-group-sm>.toggle-on.btn{padding-right:10px;padding-left:0}.toggle-off.btn-sm,.btn-group-sm>.toggle-off.btn{padding-left:10px;padding-right:0}.toggle.btn-xs,.btn-group-xs>.toggle.btn{min-width:35px;min-height:22px}.toggle-on.btn-xs,.btn-group-xs>.toggle-on.btn{padding-right:5px}.toggle-off.btn-xs,.btn-group-xs>.toggle-off.btn{padding-left:5px}.checkbox,.editable-input .editable-checklist>div>label{padding-left:20px}.checkbox label,.editable-input .editable-checklist>div>label label,.editable-input .editable-checklist>div>label>span{display:inline-block;vertical-align:middle;position:relative;padding-left:5px}.checkbox label::before,.editable-input .editable-checklist>div>label label::before,.editable-input .editable-checklist>div>label>span::before{content:"";display:inline-block;position:absolute;width:17px;height:17px;left:0;margin-left:-20px;border:1px solid #63676a;border-radius:3px;background-color:#313335;-webkit-transition:border 0.18s ease,color 0.18s ease,background-color 0.18s ease;transition:border 0.18s ease,color 0.18s ease,background-color 0.18s ease}.checkbox label::after,.editable-input .editable-checklist>div>label label::after,.editable-input .editable-checklist>div>label>span::after{font-family:"Font Awesome 5 Free";content:"\f00c";font-weight:bold;display:inline-block;position:absolute;width:16px;height:16px;left:0;top:0;opacity:0;transform:scale(2) rotateZ(-20deg);transition:all .18s ease-out;will-change:transform, opacity;margin-left:-20px;padding-left:3px;padding-top:1px;font-size:calc(100% - 1px);color:#adadad}.checkbox input[type="checkbox"],.editable-input .editable-checklist>div>label input[type="checkbox"],.checkbox input[type="radio"],.editable-input .editable-checklist>div>label input[type="radio"]{opacity:0;z-index:1;cursor:pointer}.checkbox input[type="checkbox"]:checked+label::after,.editable-input .editable-checklist>div>label input[type="checkbox"]:checked+label::after,.editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.checkbox input[type="radio"]:checked+label::after,.editable-input .editable-checklist>div>label input[type="radio"]:checked+label::after,.editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after{font-family:"Font Awesome 5 Free";content:"\f00c"}.checkbox input[type="checkbox"]:checked+label::after,.editable-input .editable-checklist>div>label input[type="checkbox"]:checked+label::after,.editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.checkbox input[type="radio"]:checked+label::after,.editable-input .editable-checklist>div>label input[type="radio"]:checked+label::after,.editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after{transform:scale(1) rotateZ(0deg);opacity:1}.checkbox input[type="checkbox"]:indeterminate+label::after,.editable-input .editable-checklist>div>label input[type="checkbox"]:indeterminate+label::after,.editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.checkbox input[type="radio"]:indeterminate+label::after,.editable-input .editable-checklist>div>label input[type="radio"]:indeterminate+label::after,.editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after{display:block;content:"";width:10px;height:3px;background-color:#555555;border-radius:2px;margin-left:-16.5px;margin-top:7px}.checkbox input[type="checkbox"]:disabled+label,.editable-input .editable-checklist>div>label input[type="checkbox"]:disabled+label,.editable-input .editable-checklist>div>label>input[type="checkbox"]:disabled+span,.checkbox input[type="radio"]:disabled+label,.editable-input .editable-checklist>div>label input[type="radio"]:disabled+label,.editable-input .editable-checklist>div>label>input[type="radio"]:disabled+span{opacity:0.65}.checkbox input[type="checkbox"]:disabled+label::before,.editable-input .editable-checklist>div>label input[type="checkbox"]:disabled+label::before,.editable-input .editable-checklist>div>label>input[type="checkbox"]:disabled+span::before,.checkbox input[type="radio"]:disabled+label::before,.editable-input .editable-checklist>div>label input[type="radio"]:disabled+label::before,.editable-input .editable-checklist>div>label>input[type="radio"]:disabled+span::before{background-color:#3c3f41;cursor:not-allowed}.checkbox.checkbox-circle label::before,.editable-input .editable-checklist>div>label.checkbox-circle label::before,.checkbox.checkbox-circle .editable-input .editable-checklist>div>label>span::before,.editable-input .checkbox.checkbox-circle .editable-checklist>div>label>span::before,.editable-input .editable-checklist>div>label.checkbox-circle .editable-checklist>div>label>span::before{border-radius:50%}.checkbox.checkbox-inline,.editable-input .editable-checklist>div>label.checkbox-inline{margin-top:0}.checkbox-primary input[type="checkbox"]:checked+label::before,.checkbox-primary .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.editable-input .checkbox-primary .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.checkbox-primary input[type="radio"]:checked+label::before,.checkbox-primary .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .checkbox-primary .editable-checklist>div>label>input[type="radio"]:checked+span::before{background-color:#375959;border-color:#375959}.checkbox-primary input[type="checkbox"]:checked+label::after,.checkbox-primary .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.editable-input .checkbox-primary .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.checkbox-primary input[type="radio"]:checked+label::after,.checkbox-primary .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .checkbox-primary .editable-checklist>div>label>input[type="radio"]:checked+span::after{color:#fff}.checkbox-danger input[type="checkbox"]:checked+label::before,.checkbox-danger .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.editable-input .checkbox-danger .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.checkbox-danger input[type="radio"]:checked+label::before,.checkbox-danger .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .checkbox-danger .editable-checklist>div>label>input[type="radio"]:checked+span::before{background-color:#a52521;border-color:#a52521}.checkbox-danger input[type="checkbox"]:checked+label::after,.checkbox-danger .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.editable-input .checkbox-danger .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.checkbox-danger input[type="radio"]:checked+label::after,.checkbox-danger .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .checkbox-danger .editable-checklist>div>label>input[type="radio"]:checked+span::after{color:#fff}.checkbox-info input[type="checkbox"]:checked+label::before,.checkbox-info .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.editable-input .checkbox-info .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.checkbox-info input[type="radio"]:checked+label::before,.checkbox-info .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .checkbox-info .editable-checklist>div>label>input[type="radio"]:checked+span::before{background-color:#316490;border-color:#316490}.checkbox-info input[type="checkbox"]:checked+label::after,.checkbox-info .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.editable-input .checkbox-info .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.checkbox-info input[type="radio"]:checked+label::after,.checkbox-info .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .checkbox-info .editable-checklist>div>label>input[type="radio"]:checked+span::after{color:#fff}.checkbox-warning input[type="checkbox"]:checked+label::before,.checkbox-warning .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.editable-input .checkbox-warning .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.checkbox-warning input[type="radio"]:checked+label::before,.checkbox-warning .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .checkbox-warning .editable-checklist>div>label>input[type="radio"]:checked+span::before{background-color:#e28a0d;border-color:#e28a0d}.checkbox-warning input[type="checkbox"]:checked+label::after,.checkbox-warning .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.editable-input .checkbox-warning .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.checkbox-warning input[type="radio"]:checked+label::after,.checkbox-warning .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .checkbox-warning .editable-checklist>div>label>input[type="radio"]:checked+span::after{color:#fff}.checkbox-success input[type="checkbox"]:checked+label::before,.checkbox-success .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.editable-input .checkbox-success .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.checkbox-success input[type="radio"]:checked+label::before,.checkbox-success .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .checkbox-success .editable-checklist>div>label>input[type="radio"]:checked+span::before{background-color:#4f9e4f;border-color:#4f9e4f}.checkbox-success input[type="checkbox"]:checked+label::after,.checkbox-success .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.editable-input .checkbox-success .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.checkbox-success input[type="radio"]:checked+label::after,.checkbox-success .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .checkbox-success .editable-checklist>div>label>input[type="radio"]:checked+span::after{color:#fff}.checkbox-primary input[type="checkbox"]:indeterminate+label::before,.checkbox-primary .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.editable-input .checkbox-primary .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.checkbox-primary input[type="radio"]:indeterminate+label::before,.checkbox-primary .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before,.editable-input .checkbox-primary .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before{background-color:#375959;border-color:#375959}.checkbox-primary input[type="checkbox"]:indeterminate+label::after,.checkbox-primary .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.editable-input .checkbox-primary .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.checkbox-primary input[type="radio"]:indeterminate+label::after,.checkbox-primary .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after,.editable-input .checkbox-primary .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after{background-color:#fff}.checkbox-danger input[type="checkbox"]:indeterminate+label::before,.checkbox-danger .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.editable-input .checkbox-danger .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.checkbox-danger input[type="radio"]:indeterminate+label::before,.checkbox-danger .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before,.editable-input .checkbox-danger .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before{background-color:#a52521;border-color:#a52521}.checkbox-danger input[type="checkbox"]:indeterminate+label::after,.checkbox-danger .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.editable-input .checkbox-danger .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.checkbox-danger input[type="radio"]:indeterminate+label::after,.checkbox-danger .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after,.editable-input .checkbox-danger .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after{background-color:#fff}.checkbox-info input[type="checkbox"]:indeterminate+label::before,.checkbox-info .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.editable-input .checkbox-info .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.checkbox-info input[type="radio"]:indeterminate+label::before,.checkbox-info .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before,.editable-input .checkbox-info .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before{background-color:#316490;border-color:#316490}.checkbox-info input[type="checkbox"]:indeterminate+label::after,.checkbox-info .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.editable-input .checkbox-info .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.checkbox-info input[type="radio"]:indeterminate+label::after,.checkbox-info .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after,.editable-input .checkbox-info .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after{background-color:#fff}.checkbox-warning input[type="checkbox"]:indeterminate+label::before,.checkbox-warning .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.editable-input .checkbox-warning .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.checkbox-warning input[type="radio"]:indeterminate+label::before,.checkbox-warning .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before,.editable-input .checkbox-warning .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before{background-color:#e28a0d;border-color:#e28a0d}.checkbox-warning input[type="checkbox"]:indeterminate+label::after,.checkbox-warning .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.editable-input .checkbox-warning .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.checkbox-warning input[type="radio"]:indeterminate+label::after,.checkbox-warning .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after,.editable-input .checkbox-warning .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after{background-color:#fff}.checkbox-success input[type="checkbox"]:indeterminate+label::before,.checkbox-success .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.editable-input .checkbox-success .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.checkbox-success input[type="radio"]:indeterminate+label::before,.checkbox-success .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before,.editable-input .checkbox-success .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before{background-color:#4f9e4f;border-color:#4f9e4f}.checkbox-success input[type="checkbox"]:indeterminate+label::after,.checkbox-success .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.editable-input .checkbox-success .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.checkbox-success input[type="radio"]:indeterminate+label::after,.checkbox-success .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after,.editable-input .checkbox-success .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after{background-color:#fff}.radio{padding-left:20px}.radio label,.radio .editable-input .editable-checklist>div>label>span,.editable-input .radio .editable-checklist>div>label>span{display:inline-block;vertical-align:middle;position:relative;padding-left:5px}.radio label::before,.radio .editable-input .editable-checklist>div>label>span::before,.editable-input .radio .editable-checklist>div>label>span::before{content:"";display:inline-block;position:absolute;width:17px;height:17px;left:0;margin-left:-20px;border:1px solid #63676a;border-radius:50%;background-color:#313335;-webkit-transition:border 0.18s ease,color 0.18s ease;transition:border 0.18s ease,color 0.18s ease}.radio label::after,.radio .editable-input .editable-checklist>div>label>span::after,.editable-input .radio .editable-checklist>div>label>span::after{display:inline-block;position:absolute;content:" ";width:11px;height:11px;left:3px;top:3px;opacity:0;transform:scale(2) rotateZ(-20deg);transition:all .18s ease;will-change:transform, opacity;margin-left:-20px;border-radius:50%;background-color:#adadad;-webkit-transform:scale(0,0);-ms-transform:scale(0,0);transform:scale(0,0);-webkit-transition:-webkit-transform 0.18s cubic-bezier(0.8, -0.33, 0.2, 1.33);-moz-transition:-moz-transform 0.18s cubic-bezier(0.8, -0.33, 0.2, 1.33);-o-transition:-o-transform 0.18s cubic-bezier(0.8, -0.33, 0.2, 1.33);transition:transform 0.18s cubic-bezier(0.8, -0.33, 0.2, 1.33)}.radio input[type="radio"]{opacity:0;z-index:1;cursor:pointer}.radio input[type="radio"]:checked+label::after,.radio .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .radio .editable-checklist>div>label>input[type="radio"]:checked+span::after{-webkit-transform:scale(1,1);-ms-transform:scale(1,1);transform:scale(1,1);opacity:1}.radio input[type="radio"]:disabled+label,.radio .editable-input .editable-checklist>div>label>input[type="radio"]:disabled+span,.editable-input .radio .editable-checklist>div>label>input[type="radio"]:disabled+span{opacity:0.65}.radio input[type="radio"]:disabled+label::before,.radio .editable-input .editable-checklist>div>label>input[type="radio"]:disabled+span::before,.editable-input .radio .editable-checklist>div>label>input[type="radio"]:disabled+span::before{cursor:not-allowed}.radio.radio-inline{margin-top:0}.radio-primary input[type="radio"]+label::after,.radio-primary .editable-input .editable-checklist>div>label>input[type="radio"]+span::after,.editable-input .radio-primary .editable-checklist>div>label>input[type="radio"]+span::after{background-color:#375959}.radio-primary input[type="radio"]:checked+label::before,.radio-primary .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .radio-primary .editable-checklist>div>label>input[type="radio"]:checked+span::before{border-color:#375959}.radio-primary input[type="radio"]:checked+label::after,.radio-primary .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .radio-primary .editable-checklist>div>label>input[type="radio"]:checked+span::after{background-color:#375959}.radio-danger input[type="radio"]+label::after,.radio-danger .editable-input .editable-checklist>div>label>input[type="radio"]+span::after,.editable-input .radio-danger .editable-checklist>div>label>input[type="radio"]+span::after{background-color:#a52521}.radio-danger input[type="radio"]:checked+label::before,.radio-danger .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .radio-danger .editable-checklist>div>label>input[type="radio"]:checked+span::before{border-color:#a52521}.radio-danger input[type="radio"]:checked+label::after,.radio-danger .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .radio-danger .editable-checklist>div>label>input[type="radio"]:checked+span::after{background-color:#a52521}.radio-info input[type="radio"]+label::after,.radio-info .editable-input .editable-checklist>div>label>input[type="radio"]+span::after,.editable-input .radio-info .editable-checklist>div>label>input[type="radio"]+span::after{background-color:#316490}.radio-info input[type="radio"]:checked+label::before,.radio-info .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .radio-info .editable-checklist>div>label>input[type="radio"]:checked+span::before{border-color:#316490}.radio-info input[type="radio"]:checked+label::after,.radio-info .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .radio-info .editable-checklist>div>label>input[type="radio"]:checked+span::after{background-color:#316490}.radio-warning input[type="radio"]+label::after,.radio-warning .editable-input .editable-checklist>div>label>input[type="radio"]+span::after,.editable-input .radio-warning .editable-checklist>div>label>input[type="radio"]+span::after{background-color:#e28a0d}.radio-warning input[type="radio"]:checked+label::before,.radio-warning .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .radio-warning .editable-checklist>div>label>input[type="radio"]:checked+span::before{border-color:#e28a0d}.radio-warning input[type="radio"]:checked+label::after,.radio-warning .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .radio-warning .editable-checklist>div>label>input[type="radio"]:checked+span::after{background-color:#e28a0d}.radio-success input[type="radio"]+label::after,.radio-success .editable-input .editable-checklist>div>label>input[type="radio"]+span::after,.editable-input .radio-success .editable-checklist>div>label>input[type="radio"]+span::after{background-color:#4f9e4f}.radio-success input[type="radio"]:checked+label::before,.radio-success .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .radio-success .editable-checklist>div>label>input[type="radio"]:checked+span::before{border-color:#4f9e4f}.radio-success input[type="radio"]:checked+label::after,.radio-success .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .radio-success .editable-checklist>div>label>input[type="radio"]:checked+span::after{background-color:#4f9e4f}input[type="checkbox"].styled:checked+label:after,.editable-input .editable-checklist>div>label>input[type="checkbox"].styled:checked+span:after,input[type="radio"].styled:checked+label:after,.editable-input .editable-checklist>div>label>input[type="radio"].styled:checked+span:after{font-family:"Font Awesome 5 Free";content:"\f00c"}input[type="checkbox"] .styled:checked+label::before,input[type="checkbox"] .editable-input .editable-checklist>div>label>.styled:checked+span::before,.editable-input input[type="checkbox"] .editable-checklist>div>label>.styled:checked+span::before,input[type="radio"] .styled:checked+label::before,input[type="radio"] .editable-input .editable-checklist>div>label>.styled:checked+span::before,.editable-input input[type="radio"] .editable-checklist>div>label>.styled:checked+span::before{color:#fff}input[type="checkbox"] .styled:checked+label::after,input[type="checkbox"] .editable-input .editable-checklist>div>label>.styled:checked+span::after,.editable-input input[type="checkbox"] .editable-checklist>div>label>.styled:checked+span::after,input[type="radio"] .styled:checked+label::after,input[type="radio"] .editable-input .editable-checklist>div>label>.styled:checked+span::after,.editable-input input[type="radio"] .editable-checklist>div>label>.styled:checked+span::after{color:#fff}html{margin:0;padding:0;height:100%;position:relative}body{margin:0;padding:0;min-height:100%;direction:ltr}body.mobile-view-activated.hidden-menu{overflow-x:hidden}body.modal-open{overflow:hidden !important}a:hover,a:active,a:focus,button,button:active,button:focus,object,embed,input::-moz-focus-inner{outline:0}h1,h3,h4{margin:0;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif}.page-title{margin:12px 0 28px}.page-title span{font-size:15px;color:#313335;display:inline-block;vertical-align:1px}label,.editable-input .editable-checklist>div>label>span{font-weight:normal}*:not(td):focus{outline:0 !important}a,input,button{-ms-touch-action:none !important}textarea:focus,select:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{outline:0;outline:thin dotted \9;box-shadow:inset -1px 1px 5px 0 rgba(0,0,0,0.8) !important}.input-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn,.input-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn,.input-xs,.form-control{border-radius:0px !important;-webkit-border-radius:0px !important;-moz-border-radius:0px !important}.input-xs{height:24px;padding:2px 10px;font-size:11px;line-height:1.5}.btn-xs,.btn-group-xs>.btn{padding:0px 2px;font-size:10px;line-height:1.3}.btn-sm,.btn-group-sm>.btn{padding:5px 8px 4px}.btn-lg,.btn-group-lg>.btn{padding:10px 16px}.no-space{margin:0}.no-space>[class*="col-"]{margin:0 !important;padding-right:0;padding-left:0}h1{letter-spacing:-1px;font-size:22px;margin:10px 0}h1 small{font-size:12px;font-weight:300;letter-spacing:-1px}h2{font-size:20px;margin:20px 0;line-height:normal}h3{display:block;font-size:17px;font-weight:400;margin:20px 0;line-height:normal}h4{line-height:normal;margin:20px 0 10px 0}h5{font-size:14px;font-weight:300;margin-top:0;margin-bottom:10px;line-height:normal}h6{font-size:13px;margin:10px 0;font-weight:bold;line-height:normal}.row-seperator-header{margin:15px 14px 20px;border-bottom:none;display:block;color:#303133;font-size:20px;font-weight:400}.center-canvas,.center-child-canvas>canvas{display:block !important;margin:0 auto !important}.form-control{box-shadow:none !important;-webkit-box-shadow:none !important;-moz-box-shadow:none !important}.form hr{margin-left:-13px;margin-right:-13px;border-color:rgba(0,0,0,0.1);margin-top:20px;margin-bottom:20px}.form fieldset{display:block;border:none;background:rgba(255,255,255,0.9);position:relative}fieldset{position:relative}.popover-content .form-actions{margin:0 -14px -9px;border-radius:0 0 3px 3px;padding:9px 14px}.no-padding .form .form-actions{margin:0;display:block;padding:13px 14px 15px;border-top:1px solid rgba(0,0,0,0.1);background:rgba(248,248,248,0.9);text-align:right;margin-top:25px}.form header,legend{display:block;padding:8px 0;border-bottom:1px dashed rgba(0,0,0,0.2);background:#fff;font-size:16px;font-weight:300;color:#2b2b2b;margin:25px 0px 20px}.no-padding .form header{margin:25px 14px 0}.form header:first-child{margin-top:10px}legend{font-weight:400;margin-top:0px;background:none}.input-group-addon{padding:6px 10px;will-change:background-color, border-color;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;-webkit-transition:all ease-out 0.15s;transition:all ease-out 0.15s}.input-group-addon .fa{font-size:14px}.input-group-addon .fa-lg,.input-group-addon .fa-2x{font-size:2em}.input-group-addon .fa-3x,.input-group-addon .fa-4x,.input-group-addon .fa-5x{font-size:30px}input[type="text"]:focus+.input-group-addon,input[type="password"]:focus+.input-group-addon,input[type="email"]:focus+.input-group-addon{border-color:#568a89;color:#568a89}.has-warning input[type="text"],.has-warning input[type="text"]+.input-group-addon{border-color:#e28a0d}.has-warning input[type="text"]+.input-group-addon{background-color:#fbe3c0;color:#2b2b2b}.has-warning input[type="text"]:focus,.has-warning input[type="text"]:focus+.input-group-addon{border-color:#e28a0d}.has-warning input[type="text"]:focus+.input-group-addon{background-color:#e28a0d;color:#fff}.has-error .input-group-addon{border-color:#d9534f !important;background:#d9534f !important;color:#2b2b2b !important}.has-success .input-group-addon{border-color:#4f9e4f !important;background-color:#2b2b2b !important;color:#4f9e4f !important}.form fieldset .form-group:last-child,.form fieldset .form-group:last-child .note,.form .form-group:last-child,.form .form-group:last-child .note{margin-bottom:0}.note{margin-top:6px;padding:0 1px;font-size:11px;line-height:15px;color:#7c8184}.input-icon-right>i,.input-icon-left>i{position:absolute;right:10px;top:10px;font-size:12px;color:#63676a}.input-icon-left>i{right:auto;left:24px}.input-icon-right .form-control{padding-right:27px}.input-icon-left .form-control{padding-left:29px}input[type="text"].ui-autocomplete-loading,input[type="password"].ui-autocomplete-loading,input[type="datetime"].ui-autocomplete-loading,input[type="datetime-local"].ui-autocomplete-loading,input[type="date"].ui-autocomplete-loading,input[type="month"].ui-autocomplete-loading,input[type="time"].ui-autocomplete-loading,input[type="week"].ui-autocomplete-loading,input[type="number"].ui-autocomplete-loading,input[type="email"].ui-autocomplete-loading,input[type="url"].ui-autocomplete-loading,input[type="search"].ui-autocomplete-loading,input[type="tel"].ui-autocomplete-loading,input[type="color"].ui-autocomplete-loading{background-image:url("../../img/select2-spinner.gif") !important;background-repeat:no-repeat;background-position:99% 50%;padding-right:27px}.input-group-addon .checkbox,.input-group-addon .editable-input .editable-checklist>div>label,.editable-input .input-group-addon .editable-checklist>div>label,.input-group-addon .radio{min-height:0px;margin-right:0px !important;padding-top:0}.input-group-addon label input[type="checkbox"].checkbox+span,.input-group-addon .editable-input .editable-checklist>div>label>span input[type="checkbox"].checkbox+span,.editable-input .input-group-addon .editable-checklist>div>label>span input[type="checkbox"].checkbox+span,.input-group-addon label input[type="radio"].radiobox+span,.input-group-addon .editable-input .editable-checklist>div>label>span input[type="radio"].radiobox+span,.editable-input .input-group-addon .editable-checklist>div>label>span input[type="radio"].radiobox+span,.input-group-addon label input[type="radio"].radiobox+span:before,.input-group-addon .editable-input .editable-checklist>div>label>span input[type="radio"].radiobox+span:before,.editable-input .input-group-addon .editable-checklist>div>label>span input[type="radio"].radiobox+span:before,.input-group-addon label input[type="checkbox"].checkbox+span:before,.input-group-addon .editable-input .editable-checklist>div>label>span input[type="checkbox"].checkbox+span:before,.editable-input .input-group-addon .editable-checklist>div>label>span input[type="checkbox"].checkbox+span:before{margin-right:0px}.alert{margin-bottom:10px;margin-top:0px;padding:5px 15px 5px 34px;color:#675100;border-width:0px;border-left-width:3px;padding:10px}.alert .ui-pnotify-title{line-height:12px}.alert .ui-pnotify-text{font-size:10px}.alert .close{top:0px;right:-5px;line-height:18px}.alert-heading{font-weight:600}.alert-danger{border-color:#a52521;color:#2b2b2b;background:#f6d1d0;text-shadow:none}.alert-danger .ui-pnotify-icon{color:#a52521}.alert-warning{border-color:#e28a0d;color:#2b2b2b;background:#fdedd8}.alert-warning .ui-pnotify-icon{color:#e28a0d}.alert-success{border-color:#4f9e4f;color:#2b2b2b;background:#d1e8d1}.alert-success .ui-pnotify-icon{color:#4f9e4f}.alert-info{border-color:#316490;color:#2b2b2b;background:#abc9e2}.alert-info .ui-pnotify-icon{color:#316490}.progress-micro{height:2px !important;line-height:2px !important}.progress-xs{height:7px !important;line-height:7px !important}.progress-sm{height:14px !important;line-height:14px !important}.progress-lg{height:30px !important;line-height:30px !important}.progress .progress-bar{position:absolute;overflow:hidden;line-height:18px}.progress .progressbar-back-text{position:absolute;width:100%;height:100%;font-size:12px;line-height:20px;text-align:center}.progress .progressbar-front-text{display:block;width:100%;font-size:12px;line-height:20px;text-align:center}.progress.right .progress-bar{right:0}.progress.right .progressbar-front-text{position:absolute;right:0}.progress.vertical{width:25px;height:100%;min-height:150px;margin-right:20px;display:inline-block;margin-bottom:0px}.progress.wide-bar{width:40px}.progress.vertical.bottom{position:relative}.progress.vertical.bottom .progressbar-front-text{position:absolute;bottom:0}.progress.vertical .progress-bar{width:100%;height:0;-webkit-transition:height 0.6s ease;transition:height 0.6s ease}.progress.vertical.bottom .progress-bar{position:absolute;bottom:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{position:relative;margin-bottom:20px;overflow:hidden;height:18px;background:#63676a;-webkit-box-shadow:0 1px 0 transparent,0 0 0 1px #63676a inset;box-shadow:0 1px 0 transparent,0 0 0 1px #63676a inset;-moz-border-radius:0px;-webkit-border-radius:0px;border-radius:0px}.progress-bar{float:left;width:0;height:100%;font-size:11px;color:#fff;text-align:center;background-color:#428bca;font-weight:bold;-webkit-transition:width 1s ease-in-out,background-color 1s ease-in-out;transition:width 1s ease-in-out,background-color 1s ease-in-out}.progress-striped .progress-bar{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255,255,255,0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255,255,255,0.15)), color-stop(0.75, rgba(255,255,255,0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0));background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-danger{background-color:#a52521}.progress-striped .progress-bar-danger{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255,255,255,0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255,255,255,0.15)), color-stop(0.75, rgba(255,255,255,0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0))}.progress-bar-success{background-color:#4f9e4f}.progress-striped .progress-bar-success{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255,255,255,0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255,255,255,0.15)), color-stop(0.75, rgba(255,255,255,0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0))}.progress-bar-warning{background-color:#e28a0d}.progress-striped .progress-bar-warning{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255,255,255,0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255,255,255,0.15)), color-stop(0.75, rgba(255,255,255,0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0))}.progress-bar-info{background-color:#316490}.progress-striped .progress-bar-info{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255,255,255,0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255,255,255,0.15)), color-stop(0.75, rgba(255,255,255,0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0))}.progress-info .bar,.progress .bar-info{background:#316490}.vertical-bars{padding:0;margin:0}.vertical-bars:after{content:"";display:block;height:0;clear:both}.vertical-bars li{padding:14px 0;width:25%;display:block;float:left;text-align:center}.vertical-bars li:first-child{border-left:none}.vertical-bars>li>.progress.vertical:first-child{margin-left:auto}.vertical-bars>li>.progress.vertical{margin:0 auto;float:none}.nav-tabs{border-bottom:none}.nav-tabs>li>a .badge{font-size:11px;padding:3px 5px 3px 5px;opacity:.5;margin-left:5px;min-width:17px;font-weight:normal}.tabs-left .nav-tabs>li>a .badge{margin-right:5px;margin-left:0px}.nav-tabs>li>a .label{display:inline-block;font-size:11px;margin-left:5px;opacity:.5}.nav-tabs>li>a{color:#63676a;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif}.nav-tabs>li>a:hover{color:#adadad;border-color:transparent transparent #63676a transparent;margin-top:1px;border-top-width:0}.nav-tabs>li.active>a{background-color:#adadad;color:#1d1d1d;border-top-width:0px !important;margin-top:1px !important;font-weight:bold}.tabs-left .nav-tabs>li.active>a{-webkit-box-shadow:-2px 0 0 #428bca;-moz-box-shadow:-2px 0 0 #428bca;box-shadow:-2px 0 0 #428bca;border-top-width:1px !important;border-left:none !important;margin-left:1px !important}.tabs-left .nav-pills>li.active>a{border:none !important;box-shadow:none !important;-webkit-box-shadow:none !important;-moz-box-shadow:none !important}.tabs-right .nav-tabs>li.active>a{-webkit-box-shadow:2px 0 0 #428bca;-moz-box-shadow:2px 0 0 #428bca;box-shadow:2px 0 0 #428bca;border-top-width:1px !important;border-right:none !important;margin-right:1px !important}.tabs-below .nav-tabs>li.active>a{-webkit-box-shadow:0 2px 0 #428bca;-moz-box-shadow:0 2px 0 #428bca;box-shadow:0 2px 0 #428bca;border-bottom-width:0px !important;border-top:none !important;margin-top:0px !important}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #9b9b9b}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li,.tabs-left>.nav-pills>li,.tabs-right>.nav-pills>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a,.tabs-left>.nav-pills>li>a,.tabs-right>.nav-pills>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs,.tabs-left>.nav-pills{float:left;margin-right:19px;border-right:1px solid #9b9b9b}.tabs-left>.nav-pills{border-right:none}.tabs-left>.nav-tabs>li>a{margin-right:-1px}.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#adadad #949494 #adadad #adadad}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#949494 transparent #949494 #9b9b9b;*border-right-color:#fff}.tabs-left>.tab-content{margin-left:109px}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #9b9b9b}.tabs-right>.nav-tabs>li>a{margin-left:-1px}.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#adadad #adadad #adadad #9b9b9b}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#9b9b9b #9b9b9b #9b9b9b transparent;*border-left-color:#fff}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #9b9b9b}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-top-color:#9b9b9b;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #9b9b9b #9b9b9b #9b9b9b}.nav-tabs.bordered{background:#fff;border:1px solid #9b9b9b}.nav-tabs.bordered>:first-child a{border-left-width:0px !important}.nav-tabs.bordered+.tab-content{border:1px solid #9b9b9b;border-top:none}.tabs-pull-right.nav-tabs>li,.tabs-pull-right.nav-pills>li{float:right}.tabs-pull-right.nav-tabs>li:first-child>a,.tabs-pull-right.nav-pills>li:first-child>a{margin-right:1px}.tabs-pull-right.bordered.nav-tabs>li:first-child>a,.tabs-pull-right.bordered.nav-pills>li:first-child>a{border-left-width:1px !important;margin-right:0px;border-right-width:0px}.dropdown-menu-xs{min-width:37px}.dropdown-menu-xs>li>a{padding:3px 10px}.dropdown-menu-xs>li>a:hover i{color:#fff !important}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropdown-submenu:hover>a{background-color:#63676a;color:#1d1d1d}.dropdown-submenu:hover a:after{border-left-color:#5cb85c}.dropdown-submenu>a:after{display:block;content:" ";float:right;width:0;height:0;border-color:transparent;border-style:solid;border-width:5px 0 5px 5px;border-left-color:#2b2b2b;margin-top:4px;margin-right:3px}.dropdown-submenu>a:hover:after{border-left-color:#adadad}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px}.pagination>li>a,.pagination>li>span{box-shadow:inset 0 -2px 0 rgba(0,0,0,0.05);-moz-box-shadow:inset 0 -2px 0 rgba(0,0,0,0.05);-webkit-box-shadow:inset 0 -2px 0 rgba(0,0,0,0.05)}.btn-default.disabled{color:#adadad}.btn{font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;will-change:background-color, border-color;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-webkit-transition:color 0.18s ease-in-out,background-color 0.18s ease-in-out,border-color 0.18s ease-in-out,box-shadow 0.18s ease-in-out;transition:color 0.18s ease-in-out,background-color 0.18s ease-in-out,border-color 0.18s ease-in-out,box-shadow 0.18s ease-in-out}.btn.btn-ribbon{background-color:#707070;background-image:-moz-linear-gradient(top, #777, #666);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#777), to(#666));background-image:-webkit-linear-gradient(top, #777, #666);background-image:-o-linear-gradient(top, #777, #666);background-image:linear-gradient(to bottom, #777777,#666666);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff777777', endColorstr='#ff666666', GradientType=0);color:white;padding:0 5px;line-height:20px;vertical-align:middle;height:20px;display:block;border:none;float:left;margin:0 8px 0 0;cursor:pointer}.btn.btn-ribbon>i{font-size:111%}.ribbon-button-alignment{padding-top:10px;display:inline-block}.ribbon-button-alignment.pull-right>.btn.btn-ribbon{margin:0 0 0 8px}.panel-purple{border-color:#6e587a}.panel-purple>.panel-heading{color:#fff;background-color:#6e587a;border-color:#6e587a}.panel-greenLight{border-color:#71843f}.panel-greenLight>.panel-heading{color:#fff;background-color:#71843f;border-color:#71843f}.panel-greenDark{border-color:#496949}.panel-greenDark>.panel-heading{color:#fff;background-color:#496949;border-color:#496949}.panel-darken{border-color:#313335}.panel-darken>.panel-heading{color:#fff;background-color:#404040;border-color:#404040}.panel-green{border-color:#5cb85c}.panel-green>.panel-heading{color:#fff;background-color:#5cb85c;border-color:#5cb85c}.panel-red{border-color:#d9534f}.panel-red>.panel-heading{color:#fff;background-color:#d9534f;border-color:#d9534f}.panel-teal{border-color:#568a89}.panel-teal>.panel-heading{color:#fff;background-color:#568a89;border-color:#568a89}.panel-orange{border-color:#e28a0d}.panel-orange>.panel-heading{color:#fff;background-color:#e28a0d;border-color:#e28a0d}.panel-blueDark{border-color:#4c4f53}.panel-blueDark>.panel-heading{color:#fff;background-color:#4c4f53;border-color:#4c4f53}.panel-magenta{border-color:#6e3671}.panel-magenta>.panel-heading{color:#fff;background-color:#6e3671;border-color:#6e3671}.panel-blue{border-color:#428bca}.panel-blue>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-footer>.btn-block{border-radius:0px;-moz-border-radius:0px;-webkit-border-radius:0px;border-bottom:none;border-left:none;border-right:none}.btn-circle{width:30px;height:30px;text-align:center;padding:6px 0;font-size:12px;line-height:18px;border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%;-webkit-box-shadow:0 1px 6px 0 rgba(0,0,0,0.12),0 1px 6px 0 rgba(0,0,0,0.12);box-shadow:0 1px 6px 0 rgba(0,0,0,0.12),0 1px 6px 0 rgba(0,0,0,0.12)}.btn-circle.btn-sm,.btn-group-sm>.btn-circle.btn{width:22px;height:22px;padding:4px 0;font-size:12px;line-height:14px;border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%}.btn-circle.btn-lg,.btn-group-lg>.btn-circle.btn{width:50px;height:50px;padding:10px 15px;font-size:18px;line-height:30px;border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%}.btn-circle.btn-xl{width:70px;height:70px;padding:10px 15px;font-size:24px;line-height:50px;border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%}.btn-label{position:relative;left:-8px;display:inline-block;padding:5px 8px;background:rgba(0,0,0,0.15);border-radius:2px 0 0 2px}.btn-labeled{padding-top:0;padding-bottom:0;padding-left:8px}.btn-link{box-shadow:none;-webkit-box-shadow:none;font-size:13px}.morris-hover.morris-default-style{border-radius:5px;padding:5px;color:#666;background:rgba(29,29,29,0.9);border:solid 2px #375959;font-family:'Oxygen Bold';font-size:10px;text-align:left;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.4);box-shadow:0 6px 12px rgba(0,0,0,0.4)}.morris-hover.morris-default-style .morris-hover-row-label{font-weight:bold}.morris-hover.morris-default-style .morris-hover-point{white-space:nowrap}.morris-hover{position:absolute;z-index:903}.fixed-page-footer .morris-hover{z-index:900}.txt-color.txt-color-blue,.txt-color-blue.pf-help-light,.pf-help-light:hover,.txt-color-blue.pf-help,.pf-help:hover,.txt-color.pf-help-default:hover,.dataTable td.pf-help-default.pf-table-link-cell:hover,.dataTable td.pf-table-link-cell.pf-help-light:hover,.dataTable td.pf-table-link-cell.pf-help:hover,.dataTable td.pf-table-action-cell>.pf-help-default.pf-table-action-icon-cell:hover,.dataTable td.pf-table-action-cell>.pf-table-action-icon-cell.pf-help-light:hover,.dataTable td.pf-table-action-cell>.pf-table-action-icon-cell.pf-help:hover,.pf-landing .pf-landing-list li>i.pf-help-default:hover,.pf-landing .pf-landing-list li>i.pf-help-light:hover,.pf-landing .pf-landing-list li>i.pf-help:hover,.dataTable td.txt-color-blue.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-blue.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-blue{color:#428bca !important}.txt-color.txt-color-blueLight,.txt-color-blueLight.pf-help-light,.txt-color-blueLight.pf-help,.dataTable td.txt-color-blueLight.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-blueLight.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-blueLight{color:#92a2a8 !important}.txt-color.txt-color-blueDark,.txt-color-blueDark.pf-help-light,.txt-color-blueDark.pf-help,.dataTable td.txt-color-blueDark.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-blueDark.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-blueDark{color:#4c4f53 !important}.txt-color.txt-color-grayLightest,.txt-color-grayLightest.pf-help-light,.txt-color-grayLightest.pf-help,.dataTable td.txt-color-grayLightest.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-grayLightest.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-grayLightest{color:#eaeaea !important}.txt-color.txt-color-grayLighter,.txt-color-grayLighter.pf-help-light,.txt-color-grayLighter.pf-help,.dataTable td.txt-color-grayLighter.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-grayLighter.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-grayLighter{color:#adadad !important}.txt-color.txt-color-grayLight,.pf-help-light,.txt-color-grayLight.pf-help,.dataTable td.txt-color-grayLight.pf-table-link-cell,.dataTable td.pf-table-link-cell.pf-help-light,.dataTable td.pf-table-action-cell>.txt-color-grayLight.pf-table-action-icon-cell,.dataTable td.pf-table-action-cell>.pf-table-action-icon-cell.pf-help-light,.pf-landing .pf-landing-list li>i.txt-color-grayLight,.pf-landing .pf-landing-list li>i.pf-help-light{color:#63676a !important}.txt-color.txt-color-gray,.txt-color-gray.pf-help-light,.pf-help,.dataTable td.txt-color-gray.pf-table-link-cell,.dataTable td.pf-table-link-cell.pf-help,.dataTable td.pf-table-action-cell>.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-gray,.pf-landing .pf-landing-list li>i.pf-help{color:#3c3f41 !important}.txt-color.txt-color-grayDark,.txt-color-grayDark.pf-help-light,.txt-color-grayDark.pf-help,.dataTable td.txt-color-grayDark.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-grayDark.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-grayDark{color:#313335 !important}.txt-color.txt-color-greenLight,.txt-color-greenLight.pf-help-light,.txt-color-greenLight.pf-help,.dataTable td.txt-color-greenLight.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-greenLight.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-greenLight{color:#66c84f !important}.txt-color.txt-color-green,.txt-color-green.pf-help-light,.pf-help-light.pf-log-info,.txt-color-green.pf-help,.pf-help.pf-log-info,.dataTable td.txt-color-green.pf-table-link-cell,.dataTable td.pf-table-link-cell.pf-log-info,.dataTable td.pf-table-action-cell>.txt-color-green.pf-table-action-icon-cell,.dataTable td.pf-table-action-cell>.pf-table-action-icon-cell.pf-log-info,.txt-color.pf-log-info,.pf-landing .pf-landing-list li>i.pf-log-info,.pf-landing .pf-landing-list li>i.txt-color-green{color:#5cb85c !important}.txt-color.txt-color-greenDark,.txt-color-greenDark.pf-help-light,.txt-color-greenDark.pf-help,.dataTable td.txt-color-greenDark.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-greenDark.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-greenDark{color:#4f9e4f !important}.txt-color.txt-color-redLight,.txt-color-redLight.pf-help-light,.txt-color-redLight.pf-help,.dataTable td.txt-color-redLight.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-redLight.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-redLight{color:#a65858 !important}.txt-color.txt-color-red,.txt-color-red.pf-help-light,.pf-help-light.pf-log-error,.txt-color-red.pf-help,.pf-help.pf-log-error,.dataTable td.txt-color-red.pf-table-link-cell,.dataTable td.pf-table-link-cell.pf-log-error,.dataTable td.pf-table-action-cell>.txt-color-red.pf-table-action-icon-cell,.dataTable td.pf-table-action-cell>.pf-table-action-icon-cell.pf-log-error,.txt-color.pf-log-error,.pf-landing .pf-landing-list li>i.pf-log-error,.pf-landing .pf-landing-list li>i.txt-color-red{color:#d9534f !important}.txt-color.txt-color-redDarker,.txt-color-redDarker.pf-help-light,.txt-color-redDarker.pf-help,.dataTable td.txt-color-redDarker.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-redDarker.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-redDarker{color:#a52521 !important}.txt-color.txt-color-yellow,.txt-color-yellow.pf-help-light,.txt-color-yellow.pf-help,.dataTable td.txt-color-yellow.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-yellow.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-yellow{color:#e2ce48 !important}.txt-color.txt-color-yellowDark,.txt-color-yellowDark.pf-help-light,.txt-color-yellowDark.pf-help,.dataTable td.txt-color-yellowDark.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-yellowDark.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-yellowDark{color:#c8b847 !important}.txt-color.txt-color-orangeLight,.txt-color-orangeLight.pf-help-light,.txt-color-orangeLight.pf-help,.dataTable td.txt-color-orangeLight.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-orangeLight.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-orangeLight{color:#f0ad4e !important}.txt-color.txt-color-orange,.txt-color-orange.pf-help-light,.txt-color-orange.pf-help,.dataTable td.txt-color-orange.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-orange.pf-table-action-icon-cell,.dataTable td.pf-table-action-cell:hover>.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-orange{color:#e28a0d !important}.txt-color.txt-color-orangeDark,.txt-color-orangeDark.pf-help-light,.txt-color-orangeDark.pf-help,.dataTable td.txt-color-orangeDark.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-orangeDark.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-orangeDark{color:#c2760c !important}.txt-color.txt-color-pink,.txt-color-pink.pf-help-light,.txt-color-pink.pf-help,.dataTable td.txt-color-pink.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-pink.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-pink{color:#e06fdf !important}.txt-color.txt-color-pinkDark,.txt-color-pinkDark.pf-help-light,.txt-color-pinkDark.pf-help,.dataTable td.txt-color-pinkDark.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-pinkDark.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-pinkDark{color:#a8829f !important}.txt-color.txt-color-purple,.txt-color-purple.pf-help-light,.txt-color-purple.pf-help,.dataTable td.txt-color-purple.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-purple.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-purple{color:#6e587a !important}.txt-color.txt-color-darken,.txt-color-darken.pf-help-light,.txt-color-darken.pf-help,.dataTable td.txt-color-darken.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-darken.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-darken{color:#404040 !important}.txt-color.txt-color-lighten,.txt-color-lighten.pf-help-light,.txt-color-lighten.pf-help,.dataTable td.txt-color-lighten.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-lighten.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-lighten{color:#d5e7ec !important}.txt-color.txt-color-white,.txt-color-white.pf-help-light,.txt-color-white.pf-help,.dataTable td.txt-color-white.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-white.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-white{color:#fff !important}.txt-color.txt-color-magenta,.txt-color-magenta.pf-help-light,.txt-color-magenta.pf-help,.dataTable td.txt-color-magenta.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-magenta.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-magenta{color:#6e3671 !important}.txt-color.txt-color-tealLightest,.txt-color-tealLightest.pf-help-light,.txt-color-tealLightest.pf-help,.dataTable td.txt-color-tealLightest.pf-table-link-cell,.dataTable td.pf-table-link-cell:hover,.dataTable td.pf-table-action-cell>.txt-color-tealLightest.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-tealLightest{color:#6caead !important}.txt-color.txt-color-tealLighter,.txt-color-tealLighter.pf-help-light,.txt-color-tealLighter.pf-help,.dataTable td.txt-color-tealLighter.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-tealLighter.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i{color:#568a89 !important}.txt-color.txt-color-teal,.txt-color-teal.pf-help-light,.txt-color-teal.pf-help,.dataTable td.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-teal.pf-table-action-icon-cell,.dataTable td.pf-table-action-cell>td.pf-table-action-icon-cell.pf-table-link-cell,.pf-landing .pf-landing-list li>i.txt-color-teal{color:#477372 !important}.txt-color.txt-color-indigoDark,.txt-color-indigoDark.pf-help-light,.txt-color-indigoDark.pf-help,.dataTable td.txt-color-indigoDark.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-indigoDark.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-indigoDark{color:#5c6bc0 !important}.txt-color.txt-color-indigoDarkest,.txt-color-indigoDarkest.pf-help-light,.txt-color-indigoDarkest.pf-help,.dataTable td.txt-color-indigoDarkest.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-indigoDarkest.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-indigoDarkest{color:#313966 !important}.txt-color.txt-color-gold,.txt-color-gold.pf-help-light,.txt-color-gold.pf-help,.dataTable td.txt-color-gold.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-gold.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-gold{color:#cfb53b !important}.txt-color.txt-color-silver,.txt-color-silver.pf-help-light,.txt-color-silver.pf-help,.dataTable td.txt-color-silver.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-silver.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-silver{color:silver !important}.txt-color.txt-color-bronze,.txt-color-bronze.pf-help-light,.txt-color-bronze.pf-help,.dataTable td.txt-color-bronze.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-bronze.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-bronze{color:#8c7853 !important}.txt-color.txt-color-primary,.txt-color-primary.pf-help-light,.txt-color-primary.pf-help,.dataTable td.txt-color-primary.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-primary.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-primary{color:#375959 !important}.txt-color.txt-color-success,.txt-color-success.pf-help-light,.txt-color-success.pf-help,.dataTable td.txt-color-success.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-success.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-success{color:#4f9e4f !important}.txt-color.txt-color-information,.txt-color-information.pf-help-light,.txt-color-information.pf-help,.dataTable td.txt-color-information.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-information.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-information{color:#316490 !important}.txt-color.txt-color-info,.txt-color-info.pf-help-light,.txt-color-info.pf-help,.dataTable td.txt-color-info.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-info.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-info{color:#316490 !important}.txt-color.txt-color-warning,.txt-color-warning.pf-help-light,.pf-help-light.pf-log-warning,.txt-color-warning.pf-help,.pf-help.pf-log-warning,.dataTable td.txt-color-warning.pf-table-link-cell,.dataTable td.pf-table-link-cell.pf-log-warning,.dataTable td.pf-table-action-cell>.txt-color-warning.pf-table-action-icon-cell,.dataTable td.pf-table-action-cell>.pf-table-action-icon-cell.pf-log-warning,.txt-color.pf-log-warning,.pf-landing .pf-landing-list li>i.pf-log-warning,.pf-landing .pf-landing-list li>i.txt-color-warning{color:#e28a0d !important}.txt-color.txt-color-danger,.txt-color-danger.pf-help-light,.txt-color-danger.pf-help,.dataTable td.txt-color-danger.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-danger.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-danger{color:#a52521 !important}.bg-color.bg-color-blue{background-color:#428bca !important}.bg-color.bg-color-blueLight{background-color:#92a2a8 !important}.bg-color.bg-color-blueDark{background-color:#4c4f53 !important}.bg-color.bg-color-green{background-color:#5cb85c !important}.bg-color.bg-color-greenLight{background-color:#71843f !important}.bg-color.bg-color-greenDark{background-color:#496949 !important}.bg-color.bg-color-red{background-color:#d9534f !important}.bg-color.bg-color-yellow{background-color:#e2ce48 !important}.bg-color.bg-color-orange{background-color:#e28a0d !important}.bg-color.bg-color-orangeDark{background-color:#c2760c !important}.bg-color.bg-color-pink{background-color:#e06fdf !important}.bg-color.bg-color-pinkDark{background-color:#a8829f !important}.bg-color.bg-color-purple{background-color:#6e587a !important}.bg-color.bg-color-darken{background-color:#404040 !important}.bg-color.bg-color-lighten{background-color:#d5e7ec !important}.bg-color.bg-color-white{background-color:#fff !important}.bg-color.bg-color-gray{background-color:#3c3f41 !important}.bg-color.bg-color-grayDark{background-color:#525252 !important}.bg-color.bg-color-grayDarker{background-color:#2b2b2b !important}.bg-color.bg-color-magenta{background-color:#6e3671 !important}.bg-color.bg-color-tealLighter{background-color:#568a89 !important}.bg-color.bg-color-tealDarker{background-color:#212C30 !important}.bg-color.bg-color-tealDarkest{background-color:#1b2326 !important}.bg-color.bg-color-redLight{background-color:#a65858 !important}.pf-animation-slide-in{-moz-animation-duration:1.2s;-webkit-animation-duration:1.2s;-moz-animation-name:pfSlideIn;-webkit-animation-name:pfSlideIn;position:relative}@-webkit-keyframes pfSlideIn{from{opacity:0;top:-20px}to{opacity:1;top:0px}}@-moz-keyframes pfSlideIn{from{opacity:0;top:-20px}to{opacity:1;top:0px}}@-ms-keyframes pfSlideIn{from{opacity:0;top:-20px}to{opacity:1;top:0px}}@keyframes pfSlideIn{from{opacity:0;top:-20px}to{opacity:1;top:0px}}@-webkit-keyframes pfPulseDanger{0%{fill:#d9534f}50%{fill:#58100d}100%{fill:#d9534f}}@-moz-keyframes pfPulseDanger{0%{fill:#d9534f}50%{fill:#58100d}100%{fill:#d9534f}}@-ms-keyframes pfPulseDanger{0%{fill:#d9534f}50%{fill:#58100d}100%{fill:#d9534f}}@keyframes pfPulseDanger{0%{fill:#d9534f}50%{fill:#58100d}100%{fill:#d9534f}}.pf-animation-pulse-success{-webkit-animation:pulseBackgroundSuccess 1s 1;animation:pulseBackgroundSuccess 1s 1;-webkit-animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38)}.pf-animation-pulse-success .sorting_1{-webkit-animation:pulseBackgroundSuccessActive 1s 1;animation:pulseBackgroundSuccessActive 1s 1;-webkit-animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38)}.pf-animation-pulse-warning{-webkit-animation:pulseBackgroundWarning 1s 1;animation:pulseBackgroundWarning 1s 1;-webkit-animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38)}.pf-animation-pulse-warning .sorting_1{-webkit-animation:pulseBackgroundWarningActive 1s 1;animation:pulseBackgroundWarningActive 1s 1;-webkit-animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38)}@-webkit-keyframes pulseBackgroundSuccess{10%{background-color:#4f9e4f;color:#313335}}@-moz-keyframes pulseBackgroundSuccess{10%{background-color:#4f9e4f;color:#313335}}@-ms-keyframes pulseBackgroundSuccess{10%{background-color:#4f9e4f;color:#313335}}@keyframes pulseBackgroundSuccess{10%{background-color:#4f9e4f;color:#313335}}@-webkit-keyframes pulseBackgroundSuccessActive{10%{background-color:#478d47;color:#313335}}@-moz-keyframes pulseBackgroundSuccessActive{10%{background-color:#478d47;color:#313335}}@-ms-keyframes pulseBackgroundSuccessActive{10%{background-color:#478d47;color:#313335}}@keyframes pulseBackgroundSuccessActive{10%{background-color:#478d47;color:#313335}}@-webkit-keyframes pulseBackgroundWarning{10%{background-color:#e28a0d;color:#2b2b2b}}@-moz-keyframes pulseBackgroundWarning{10%{background-color:#e28a0d;color:#2b2b2b}}@-ms-keyframes pulseBackgroundWarning{10%{background-color:#e28a0d;color:#2b2b2b}}@keyframes pulseBackgroundWarning{10%{background-color:#e28a0d;color:#2b2b2b}}@-webkit-keyframes pulseBackgroundWarningActive{10%{background-color:#ca7b0c;color:#2b2b2b}}@-moz-keyframes pulseBackgroundWarningActive{10%{background-color:#ca7b0c;color:#2b2b2b}}@-ms-keyframes pulseBackgroundWarningActive{10%{background-color:#ca7b0c;color:#2b2b2b}}@keyframes pulseBackgroundWarningActive{10%{background-color:#ca7b0c;color:#2b2b2b}}.pf-animate-rotate,.modal-content h2[data-toggle="collapse"]:after,.modal-content h4[data-toggle="collapse"]:after,.panel-body h2[data-toggle="collapse"]:after,.panel-body h4[data-toggle="collapse"]:after{-webkit-transition:all 0.08s linear;transition:all 0.08s linear}.pf-animate-rotate.right,.modal-content h2.right[data-toggle="collapse"]:after,.modal-content h4.right[data-toggle="collapse"]:after,.panel-body h2.right[data-toggle="collapse"]:after,.panel-body h4.right[data-toggle="collapse"]:after{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.pf-animate-rotate.left,.modal-content h2.left[data-toggle="collapse"]:after,.modal-content h4.left[data-toggle="collapse"]:after,.panel-body h2.left[data-toggle="collapse"]:after,.panel-body h4.left[data-toggle="collapse"]:after{-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg)}@font-face{font-family:'Triglavian';font-style:normal;font-weight:900;src:url("../../fonts/triglavian-regular.eot");src:url("../../fonts/triglavian-regular.eot?#iefix") format("embedded-opentype"),url("../../fonts/triglavian-regular.woff2") format("woff2"),url("../../fonts/triglavian-regular.woff") format("woff"),url("../../fonts/triglavian-regular.ttf") format("truetype")}.pf-triglivian{font-family:'Triglavian';font-weight:900}body{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.pf-body{overflow:hidden}a,.pf-link{color:#477372;will-change:color;text-decoration:none;cursor:pointer;-webkit-transition:color 0.08s ease-out,background-color 0.08s ease-out;transition:color 0.08s ease-out,background-color 0.08s ease-out}a:hover,.pf-link:hover{color:#6caead;text-decoration:none}a:focus,.pf-link:focus{color:#477372}em{font-style:italic}em.pf-brand{text-transform:uppercase}.pf-font-capitalize{text-transform:capitalize}.pf-font-line-through{text-decoration:line-through}.no-padding{padding:0 !important}::-webkit-scrollbar{display:none;width:16px;height:16px}::-webkit-scrollbar-track{background-color:#2b2b2b;border-left:1px solid #313335;border-radius:2px;-webkit-transition:background-color 0.5s;transition:background-color 0.5s}::-webkit-scrollbar-thumb{height:6px;border:5px solid transparent;background-clip:padding-box;-webkit-border-radius:8px;background-color:#868c90}::-webkit-scrollbar-thumb:hover{background-color:#a1a5a8}::-webkit-scrollbar-button{width:0;height:0;display:none}::-webkit-scrollbar-corner{background-color:transparent}::selection{background:#adadad;color:#1d1d1d}::-moz-selection{background:#adadad;color:#1d1d1d}.pf-help-default,.pf-help-light,.pf-help{cursor:help;-webkit-transition:color 0.08s ease-out;transition:color 0.08s ease-out}.pf-dialog-icon-button,.pf-signature-table-module .pf-sig-table .pf-sig-table-edit-desc-text.editable-empty,.pf-signature-table-module .pf-sig-table .fa-plus,.pf-system-route-module .pf-system-route-table td .fa-sync,.pf-system-route-module .pf-system-route-table td .fa-search{cursor:pointer;margin-top:2px;-webkit-transition:color 0.15s ease-out;transition:color 0.15s ease-out}.pf-dialog-icon-button:not(.collapsed),.pf-signature-table-module .pf-sig-table .pf-sig-table-edit-desc-text.editable-empty:not(.collapsed),.pf-signature-table-module .pf-sig-table .fa-plus:not(.collapsed),.pf-system-route-module .pf-system-route-table td .fa-sync:not(.collapsed),.pf-system-route-module .pf-system-route-table td .fa-search:not(.collapsed),.pf-dialog-icon-button:hover,.pf-signature-table-module .pf-sig-table .pf-sig-table-edit-desc-text.editable-empty:hover,.pf-signature-table-module .pf-sig-table .fa-plus:hover,.pf-system-route-module .pf-system-route-table td .fa-sync:hover,.pf-system-route-module .pf-system-route-table td .fa-search:hover{color:#e28a0d}.pf-module-icon-button{cursor:pointer;color:#63676a;-webkit-transition:color 0.15s ease-out;transition:color 0.15s ease-out}.pf-module-icon-button:hover,.pf-module-icon-button.active{color:#e28a0d !important}.pf-module-icon-button.editable{border-bottom:none !important}.pf-module-icon-button-copy{cursor:copy;-moz-user-select:text;user-select:text}a.disabled{color:#777;pointer-events:none;cursor:default}.alert{will-change:opacity, transform}.editable-input optgroup[label]{background-color:#3c3f41;color:#63676a}.editable-input optgroup[label] option{background-color:#313335;color:#adadad;font-family:Consolas,monospace,Menlo,Monaco,"Courier New"}.editable-input .editable-checklist>div>label{display:block !important;padding-left:20px !important;color:#adadad}.editable-input .editable-checklist>div>label>span:after{top:-2px}.editable-input .editable-checklist .pf-editable-unknown[value='0']+span{color:#d9534f}select:active,select:hover{outline:none}select:active,select:hover{outline-color:red}.select2-results .select2-results__options--nested .select2-results__option{padding-left:15px}.select2-results [class*="col-"]{padding-left:3px;padding-right:3px}.select2-results .clearfix.pf-result-image [class*="col-"]{line-height:22px}.select2 ::-webkit-search-cancel-button{-webkit-appearance:none !important}.select2 .select2-selection__choice__remove{float:left}.select2 .select2-selection--multiple input{box-shadow:none !important}.dataTables_wrapper .dataTables_length select{margin:0 3px}.dataTables_wrapper .dt-buttons .dt-button{padding:0 5px}.dataTables_wrapper .dt-buttons .dt-button:not(:last-child){margin-right:10px}.dataTables_wrapper .dt-buttons .dt-button .fa{margin-right:5px}.dataTable th.pf-table-image-cell,.dataTable th.pf-table-image-small-cell,.dataTable th.pf-table-image-smaller-cell{padding-left:0 !important;padding-right:0 !important;image-rendering:-webkit-optimize-contrast}.dataTable th.sorting,.dataTable th.sorting_asc,.dataTable th.sorting_desc{padding-right:18px !important}.dataTable tr.group{background-color:rgba(43,43,43,0.4)}.dataTable td:focus-within{outline:1px solid #c2760c;background-color:rgba(194,118,12,0.08) !important;outline-offset:-1px}.dataTable td>.fa-circle{font-size:9px !important}.dataTable td.pf-table-link-cell{cursor:pointer;-webkit-transition:color 0.08s ease-out;transition:color 0.08s ease-out}.dataTable td.pf-table-action-cell{cursor:pointer}.dataTable td.pf-table-action-cell>.pf-table-action-icon-cell{-webkit-transition:color 0.08s ease-out;transition:color 0.08s ease-out}.dataTable td.pf-table-image-cell{padding:0 !important;image-rendering:-webkit-optimize-contrast}.dataTable td.pf-table-image-cell img{width:26px;box-sizing:content-box;border-left:1px solid #3c3f41;border-right:1px solid #3c3f41}.dataTable td.pf-table-image-small-cell img{width:24px;border-left:1px solid transparent;border-right:1px solid transparent}.dataTable td.pf-table-image-smaller-cell{padding:0 !important}.dataTable td.pf-table-image-smaller-cell img{width:25px;border-left:1px solid transparent;border-right:1px solid transparent}.dataTable td.pf-table-button-sm-cell{padding:0 5px}.dataTable td.pf-table-counter-cell{color:#63676a}.dataTable td.pf-table-counter-cell .pf-digit-counter-small{width:20px;display:inline-block;font-size:10px}.dataTable td.pf-table-counter-cell .pf-digit-counter-large{width:26px;display:inline-block;font-size:10px}.dataTable td .pf-table-unknown-cell{color:#d9534f;font-style:italic}.dataTable td .pf-table-cell-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dataTable td .pf-table-cell-80{width:90px}.dataTable td .pf-table-cell-90{width:100px}.dataTable td .pf-table-cell-100{width:110px}.dataTable td.separator-right,.dataTable th.separator-right{border-right:1px solid #3c3f41}.dataTable td svg.peity,.dataTable th svg.peity{display:block}table.pf-table-fixed{width:100%;table-layout:fixed}table tr.collapsing{-webkit-transition:height 0.01s ease;transition:height 0.01s ease}table tr.collapse.in{display:table-row !important}table td.pf-table-cell-10,table th.pf-table-cell-10{width:10px}table td.pf-table-cell-20,table th.pf-table-cell-20{width:20px}table td.pf-table-cell-ellipses-auto,table th.pf-table-cell-ellipses-auto{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pf-table-tools{height:45px}.pf-table-tools>.btn-labeled:not(:last-child){margin-right:10px}.pf-table-tools-action{will-change:height, opacity;opacity:0;display:none;height:0;overflow:hidden}.pf-loading-overlay{position:absolute;width:100%;height:100%;top:0;left:0;opacity:0;background:#2b2b2b;z-index:1060;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.pf-loading-overlay .pf-loading-overlay-wrapper{width:25px;height:25px;margin:auto;text-align:center;position:absolute;top:0;left:0;bottom:0;right:0}.pf-loading-overlay .pf-loading-overlay-wrapper i{padding:3px}.navbar-header-block{width:100%}.navbar-header-block .navbar-nav{width:100%}.navbar-nav li:not(.disabled):not(.hide-before):hover:before,.navbar-nav li:not(.disabled):not(.hide-before).active:before{top:-4px;opacity:1}.navbar-nav li:not(.disabled):not(.hide-before):before{content:'';position:absolute;background-color:#5cb85c;opacity:0;will-change:opacity,top;-webkit-transition:top 0.15s ease-out,opacity 0.15s ease-out;transition:top 0.15s ease-out,opacity 0.15s ease-out;width:100%;height:2px;top:0}.pf-navbar-version-info{cursor:pointer}.pf-site{will-change:transform}.sb-slidebar{will-change:transform}.sb-left .list-group-item{cursor:pointer;-webkit-box-shadow:inset -10px 0px 5px -5px rgba(0,0,0,0.4);box-shadow:inset -10px 0px 5px -5px rgba(0,0,0,0.4)}.sb-right .list-group-item{cursor:pointer;-webkit-box-shadow:inset 10px 0px 5px -5px rgba(0,0,0,0.4);box-shadow:inset 10px 0px 5px -5px rgba(0,0,0,0.4)}.list-group-item.disabled:after{content:'\f023';font-family:'Font Awesome 5 Free';font-weight:bold;color:#2b2b2b;position:absolute;right:8px}.mCSB_container,.mCSB_dragger{will-change:top, left}.pf-timestamp-counter{visibility:hidden}.pf-map-type-private{color:#7986cb}.pf-map-type-corporation{color:#5cb85c}.pf-map-type-alliance{color:#428bca}.pf-map-type-global{color:#568a89}#pf-map-module{margin:20px 10px 0 10px}#pf-map-module #pf-map-tabs a[role="tab"]:hover .pf-map-tab-handler:before{color:#e28a0d}#pf-map-module #pf-map-tabs .pf-map-tab-handler:before{content:'\22EE\22EE\00A0';display:inline-block;cursor:-moz-grab !important;cursor:-webkit-grab !important;cursor:grab !important;color:#63676a;width:12px;transition:color 0.15s ease-out, background-color 0.15s ease-out;pointer-events:all}#pf-map-module #pf-map-tabs .pf-map-type-tab-default{border-top:2px solid transparent}#pf-map-module #pf-map-tabs .pf-map-type-tab-private{border-top:2px solid #7986cb}#pf-map-module #pf-map-tabs .pf-map-type-tab-corporation{border-top:2px solid #5cb85c}#pf-map-module #pf-map-tabs .pf-map-type-tab-alliance{border-top:2px solid #428bca}#pf-map-module #pf-map-tabs .pf-map-type-tab-global{border-top:2px solid #568a89}#pf-map-module #pf-map-tabs .pf-map-tab-icon{margin-right:3px}#pf-map-module #pf-map-tabs .pf-map-tab-shared-icon{margin-left:3px}.pf-map-content-row{margin-top:10px;padding-bottom:40px}.pf-map-content-row .pf-module{font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;background:rgba(60,63,65,0.27);padding:10px;width:100%;margin-bottom:10px;will-change:height, transform, opacity;overflow:hidden;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.pf-map-content-row .pf-module:before{content:'';position:absolute;top:0;left:0;border-style:solid;border-width:0 0 8px 8px;border-color:transparent transparent transparent #3c3f41;cursor:ns-resize}.pf-map-content-row .pf-module .label{margin-bottom:10px}.pf-map-content-row .pf-module .pf-dynamic-area{background:rgba(43,43,43,0.4)}.pf-map-content-row .pf-module .pf-module-head{margin-bottom:10px}.pf-map-content-row .pf-module .pf-module-head .pf-module-handler-drag{display:inline-block;cursor:-moz-grab !important;cursor:-webkit-grab !important;cursor:grab !important;transition:color 0.15s ease-out}.pf-map-content-row .pf-module .pf-module-head .pf-module-handler-drag:before{content:'\22EE\22EE\00A0'}.pf-map-content-row .pf-module .pf-module-head .pf-module-handler-drag:hover{color:#f0ad4e}.pf-map-content-row .pf-module .pf-module-head h5{display:inline-block;line-height:16px;margin-bottom:0}.pf-map-content-row .pf-module .pf-module-head h5 .pf-module-icon-button{margin-left:5px}.pf-map-content-row .pf-module .pf-module-table{font-size:11px;white-space:nowrap}.pf-map-content-row .pf-module-spacer{margin-bottom:10px}.pf-user-status{color:#a52521}.pf-user-status-corp{color:#5cb85c}.pf-user-status-ally{color:#428bca}.pf-user-status-own{color:#7986cb}.pf-system-effect{display:none;color:#adadad;cursor:help}.pf-system-effect-magnetar{color:#e06fdf;display:inline-block}.pf-system-effect-redgiant{color:#d9534f;display:inline-block}.pf-system-effect-pulsar{color:#428bca;display:inline-block}.pf-system-effect-wolfrayet{color:#e28a0d;display:inline-block}.pf-system-effect-cataclysmic{color:#ffb;display:inline-block}.pf-system-effect-blackhole{color:#000;display:inline-block}.pf-rally,.pf-system-info-rally .pf-system-head{text-shadow:1px 1px 2px #1d1d1d;background-color:#782d77;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjEuMCIgeTE9IjEuMCIgeDI9IjAuMCIgeTI9IjAuMCI+PHN0b3Agb2Zmc2V0PSIyNSUiIHN0b3AtY29sb3I9IiMzZTI2NGUiLz48c3RvcCBvZmZzZXQ9IjI1JSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjAiLz48c3RvcCBvZmZzZXQ9IjUwJSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjAiLz48c3RvcCBvZmZzZXQ9IjUwJSIgc3RvcC1jb2xvcj0iIzNlMjY0ZSIvPjxzdG9wIG9mZnNldD0iNzUlIiBzdG9wLWNvbG9yPSIjM2UyNjRlIi8+PHN0b3Agb2Zmc2V0PSI3NSUiIHN0b3AtY29sb3I9IiMwMDAwMDAiIHN0b3Atb3BhY2l0eT0iMC4wIi8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjMDAwMDAwIiBzdG9wLW9wYWNpdHk9IjAuMCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-moz-linear-gradient(135deg, #3e264e 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,#3e264e 50%,#3e264e 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0));background-image:-webkit-linear-gradient(135deg, #3e264e 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,#3e264e 50%,#3e264e 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0));background-image:linear-gradient(-45deg, #3e264e 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,#3e264e 50%,#3e264e 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0));background-size:25px 25px;-webkit-animation:move 2.5s linear infinite;-moz-animation:move 2.5s linear infinite;-ms-animation:move 2.5s linear infinite;animation:move 2.5s linear infinite}.pf-system-security-0-0{color:#be0000}.pf-system-security-0-1{color:#ab2600}.pf-system-security-0-2{color:#be3900}.pf-system-security-0-3{color:#c24e02}.pf-system-security-0-4{color:#ab5f00}.pf-system-security-0-5{color:#bebe00}.pf-system-security-0-6{color:#73bf26}.pf-system-security-0-7{color:#00bf00}.pf-system-security-0-8{color:#00bf39}.pf-system-security-0-9{color:#39bf99}.pf-system-security-1-0{color:#28c0bf}.pf-system-sec{margin-right:5px;cursor:-moz-grab;cursor:-webkit-grab;cursor:grab}.pf-system-sec-highSec{color:#5cb85c}.pf-system-sec-lowSec{color:#e28a0d}.pf-system-sec-nullSec{color:#d9534f}.pf-system-sec-high{color:#d9534f}.pf-system-sec-mid{color:#e28a0d}.pf-system-sec-low{color:#428bca}.pf-system-sec-unknown{color:#7986cb}.pf-system-sec-abyssal{color:#e06fdf}.pf-system-status-friendly{border-color:#428bca !important;color:#428bca}.pf-system-status-occupied{border-color:#e28a0d !important;color:#e28a0d}.pf-system-status-hostile{border-color:#d9534f !important;color:#d9534f}.pf-system-status-empty{border-color:#5cb85c !important;color:#5cb85c}.pf-system-status-unscanned{border-color:#568a89 !important;color:#568a89}.pf-system-info-status-label{background-color:#63676a;color:#000;will-change:background-color;-webkit-transition:background-color 0.3s ease-out;transition:background-color 0.3s ease-out}.pf-system-info-status-label.pf-system-status-friendly{background-color:#428bca}.pf-system-info-status-label.pf-system-status-occupied{background-color:#e28a0d}.pf-system-info-status-label.pf-system-status-hostile{background-color:#d9534f}.pf-system-info-status-label.pf-system-status-empty{background-color:#5cb85c}.pf-system-info-status-label.pf-system-status-unscanned{background-color:#568a89}.pf-system-hidden{opacity:0.15 !important;pointer-events:none}.pf-system-effect-dialog-wrapper .table,.pf-jump-info-dialog .table{margin:15px 0}.pf-system-effect-dialog-wrapper .table td,.pf-jump-info-dialog .table td{text-transform:capitalize}.pf-fake-connection{box-sizing:content-box;display:inline-block;width:70px;height:4px;border-top:2px solid #63676a;border-bottom:2px solid #63676a;background-color:#3c3f41;position:relative;font-size:10px;font-family:"Oxygen","Helvetica Neue",Helvetica,Arial,sans-serif}.pf-fake-connection.pf-map-connection-stargate{background-color:#313966;border-color:#63676a}.pf-fake-connection.pf-map-connection-jumpbridge{background-color:#6caead;border-color:#3c3f41;background:repeating-linear-gradient(to right, #6caead, #6caead 10px, #3c3f41 10px, #3c3f41 20px)}.pf-fake-connection.pf-map-connection-abyssal{background-color:#5a225a;border-color:#3c3f41;background:repeating-linear-gradient(to right, #5a225a, #5a225a 5px, #3c3f41 5px, #3c3f41 10px)}.pf-fake-connection.pf-map-connection-wh-eol{border-color:#d747d6}.pf-fake-connection.pf-map-connection-wh-reduced{background-color:#e28a0d}.pf-fake-connection.pf-map-connection-wh-critical{background-color:#a52521}.pf-fake-connection.pf-map-connection-frig{border-style:dashed;border-left:none;border-right:none}.pf-fake-connection.pf-map-connection-frig:after{content:'frig';background-color:#e28a0d;color:#1d1d1d;padding:0px 3px;position:absolute;left:25px;top:-6px;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.pf-fake-connection.pf-map-connection-preserve-mass:after{content:'save mass';background-color:#a52521;color:#eaeaea;padding:0px 3px;position:absolute;left:8px;top:-6px;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.pf-structure-status-unknown{color:#568a89}.pf-structure-status-online{color:#5cb85c}.pf-structure-status-offline{color:#a52521}.tooltip-inner{color:#adadad;background-color:#3c3f41;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;padding:5px 5px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.4);box-shadow:0 6px 12px rgba(0,0,0,0.4)}.modal .tooltip{z-index:1060}.modal .tooltip .tooltip-inner{color:#313335;background-color:#adadad}.tooltip.top .tooltip-arrow{border-top-color:#63676a}.tooltip.right .tooltip-arrow{border-right-color:#63676a}.tooltip.bottom .tooltip-arrow{border-bottom-color:#63676a}.tooltip.left .tooltip-arrow{border-left-color:#63676a}td.pf-popover-trigger:hover{color:#477372}.pf-notransition{-webkit-transition:none !important;-moz-transition:none !important;-o-transition:none !important;transition:none !important}.pf-dynamic-area{padding:10px;min-height:100px;position:relative;background-color:#313335;overflow:hidden;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.pf-dynamic-area .dl-horizontal{margin-bottom:0}.pf-dynamic-area .dl-horizontal dd{min-width:100px}.pf-dynamic-area .dl-horizontal dd.txt-color,.pf-dynamic-area .dl-horizontal dd.pf-help-light,.pf-dynamic-area .dl-horizontal dd.pf-help,.pf-dynamic-area .dl-horizontal .dataTable td.pf-table-action-cell>dd.pf-table-action-icon-cell,.dataTable .pf-dynamic-area .dl-horizontal td.pf-table-action-cell>dd.pf-table-action-icon-cell{font-weight:bold}.pf-dynamic-area>[class~='alert']:last-of-type{margin-bottom:0}.pf-code-ObjectBrace{color:#782d77;font-weight:bold}.pf-code-ArrayBrace{color:#3e264e;font-weight:bold}.pf-code-PropertyName{color:#1d1d1d;font-weight:bold}.pf-code-String{color:#e28a0d}.pf-code-Number{color:#4f9e4f}.pf-code-Boolean{color:#313966;font-weight:bold}.pf-code-Function{color:#782d77}.pf-code-Null{color:#2b2b2b;font-weight:bold}.pf-code-Comma{color:#1d1d1d;font-weight:bold}code .fas,code .pf-landing .pf-landing-list li>i,.pf-landing .pf-landing-list code li>i,code .far,code .fab{color:#3c3f41;cursor:pointer}#pf-logo-wrapper{display:block}#pf-head{margin-bottom:0px}#pf-head a{-webkit-transition:color 0.15s ease-out;transition:color 0.15s ease-out;will-change:color}#pf-head a:focus{color:#477372}#pf-head a:focus img{border-color:#3c3f41}#pf-head a:hover{text-decoration:none}#pf-head a:hover .badge{color:#6caead}#pf-head a:hover img{border-color:#568a89}#pf-head i{margin-right:2px}#pf-head .pf-brand-desc{margin:6px 10px 0 90px;width:180px}#pf-head .pf-head-menu{padding:3px 10px;line-height:24px}#pf-head .pf-head-menu .pf-head-menu-logo{width:24px;height:24px;display:inline-block;float:left}#pf-head .pf-head-user-character,#pf-head .pf-head-user-ship{opacity:0;visibility:hidden}#pf-head .pf-head-active-user{cursor:pointer}#pf-head .pf-head-active-user,#pf-head #pf-head-current-location{display:none}#pf-head .pf-head-active-user .badge,#pf-head #pf-head-current-location .badge{-webkit-transition:color 0.3s ease-out;transition:color 0.3s ease-out}#pf-head .pf-head-user-character-image,#pf-head .pf-head-user-ship-image{display:inline-block;margin-top:-6px;margin-bottom:-6px;width:27px;border:1px solid #3c3f41;margin-right:3px;image-rendering:-webkit-optimize-contrast;-webkit-transition:border-color 0.15s ease-out;transition:border-color 0.15s ease-out;will-change:border-color}#pf-head .pf-head-program-status{cursor:pointer}#pf-head .navbar-text{min-width:60px}#pf-head .tooltip .tooltip-inner{color:#adadad}.pf-head{-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.4);box-shadow:0 6px 12px rgba(0,0,0,0.4)}.pf-head .badge{background-color:#3c3f41;color:#adadad}.pf-head small{font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif}#pf-head-character-switch td{border:none}#pf-head-character-switch td:first-child+td{padding:0 5px}#pf-footer{position:absolute;bottom:0;left:0;width:100%;margin:0;background:rgba(60,63,65,0.3)}#pf-footer a{font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;color:#375959}#pf-footer a:hover{color:#477372;text-decoration:none}.navbar-fixed-bottom{padding:2px 0}.navbar-fixed-bottom .container-fluid{padding-left:0;padding-right:0}.pf-menu-clock{position:absolute;bottom:0;width:100%;padding:6px 8px;text-align:center}#pf-global-info{position:absolute;left:0;bottom:32px;width:100%;height:32px;margin-bottom:0}.panel-reverse-order{display:table;width:100%}.panel-reverse-order .reverse-order-header{display:table-header-group}.panel-reverse-order .reverse-order-footer{display:table-footer-group}.pf-sortable-ghost{will-change:opacity;transition:opacity 0.2s ease-out;opacity:0.7 !important}.pf-sortable-ghost .pf-module-handler-drag{color:#f0ad4e;cursor:-moz-grabbing;cursor:-webkit-grabbing;cursor:grabbing}@-webkit-keyframes move{0%{background-position:0 0}100%{background-position:50px 50px}}@-moz-keyframes move{0%{background-position:0 0}100%{background-position:50px 50px}}@-ms-keyframes move{0%{background-position:0 0}100%{background-position:50px 50px}}@keyframes move{0%{background-position:0 0}100%{background-position:50px 50px}}.pf-animate{visibility:hidden;opacity:0}.pf-color-line{position:fixed;top:0;left:0;width:100%;height:3px;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuMCIgeTE9IjAuNSIgeDI9IjEuMCIgeTI9IjAuNSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzY2Yzg0ZiIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzY2Yzg0ZiIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-webkit-gradient(linear, 0% 50%, 100% 50%, color-stop(0%, #66c84f),color-stop(100%, #66c84f));background-image:-moz-linear-gradient(left, #66c84f,#66c84f 100%);background-image:-webkit-linear-gradient(left, #66c84f,#66c84f 100%);background-image:linear-gradient(to right, #66c84f,#66c84f 100%)}.pf-color-line.warning{background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuMCIgeTE9IjAuNSIgeDI9IjEuMCIgeTI9IjAuNSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2UyOGEwZCIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2UyOGEwZCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-webkit-gradient(linear, 0% 50%, 100% 50%, color-stop(0%, #e28a0d),color-stop(100%, #e28a0d));background-image:-moz-linear-gradient(left, #e28a0d,#e28a0d 100%);background-image:-webkit-linear-gradient(left, #e28a0d,#e28a0d 100%);background-image:linear-gradient(to right, #e28a0d,#e28a0d 100%)}.pf-color-line.danger{background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuMCIgeTE9IjAuNSIgeDI9IjEuMCIgeTI9IjAuNSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2E1MjUyMSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2E1MjUyMSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-webkit-gradient(linear, 0% 50%, 100% 50%, color-stop(0%, #a52521),color-stop(100%, #a52521));background-image:-moz-linear-gradient(left, #a52521,#a52521 100%);background-image:-webkit-linear-gradient(left, #a52521,#a52521 100%);background-image:linear-gradient(to right, #a52521,#a52521 100%)}.pf-splash{position:absolute;z-index:2000;background-color:#1d1d1d;color:#63676a;top:0;bottom:0;left:0;right:0;will-change:opacity}.pf-splash:not(.pf-splash-warning):not(.pf-splash-error){cursor:wait}.pf-splash .pf-splash-title{position:fixed;left:50%;top:30%;text-align:center;max-width:500px;padding:20px;-moz-transform:translate(-50%, -50%);-ms-transform:translate(-50%, -50%);-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}.pf-splash .pf-splash-debug{position:absolute;bottom:0;width:100%}.pf-splash .pf-splash-debug .pf-splash-debug-headline{padding:0 10px}.pf-splash .pf-splash-debug .pf-splash-pre{margin-bottom:0}@media (max-width: 1200px){.pf-landing #pf-logo-container{margin:5px auto}.pf-landing .pf-brand-desc{display:none}.pf-landing .navbar .navbar-brand{margin-left:10px}}.pf-landing section:not(:last-of-type){border-bottom:1px solid #2b2b2b}.pf-landing section{min-height:200px;padding:20px 0 40px 0}.pf-landing section h4:not(.pf-dynamic-area){font-size:18px;font-family:"Oxygen","Helvetica Neue",Helvetica,Arial,sans-serif;margin:5px 0 10px 0;border-bottom:1px solid #2b2b2b;line-height:34px}.pf-landing .container>.row{margin-bottom:30px}.pf-landing .alert{box-shadow:0 4px 10px rgba(0,0,0,0.4)}.pf-landing a[data-gallery]{position:relative;display:inline-block;overflow:hidden;margin:5px 0 15px 0;box-shadow:0 4px 10px rgba(0,0,0,0.4)}.pf-landing a[data-gallery]:before{content:'\f06e';font-family:'Font Awesome 5 Free';font-size:20px;color:#e28a0d;position:absolute;height:100%;width:100%;z-index:10;-webkit-transition:transform 0.1s ease-out,opacity 0.1s ease-out;transition:transform 0.1s ease-out,opacity 0.1s ease-out;will-change:transform, opacity;transform:scale(1.3, 1.3);opacity:0;display:flex;flex-direction:column;justify-content:center;align-items:center}.pf-landing a[data-gallery]:hover img{border-color:#6caead;-webkit-filter:brightness(50%);filter:brightness(50%)}.pf-landing a[data-gallery]:hover:before{-webkit-transition-delay:.05s;transition-delay:.05s;transform:scale(1, 1);opacity:1}.pf-landing a[data-gallery] .pf-landing-image-preview{border-width:1px;border-style:solid;border-color:#1d1d1d;display:inline-block;will-change:all;-webkit-filter:brightness(100%);filter:brightness(100%);-webkit-transition:all 0.2s ease-out;transition:all 0.2s ease-out}.pf-landing a[data-gallery] .pf-landing-image-preview.pf-landing-image-preview-small{height:160px}.pf-landing a[data-gallery] .pf-landing-image-preview.pf-landing-image-preview-medium{height:256px}#pf-landing-top{height:355px;border-bottom:1px solid #313335;position:relative}#pf-landing-top:before{content:'';width:100%;height:100%;position:absolute;background:url("../../img/pf-bg.jpg") #05050a;background-repeat:no-repeat;background-position:0 0;-webkit-filter:brightness(.9);filter:brightness(.9)}#pf-landing-top #pf-logo-container{-moz-transform:scale3d(0.8, 0.8, 1);-ms-transform:scale3d(0.8, 0.8, 1);-webkit-transform:scale3d(0.8, 0.8, 1);transform:scale3d(0.8, 0.8, 1)}#pf-landing-top #pf-header-container{position:absolute;width:100%;background-position:center center}#pf-landing-top #pf-header-container #pf-header-canvas{position:absolute;visibility:hidden;top:0;left:0}#pf-landing-top #pf-header-container #pf-logo-container{z-index:110}#pf-landing-top #pf-header-container #pf-header-preview-container{position:absolute;left:400px;width:590px;height:350px;top:37px}#pf-landing-top #pf-header-container #pf-header-preview-container .pf-header-preview-element{position:relative;margin-left:12px;margin-top:12px;height:155px;width:180px;padding:7px;opacity:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background-color:rgba(43,43,43,0.5)}#pf-landing-top #pf-header-container #pf-header-preview-container .pf-header-preview-element:nth-child(n+4){box-shadow:0 4px 10px rgba(0,0,0,0.4)}#pf-landing-top #pf-header-container #pf-header-preview-container .pf-header-preview-element:after{content:'';position:absolute;width:calc(100% - 14px);height:calc(100% - 14px);-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background-repeat:no-repeat;background-position:50% 50%;background-color:rgba(29,29,29,0.75)}#pf-landing-top .container{position:relative;margin-top:10px}#pf-header-preview-intel:after{background-image:url("../../img/landing/intel.png")}#pf-header-preview-map:after{background-image:url("../../img/landing/map.png")}#pf-header-preview-scope:after{background-image:url("../../img/landing/scope.png")}#pf-header-preview-signature:after{background-image:url("../../img/landing/signature.png")}#pf-header-preview-data:after{background-image:url("../../img/landing/data.png")}#pf-header-preview-gameplay:after{background-image:url("../../img/landing/gameplay.png")}#pf-landing-login{padding-top:40px;padding-bottom:30px}#pf-landing-login .row{margin-bottom:0}#pf-landing-login .pf-character-selection>div:not(.pf-character-row-animate){-webkit-transition:width 0.2s ease,margin 0.2s ease;transition:width 0.2s ease,margin 0.2s ease}#pf-landing-login .pf-dynamic-area{display:inline-block;margin:10px 5px 20px 5px;padding:10px 10px 5px 10px;min-width:155px;min-height:184px;overflow:visible;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;-webkit-box-shadow:0 4px 10px rgba(0,0,0,0.4);box-shadow:0 4px 10px rgba(0,0,0,0.4)}#pf-landing-login .pf-dynamic-area .ribbon-wrapper{z-index:5}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper{opacity:0;width:128px;border:2px solid #63676a;-moz-border-radius:8px;-webkit-border-radius:8px;border-radius:8px;-webkit-transition:border-color 0.2s ease-out,box-shadow 0.2s ease-out;transition:border-color 0.2s ease-out,box-shadow 0.2s ease-out;-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);will-change:border-color, transition;overflow:hidden;cursor:pointer;display:inline-block;background-color:#2b2b2b;box-sizing:content-box}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper:hover{border-color:#4f9e4f}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper:hover .pf-character-name{color:#4f9e4f}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper:hover .pf-character-image{-webkit-filter:grayscale(50%);filter:grayscale(50%)}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper.pf-character-active:after{font-family:"Font Awesome 5 Free";content:"\f111";font-weight:bold;position:absolute;top:5px;left:5px;height:14px;width:14px;color:#5cb85c;font-size:10px}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper .pf-character-select-image{overflow:hidden;width:128px;height:128px;position:relative}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper .pf-character-select-image .pf-character-info{position:absolute;top:0;left:0;width:0;height:100%;color:#adadad;background:rgba(60,63,65,0.8);overflow:hidden;will-change:width, transition;padding:10px 0}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper .pf-character-select-image .pf-character-info .pf-character-info-text{line-height:25px}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper .pf-character-name{font-size:13px;line-height:30px;border-top:1px solid #313335;color:#adadad;-webkit-transition:color 0.2s ease-out;transition:color 0.2s ease-out}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper .pf-character-image{-webkit-transition:all 0.3s ease-out;transition:all 0.3s ease-out;-webkit-filter:grayscale(0%);filter:grayscale(0%)}#pf-landing-login .pf-sso-login-button{position:relative;display:inline-block;width:270px;height:45px;border:none;margin-bottom:10px;background-color:transparent;background-image:url("../../img/landing/eve_sso_login_buttons_large_black_hover.png");cursor:pointer;box-shadow:0 2px 5px rgba(0,0,0,0.2);-webkit-transition:box-shadow 0.12s ease-out;transition:box-shadow 0.12s ease-out;will-change:box-shadow}#pf-landing-login .pf-sso-login-button:after{content:' ';position:absolute;width:270px;height:45px;left:0;top:0;background-image:url("../../img/landing/eve_sso_login_buttons_large_black.png");-webkit-transition:opacity 0.12s ease-in-out;transition:opacity 0.12s ease-in-out;will-change:opacity}#pf-landing-login .pf-sso-login-button:hover{box-shadow:0 4px 5px rgba(0,0,0,0.2)}#pf-landing-login .pf-sso-login-button:hover:after{opacity:0}#pf-landing-login .pf-sso-login-button.disabled{pointer-events:auto}#pf-landing-login #pf-notification-panel{display:none}#pf-header-map{position:relative;margin:0 auto;height:380px;width:600px;pointer-events:none}#pf-header-map .pf-header-svg-layer{position:absolute;top:0;left:0;right:0;bottom:0}#pf-header-map #pf-header-systems{z-index:100}#pf-header-map #pf-header-connectors{z-index:90}#pf-header-map #pf-header-connections{z-index:80}#pf-header-map #pf-header-background{z-index:70}#pf-header-map #pf-header-background .pf-header-system{display:none}#pf-header-map-bg{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none}#pf-header-map-bg img{pointer-events:none}#pf-header-map-bg #pf-map-bg-image{opacity:0;position:absolute;bottom:0;right:0;width:100%;height:100%}#pf-header-map-bg #pf-map-neocom{opacity:0;height:665px;width:21px}#pf-header-map-bg #pf-map-browser{opacity:0;position:absolute;top:110px;left:21px;height:560px;width:515px}#pf-landing-gallery-carousel{background-image:url("../../img/pf-header-bg.jpg")}#pf-landing-gallery-carousel .slide-content{border-radius:5px;pointer-events:none}#pf-landing-gallery-carousel h3{width:100%;text-align:left}.pf-landing-pricing-panel{margin-top:20px}.pricing-big{position:relative;-webkit-box-shadow:0 4px 10px rgba(0,0,0,0.4);box-shadow:0 4px 10px rgba(0,0,0,0.4)}.pricing-big .panel-heading{border-color:#3c3f41}.pricing-big .the-price{padding:1px 0;background:#2d3031;text-align:center}.pricing-big .the-price .subscript{font-size:12px;color:#63676a}.pricing-big .price-features{background:#3c3f41;color:#adadad;padding:20px 15px;line-height:22px}.pricing-big .price-features:not(.price-features-fluid){min-height:205px}.pricing-big .price-features .list-unstyled.text-left li,.pricing-big .price-features .text-left.list-inline li{text-indent:-1em;padding-left:1.5em}.pricing-big .price-features .list-unstyled.text-left li .fa,.pricing-big .price-features .text-left.list-inline li .fa{text-indent:0}.pricing-big table tr td{line-height:1}#pf-landing-admin .pf-landing-admin-login{margin-bottom:0}#pf-landing-about .pf-landing-about-me{width:256px;height:256px;border:none;-webkit-box-shadow:0 4px 10px rgba(0,0,0,0.4);box-shadow:0 4px 10px rgba(0,0,0,0.4)}.pf-landing-footer{padding:30px 0;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;background-color:#171717}.pf-landing-footer .row{margin-bottom:0 !important}.pf-landing-footer .pf-social-networks>li{display:inline-block;line-height:1}.pf-landing-footer .pf-social-networks>li a{display:inline-block;background:rgba(99,103,106,0.5);line-height:24px;text-align:center;font-size:14px;margin-right:3px;padding:6px 6px 2px 6px;width:36px}.pf-body[data-script='admin'] .navbar-brand:hover{color:#777}.pf-body[data-script='admin'] .panel{text-align:initial}.pf-body[data-script='admin'] .panel h3 img{position:absolute;right:0;top:0;margin:4px 14px 0 0;border-radius:30%}.pf-body[data-script='admin'] .form-horizontal .panel{color:#adadad}#pf-static-logo-svg{opacity:0;position:absolute;z-index:105;overflow:visible}#pf-static-logo-svg path{will-change:fill, opacity, transform, translateZ, translateX, translateY;pointer-events:all;-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}.logo-ploygon-top-right{fill:#477372;fill-rule:evenodd;stroke:#477372;stroke-width:0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1}.logo-ploygon-bottom-left{fill:#5cb85c;fill-rule:evenodd;stroke:#5cb85c;stroke-width:0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1}.logo-ploygon-bottom-right{fill:#375959;fill-rule:evenodd;stroke:#375959;stroke-width:0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1}.logo-ploygon-top-left{fill:#63676a;fill-opacity:1;fill-rule:evenodd;stroke:#63676a;stroke-width:0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1}@-webkit-keyframes bounce{0%, 20%, 50%, 80%, 100%{-webkit-transform:translateY(0)}40%{-webkit-transform:translateY(-8px)}60%{-webkit-transform:translateY(-4px)}}@keyframes bounce{0%, 20%, 50%, 80%, 100%{transform:translateY(0)}40%{transform:translateY(-8px)}60%{transform:translateY(-4px)}}#pf-map-tab-element{max-width:2535px;margin:0 auto}.pf-map-tab-content .pf-map-wrapper{position:relative;resize:vertical;width:100%;height:555px;max-width:2535px;max-height:1000px;min-height:250px;overflow:auto;padding:5px;background:rgba(43,43,43,0.93);box-shadow:inset -3px 3px 10px 0 rgba(0,0,0,0.3);will-change:width, height;border-bottom-right-radius:5px;border-bottom-left-radius:5px;border-width:1px;border-style:solid;border-color:#313335}.pf-map-tab-content .pf-map-wrapper:before{content:'';position:absolute;bottom:0;right:0;border-style:solid;border-width:14px 14px 0 0;border-color:transparent #313335 transparent transparent;cursor:nwse-resize}.pf-map-tab-content .pf-map-wrapper:focus,.pf-map-tab-content .pf-map-wrapper:hover{border:1px solid #3c3f41}.pf-map-tab-content .pf-map-wrapper:focus:before,.pf-map-tab-content .pf-map-wrapper:hover:before{border-color:transparent #3c3f41 transparent transparent}.pf-map-overlay{position:absolute;display:none;z-index:10000;right:26px;background:rgba(0,0,0,0.25);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.pf-map-overlay.pf-map-overlay-timer{bottom:23px;width:36px;height:36px}.pf-map-overlay.pf-map-overlay-info{top:8px;height:36px;min-height:36px;min-width:36px;padding:3px 3px 3px 8px;line-height:26px}.pf-map-overlay.pf-map-overlay-info i{margin:0;margin-top:5px;width:0;height:26px;opacity:0;color:#63676a;transform:scale(0);transform-origin:50% 50% 0px;-webkit-transition:color 0.18s ease-in-out;transition:color 0.18s ease-in-out;cursor:help;will-change:all}.pf-map-overlay.pf-map-overlay-info i.fas,.pf-map-overlay.pf-map-overlay-info .pf-landing .pf-landing-list li>i,.pf-landing .pf-landing-list .pf-map-overlay.pf-map-overlay-info li>i,.pf-map-overlay.pf-map-overlay-info i.far{font-size:20px}.pf-map-overlay.pf-map-overlay-info i.glyphicon{margin-top:1px;font-size:22px;padding-left:3px}.pf-map-overlay.pf-map-overlay-info i.active,.pf-map-overlay.pf-map-overlay-info i:hover{color:#c2760c}.pf-map-overlay.pf-map-overlay-local{top:54px;min-height:80px;width:32px;display:block;will-change:width}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content{margin-right:36px;padding:5px 0 5px 5px;overflow:hidden}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .pf-map-overlay-headline{font-size:12px;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;white-space:nowrap}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .pf-map-overlay-headline .badge{margin-left:5px}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .pf-map-overlay-headline .pf-system-sec{cursor:default}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .pf-local-table{font-size:10px}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .pf-local-table td{white-space:nowrap}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .dataTables_paginate,.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .dataTables_empty{white-space:nowrap}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .pf-map-overlay-toolbar .pf-map-overlay-toolbar-icon{vertical-align:0;margin-top:14px}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .pf-map-overlay-toolbar .pf-map-overlay-toolbar-checkbox{display:inline-block;margin-bottom:0}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-main{position:absolute;top:0;right:0;height:100%;padding:3px;width:32px;cursor:pointer;text-align:center;border-left:1px solid #2b2b2b}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-main .pf-map-overlay-local-trigger{margin-bottom:10px}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-main .pf-map-overlay-local-trigger:hover,.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-main .pf-map-overlay-local-trigger.right{color:#c2760c}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-main i{font-size:12px}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-jumps{position:absolute;bottom:5px;width:calc(100% - 6px)}.pf-map-overlay.pf-map-overlay-local .badge{font-family:Arial, sans-serif;background-color:#2b2b2b}.pf-grid-small:before{content:' ';display:block;position:absolute;left:0;top:0;width:100%;height:100%;opacity:0.6;background:url('data:image/png;base64,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') !important}.pf-map{width:2500px;height:1500px;position:relative;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif}.pf-map .jsplumb-overlay{opacity:1;pointer-events:none;will-change:opacity;-webkit-transition:opacity 0.18s ease-out;transition:opacity 0.18s ease-out}.pf-map .jsplumb-hover.jsplumb-overlay{opacity:0 !important}.pf-map .jsplumb-hover:not(.jsplumb-overlay){-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-delay:.5s;animation-delay:.5s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-timing-function:linear;animation-timing-function:linear;animation-iteration-count:infinite;-webkit-animation-iteration-count:infinite;-webkit-animation-name:bounce;animation-name:bounce}.pf-map .jsplumb-target-hover,.pf-map .jsplumb-source-hover{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-delay:.5s;animation-delay:.5s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-timing-function:linear;animation-timing-function:linear;animation-iteration-count:infinite;-webkit-animation-iteration-count:infinite;-webkit-animation-name:bounce;animation-name:bounce;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.3);box-shadow:0 6px 12px rgba(0,0,0,0.3)}.pf-map .pf-system{position:absolute;min-width:60px;height:auto;overflow:hidden;background-color:#313335;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;z-index:100;will-change:top, left, opacity;border-width:2px;border-style:solid;border-color:#63676a;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-webkit-transition:border-color 0.2s ease-out,box-shadow 0.12s ease-out,opacity 0.12s ease-out;transition:border-color 0.2s ease-out,box-shadow 0.12s ease-out,opacity 0.12s ease-out;-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}.pf-map .pf-system:hover{-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.3);box-shadow:0 6px 12px rgba(0,0,0,0.3);-moz-transform:translate3d(0, -1px, 0) !important;-ms-transform:translate3d(0, -1px, 0) !important;-webkit-transform:translate3d(0, -1px, 0) !important;transform:translate3d(0, -1px, 0) !important}.pf-map .pf-system:hover:not(.jsPlumb_dragged){z-index:1040 !important}.pf-map .pf-system .pf-system-head{padding:0 3px 0 3px;cursor:pointer;font-family:Arial, sans-serif;font-weight:bold;white-space:nowrap}.pf-map .pf-system .pf-system-head .pf-system-head-name{border:none;display:inline-block;min-width:50px;color:#adadad;margin-right:2px}.pf-map .pf-system .pf-system-head .pf-system-head-counter{display:inline-block;text-align:right;min-width:8px;margin-right:1px;color:#5cb85c;cursor:help}.pf-map .pf-system .pf-system-head .pf-system-head-counter:empty{display:none}.pf-map .pf-system .pf-system-head .pf-system-effect{font-size:11px}.pf-map .pf-system .pf-system-head .fa-lock{font-size:11px;display:none}.pf-map .pf-system .pf-system-head .pf-system-head-expand{margin-left:2px;color:#63676a;width:10px;display:none}.pf-map .pf-system .pf-system-head .editable-empty{font-style:normal}.pf-map .pf-system .pf-system-head-info{display:flex;color:#7c8184;font-size:10px;line-height:10px;padding-right:1px;margin-bottom:2px}.pf-map .pf-system .pf-system-head-info [class^="pf-system-sec-"]{cursor:help}.pf-map .pf-system .pf-system-head-info-left{flex:1}.pf-map .pf-system .pf-system-head-info-right{flex:1;text-align:right}.pf-map .pf-system .pf-system-body{height:0px;width:100%;overflow:hidden;cursor:-moz-grab;cursor:-webkit-grab;cursor:grab;padding:0 4px;white-space:nowrap;display:none;will-change:width;border-top-width:1px;border-top-style:dashed;border-top-color:#63676a}.pf-map .pf-system .pf-system-body .pf-system-body-item{position:relative;color:#7c8184;font-size:10px;line-height:16px;height:16px}.pf-map .pf-system .pf-system-body .pf-system-body-item .pf-system-body-right{float:right;color:#f0ad4e;width:50px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:none}.pf-map .pf-system .pf-system-body .pf-system-body-item .pf-user-status{font-size:6px;width:10px;vertical-align:middle}.pf-map .pf-system .pf-system-body .pf-system-body-item .pf-system-body-item-name{position:absolute;display:inline-block;width:calc(100% - 10px);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.pf-map .pf-system .tooltip.in{opacity:1}.pf-map .pf-system .tooltip .tooltip-inner{color:#313335;background-color:#adadad;padding:3px 3px}.pf-map .pf-system-active:not(.pf-map-endpoint-source):not(.pf-map-endpoint-target){-webkit-box-shadow:#ffb 0px 0px 8px 0px;box-shadow:#ffb 0px 0px 8px 0px}.pf-map .pf-system-selected:not(.pf-map-endpoint-source):not(.pf-map-endpoint-target),.pf-map .jsPlumb_dragged:not(.pf-map-endpoint-source):not(.pf-map-endpoint-target){-webkit-box-shadow:#58100d 0px 0px 8px 0px;box-shadow:#58100d 0px 0px 8px 0px;background-color:#58100d}.pf-map .pf-system-selected:not(.pf-map-endpoint-source):not(.pf-map-endpoint-target) .pf-system-head,.pf-map .jsPlumb_dragged:not(.pf-map-endpoint-source):not(.pf-map-endpoint-target) .pf-system-head,.pf-map .pf-system-selected:not(.pf-map-endpoint-source):not(.pf-map-endpoint-target) .pf-system-body,.pf-map .jsPlumb_dragged:not(.pf-map-endpoint-source):not(.pf-map-endpoint-target) .pf-system-body{background-color:#58100d}.pf-map .pf-system-locked .pf-system-sec{cursor:default !important}.pf-map .pf-system-locked .pf-system-body{cursor:default !important}.pf-map .pf-system-locked .fa-lock{color:#63676a !important;display:inline-block !important}.pf-map .pf-system-debug{position:absolute;color:#fff;font-size:10px;line-height:22px;text-align:center;pointer-events:none;z-index:500}.pf-map .pf-map-endpoint-source,.pf-map .pf-map-endpoint-target{z-index:90}.pf-map .pf-map-endpoint-source svg,.pf-map .pf-map-endpoint-target svg{overflow:visible}.pf-map .pf-map-endpoint-source svg circle,.pf-map .pf-map-endpoint-target svg circle{-webkit-transition:stroke 0.18s ease-out,fill 0.18s ease-out;transition:stroke 0.18s ease-out,fill 0.18s ease-out}.pf-map .pf-map-endpoint-source svg *,.pf-map .pf-map-endpoint-target svg *{stroke:#63676a;stroke-width:2;fill:#3c3f41;cursor:pointer}.pf-map .pf-map-endpoint-source:hover circle,.pf-map .pf-map-endpoint-target:hover circle{stroke:#e28a0d !important}.pf-map .pf-map-endpoint-source.jsplumb-hover,.pf-map .pf-map-endpoint-target.jsplumb-hover{z-index:95}.pf-map .pf-map-endpoint-source.jsplumb-dragging circle,.pf-map .pf-map-endpoint-target.jsplumb-dragging circle{stroke:#e28a0d}.pf-map .jsplumb-endpoint-drop-allowed circle{stroke:#5cb85c !important;fill:#5cb85c !important}.pf-map .jsplumb-endpoint-drop-forbidden circle{stroke:#a52521 !important;fill:#a52521 !important}.pf-map svg.jsplumb-connector{cursor:pointer;stroke-linecap:round;-webkit-transition:stroke 0.18s ease-out;transition:stroke 0.18s ease-out;will-change:all}.pf-map svg.jsplumb-connector path{-webkit-transition:stroke 0.18s ease-out;transition:stroke 0.18s ease-out}.pf-map svg.jsplumb-connector path:nth-child(2){stroke:#3c3f41}.pf-map svg.jsplumb-connector path:first-child{stroke:#63676a}.pf-map svg.jsplumb-connector.jsplumb-hover{z-index:80;filter:drop-shadow(-3px 3px 4px rgba(0,0,0,0.3))}.pf-map svg.jsplumb-connector.jsplumb-hover:not(.pf-map-connection-jumpbridge):not(.pf-map-connection-abyssal) path:first-child{stroke:#eaeaea}.pf-map svg.jsplumb-connector.jsplumb-hover.pf-map-connection-jumpbridge path:nth-child(2),.pf-map svg.jsplumb-connector.jsplumb-hover.pf-map-connection-abyssal path:nth-child(2){stroke:#eaeaea}.pf-map svg.jsplumb-connector.jsplumb-dragging{-webkit-transition:opacity 0.18s ease-out;transition:opacity 0.18s ease-out;opacity:0.4;z-index:80}.pf-map svg.pf-map-connection-abyssal{z-index:40}.pf-map svg.pf-map-connection-abyssal path:first-child{stroke:rgba(255,255,255,0)}.pf-map svg.pf-map-connection-abyssal path:nth-child(2){stroke:#5a225a}.pf-map svg.pf-map-connection-abyssal:hover path:first-child{stroke:rgba(255,255,255,0)}.pf-map svg.pf-map-connection-abyssal:hover path:nth-child(2){stroke:#eaeaea}.pf-map svg.pf-map-connection-jumpbridge{z-index:50}.pf-map svg.pf-map-connection-jumpbridge path:first-child{stroke:rgba(255,255,255,0)}.pf-map svg.pf-map-connection-jumpbridge path:nth-child(2){stroke:#568a89}.pf-map svg.pf-map-connection-jumpbridge:hover path:first-child{stroke:rgba(255,255,255,0)}.pf-map svg.pf-map-connection-jumpbridge:hover path:nth-child(2){stroke:#eaeaea}.pf-map svg.pf-map-connection-stargate{z-index:60}.pf-map svg.pf-map-connection-stargate path:first-child{stroke:#63676a}.pf-map svg.pf-map-connection-stargate path:nth-child(2){stroke:#313966}.pf-map svg.pf-map-connection-stargate:hover path:first-child{stroke:#eaeaea}.pf-map svg.pf-map-connection-wh-fresh,.pf-map svg.pf-map-connection-wh-reduced,.pf-map svg.pf-map-connection-wh-critical,.pf-map svg.pf-map-connection-wh-eol{z-index:70}.pf-map svg.pf-map-connection-wh-eol path:first-child{stroke:#d747d6}.pf-map svg.pf-map-connection-wh-eol:hover path:first-child{stroke:#eaeaea}.pf-map svg.pf-map-connection-wh-reduced path:nth-child(2){stroke:#e28a0d}.pf-map svg.pf-map-connection-wh-critical path:nth-child(2){stroke:#a52521}.pf-map svg.pf-map-connection-active{filter:drop-shadow(0px 0px 3px #ffb)}.pf-map .pf-map-connection-overlay{padding:1px 4px;font-size:10px;z-index:1020;background-color:#3c3f41;color:#adadad;-moz-border-radius:6px;-webkit-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.4);box-shadow:0 6px 12px rgba(0,0,0,0.4)}.pf-map .frig{background-color:#f0ad4e;color:#1d1d1d}.pf-map .mass{background-color:#a52521;color:#eaeaea}.pf-map .eol{background-color:#3c3f41;color:#d747d6}.pf-map .pf-map-connection-arrow-overlay{stroke:#313335;fill:#5cb85c}.pf-map .pf-map-connection-diamond-overlay{stroke:#313335;fill:#d9534f;animation-name:pfPulseDanger;animation-duration:4s;animation-iteration-count:infinite}.pf-map .pf-map-connection-small-overlay{filter:blur(0px);-webkit-font-smoothing:antialiased;font-family:Arial, sans-serif;padding:2px;font-size:9.5px;line-height:100%;z-index:1020;background-color:#3c3f41;color:#adadad;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-webkit-box-shadow:0 3px 6px rgba(0,0,0,0.3);box-shadow:0 3px 6px rgba(0,0,0,0.3)}.ui-dialog-content label,.ui-dialog-content .editable-input .editable-checklist>div>label>span,.editable-input .ui-dialog-content .editable-checklist>div>label>span{min-width:60px}.dropdown-menu{min-width:150px;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;z-index:1050;will-change:opacity, top, left, transform}.dropdown-menu a{cursor:pointer}.dropdown-menu i{width:20px;pointer-events:none}.dropdown-menu .dropdown-menu{border-top-left-radius:0;border-bottom-left-radius:0;clip-path:inset(-12px -12px -12px 0px)}.dropdown-menu[role]>li:not(.disabled){position:relative}.dropdown-menu[role]>li:not(.disabled):before{content:'';position:absolute;background-color:#5cb85c;opacity:0;will-change:opacity,left;-webkit-transition:left 0.15s ease-out,opacity 0.15s ease-out;transition:left 0.15s ease-out,opacity 0.15s ease-out;width:2px;height:100%;left:0}.dropdown-menu[role]>li:not(.disabled):hover:before{left:-4px;opacity:1}.dropdown-menu>li.disabled{cursor:not-allowed;pointer-events:none}.dropdown-menu>li>a{padding:3px 8px}.pf-system-tooltip-inner{color:#adadad;padding:2px 4px;min-width:25px;-webkit-transition:color 0.2s ease-out;transition:color 0.2s ease-out}.pf-system-info-module h5{text-transform:capitalize}.pf-system-info-module .pf-system-info-description-area{min-height:124px}.pf-system-info-module .pf-system-info-description-area .editable-container{width:100%}.pf-system-info-module .pf-system-info-description-area .editable-container .editableform{width:100%}.pf-system-info-module .pf-system-info-description-area .editable-container .editableform .form-group{width:100%}.pf-system-info-module .pf-system-info-description-area .editable-container .editableform .form-group .editable-input{width:calc(100% - 75px)}.pf-system-info-module .pf-system-info-description-area .editable-container .editableform .form-group .editable-input textarea{width:100%;max-height:200px;resize:vertical}.pf-signature-table-module .progress-label-right{margin-right:20px;vertical-align:middle;font-size:11px}.pf-signature-table-module .pf-system-progress-scanned{display:inline-block;margin-left:20px;width:calc(100% - 225px)}.pf-signature-table-module .pf-system-progress-scanned .progress{margin-bottom:3px}.pf-signature-table-module .pf-sig-table-clear-button{will-change:opacity, transform;display:none;color:#a52521}.pf-signature-table-module .pf-sig-table{font-size:10px}.pf-signature-table-module .pf-sig-table .pf-sig-table-edit-desc-text{white-space:normal}.pf-signature-table-module .pf-sig-table .pf-sig-table-edit-desc-text.editable-empty{border-bottom:none}.pf-signature-table-module .pf-sig-table .editable-container.editable-inline{display:inline}.pf-signature-table-module .pf-sig-table .editable-container.editable-inline .control-group{display:inline}.pf-signature-table-module .pf-sig-table .editable-container.editable-inline .control-group .editable-input{display:inline}.pf-signature-table-module .pf-sig-table .pf-editable-description{width:100%;background-color:#2b2b2b;max-height:50px;font-size:11px;line-height:14px;padding:3px 6px}.pf-signature-table-module .pf-sig-table .pf-sig-table-edit-name-input{text-transform:uppercase}.pf-signature-table-module .pf-sig-table-secondary th{pointer-events:none}.pf-signature-table-module .pf-sig-table-secondary th:after{display:none !important}.pf-signature-table-module .pf-sig-table-secondary th.pf-table-counter-cell{color:transparent}.pf-system-graph-module .pf-system-graph{position:relative;width:100%;height:100px}.pf-system-route-module .pf-system-route-table{width:100%;font-size:10px}.pf-system-route-module .pf-system-route-table td{text-transform:capitalize}.pf-system-route-module .pf-system-route-table td>.fas,.pf-system-route-module .pf-system-route-table td>.far{font-size:10px}.pf-system-route-module .pf-system-route-table td .pf-fake-connection{display:none;width:12px;height:3px;cursor:pointer}.pf-system-route-module .pf-system-route-table td .pf-fake-connection[data-disabled]{cursor:initial}.pf-system-route-module .pf-system-route-table td .pf-fake-connection.pf-map-connection-frig{width:32px}.pf-system-route-module .pf-system-route-table td .pf-fake-connection.pf-map-connection-frig:after{left:4px}.pf-system-route-module .pf-system-route-table td .pf-fake-connection.pf-map-connection-preserve-mass{width:26px}.pf-system-route-module .pf-system-route-table td .pf-fake-connection.pf-map-connection-preserve-mass:after{content:"\f071";font-family:"Font Awesome 5 Free";font-style:normal;font-weight:bold;left:4px}.pf-system-route-module .pf-system-route-table td.pf-table-jump-cell .pf-fake-connection{display:inline-block}.pf-system-intel-module .pf-system-structure-table{font-size:10px}.pf-system-killboard-module .pf-system-killboard-graph-kills{width:100%;height:100px;position:relative;margin-bottom:30px}.pf-system-killboard-module .pf-system-killboard-list{padding-bottom:10px;border-bottom:1px solid #2b2b2b}.pf-system-killboard-module .pf-system-killboard-list>li{margin-left:0;overflow:visible;min-height:50px;will-change:transform, opacity, margin-left;-webkit-transition:margin-left 0.12s cubic-bezier(0.3, 0.8, 0.8, 1.7);transition:margin-left 0.12s cubic-bezier(0.3, 0.8, 0.8, 1.7)}.pf-system-killboard-module .pf-system-killboard-list>li h5{white-space:nowrap}.pf-system-killboard-module .pf-system-killboard-list>li h3{width:120px;display:inline-block}.pf-system-killboard-module .pf-system-killboard-list>li .pf-system-killboard-img-char{display:inline;width:32px;margin-top:9px;margin-right:10px;border:1px solid #2b2b2b;will-change:border-color;-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%;-webkit-transition:border-color 0.12s ease-out;transition:border-color 0.12s ease-out}.pf-system-killboard-module .pf-system-killboard-list>li .pf-system-killboard-img-char:hover{border-color:#568a89}.pf-system-killboard-module .pf-system-killboard-list>li .pf-system-killboard-img-corp,.pf-system-killboard-module .pf-system-killboard-list>li .pf-system-killboard-img-ally{display:inline;width:20px;margin-right:10px;border:1px solid #2b2b2b;will-change:border-color;-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%;-webkit-transition:border-color 0.12s ease-out;transition:border-color 0.12s ease-out}.pf-system-killboard-module .pf-system-killboard-list>li .pf-system-killboard-img-corp:hover,.pf-system-killboard-module .pf-system-killboard-list>li .pf-system-killboard-img-ally:hover{border-color:#568a89}.pf-system-killboard-module .pf-system-killboard-list>li .pf-system-killboard-img-ship{width:50px;margin-right:10px;border:1px solid #2b2b2b;will-change:border-color;-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%;-webkit-transition:border-color 0.12s ease-out;transition:border-color 0.12s ease-out}.pf-system-killboard-module .pf-system-killboard-list>li .pf-system-killboard-img-ship:hover{border-color:#568a89}.pf-system-killboard-module .pf-system-killboard-list>li:before{content:"\f054";font-family:"Font Awesome 5 Free";font-weight:bold;position:absolute;z-index:10;left:-18px;top:15px;color:#477372;opacity:0;will-change:opacity, left;-webkit-transition:all 0.12s ease-out;transition:all 0.12s ease-out}.pf-system-killboard-module .pf-system-killboard-list>li:hover{margin-left:10px}.pf-system-killboard-module .pf-system-killboard-list>li:hover:before{opacity:1;left:-15px}.pf-connection-info-module .row{display:flex;align-items:stretch;flex-wrap:wrap}.pf-connection-info-module .pf-dynamic-area{display:flex;justify-content:center;align-items:center;margin-bottom:10px;min-height:inherit}.pf-connection-info-module .pf-connection-info-table{width:100%;font-size:10px}.pf-connection-info-module .pf-connection-info-table td>.fas,.pf-connection-info-module .pf-connection-info-table td>.far{font-size:10px}input,select{background-color:#313335;color:#adadad;border:1px solid #63676a;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif}input:focus,select:focus{border-color:#568a89}input:-webkit-autofill,select:-webkit-autofill{background-color:#313335 !important;-webkit-box-shadow:0 0 0 50px #313335 inset !important;box-shadow:0 0 0 50px #313335 inset !important;-webkit-text-fill-color:#adadad}input:-webkit-autofill:focus,select:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 50px #313335 inset !important;box-shadow:0 0 0 50px #313335 inset !important;-webkit-text-fill-color:#adadad}input::-webkit-file-upload-button,select::-webkit-file-upload-button{background-color:transparent;border:none;color:#63676a;outline:none}input[disabled]::-moz-placeholder,select[disabled]::-moz-placeholder{color:transparent;opacity:1}input[disabled]:-ms-input-placeholder,select[disabled]:-ms-input-placeholder{color:transparent}input[disabled]::-webkit-input-placeholder,select[disabled]::-webkit-input-placeholder{color:transparent}input.pf-select2,select.pf-select2{height:32px;padding:6px 12px}textarea{min-height:32px;max-height:400px;resize:vertical}fieldset[disabled] .form-control{color:#63676a}fieldset[disabled] .form-control::-moz-placeholder{color:transparent;opacity:1}fieldset[disabled] .form-control:-ms-input-placeholder{color:transparent}fieldset[disabled] .form-control::-webkit-input-placeholder{color:transparent}fieldset[disabled] .input-icon-left .fa-stack i:last-child,fieldset[disabled] .input-icon-right .fa-stack i:last-child{color:#3c3f41}#select2-pf-map-dialog-edit-icon-select-container,#select2-pf-map-dialog-new-icon-select-container,#select2-pf-map-dialog-new-icon-select-results,#select2-pf-map-dialog-edit-icon-select-results,.pf-form-icon-field{font-family:"Font Awesome 5 Free";font-weight:bold}#select2-pf-map-dialog-edit-icon-select-container option,#select2-pf-map-dialog-new-icon-select-container option,#select2-pf-map-dialog-new-icon-select-results option,#select2-pf-map-dialog-edit-icon-select-results option,.pf-form-icon-field option{font-family:inherit;font-weight:inherit}.input-icon-left:not(.input-icon-right) .fa-stack:first-child{left:14px}.input-icon-right:not(.input-icon-left) .fa-stack:first-child{right:14px}.input-icon-left.input-icon-right .fa-stack:first-child{left:14px}.input-icon-left.input-icon-right .fa-stack:nth-child(2){right:14px}.input-icon-left .fa-stack,.input-icon-right .fa-stack{position:absolute;top:4px}.input-icon-left .fa-stack i:first-child,.input-icon-right .fa-stack i:first-child{color:#63676a}.input-icon-left .fa-stack i:last-child,.input-icon-right .fa-stack i:last-child{color:#313335}.btn.btn-fake{border:none;text-align:left;cursor:default;opacity:1 !important;color:#63676a !important;background-color:#3c3f41 !important}.btn .btn-progress{position:absolute;display:block;height:100%;background-color:rgba(92,184,92,0.2);max-width:100%;width:0;top:0;left:0;overflow:hidden;line-height:30px;color:#f0ad4e;font-size:10px;text-align:left;-webkit-transition:width 0.1s linear;transition:width 0.1s linear}.pf-form-dropzone{border:2px dashed #2b2b2b;height:100px;background-color:#353739;text-align:center;font-size:20px;line-height:100px;margin:15px 0;color:#2b2b2b;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;-webkit-transition:color 0.18s ease-out,border-color 0.18s ease-out;transition:color 0.18s ease-out,border-color 0.18s ease-out}.pf-form-dropzone:hover{color:#568a89;border-color:#568a89;cursor:-moz-grabbing;cursor:-webkit-grabbing;cursor:grabbing}.toggle.btn:active{box-shadow:none}.pf-form-field-char-count{display:block;margin-top:10px}.pf-icon{display:inline-block}.pf-icon.disabled{opacity:0.5;color:#63676a}.pf-icon-dotlan,.pf-icon-anoik{position:relative;display:inline-block;width:17px;height:17px;opacity:0.8;margin:-5px 0px 0 10px}.pf-icon-dotlan:after{content:'';position:absolute;left:0;right:0;height:17px;width:17px;margin-top:4px;background:url('data:image/png;base64,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') no-repeat}.pf-icon-anoik:after{content:'';position:absolute;left:0;right:0;height:17px;width:17px;margin-top:4px;background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAMAUExURRoQEB4PERwRCx0SDRoTDSQQDiERDhgUExwTEx4UDyQUEiAWEiYVDSoUDigUFC4TEB0YEiIXEyAaFScYFiQZFSkYEi0XEzEWEzQXECAcGyYbGCoaGC4ZGSIdGDQZFyIeHSUeFS0cFiwcGjEbFiEgGiUfGioeFikeGjEeEzQdGTEfGTodFjkdGiwhHS4hGTUfHyojGTEhHiUlHjcgGykkHjMiGy8jIEIfGzkiHT8hGj4hHzsjGjkjIzEmIjMmHjUlIycpJTclHi8oHjwkIC4oI0MlHUIlIj4nIj0nJkglIjspIkEoHzIsJjYrJzsqJzkrI0wnHSwvLDAvKEcpIUYpJjYuJEAsIT8sJUMrJjouKjYwKkwtJUstKj8xKUcvKkYvLz4yLkIxLkQxKjo0LkYyJlMuKEsxKD01Ki85NFExKVAyL0I2MlgxJk00MEU3Ljo6Mkk2Lz85M0k3NFgzMlU2Lk45LVY3ND8+OEo8M007OU87NFQ6NUk9OVM6OkU/OUc/NERBNWI6L01BPUREPVpBQVxCPVNFPElJQVNGQldFQllFPk9IQlJJP0dNRHdDNE9ORlVOSF9MSVdPRGZLRVxPTWNOR1RTRlNTS09VTGBRR2RTRG1STGBYUWZXVFZcUmdYTmxXT15cUXBYXHRYUnBbTmhfVm1iUnpeWF9mXHVgWHFhX3JiWWdmXWxnVXhmV35pYXZtY31saYZqZHJwZINtVGxyZ2Z0aYBuX3tyYIRvZ2x8cYV1cX94bYh2Z4t1bYF5Z3Z8c5J2cop8ZY99bZZ7epN+dYiCdZ97d4WEfJOAfHmLf5CHdYaLgJqHeJaKc4KPfZeLeaCIgJ+KdaGJh5KPhZuVgo2ZiZKYjp2YjaqVja6XiKiag46jkrWYlbOdh6+elbWdlqiij8Gcl7ulj7mllaSslb2noLOsmayxo8ippLqyl6e3qMewq8K8p8i9sbnEttK/uszHtcXTx9vQsN/Nx+zQwd/ZxN/ez/Db1e7hvtjn4fPx5ub17P7w6vv++////59V2N4AAAE/SURBVHjaADIBzf4AElERERpMi3GLi2BZNQ0ODgUAGQkRNEQ9Wlp+T2CwVyEWFg0ABBE0CSBai5yCWXyfiFczDQ0AEjICNmOPs8rYknjDiu5fIyMAJREURFWPlqj+18beqtOKSCkABBAnLUSeb5r71ZnZxa97WCMAAiUlGkSHh8Kl6smv6aebeywAAhE0RD02cSqtYpP0vmJ7WEYAAhEaNi00EyIFa6l6WDVDajkAAgkRLRoUCgw1KpFXWDNHXDoAAggJCREGFE4cLE5XYjNYW0YABAACAgoJBgY2TiFXQ0czWFMAAggAAhEJFBQnKk5iR0NFXHQAAAAAAhEUCicxKjM1VyMsN1QAAgkGChsnKkFBSmJXS0VFUGwAAgIBBgoTGyIxISEjQx4YXEYAAgIAAgkbGxshIzUzDxgrQywDAKFaTfFe+Wg9AAAAAElFTkSuQmCC') no-repeat}.modal-content h2,.panel-body h2{font-family:"Oxygen","Helvetica Neue",Helvetica,Arial,sans-serif;letter-spacing:0;font-size:14px;margin:20px 0;line-height:normal}.modal-content h2.pf-dynamic-area,.modal-content h4.pf-dynamic-area,.panel-body h2.pf-dynamic-area,.panel-body h4.pf-dynamic-area{min-height:0;margin:0 0 10px 0}.modal-content h2.pf-dynamic-area>img,.modal-content h4.pf-dynamic-area>img,.panel-body h2.pf-dynamic-area>img,.panel-body h4.pf-dynamic-area>img{margin:-10px 5px -10px -10px;width:35px}.modal-content h2[data-toggle="collapse"],.modal-content h4[data-toggle="collapse"],.panel-body h2[data-toggle="collapse"],.panel-body h4[data-toggle="collapse"]{cursor:pointer}.modal-content h2[data-toggle="collapse"]:hover:after,.modal-content h4[data-toggle="collapse"]:hover:after,.panel-body h2[data-toggle="collapse"]:hover:after,.panel-body h4[data-toggle="collapse"]:hover:after{color:#e28a0d !important}.modal-content h2[data-toggle="collapse"]:after,.modal-content h4[data-toggle="collapse"]:after,.panel-body h2[data-toggle="collapse"]:after,.panel-body h4[data-toggle="collapse"]:after{content:"\f078";font-family:"Font Awesome 5 Free";font-style:normal;font-weight:bold;font-size:13px;padding-right:10px;position:absolute;color:#e28a0d;top:10px;right:6px}.modal-content h2[data-toggle="collapse"].collapsed:after,.modal-content h4[data-toggle="collapse"].collapsed:after,.panel-body h2[data-toggle="collapse"].collapsed:after,.panel-body h4[data-toggle="collapse"].collapsed:after{top:13px;right:5px;color:#63676a;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.modal-content .dataTables_wrapper+.alert{margin-top:10px}.modal-content .dataTable,.modal-content .table{font-size:10px;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif}.modal-content hr{margin:5px 0 15px 0;border-color:#63676a}.modal-content .well{margin-bottom:0}.modal-content .well .list-inline{margin-bottom:0}.modal-content .pf-wizard-navigation{margin:0}.modal-content .pf-wizard-navigation li:not(:last-child):before{border-top:1px solid #63676a;content:"";display:block;font-size:0;overflow:hidden;position:relative;top:12px;left:71px;right:1px;width:100%}.modal-content .pf-wizard-navigation li.finished:before{-moz-border-image:-moz-linear-gradient(left, #375959,#375959) 1 1%;-moz-border-image:linear-gradient(to right, #375959,#375959) 1 1%;-o-border-image:linear-gradient(to right, #375959,#375959) 1 1%;-webkit-border-image:-webkit-linear-gradient(left, #375959,#375959) 1 1%;-webkit-border-image:linear-gradient(to right, #375959,#375959) 1 1%;border-image:-moz-linear-gradient(left, #375959,#375959) 1 1%;border-image:-webkit-linear-gradient(left, #375959,#375959) 1 1%;border-image:linear-gradient(to right, #375959,#375959) 1 1%;border-bottom:0}.modal-content .pf-wizard-navigation li.active:before{-moz-border-image:-moz-linear-gradient(left, #4f9e4f,#63676a) 1 1%;-moz-border-image:linear-gradient(to right, #4f9e4f,#63676a) 1 1%;-o-border-image:linear-gradient(to right, #4f9e4f,#63676a) 1 1%;-webkit-border-image:-webkit-linear-gradient(left, #4f9e4f,#63676a) 1 1%;-webkit-border-image:linear-gradient(to right, #4f9e4f,#63676a) 1 1%;border-image:-moz-linear-gradient(left, #4f9e4f,#63676a) 1 1%;border-image:-webkit-linear-gradient(left, #4f9e4f,#63676a) 1 1%;border-image:linear-gradient(to right, #4f9e4f,#63676a) 1 1%;border-bottom:0}.modal-content .pf-wizard-navigation li>h6{color:#63676a;font-size:11px;margin:5px}.modal-content .pf-wizard-navigation li a:hover+h6{color:#adadad}.modal-content .pf-wizard-navigation li.active a:not(.btn-danger)+h6{color:#adadad}#pf-settings-dialog .form-group .btn-sm,#pf-settings-dialog .form-group .btn-group-sm>.btn{padding:4px 7px 3px}#pf-settings-dialog #pf-dialog-captcha-wrapper{margin:0;padding:3px 0}#pf-map-dialog #pf-map-dialog-character-select,#pf-map-dialog #pf-map-dialog-corporation-select,#pf-map-dialog #pf-map-dialog-alliance-select{width:535px}#pf-route-dialog #pf-route-dialog-map-select{width:300px !important}#pf-shortcuts-dialog td kbd:last-of-type+i{display:none}#pf-manual-scrollspy{position:relative;height:700px;overflow:auto}.pf-system-dialog-select{width:300px !important}#pf-task-dialog .pf-task-dialog-status{min-height:inherit}#pf-map-info-logs{margin-bottom:10px}#pf-stats-dialog .pf-dynamic-area{margin-bottom:10px}#pf-structure-dialog #pf-structure-dialog-corporation-select,#pf-structure-dialog #pf-structure-dialog-type-select{width:267px !important}.pf-jump-info-dialog blockquote{margin-top:15px;margin-bottom:5px}.pf-changelog-dialog .pf-dynamic-message-container{margin-bottom:20px}.pf-credits-dialog .pf-credits-logo-background{overflow:visible;background:url("../../img/logo_bg.png");background-size:cover;padding:20px;margin-bottom:20px}.pf-credits-dialog #pf-logo-container{width:355px;height:366px;margin:0 auto}.pf-credits-dialog .pf-dynamic-area{min-height:50px}.pf-credits-dialog .dl-horizontal{display:inline-block;width:48%}.pf-credits-dialog .btn{padding:0}.pf-credits-dialog blockquote{font-size:14px}.pf-log-graph{height:100px;width:100%}.timeline{list-style:none;position:relative}.timeline:before{top:0;bottom:0;position:absolute;content:" ";width:1px;left:50%;margin-top:20px;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzRmOWU0ZiIvPjxzdG9wIG9mZnNldD0iMjUlIiBzdG9wLWNvbG9yPSIjNjM2NzZhIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0idXJsKCNncmFkKSIgLz48L3N2Zz4g');background-size:100%;background-image:-webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #4f9e4f),color-stop(25%, #63676a));background-image:-moz-linear-gradient(top, #4f9e4f,#63676a 25%);background-image:-webkit-linear-gradient(top, #4f9e4f,#63676a 25%);background-image:linear-gradient(to bottom, #4f9e4f,#63676a 25%)}.timeline>li{margin-bottom:20px;position:relative}.timeline>li.timeline-first .timeline-title{color:#4f9e4f}.timeline>li.timeline-first .timeline-badge{background-color:#4f9e4f}.timeline>li:before,.timeline>li:after{content:" ";display:table}.timeline>li:after{clear:both}.timeline>li:before,.timeline>li:after{content:" ";display:table}.timeline>li:after{clear:both}.timeline>li>.timeline-panel{width:47%;float:left;border:1px solid #313335;padding:8px;position:relative;background-color:#313335;font-size:11px;-webkit-box-shadow:0 4px 10px rgba(0,0,0,0.4);box-shadow:0 4px 10px rgba(0,0,0,0.4);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.timeline>li>.timeline-panel:before{content:" ";position:absolute;top:10px;right:-8px;display:inline-block;border-top:7px solid transparent;border-left:7px solid #63676a;border-right:0 solid #63676a;border-bottom:7px solid transparent}.timeline>li>.timeline-panel:after{content:" ";position:absolute;top:10px;right:-8px;display:inline-block;border-top:7px solid transparent;border-left:7px solid #63676a;border-right:0 solid #63676a;border-bottom:7px solid transparent}.timeline>li>.timeline-badge{color:#2b2b2b;width:22px;height:22px;line-height:22px;text-align:center;position:absolute;top:7px;left:50%;margin-left:-11px;background-color:#63676a;z-index:100;-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%}.timeline>li>.timeline-badge>i{vertical-align:middle}.timeline>li.timeline-inverted>.timeline-panel{float:right}.timeline>li.timeline-inverted>.timeline-panel:before{border-left-width:0;border-right-width:7px;left:-8px;right:auto}.timeline>li.timeline-inverted>.timeline-panel:after{border-left-width:0;border-right-width:8px;left:-9px;right:auto}.timeline-title{margin-top:0;color:inherit}.timeline-body>hr{display:none}.timeline-body>hr ~ *{display:none}.timeline-body>p,.timeline-body>ul{margin-bottom:0;list-style-type:disc;margin-left:15px}.timeline-body>p+p{margin-top:5px}@media (max-width: 1200px){ul.timeline:before{left:40px}ul.timeline>li>.timeline-panel{width:calc(100% - 62px)}ul.timeline>li>.timeline-badge{left:29px;margin-left:0;top:6px}ul.timeline>li>.timeline-panel{float:right}ul.timeline>li>.timeline-panel:before{border-left-width:0;border-right-width:7px;left:-8px;right:auto}ul.timeline>li>.timeline-panel:after{border-left-width:0;border-right-width:7px;left:-8px;right:auto}}.popover{z-index:1060;max-width:600px}.popover .arrow{pointer-events:none}.popover .popover-title{text-transform:capitalize;font-family:"Arial","Oxygen Bold","Helvetica Neue",Helvetica,sans-serif;font-weight:bold}.popover .popover-content{font-family:"Arial","Oxygen Bold","Helvetica Neue",Helvetica,sans-serif}.popover img{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.popover h4{color:#adadad}.popover table{color:#adadad;line-height:16px;font-size:11px}.popover table td{padding:0 5px;vertical-align:middle !important}.popover .select2-container{margin-top:-1px;margin-left:-1px}.pf-popover-small .popover-title{padding:3px 6px}.pf-popover-small .popover-content{padding:6px 1px 3px}.pf-popover{display:initial}.pf-popover .popover-content{padding:0}.pf-popover h6{white-space:nowrap;margin-right:50px}.pf-popover h6:before,.pf-popover h6:after{content:" ";display:table}.pf-popover h6:after{clear:both}.pf-popover .well{margin-top:7px;margin-bottom:10px}.pf-popover .list-group{margin:0}.pf-popover .list-group .list-group-item{color:#313335}.pf-popover .list-group .list-group-item:hover{color:#1d1d1d}.pf-popover .list-group .list-group-item.disabled{background-color:#3c3f41;color:#63676a;cursor:not-allowed}.pf-popover .list-group .list-group-item img{width:30px;margin:-8px 10px -6px -8px;border-radius:0}.pf-popover .list-group .list-group-item i{margin-right:20px}.ribbon-wrapper{width:72px;height:88px;overflow:hidden;position:absolute;top:-3px;right:-3px;pointer-events:none}.ribbon{font:bold 12px "Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;color:#2b2b2b;text-align:center;text-shadow:rgba(255,255,255,0.2) 0px 1px 0px;position:relative;padding:3px 0;left:-4px;top:16px;width:99px;-webkit-box-shadow:2px 3px 3px rgba(0,0,0,0.2);box-shadow:2px 3px 3px rgba(0,0,0,0.2);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-webkit-transform:rotate(45deg);transform:rotate(45deg)}.ribbon:before,.ribbon:after{content:"";border-left:3px solid transparent;border-right:3px solid transparent;position:absolute;bottom:-3px}.ribbon.ribbon-default{color:#adadad;background-color:#353739;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzJkMzAzMSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzJhMmIyZCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #2d3031),color-stop(100%, #2a2b2d));background-image:-moz-linear-gradient(top, #2d3031,#2a2b2d);background-image:-webkit-linear-gradient(top, #2d3031,#2a2b2d);background-image:linear-gradient(to bottom, #2d3031,#2a2b2d)}.ribbon.ribbon-default:before,.ribbon.ribbon-default:after{border-top:3px solid #000}.ribbon.ribbon-green{background-color:#5cb85c;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzUxYjM1MSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzRhOTQ0YSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #51b351),color-stop(100%, #4a944a));background-image:-moz-linear-gradient(top, #51b351,#4a944a);background-image:-webkit-linear-gradient(top, #51b351,#4a944a);background-image:linear-gradient(to bottom, #51b351,#4a944a)}.ribbon.ribbon-green:before,.ribbon.ribbon-green:after{border-top:3px solid #285028}.ribbon.ribbon-orange{background-color:#e28a0d;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2Q0ODEwYyIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2I0NmQwYiIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #d4810c),color-stop(100%, #b46d0b));background-image:-moz-linear-gradient(top, #d4810c,#b46d0b);background-image:-webkit-linear-gradient(top, #d4810c,#b46d0b);background-image:linear-gradient(to bottom, #d4810c,#b46d0b)}.ribbon.ribbon-orange:before,.ribbon.ribbon-orange:after{border-top:3px solid #6c4107}.ribbon.ribbon-red{background-color:#d9534f;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2M5MzAyYyIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2E4MjgyNCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #c9302c),color-stop(100%, #a82824));background-image:-moz-linear-gradient(top, #c9302c,#a82824);background-image:-webkit-linear-gradient(top, #c9302c,#a82824);background-image:linear-gradient(to bottom, #c9302c,#a82824)}.ribbon.ribbon-red:before,.ribbon.ribbon-red:after{border-top:3px solid #541412}.ribbon.ribbon-blue{background-color:#428bca;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzM3ODRjNSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzJkNWM4NSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #3784c5),color-stop(100%, #2d5c85));background-image:-moz-linear-gradient(top, #3784c5,#2d5c85);background-image:-webkit-linear-gradient(top, #3784c5,#2d5c85);background-image:linear-gradient(to bottom, #3784c5,#2d5c85)}.ribbon.ribbon-blue:before,.ribbon.ribbon-blue:after{border-top:3px solid #1a344c}.ribbon:before{left:0}.ribbon:after{right:0}.pf-loading-bars-container{position:relative;z-index:4;margin:0 auto;left:5px;right:19px;width:70px;height:50px;list-style:none}.pf-loading-bars-container .pf-loading-bars-loader{position:absolute;z-index:3;margin:0 auto;left:0;right:0;top:50%;margin-top:-19px;width:56px;height:37px;list-style:none}.pf-loading-bars-container .pf-loading-bars-loader li{background-color:#5cb85c;width:6px;height:6px;float:right;margin-right:3px !important;-webkit-box-shadow:0px 12px 6px rgba(0,0,0,0.2);box-shadow:0px 12px 6px rgba(0,0,0,0.2)}.pf-loading-bars-container .pf-loading-bars-loader li:first-child{-webkit-animation:cssload-loadbars 1.75s cubic-bezier(0.645, 0.045, 0.355, 1) infinite 0s;animation:cssload-loadbars 1.75s cubic-bezier(0.645, 0.045, 0.355, 1) infinite 0s}.pf-loading-bars-container .pf-loading-bars-loader li:nth-child(2){-webkit-animation:cssload-loadbars 1.75s ease-in-out infinite -0.35s;animation:cssload-loadbars 1.75s ease-in-out infinite -0.35s}.pf-loading-bars-container .pf-loading-bars-loader li:nth-child(3){-webkit-animation:cssload-loadbars 1.75s ease-in-out infinite -0.7s;animation:cssload-loadbars 1.75s ease-in-out infinite -0.7s}.pf-loading-bars-container .pf-loading-bars-loader li:nth-child(4){-webkit-animation:cssload-loadbars 1.75s ease-in-out infinite -1.05s;animation:cssload-loadbars 1.75s ease-in-out infinite -1.05s}.pf-loading-bars-container .pf-loading-bars-loader li:nth-child(5){-webkit-animation:cssload-loadbars 1.75s ease-in-out infinite -1.4s;animation:cssload-loadbars 1.75s ease-in-out infinite -1.4s}.pf-loading-bars-container .pf-loading-bars-loader li:nth-child(6){-webkit-animation:cssload-loadbars 1.75s ease-in-out infinite -1.75s;animation:cssload-loadbars 1.75s ease-in-out infinite -1.75s}@-webkit-keyframes cssload-loadbars{0%{height:6px;margin-top:16px}33%{height:6px;margin-top:16px}66%{height:31px;margin-top:0px}100%{height:6px;margin-top:16px}}@-moz-keyframes cssload-loadbars{0%{height:6px;margin-top:16px}33%{height:6px;margin-top:16px}66%{height:31px;margin-top:0px}100%{height:6px;margin-top:16px}}@-ms-keyframes cssload-loadbars{0%{height:6px;margin-top:16px}33%{height:6px;margin-top:16px}66%{height:31px;margin-top:0px}100%{height:6px;margin-top:16px}}@keyframes cssload-loadbars{0%{height:6px;margin-top:16px}33%{height:6px;margin-top:16px}66%{height:31px;margin-top:0px}100%{height:6px;margin-top:16px}}.pf-landing-sticky-panel{position:fixed;min-width:100px;border-radius:5px;padding:7px;box-shadow:0 4px 10px rgba(0,0,0,0.4);background-color:rgba(43,43,43,0.7)}.pf-landing-sticky-panel h4{margin:5px 0 10px 0}.pf-landing-sticky-panel ul{margin-bottom:0}.pf-landing-sticky-panel ul li{text-transform:lowercase}#pf-landing-server-panel{top:50px;left:10px}#pf-landing-admin-panel{bottom:10px;right:10px}.youtube{background-position:center;background-repeat:no-repeat;position:relative;display:inline-block;overflow:hidden;transition:all 200ms ease-out;cursor:pointer}.youtube .play{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAERklEQVR4nOWbTWhcVRTHb1IJVoxGtNCNdal2JYJReC6GWuO83PM/59yUS3FRFARdFlwYP1CfiojQWt36sRCUurRIdVFXIn41lAoVdRGrG1M01YpKrWjiYmaSl8ybZJL3cd+YA//NLObd3++eO8x79z5jSq5Gw+8kov0AP8vMR5l1BtBZQM4B8ks75wCdZdYZZj5qLZ4hov2Nht9Z9vhKKSIaB/gI4M4w62KeAO6Mte4lYOq20FxrlqqOibhHmeWbvNC9ZfDX1mLae391aN6limO/gwgvAPJbWeAZuSDingdwXTBw7/0IsyaA/Fkh+KqOkD+YNfHej1QKD+y7iVlOhgLvFqFfNJvNGyuBJ+KDAF8MDd0tgS8y64OlgSdJMsysL4cG7SOHkyQZLhTee7+d2R2rAVy/S+Jd7/32ouBHAP4gNNRGQyTHc/84NhqNywZp5rvjjnnvt21aABFeCQ+RLwAf2hQ8s7sv9OCLk6AHNgQvIrvbfzKCD76g/O6cu7lf/iER/aQGgy448pExZmhdegAPhR9sObFWH1gT3lp7DaA/5bkIgJhZPgsNmz02novj+KqeApj1ubwXWe4kdyeznAgNvTpE/HQmvKqOMeuFogTUVQSRno+iaLRLAJF7uIgL9O4ubgL8aWgB7S44mNX+35YpICUiAvS9sBLkq1WzT+NFffl6AuoiApi6NT37h6sWkBIRZGkQ8YtLgyji6e1mBYTqCEBPG2Naz+0BWQgtoGoRgCzEsd9hAN1X5BfnFZASUfrSAFQNsyZ1FJASUVpHiLinDJG8U2cBZYogkrcNs5waBAGdstbeU9zdqpw0gPwwSAI6VUxHyFlDpOcHUUBBIuYNs14aZAE5RVwyzPr3/0EAEY0TyfGNjBWQvwZ +CTSbehfAH29mrID8bET0+0EUkAd8WYDOmqJ3ecsG30yr9wqRfm6Y+a1BEFDEjHfHvWmY9ck6CygHvBVr8Xhtb4ZE5HZA3y8DvBNA1TjnrmXWf+sioMwZX5V/VHXMGGMMoKdDCxCRvRWBdzKzdHEO+EisilbPyopHYqp6S9UCAsz4iojI7hUDAtyXVQgIDd6KnOoaWNkbI6FaPSuZGyMArsi7MZoloB4zviI/Nhr3X95jltwTRQmoIfgisy5ai+me67OI7fE4nrqjrqfK1t0eby0FPRB6oGVlchL3rgnfrq19RKbVBdhV9IOSwJmfmJi4vi/4ThERitwyCxVAFqydshuCX5awhQ9KtmuIWd8IDZED/nXT77rvVVv6sHRKwjYi91poqP7Dr+Y6JJ1VSZIMA3wkPNy6bX+o8Bcm0sXMdwM8Fxo0A3xORPaWBp6uPXsmbxCRD0NDL0dOANhVCXy6iAjMcjbcrMt3RITKwdMVRdFo+y5yvkL4eWZ+zHt/ZVD4dEVRNGotpst+dZZZH8k86lqn2pIvT/eqrNfn2xuyqYPZ8mv7s8pfn/8Pybm4TIjanscAAAAASUVORK5CYII=") no-repeat center center;background-size:64px 64px;position:absolute;height:100%;width:100%;opacity:.8;filter:alpha(opacity=80);transition:all 0.2s ease-out}.youtube .play:hover{opacity:1;filter:alpha(opacity=100)} + * ======================================================================== */.checkbox label .toggle,.editable-input .editable-checklist>div>label label .toggle,.editable-input .editable-checklist>div>label>span .toggle,.checkbox-inline .toggle{margin-left:-20px;margin-right:5px}.toggle{position:relative;overflow:hidden}.toggle input[type="checkbox"]{display:none}.toggle-group{position:absolute;width:200%;top:0;bottom:0;left:0;transition:left 0.18s ease-in-out;-webkit-transition:left 0.18s ease-in-out;-moz-user-select:none;-webkit-user-select:none}.toggle.off .toggle-group{left:-100%}.toggle-on{position:absolute;top:0;bottom:0;left:0;right:50%;margin:0;border:0;border-radius:0}.toggle-off{position:absolute;top:0;bottom:0;left:50%;right:0;margin:0;border:0;border-radius:0}.toggle-handle{position:relative;margin:0 auto;padding-top:0;padding-bottom:0;height:100%;width:0;border-width:0 1px;background:#54585a}.toggle.btn{min-width:59px;min-height:34px}.toggle-on.btn{padding-right:24px}.toggle-off.btn{padding-left:24px}.toggle.btn-lg,.btn-group-lg>.toggle.btn{min-width:79px;min-height:45px}.toggle-on.btn-lg,.btn-group-lg>.toggle-on.btn{padding-right:31px}.toggle-off.btn-lg,.btn-group-lg>.toggle-off.btn{padding-left:31px}.toggle-handle.btn-lg,.btn-group-lg>.toggle-handle.btn{width:40px}.toggle.btn-sm,.btn-group-sm>.toggle.btn{min-width:50px;min-height:28px}.toggle-on.btn-sm,.btn-group-sm>.toggle-on.btn{padding-right:10px;padding-left:0}.toggle-off.btn-sm,.btn-group-sm>.toggle-off.btn{padding-left:10px;padding-right:0}.toggle.btn-xs,.btn-group-xs>.toggle.btn{min-width:35px;min-height:22px}.toggle-on.btn-xs,.btn-group-xs>.toggle-on.btn{padding-right:5px}.toggle-off.btn-xs,.btn-group-xs>.toggle-off.btn{padding-left:5px}.checkbox,.editable-input .editable-checklist>div>label{padding-left:20px}.checkbox label,.editable-input .editable-checklist>div>label label,.editable-input .editable-checklist>div>label>span{display:inline-block;vertical-align:middle;position:relative;padding-left:5px}.checkbox label::before,.editable-input .editable-checklist>div>label label::before,.editable-input .editable-checklist>div>label>span::before{content:"";display:inline-block;position:absolute;width:17px;height:17px;left:0;margin-left:-20px;border:1px solid #63676a;border-radius:3px;background-color:#313335;-webkit-transition:border 0.18s ease,color 0.18s ease,background-color 0.18s ease;transition:border 0.18s ease,color 0.18s ease,background-color 0.18s ease}.checkbox label::after,.editable-input .editable-checklist>div>label label::after,.editable-input .editable-checklist>div>label>span::after{font-family:"Font Awesome 5 Free";content:"\f00c";font-weight:bold;display:inline-block;position:absolute;width:16px;height:16px;left:0;top:0;opacity:0;transform:scale(2) rotateZ(-20deg);transition:all .18s ease-out;will-change:transform, opacity;margin-left:-20px;padding-left:3px;padding-top:1px;font-size:calc(100% - 1px);color:#adadad}.checkbox input[type="checkbox"],.editable-input .editable-checklist>div>label input[type="checkbox"],.checkbox input[type="radio"],.editable-input .editable-checklist>div>label input[type="radio"]{opacity:0;z-index:1;cursor:pointer}.checkbox input[type="checkbox"]:checked+label::after,.editable-input .editable-checklist>div>label input[type="checkbox"]:checked+label::after,.editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.checkbox input[type="radio"]:checked+label::after,.editable-input .editable-checklist>div>label input[type="radio"]:checked+label::after,.editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after{font-family:"Font Awesome 5 Free";content:"\f00c"}.checkbox input[type="checkbox"]:checked+label::after,.editable-input .editable-checklist>div>label input[type="checkbox"]:checked+label::after,.editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.checkbox input[type="radio"]:checked+label::after,.editable-input .editable-checklist>div>label input[type="radio"]:checked+label::after,.editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after{transform:scale(1) rotateZ(0deg);opacity:1}.checkbox input[type="checkbox"]:indeterminate+label::after,.editable-input .editable-checklist>div>label input[type="checkbox"]:indeterminate+label::after,.editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.checkbox input[type="radio"]:indeterminate+label::after,.editable-input .editable-checklist>div>label input[type="radio"]:indeterminate+label::after,.editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after{display:block;content:"";width:10px;height:3px;background-color:#555555;border-radius:2px;margin-left:-16.5px;margin-top:7px}.checkbox input[type="checkbox"]:disabled+label,.editable-input .editable-checklist>div>label input[type="checkbox"]:disabled+label,.editable-input .editable-checklist>div>label>input[type="checkbox"]:disabled+span,.checkbox input[type="radio"]:disabled+label,.editable-input .editable-checklist>div>label input[type="radio"]:disabled+label,.editable-input .editable-checklist>div>label>input[type="radio"]:disabled+span{opacity:0.65}.checkbox input[type="checkbox"]:disabled+label::before,.editable-input .editable-checklist>div>label input[type="checkbox"]:disabled+label::before,.editable-input .editable-checklist>div>label>input[type="checkbox"]:disabled+span::before,.checkbox input[type="radio"]:disabled+label::before,.editable-input .editable-checklist>div>label input[type="radio"]:disabled+label::before,.editable-input .editable-checklist>div>label>input[type="radio"]:disabled+span::before{background-color:#3c3f41;cursor:not-allowed}.checkbox.checkbox-circle label::before,.editable-input .editable-checklist>div>label.checkbox-circle label::before,.checkbox.checkbox-circle .editable-input .editable-checklist>div>label>span::before,.editable-input .checkbox.checkbox-circle .editable-checklist>div>label>span::before,.editable-input .editable-checklist>div>label.checkbox-circle .editable-checklist>div>label>span::before{border-radius:50%}.checkbox.checkbox-inline,.editable-input .editable-checklist>div>label.checkbox-inline{margin-top:0}.checkbox-primary input[type="checkbox"]:checked+label::before,.checkbox-primary .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.editable-input .checkbox-primary .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.checkbox-primary input[type="radio"]:checked+label::before,.checkbox-primary .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .checkbox-primary .editable-checklist>div>label>input[type="radio"]:checked+span::before{background-color:#375959;border-color:#375959}.checkbox-primary input[type="checkbox"]:checked+label::after,.checkbox-primary .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.editable-input .checkbox-primary .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.checkbox-primary input[type="radio"]:checked+label::after,.checkbox-primary .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .checkbox-primary .editable-checklist>div>label>input[type="radio"]:checked+span::after{color:#fff}.checkbox-danger input[type="checkbox"]:checked+label::before,.checkbox-danger .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.editable-input .checkbox-danger .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.checkbox-danger input[type="radio"]:checked+label::before,.checkbox-danger .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .checkbox-danger .editable-checklist>div>label>input[type="radio"]:checked+span::before{background-color:#a52521;border-color:#a52521}.checkbox-danger input[type="checkbox"]:checked+label::after,.checkbox-danger .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.editable-input .checkbox-danger .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.checkbox-danger input[type="radio"]:checked+label::after,.checkbox-danger .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .checkbox-danger .editable-checklist>div>label>input[type="radio"]:checked+span::after{color:#fff}.checkbox-info input[type="checkbox"]:checked+label::before,.checkbox-info .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.editable-input .checkbox-info .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.checkbox-info input[type="radio"]:checked+label::before,.checkbox-info .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .checkbox-info .editable-checklist>div>label>input[type="radio"]:checked+span::before{background-color:#316490;border-color:#316490}.checkbox-info input[type="checkbox"]:checked+label::after,.checkbox-info .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.editable-input .checkbox-info .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.checkbox-info input[type="radio"]:checked+label::after,.checkbox-info .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .checkbox-info .editable-checklist>div>label>input[type="radio"]:checked+span::after{color:#fff}.checkbox-warning input[type="checkbox"]:checked+label::before,.checkbox-warning .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.editable-input .checkbox-warning .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.checkbox-warning input[type="radio"]:checked+label::before,.checkbox-warning .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .checkbox-warning .editable-checklist>div>label>input[type="radio"]:checked+span::before{background-color:#e28a0d;border-color:#e28a0d}.checkbox-warning input[type="checkbox"]:checked+label::after,.checkbox-warning .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.editable-input .checkbox-warning .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.checkbox-warning input[type="radio"]:checked+label::after,.checkbox-warning .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .checkbox-warning .editable-checklist>div>label>input[type="radio"]:checked+span::after{color:#fff}.checkbox-success input[type="checkbox"]:checked+label::before,.checkbox-success .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.editable-input .checkbox-success .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.checkbox-success input[type="radio"]:checked+label::before,.checkbox-success .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .checkbox-success .editable-checklist>div>label>input[type="radio"]:checked+span::before{background-color:#4f9e4f;border-color:#4f9e4f}.checkbox-success input[type="checkbox"]:checked+label::after,.checkbox-success .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.editable-input .checkbox-success .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.checkbox-success input[type="radio"]:checked+label::after,.checkbox-success .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .checkbox-success .editable-checklist>div>label>input[type="radio"]:checked+span::after{color:#fff}.checkbox-primary input[type="checkbox"]:indeterminate+label::before,.checkbox-primary .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.editable-input .checkbox-primary .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.checkbox-primary input[type="radio"]:indeterminate+label::before,.checkbox-primary .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before,.editable-input .checkbox-primary .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before{background-color:#375959;border-color:#375959}.checkbox-primary input[type="checkbox"]:indeterminate+label::after,.checkbox-primary .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.editable-input .checkbox-primary .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.checkbox-primary input[type="radio"]:indeterminate+label::after,.checkbox-primary .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after,.editable-input .checkbox-primary .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after{background-color:#fff}.checkbox-danger input[type="checkbox"]:indeterminate+label::before,.checkbox-danger .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.editable-input .checkbox-danger .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.checkbox-danger input[type="radio"]:indeterminate+label::before,.checkbox-danger .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before,.editable-input .checkbox-danger .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before{background-color:#a52521;border-color:#a52521}.checkbox-danger input[type="checkbox"]:indeterminate+label::after,.checkbox-danger .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.editable-input .checkbox-danger .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.checkbox-danger input[type="radio"]:indeterminate+label::after,.checkbox-danger .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after,.editable-input .checkbox-danger .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after{background-color:#fff}.checkbox-info input[type="checkbox"]:indeterminate+label::before,.checkbox-info .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.editable-input .checkbox-info .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.checkbox-info input[type="radio"]:indeterminate+label::before,.checkbox-info .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before,.editable-input .checkbox-info .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before{background-color:#316490;border-color:#316490}.checkbox-info input[type="checkbox"]:indeterminate+label::after,.checkbox-info .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.editable-input .checkbox-info .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.checkbox-info input[type="radio"]:indeterminate+label::after,.checkbox-info .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after,.editable-input .checkbox-info .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after{background-color:#fff}.checkbox-warning input[type="checkbox"]:indeterminate+label::before,.checkbox-warning .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.editable-input .checkbox-warning .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.checkbox-warning input[type="radio"]:indeterminate+label::before,.checkbox-warning .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before,.editable-input .checkbox-warning .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before{background-color:#e28a0d;border-color:#e28a0d}.checkbox-warning input[type="checkbox"]:indeterminate+label::after,.checkbox-warning .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.editable-input .checkbox-warning .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.checkbox-warning input[type="radio"]:indeterminate+label::after,.checkbox-warning .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after,.editable-input .checkbox-warning .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after{background-color:#fff}.checkbox-success input[type="checkbox"]:indeterminate+label::before,.checkbox-success .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.editable-input .checkbox-success .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.checkbox-success input[type="radio"]:indeterminate+label::before,.checkbox-success .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before,.editable-input .checkbox-success .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before{background-color:#4f9e4f;border-color:#4f9e4f}.checkbox-success input[type="checkbox"]:indeterminate+label::after,.checkbox-success .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.editable-input .checkbox-success .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.checkbox-success input[type="radio"]:indeterminate+label::after,.checkbox-success .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after,.editable-input .checkbox-success .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after{background-color:#fff}.radio{padding-left:20px}.radio label,.radio .editable-input .editable-checklist>div>label>span,.editable-input .radio .editable-checklist>div>label>span{display:inline-block;vertical-align:middle;position:relative;padding-left:5px}.radio label::before,.radio .editable-input .editable-checklist>div>label>span::before,.editable-input .radio .editable-checklist>div>label>span::before{content:"";display:inline-block;position:absolute;width:17px;height:17px;left:0;margin-left:-20px;border:1px solid #63676a;border-radius:50%;background-color:#313335;-webkit-transition:border 0.18s ease,color 0.18s ease;transition:border 0.18s ease,color 0.18s ease}.radio label::after,.radio .editable-input .editable-checklist>div>label>span::after,.editable-input .radio .editable-checklist>div>label>span::after{display:inline-block;position:absolute;content:" ";width:11px;height:11px;left:3px;top:3px;opacity:0;transform:scale(2) rotateZ(-20deg);transition:all .18s ease;will-change:transform, opacity;margin-left:-20px;border-radius:50%;background-color:#adadad;-webkit-transform:scale(0,0);-ms-transform:scale(0,0);transform:scale(0,0);-webkit-transition:-webkit-transform 0.18s cubic-bezier(0.8, -0.33, 0.2, 1.33);-moz-transition:-moz-transform 0.18s cubic-bezier(0.8, -0.33, 0.2, 1.33);-o-transition:-o-transform 0.18s cubic-bezier(0.8, -0.33, 0.2, 1.33);transition:transform 0.18s cubic-bezier(0.8, -0.33, 0.2, 1.33)}.radio input[type="radio"]{opacity:0;z-index:1;cursor:pointer}.radio input[type="radio"]:checked+label::after,.radio .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .radio .editable-checklist>div>label>input[type="radio"]:checked+span::after{-webkit-transform:scale(1,1);-ms-transform:scale(1,1);transform:scale(1,1);opacity:1}.radio input[type="radio"]:disabled+label,.radio .editable-input .editable-checklist>div>label>input[type="radio"]:disabled+span,.editable-input .radio .editable-checklist>div>label>input[type="radio"]:disabled+span{opacity:0.65}.radio input[type="radio"]:disabled+label::before,.radio .editable-input .editable-checklist>div>label>input[type="radio"]:disabled+span::before,.editable-input .radio .editable-checklist>div>label>input[type="radio"]:disabled+span::before{cursor:not-allowed}.radio.radio-inline{margin-top:0}.radio-primary input[type="radio"]+label::after,.radio-primary .editable-input .editable-checklist>div>label>input[type="radio"]+span::after,.editable-input .radio-primary .editable-checklist>div>label>input[type="radio"]+span::after{background-color:#375959}.radio-primary input[type="radio"]:checked+label::before,.radio-primary .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .radio-primary .editable-checklist>div>label>input[type="radio"]:checked+span::before{border-color:#375959}.radio-primary input[type="radio"]:checked+label::after,.radio-primary .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .radio-primary .editable-checklist>div>label>input[type="radio"]:checked+span::after{background-color:#375959}.radio-danger input[type="radio"]+label::after,.radio-danger .editable-input .editable-checklist>div>label>input[type="radio"]+span::after,.editable-input .radio-danger .editable-checklist>div>label>input[type="radio"]+span::after{background-color:#a52521}.radio-danger input[type="radio"]:checked+label::before,.radio-danger .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .radio-danger .editable-checklist>div>label>input[type="radio"]:checked+span::before{border-color:#a52521}.radio-danger input[type="radio"]:checked+label::after,.radio-danger .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .radio-danger .editable-checklist>div>label>input[type="radio"]:checked+span::after{background-color:#a52521}.radio-info input[type="radio"]+label::after,.radio-info .editable-input .editable-checklist>div>label>input[type="radio"]+span::after,.editable-input .radio-info .editable-checklist>div>label>input[type="radio"]+span::after{background-color:#316490}.radio-info input[type="radio"]:checked+label::before,.radio-info .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .radio-info .editable-checklist>div>label>input[type="radio"]:checked+span::before{border-color:#316490}.radio-info input[type="radio"]:checked+label::after,.radio-info .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .radio-info .editable-checklist>div>label>input[type="radio"]:checked+span::after{background-color:#316490}.radio-warning input[type="radio"]+label::after,.radio-warning .editable-input .editable-checklist>div>label>input[type="radio"]+span::after,.editable-input .radio-warning .editable-checklist>div>label>input[type="radio"]+span::after{background-color:#e28a0d}.radio-warning input[type="radio"]:checked+label::before,.radio-warning .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .radio-warning .editable-checklist>div>label>input[type="radio"]:checked+span::before{border-color:#e28a0d}.radio-warning input[type="radio"]:checked+label::after,.radio-warning .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .radio-warning .editable-checklist>div>label>input[type="radio"]:checked+span::after{background-color:#e28a0d}.radio-success input[type="radio"]+label::after,.radio-success .editable-input .editable-checklist>div>label>input[type="radio"]+span::after,.editable-input .radio-success .editable-checklist>div>label>input[type="radio"]+span::after{background-color:#4f9e4f}.radio-success input[type="radio"]:checked+label::before,.radio-success .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .radio-success .editable-checklist>div>label>input[type="radio"]:checked+span::before{border-color:#4f9e4f}.radio-success input[type="radio"]:checked+label::after,.radio-success .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .radio-success .editable-checklist>div>label>input[type="radio"]:checked+span::after{background-color:#4f9e4f}input[type="checkbox"].styled:checked+label:after,.editable-input .editable-checklist>div>label>input[type="checkbox"].styled:checked+span:after,input[type="radio"].styled:checked+label:after,.editable-input .editable-checklist>div>label>input[type="radio"].styled:checked+span:after{font-family:"Font Awesome 5 Free";content:"\f00c"}input[type="checkbox"] .styled:checked+label::before,input[type="checkbox"] .editable-input .editable-checklist>div>label>.styled:checked+span::before,.editable-input input[type="checkbox"] .editable-checklist>div>label>.styled:checked+span::before,input[type="radio"] .styled:checked+label::before,input[type="radio"] .editable-input .editable-checklist>div>label>.styled:checked+span::before,.editable-input input[type="radio"] .editable-checklist>div>label>.styled:checked+span::before{color:#fff}input[type="checkbox"] .styled:checked+label::after,input[type="checkbox"] .editable-input .editable-checklist>div>label>.styled:checked+span::after,.editable-input input[type="checkbox"] .editable-checklist>div>label>.styled:checked+span::after,input[type="radio"] .styled:checked+label::after,input[type="radio"] .editable-input .editable-checklist>div>label>.styled:checked+span::after,.editable-input input[type="radio"] .editable-checklist>div>label>.styled:checked+span::after{color:#fff}html{margin:0;padding:0;height:100%;position:relative}body{margin:0;padding:0;min-height:100%;direction:ltr}body.mobile-view-activated.hidden-menu{overflow-x:hidden}body.modal-open{overflow:hidden !important}a:hover,a:active,a:focus,button,button:active,button:focus,object,embed,input::-moz-focus-inner{outline:0}h1,h3,h4{margin:0;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif}.page-title{margin:12px 0 28px}.page-title span{font-size:15px;color:#313335;display:inline-block;vertical-align:1px}label,.editable-input .editable-checklist>div>label>span{font-weight:normal}*:not(td):focus{outline:0 !important}a,input,button{-ms-touch-action:none !important}textarea:focus,select:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{outline:0;outline:thin dotted \9;box-shadow:inset -1px 1px 5px 0 rgba(0,0,0,0.8) !important}.input-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn,.input-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn,.input-xs,.form-control{border-radius:0px !important;-webkit-border-radius:0px !important;-moz-border-radius:0px !important}.input-xs{height:24px;padding:2px 10px;font-size:11px;line-height:1.5}.btn-xs,.btn-group-xs>.btn{padding:0px 2px;font-size:10px;line-height:1.3}.btn-sm,.btn-group-sm>.btn{padding:5px 8px 4px}.btn-lg,.btn-group-lg>.btn{padding:10px 16px}.no-space{margin:0}.no-space>[class*="col-"]{margin:0 !important;padding-right:0;padding-left:0}h1{letter-spacing:-1px;font-size:22px;margin:10px 0}h1 small{font-size:12px;font-weight:300;letter-spacing:-1px}h2{font-size:20px;margin:20px 0;line-height:normal}h3{display:block;font-size:17px;font-weight:400;margin:20px 0;line-height:normal}h4{line-height:normal;margin:20px 0 10px 0}h5{font-size:14px;font-weight:300;margin-top:0;margin-bottom:10px;line-height:normal}h6{font-size:13px;margin:10px 0;font-weight:bold;line-height:normal}.row-seperator-header{margin:15px 14px 20px;border-bottom:none;display:block;color:#303133;font-size:20px;font-weight:400}.center-canvas,.center-child-canvas>canvas{display:block !important;margin:0 auto !important}.form-control{box-shadow:none !important;-webkit-box-shadow:none !important;-moz-box-shadow:none !important}.form hr{margin-left:-13px;margin-right:-13px;border-color:rgba(0,0,0,0.1);margin-top:20px;margin-bottom:20px}.form fieldset{display:block;border:none;background:rgba(255,255,255,0.9);position:relative}fieldset{position:relative}.popover-content .form-actions{margin:0 -14px -9px;border-radius:0 0 3px 3px;padding:9px 14px}.no-padding .form .form-actions{margin:0;display:block;padding:13px 14px 15px;border-top:1px solid rgba(0,0,0,0.1);background:rgba(248,248,248,0.9);text-align:right;margin-top:25px}.form header,legend{display:block;padding:8px 0;border-bottom:1px dashed rgba(0,0,0,0.2);background:#fff;font-size:16px;font-weight:300;color:#2b2b2b;margin:25px 0px 20px}.no-padding .form header{margin:25px 14px 0}.form header:first-child{margin-top:10px}legend{font-weight:400;margin-top:0px;background:none}.input-group-addon{padding:6px 10px;will-change:background-color, border-color;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;-webkit-transition:all ease-out 0.15s;transition:all ease-out 0.15s}.input-group-addon .fa{font-size:14px}.input-group-addon .fa-lg,.input-group-addon .fa-2x{font-size:2em}.input-group-addon .fa-3x,.input-group-addon .fa-4x,.input-group-addon .fa-5x{font-size:30px}input[type="text"]:focus+.input-group-addon,input[type="password"]:focus+.input-group-addon,input[type="email"]:focus+.input-group-addon{border-color:#568a89;color:#568a89}.has-warning input[type="text"],.has-warning input[type="text"]+.input-group-addon{border-color:#e28a0d}.has-warning input[type="text"]+.input-group-addon{background-color:#fbe3c0;color:#2b2b2b}.has-warning input[type="text"]:focus,.has-warning input[type="text"]:focus+.input-group-addon{border-color:#e28a0d}.has-warning input[type="text"]:focus+.input-group-addon{background-color:#e28a0d;color:#fff}.has-error .input-group-addon{border-color:#d9534f !important;background:#d9534f !important;color:#2b2b2b !important}.has-success .input-group-addon{border-color:#4f9e4f !important;background-color:#2b2b2b !important;color:#4f9e4f !important}.form fieldset .form-group:last-child,.form fieldset .form-group:last-child .note,.form .form-group:last-child,.form .form-group:last-child .note{margin-bottom:0}.note{margin-top:6px;padding:0 1px;font-size:11px;line-height:15px;color:#7c8184}.input-icon-right>i,.input-icon-left>i{position:absolute;right:10px;top:10px;font-size:12px;color:#63676a}.input-icon-left>i{right:auto;left:24px}.input-icon-right .form-control{padding-right:27px}.input-icon-left .form-control{padding-left:29px}input[type="text"].ui-autocomplete-loading,input[type="password"].ui-autocomplete-loading,input[type="datetime"].ui-autocomplete-loading,input[type="datetime-local"].ui-autocomplete-loading,input[type="date"].ui-autocomplete-loading,input[type="month"].ui-autocomplete-loading,input[type="time"].ui-autocomplete-loading,input[type="week"].ui-autocomplete-loading,input[type="number"].ui-autocomplete-loading,input[type="email"].ui-autocomplete-loading,input[type="url"].ui-autocomplete-loading,input[type="search"].ui-autocomplete-loading,input[type="tel"].ui-autocomplete-loading,input[type="color"].ui-autocomplete-loading{background-image:url("../../img/select2-spinner.gif") !important;background-repeat:no-repeat;background-position:99% 50%;padding-right:27px}.input-group-addon .checkbox,.input-group-addon .editable-input .editable-checklist>div>label,.editable-input .input-group-addon .editable-checklist>div>label,.input-group-addon .radio{min-height:0px;margin-right:0px !important;padding-top:0}.input-group-addon label input[type="checkbox"].checkbox+span,.input-group-addon .editable-input .editable-checklist>div>label>span input[type="checkbox"].checkbox+span,.editable-input .input-group-addon .editable-checklist>div>label>span input[type="checkbox"].checkbox+span,.input-group-addon label input[type="radio"].radiobox+span,.input-group-addon .editable-input .editable-checklist>div>label>span input[type="radio"].radiobox+span,.editable-input .input-group-addon .editable-checklist>div>label>span input[type="radio"].radiobox+span,.input-group-addon label input[type="radio"].radiobox+span:before,.input-group-addon .editable-input .editable-checklist>div>label>span input[type="radio"].radiobox+span:before,.editable-input .input-group-addon .editable-checklist>div>label>span input[type="radio"].radiobox+span:before,.input-group-addon label input[type="checkbox"].checkbox+span:before,.input-group-addon .editable-input .editable-checklist>div>label>span input[type="checkbox"].checkbox+span:before,.editable-input .input-group-addon .editable-checklist>div>label>span input[type="checkbox"].checkbox+span:before{margin-right:0px}.alert{margin-bottom:10px;margin-top:0px;padding:5px 15px 5px 34px;color:#675100;border-width:0px;border-left-width:3px;padding:10px}.alert .ui-pnotify-title{line-height:12px}.alert .ui-pnotify-text{font-size:10px}.alert .close{top:0px;right:-5px;line-height:18px}.alert-heading{font-weight:600}.alert-danger{border-color:#a52521;color:#2b2b2b;background:#f6d1d0;text-shadow:none}.alert-danger .ui-pnotify-icon{color:#a52521}.alert-warning{border-color:#e28a0d;color:#2b2b2b;background:#fdedd8}.alert-warning .ui-pnotify-icon{color:#e28a0d}.alert-success{border-color:#4f9e4f;color:#2b2b2b;background:#d1e8d1}.alert-success .ui-pnotify-icon{color:#4f9e4f}.alert-info{border-color:#316490;color:#2b2b2b;background:#abc9e2}.alert-info .ui-pnotify-icon{color:#316490}.progress-micro{height:2px !important;line-height:2px !important}.progress-xs{height:7px !important;line-height:7px !important}.progress-sm{height:14px !important;line-height:14px !important}.progress-lg{height:30px !important;line-height:30px !important}.progress .progress-bar{position:absolute;overflow:hidden;line-height:18px}.progress .progressbar-back-text{position:absolute;width:100%;height:100%;font-size:12px;line-height:20px;text-align:center}.progress .progressbar-front-text{display:block;width:100%;font-size:12px;line-height:20px;text-align:center}.progress.right .progress-bar{right:0}.progress.right .progressbar-front-text{position:absolute;right:0}.progress.vertical{width:25px;height:100%;min-height:150px;margin-right:20px;display:inline-block;margin-bottom:0px}.progress.wide-bar{width:40px}.progress.vertical.bottom{position:relative}.progress.vertical.bottom .progressbar-front-text{position:absolute;bottom:0}.progress.vertical .progress-bar{width:100%;height:0;-webkit-transition:height 0.6s ease;transition:height 0.6s ease}.progress.vertical.bottom .progress-bar{position:absolute;bottom:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{position:relative;margin-bottom:20px;overflow:hidden;height:18px;background:#63676a;-webkit-box-shadow:0 1px 0 transparent,0 0 0 1px #63676a inset;box-shadow:0 1px 0 transparent,0 0 0 1px #63676a inset;-moz-border-radius:0px;-webkit-border-radius:0px;border-radius:0px}.progress-bar{float:left;width:0;height:100%;font-size:11px;color:#fff;text-align:center;background-color:#428bca;font-weight:bold;-webkit-transition:width 1s ease-in-out,background-color 1s ease-in-out;transition:width 1s ease-in-out,background-color 1s ease-in-out}.progress-striped .progress-bar{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255,255,255,0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255,255,255,0.15)), color-stop(0.75, rgba(255,255,255,0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0));background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-danger{background-color:#a52521}.progress-striped .progress-bar-danger{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255,255,255,0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255,255,255,0.15)), color-stop(0.75, rgba(255,255,255,0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0))}.progress-bar-success{background-color:#4f9e4f}.progress-striped .progress-bar-success{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255,255,255,0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255,255,255,0.15)), color-stop(0.75, rgba(255,255,255,0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0))}.progress-bar-warning{background-color:#e28a0d}.progress-striped .progress-bar-warning{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255,255,255,0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255,255,255,0.15)), color-stop(0.75, rgba(255,255,255,0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0))}.progress-bar-info{background-color:#316490}.progress-striped .progress-bar-info{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255,255,255,0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255,255,255,0.15)), color-stop(0.75, rgba(255,255,255,0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0))}.progress-info .bar,.progress .bar-info{background:#316490}.vertical-bars{padding:0;margin:0}.vertical-bars:after{content:"";display:block;height:0;clear:both}.vertical-bars li{padding:14px 0;width:25%;display:block;float:left;text-align:center}.vertical-bars li:first-child{border-left:none}.vertical-bars>li>.progress.vertical:first-child{margin-left:auto}.vertical-bars>li>.progress.vertical{margin:0 auto;float:none}.nav-tabs{border-bottom:none}.nav-tabs>li>a .badge{font-size:11px;padding:3px 5px 3px 5px;opacity:.5;margin-left:5px;min-width:17px;font-weight:normal}.tabs-left .nav-tabs>li>a .badge{margin-right:5px;margin-left:0px}.nav-tabs>li>a .label{display:inline-block;font-size:11px;margin-left:5px;opacity:.5}.nav-tabs>li>a{color:#63676a;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif}.nav-tabs>li>a:hover{color:#adadad;border-color:transparent transparent #63676a transparent;margin-top:1px;border-top-width:0}.nav-tabs>li.active>a{background-color:#adadad;color:#1d1d1d;border-top-width:0px !important;margin-top:1px !important;font-weight:bold}.tabs-left .nav-tabs>li.active>a{-webkit-box-shadow:-2px 0 0 #428bca;-moz-box-shadow:-2px 0 0 #428bca;box-shadow:-2px 0 0 #428bca;border-top-width:1px !important;border-left:none !important;margin-left:1px !important}.tabs-left .nav-pills>li.active>a{border:none !important;box-shadow:none !important;-webkit-box-shadow:none !important;-moz-box-shadow:none !important}.tabs-right .nav-tabs>li.active>a{-webkit-box-shadow:2px 0 0 #428bca;-moz-box-shadow:2px 0 0 #428bca;box-shadow:2px 0 0 #428bca;border-top-width:1px !important;border-right:none !important;margin-right:1px !important}.tabs-below .nav-tabs>li.active>a{-webkit-box-shadow:0 2px 0 #428bca;-moz-box-shadow:0 2px 0 #428bca;box-shadow:0 2px 0 #428bca;border-bottom-width:0px !important;border-top:none !important;margin-top:0px !important}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #9b9b9b}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li,.tabs-left>.nav-pills>li,.tabs-right>.nav-pills>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a,.tabs-left>.nav-pills>li>a,.tabs-right>.nav-pills>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs,.tabs-left>.nav-pills{float:left;margin-right:19px;border-right:1px solid #9b9b9b}.tabs-left>.nav-pills{border-right:none}.tabs-left>.nav-tabs>li>a{margin-right:-1px}.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#adadad #949494 #adadad #adadad}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#949494 transparent #949494 #9b9b9b;*border-right-color:#fff}.tabs-left>.tab-content{margin-left:109px}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #9b9b9b}.tabs-right>.nav-tabs>li>a{margin-left:-1px}.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#adadad #adadad #adadad #9b9b9b}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#9b9b9b #9b9b9b #9b9b9b transparent;*border-left-color:#fff}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #9b9b9b}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-top-color:#9b9b9b;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #9b9b9b #9b9b9b #9b9b9b}.nav-tabs.bordered{background:#fff;border:1px solid #9b9b9b}.nav-tabs.bordered>:first-child a{border-left-width:0px !important}.nav-tabs.bordered+.tab-content{border:1px solid #9b9b9b;border-top:none}.tabs-pull-right.nav-tabs>li,.tabs-pull-right.nav-pills>li{float:right}.tabs-pull-right.nav-tabs>li:first-child>a,.tabs-pull-right.nav-pills>li:first-child>a{margin-right:1px}.tabs-pull-right.bordered.nav-tabs>li:first-child>a,.tabs-pull-right.bordered.nav-pills>li:first-child>a{border-left-width:1px !important;margin-right:0px;border-right-width:0px}.dropdown-menu-xs{min-width:37px}.dropdown-menu-xs>li>a{padding:3px 10px}.dropdown-menu-xs>li>a:hover i{color:#fff !important}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropdown-submenu:hover>a{background-color:#63676a;color:#1d1d1d}.dropdown-submenu:hover a:after{border-left-color:#5cb85c}.dropdown-submenu>a:after{display:block;content:" ";float:right;width:0;height:0;border-color:transparent;border-style:solid;border-width:5px 0 5px 5px;border-left-color:#2b2b2b;margin-top:4px;margin-right:3px}.dropdown-submenu>a:hover:after{border-left-color:#adadad}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px}.pagination>li>a,.pagination>li>span{box-shadow:inset 0 -2px 0 rgba(0,0,0,0.05);-moz-box-shadow:inset 0 -2px 0 rgba(0,0,0,0.05);-webkit-box-shadow:inset 0 -2px 0 rgba(0,0,0,0.05)}.btn-default.disabled{color:#adadad}.btn{font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;will-change:background-color, border-color;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-webkit-transition:color 0.18s ease-in-out,background-color 0.18s ease-in-out,border-color 0.18s ease-in-out,box-shadow 0.18s ease-in-out;transition:color 0.18s ease-in-out,background-color 0.18s ease-in-out,border-color 0.18s ease-in-out,box-shadow 0.18s ease-in-out}.btn.btn-ribbon{background-color:#707070;background-image:-moz-linear-gradient(top, #777, #666);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#777), to(#666));background-image:-webkit-linear-gradient(top, #777, #666);background-image:-o-linear-gradient(top, #777, #666);background-image:linear-gradient(to bottom, #777777,#666666);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff777777', endColorstr='#ff666666', GradientType=0);color:white;padding:0 5px;line-height:20px;vertical-align:middle;height:20px;display:block;border:none;float:left;margin:0 8px 0 0;cursor:pointer}.btn.btn-ribbon>i{font-size:111%}.ribbon-button-alignment{padding-top:10px;display:inline-block}.ribbon-button-alignment.pull-right>.btn.btn-ribbon{margin:0 0 0 8px}.panel-purple{border-color:#6e587a}.panel-purple>.panel-heading{color:#fff;background-color:#6e587a;border-color:#6e587a}.panel-greenLight{border-color:#71843f}.panel-greenLight>.panel-heading{color:#fff;background-color:#71843f;border-color:#71843f}.panel-greenDark{border-color:#496949}.panel-greenDark>.panel-heading{color:#fff;background-color:#496949;border-color:#496949}.panel-darken{border-color:#313335}.panel-darken>.panel-heading{color:#fff;background-color:#404040;border-color:#404040}.panel-green{border-color:#5cb85c}.panel-green>.panel-heading{color:#fff;background-color:#5cb85c;border-color:#5cb85c}.panel-red{border-color:#d9534f}.panel-red>.panel-heading{color:#fff;background-color:#d9534f;border-color:#d9534f}.panel-teal{border-color:#568a89}.panel-teal>.panel-heading{color:#fff;background-color:#568a89;border-color:#568a89}.panel-orange{border-color:#e28a0d}.panel-orange>.panel-heading{color:#fff;background-color:#e28a0d;border-color:#e28a0d}.panel-blueDark{border-color:#4c4f53}.panel-blueDark>.panel-heading{color:#fff;background-color:#4c4f53;border-color:#4c4f53}.panel-magenta{border-color:#6e3671}.panel-magenta>.panel-heading{color:#fff;background-color:#6e3671;border-color:#6e3671}.panel-blue{border-color:#428bca}.panel-blue>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-footer>.btn-block{border-radius:0px;-moz-border-radius:0px;-webkit-border-radius:0px;border-bottom:none;border-left:none;border-right:none}.btn-circle{width:30px;height:30px;text-align:center;padding:6px 0;font-size:12px;line-height:18px;border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%;-webkit-box-shadow:0 1px 6px 0 rgba(0,0,0,0.12),0 1px 6px 0 rgba(0,0,0,0.12);box-shadow:0 1px 6px 0 rgba(0,0,0,0.12),0 1px 6px 0 rgba(0,0,0,0.12)}.btn-circle.btn-sm,.btn-group-sm>.btn-circle.btn{width:22px;height:22px;padding:4px 0;font-size:12px;line-height:14px;border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%}.btn-circle.btn-lg,.btn-group-lg>.btn-circle.btn{width:50px;height:50px;padding:10px 15px;font-size:18px;line-height:30px;border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%}.btn-circle.btn-xl{width:70px;height:70px;padding:10px 15px;font-size:24px;line-height:50px;border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%}.btn-label{position:relative;left:-8px;display:inline-block;padding:5px 8px;background:rgba(0,0,0,0.15);border-radius:2px 0 0 2px}.btn-labeled{padding-top:0;padding-bottom:0;padding-left:8px}.btn-link{box-shadow:none;-webkit-box-shadow:none;font-size:13px}.morris-hover.morris-default-style{border-radius:5px;padding:5px;color:#666;background:rgba(29,29,29,0.9);border:solid 2px #375959;font-family:'Oxygen Bold';font-size:10px;text-align:left;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.4);box-shadow:0 6px 12px rgba(0,0,0,0.4)}.morris-hover.morris-default-style .morris-hover-row-label{font-weight:bold}.morris-hover.morris-default-style .morris-hover-point{white-space:nowrap}.morris-hover{position:absolute;z-index:903}.fixed-page-footer .morris-hover{z-index:900}.txt-color.txt-color-blue,.txt-color-blue.pf-help-light,.pf-help-light:hover,.txt-color-blue.pf-help,.pf-help:hover,.txt-color.pf-help-default:hover,.dataTable td.pf-help-default.pf-table-link-cell:hover,.dataTable td.pf-table-link-cell.pf-help-light:hover,.dataTable td.pf-table-link-cell.pf-help:hover,.dataTable td.pf-table-action-cell>.pf-help-default.pf-table-action-icon-cell:hover,.dataTable td.pf-table-action-cell>.pf-table-action-icon-cell.pf-help-light:hover,.dataTable td.pf-table-action-cell>.pf-table-action-icon-cell.pf-help:hover,.pf-landing .pf-landing-list li>i.pf-help-default:hover,.pf-landing .pf-landing-list li>i.pf-help-light:hover,.pf-landing .pf-landing-list li>i.pf-help:hover,.dataTable td.txt-color-blue.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-blue.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-blue{color:#428bca !important}.txt-color.txt-color-blueLight,.txt-color-blueLight.pf-help-light,.txt-color-blueLight.pf-help,.dataTable td.txt-color-blueLight.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-blueLight.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-blueLight{color:#92a2a8 !important}.txt-color.txt-color-blueDark,.txt-color-blueDark.pf-help-light,.txt-color-blueDark.pf-help,.dataTable td.txt-color-blueDark.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-blueDark.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-blueDark{color:#4c4f53 !important}.txt-color.txt-color-grayLightest,.txt-color-grayLightest.pf-help-light,.txt-color-grayLightest.pf-help,.dataTable td.txt-color-grayLightest.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-grayLightest.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-grayLightest{color:#eaeaea !important}.txt-color.txt-color-grayLighter,.txt-color-grayLighter.pf-help-light,.txt-color-grayLighter.pf-help,.dataTable td.txt-color-grayLighter.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-grayLighter.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-grayLighter{color:#adadad !important}.txt-color.txt-color-grayLight,.pf-help-light,.txt-color-grayLight.pf-help,.dataTable td.txt-color-grayLight.pf-table-link-cell,.dataTable td.pf-table-link-cell.pf-help-light,.dataTable td.pf-table-action-cell>.txt-color-grayLight.pf-table-action-icon-cell,.dataTable td.pf-table-action-cell>.pf-table-action-icon-cell.pf-help-light,.pf-landing .pf-landing-list li>i.txt-color-grayLight,.pf-landing .pf-landing-list li>i.pf-help-light{color:#63676a !important}.txt-color.txt-color-gray,.txt-color-gray.pf-help-light,.pf-help,.dataTable td.txt-color-gray.pf-table-link-cell,.dataTable td.pf-table-link-cell.pf-help,.dataTable td.pf-table-action-cell>.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-gray,.pf-landing .pf-landing-list li>i.pf-help{color:#3c3f41 !important}.txt-color.txt-color-grayDark,.txt-color-grayDark.pf-help-light,.txt-color-grayDark.pf-help,.dataTable td.txt-color-grayDark.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-grayDark.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-grayDark{color:#313335 !important}.txt-color.txt-color-greenLight,.txt-color-greenLight.pf-help-light,.txt-color-greenLight.pf-help,.dataTable td.txt-color-greenLight.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-greenLight.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-greenLight{color:#66c84f !important}.txt-color.txt-color-green,.txt-color-green.pf-help-light,.pf-help-light.pf-log-info,.txt-color-green.pf-help,.pf-help.pf-log-info,.dataTable td.txt-color-green.pf-table-link-cell,.dataTable td.pf-table-link-cell.pf-log-info,.dataTable td.pf-table-action-cell>.txt-color-green.pf-table-action-icon-cell,.dataTable td.pf-table-action-cell>.pf-table-action-icon-cell.pf-log-info,.txt-color.pf-log-info,.pf-landing .pf-landing-list li>i.pf-log-info,.pf-landing .pf-landing-list li>i.txt-color-green{color:#5cb85c !important}.txt-color.txt-color-greenDark,.txt-color-greenDark.pf-help-light,.txt-color-greenDark.pf-help,.dataTable td.txt-color-greenDark.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-greenDark.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-greenDark{color:#4f9e4f !important}.txt-color.txt-color-redLight,.txt-color-redLight.pf-help-light,.txt-color-redLight.pf-help,.dataTable td.txt-color-redLight.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-redLight.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-redLight{color:#a65858 !important}.txt-color.txt-color-red,.txt-color-red.pf-help-light,.pf-help-light.pf-log-error,.txt-color-red.pf-help,.pf-help.pf-log-error,.dataTable td.txt-color-red.pf-table-link-cell,.dataTable td.pf-table-link-cell.pf-log-error,.dataTable td.pf-table-action-cell>.txt-color-red.pf-table-action-icon-cell,.dataTable td.pf-table-action-cell>.pf-table-action-icon-cell.pf-log-error,.txt-color.pf-log-error,.pf-landing .pf-landing-list li>i.pf-log-error,.pf-landing .pf-landing-list li>i.txt-color-red{color:#d9534f !important}.txt-color.txt-color-redDarker,.txt-color-redDarker.pf-help-light,.txt-color-redDarker.pf-help,.dataTable td.txt-color-redDarker.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-redDarker.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-redDarker{color:#a52521 !important}.txt-color.txt-color-yellow,.txt-color-yellow.pf-help-light,.txt-color-yellow.pf-help,.dataTable td.txt-color-yellow.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-yellow.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-yellow{color:#e2ce48 !important}.txt-color.txt-color-yellowDark,.txt-color-yellowDark.pf-help-light,.txt-color-yellowDark.pf-help,.dataTable td.txt-color-yellowDark.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-yellowDark.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-yellowDark{color:#c8b847 !important}.txt-color.txt-color-orangeLight,.txt-color-orangeLight.pf-help-light,.txt-color-orangeLight.pf-help,.dataTable td.txt-color-orangeLight.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-orangeLight.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-orangeLight{color:#f0ad4e !important}.txt-color.txt-color-orange,.txt-color-orange.pf-help-light,.txt-color-orange.pf-help,.dataTable td.txt-color-orange.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-orange.pf-table-action-icon-cell,.dataTable td.pf-table-action-cell:hover>.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-orange{color:#e28a0d !important}.txt-color.txt-color-orangeDark,.txt-color-orangeDark.pf-help-light,.txt-color-orangeDark.pf-help,.dataTable td.txt-color-orangeDark.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-orangeDark.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-orangeDark{color:#c2760c !important}.txt-color.txt-color-pink,.txt-color-pink.pf-help-light,.txt-color-pink.pf-help,.dataTable td.txt-color-pink.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-pink.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-pink{color:#e06fdf !important}.txt-color.txt-color-pinkDark,.txt-color-pinkDark.pf-help-light,.txt-color-pinkDark.pf-help,.dataTable td.txt-color-pinkDark.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-pinkDark.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-pinkDark{color:#a8829f !important}.txt-color.txt-color-purple,.txt-color-purple.pf-help-light,.txt-color-purple.pf-help,.dataTable td.txt-color-purple.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-purple.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-purple{color:#6e587a !important}.txt-color.txt-color-darken,.txt-color-darken.pf-help-light,.txt-color-darken.pf-help,.dataTable td.txt-color-darken.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-darken.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-darken{color:#404040 !important}.txt-color.txt-color-lighten,.txt-color-lighten.pf-help-light,.txt-color-lighten.pf-help,.dataTable td.txt-color-lighten.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-lighten.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-lighten{color:#d5e7ec !important}.txt-color.txt-color-white,.txt-color-white.pf-help-light,.txt-color-white.pf-help,.dataTable td.txt-color-white.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-white.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-white{color:#fff !important}.txt-color.txt-color-magenta,.txt-color-magenta.pf-help-light,.txt-color-magenta.pf-help,.dataTable td.txt-color-magenta.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-magenta.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-magenta{color:#6e3671 !important}.txt-color.txt-color-tealLightest,.txt-color-tealLightest.pf-help-light,.txt-color-tealLightest.pf-help,.dataTable td.txt-color-tealLightest.pf-table-link-cell,.dataTable td.pf-table-link-cell:hover,.dataTable td.pf-table-action-cell>.txt-color-tealLightest.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-tealLightest{color:#6caead !important}.txt-color.txt-color-tealLighter,.txt-color-tealLighter.pf-help-light,.txt-color-tealLighter.pf-help,.dataTable td.txt-color-tealLighter.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-tealLighter.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i{color:#568a89 !important}.txt-color.txt-color-teal,.txt-color-teal.pf-help-light,.txt-color-teal.pf-help,.dataTable td.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-teal.pf-table-action-icon-cell,.dataTable td.pf-table-action-cell>td.pf-table-action-icon-cell.pf-table-link-cell,.pf-landing .pf-landing-list li>i.txt-color-teal{color:#477372 !important}.txt-color.txt-color-indigoDark,.txt-color-indigoDark.pf-help-light,.txt-color-indigoDark.pf-help,.dataTable td.txt-color-indigoDark.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-indigoDark.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-indigoDark{color:#5c6bc0 !important}.txt-color.txt-color-indigoDarkest,.txt-color-indigoDarkest.pf-help-light,.txt-color-indigoDarkest.pf-help,.dataTable td.txt-color-indigoDarkest.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-indigoDarkest.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-indigoDarkest{color:#313966 !important}.txt-color.txt-color-gold,.txt-color-gold.pf-help-light,.txt-color-gold.pf-help,.dataTable td.txt-color-gold.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-gold.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-gold{color:#cfb53b !important}.txt-color.txt-color-silver,.txt-color-silver.pf-help-light,.txt-color-silver.pf-help,.dataTable td.txt-color-silver.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-silver.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-silver{color:silver !important}.txt-color.txt-color-bronze,.txt-color-bronze.pf-help-light,.txt-color-bronze.pf-help,.dataTable td.txt-color-bronze.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-bronze.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-bronze{color:#8c7853 !important}.txt-color.txt-color-primary,.txt-color-primary.pf-help-light,.txt-color-primary.pf-help,.dataTable td.txt-color-primary.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-primary.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-primary{color:#375959 !important}.txt-color.txt-color-success,.txt-color-success.pf-help-light,.txt-color-success.pf-help,.dataTable td.txt-color-success.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-success.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-success{color:#4f9e4f !important}.txt-color.txt-color-information,.txt-color-information.pf-help-light,.txt-color-information.pf-help,.dataTable td.txt-color-information.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-information.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-information{color:#316490 !important}.txt-color.txt-color-info,.txt-color-info.pf-help-light,.txt-color-info.pf-help,.dataTable td.txt-color-info.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-info.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-info{color:#316490 !important}.txt-color.txt-color-warning,.txt-color-warning.pf-help-light,.pf-help-light.pf-log-warning,.txt-color-warning.pf-help,.pf-help.pf-log-warning,.dataTable td.txt-color-warning.pf-table-link-cell,.dataTable td.pf-table-link-cell.pf-log-warning,.dataTable td.pf-table-action-cell>.txt-color-warning.pf-table-action-icon-cell,.dataTable td.pf-table-action-cell>.pf-table-action-icon-cell.pf-log-warning,.txt-color.pf-log-warning,.pf-landing .pf-landing-list li>i.pf-log-warning,.pf-landing .pf-landing-list li>i.txt-color-warning{color:#e28a0d !important}.txt-color.txt-color-danger,.txt-color-danger.pf-help-light,.txt-color-danger.pf-help,.dataTable td.txt-color-danger.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-danger.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-danger{color:#a52521 !important}.bg-color.bg-color-blue{background-color:#428bca !important}.bg-color.bg-color-blueLight{background-color:#92a2a8 !important}.bg-color.bg-color-blueDark{background-color:#4c4f53 !important}.bg-color.bg-color-green{background-color:#5cb85c !important}.bg-color.bg-color-greenLight{background-color:#71843f !important}.bg-color.bg-color-greenDark{background-color:#496949 !important}.bg-color.bg-color-red{background-color:#d9534f !important}.bg-color.bg-color-yellow{background-color:#e2ce48 !important}.bg-color.bg-color-orange{background-color:#e28a0d !important}.bg-color.bg-color-orangeDark{background-color:#c2760c !important}.bg-color.bg-color-pink{background-color:#e06fdf !important}.bg-color.bg-color-pinkDark{background-color:#a8829f !important}.bg-color.bg-color-purple{background-color:#6e587a !important}.bg-color.bg-color-darken{background-color:#404040 !important}.bg-color.bg-color-lighten{background-color:#d5e7ec !important}.bg-color.bg-color-white{background-color:#fff !important}.bg-color.bg-color-gray{background-color:#3c3f41 !important}.bg-color.bg-color-grayDark{background-color:#525252 !important}.bg-color.bg-color-grayDarker{background-color:#2b2b2b !important}.bg-color.bg-color-magenta{background-color:#6e3671 !important}.bg-color.bg-color-tealLighter{background-color:#568a89 !important}.bg-color.bg-color-tealDarker{background-color:#212C30 !important}.bg-color.bg-color-tealDarkest{background-color:#1b2326 !important}.bg-color.bg-color-redLight{background-color:#a65858 !important}.pf-animation-slide-in{-moz-animation-duration:1.2s;-webkit-animation-duration:1.2s;-moz-animation-name:pfSlideIn;-webkit-animation-name:pfSlideIn;position:relative}@-webkit-keyframes pfSlideIn{from{opacity:0;top:-20px}to{opacity:1;top:0px}}@-moz-keyframes pfSlideIn{from{opacity:0;top:-20px}to{opacity:1;top:0px}}@-ms-keyframes pfSlideIn{from{opacity:0;top:-20px}to{opacity:1;top:0px}}@keyframes pfSlideIn{from{opacity:0;top:-20px}to{opacity:1;top:0px}}@-webkit-keyframes pfPulseDanger{0%{fill:#d9534f}50%{fill:#58100d}100%{fill:#d9534f}}@-moz-keyframes pfPulseDanger{0%{fill:#d9534f}50%{fill:#58100d}100%{fill:#d9534f}}@-ms-keyframes pfPulseDanger{0%{fill:#d9534f}50%{fill:#58100d}100%{fill:#d9534f}}@keyframes pfPulseDanger{0%{fill:#d9534f}50%{fill:#58100d}100%{fill:#d9534f}}.pf-animation-pulse-success{-webkit-animation:pulseBackgroundSuccess 1s 1;animation:pulseBackgroundSuccess 1s 1;-webkit-animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38)}.pf-animation-pulse-success .sorting_1{-webkit-animation:pulseBackgroundSuccessActive 1s 1;animation:pulseBackgroundSuccessActive 1s 1;-webkit-animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38)}.pf-animation-pulse-warning{-webkit-animation:pulseBackgroundWarning 1s 1;animation:pulseBackgroundWarning 1s 1;-webkit-animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38)}.pf-animation-pulse-warning .sorting_1{-webkit-animation:pulseBackgroundWarningActive 1s 1;animation:pulseBackgroundWarningActive 1s 1;-webkit-animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38)}.pf-animation-pulse-danger{-webkit-animation:pulseBackgroundDanger 1s 1;animation:pulseBackgroundDanger 1s 1;-webkit-animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38)}.pf-animation-pulse-danger .sorting_1{-webkit-animation:pulseBackgroundDangerActive 1s 1;animation:pulseBackgroundDangerActive 1s 1;-webkit-animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38)}@-webkit-keyframes pulseBackgroundSuccess{10%{background-color:#4f9e4f;color:#313335}}@-moz-keyframes pulseBackgroundSuccess{10%{background-color:#4f9e4f;color:#313335}}@-ms-keyframes pulseBackgroundSuccess{10%{background-color:#4f9e4f;color:#313335}}@keyframes pulseBackgroundSuccess{10%{background-color:#4f9e4f;color:#313335}}@-webkit-keyframes pulseBackgroundSuccessActive{10%{background-color:#478d47;color:#313335}}@-moz-keyframes pulseBackgroundSuccessActive{10%{background-color:#478d47;color:#313335}}@-ms-keyframes pulseBackgroundSuccessActive{10%{background-color:#478d47;color:#313335}}@keyframes pulseBackgroundSuccessActive{10%{background-color:#478d47;color:#313335}}@-webkit-keyframes pulseBackgroundWarning{10%{background-color:#e28a0d;color:#2b2b2b}}@-moz-keyframes pulseBackgroundWarning{10%{background-color:#e28a0d;color:#2b2b2b}}@-ms-keyframes pulseBackgroundWarning{10%{background-color:#e28a0d;color:#2b2b2b}}@keyframes pulseBackgroundWarning{10%{background-color:#e28a0d;color:#2b2b2b}}@-webkit-keyframes pulseBackgroundWarningActive{10%{background-color:#ca7b0c;color:#2b2b2b}}@-moz-keyframes pulseBackgroundWarningActive{10%{background-color:#ca7b0c;color:#2b2b2b}}@-ms-keyframes pulseBackgroundWarningActive{10%{background-color:#ca7b0c;color:#2b2b2b}}@keyframes pulseBackgroundWarningActive{10%{background-color:#ca7b0c;color:#2b2b2b}}@-webkit-keyframes pulseBackgroundDanger{10%{background-color:#d9534f;color:#2b2b2b}}@-moz-keyframes pulseBackgroundDanger{10%{background-color:#d9534f;color:#2b2b2b}}@-ms-keyframes pulseBackgroundDanger{10%{background-color:#d9534f;color:#2b2b2b}}@keyframes pulseBackgroundDanger{10%{background-color:#d9534f;color:#2b2b2b}}@-webkit-keyframes pulseBackgroundDangerActive{10%{background-color:#d43f3a;color:#2b2b2b}}@-moz-keyframes pulseBackgroundDangerActive{10%{background-color:#d43f3a;color:#2b2b2b}}@-ms-keyframes pulseBackgroundDangerActive{10%{background-color:#d43f3a;color:#2b2b2b}}@keyframes pulseBackgroundDangerActive{10%{background-color:#d43f3a;color:#2b2b2b}}.pf-animate-rotate,.modal-content h2[data-toggle="collapse"]:after,.modal-content h4[data-toggle="collapse"]:after,.panel-body h2[data-toggle="collapse"]:after,.panel-body h4[data-toggle="collapse"]:after{-webkit-transition:all 0.08s linear;transition:all 0.08s linear}.pf-animate-rotate.right,.modal-content h2.right[data-toggle="collapse"]:after,.modal-content h4.right[data-toggle="collapse"]:after,.panel-body h2.right[data-toggle="collapse"]:after,.panel-body h4.right[data-toggle="collapse"]:after{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.pf-animate-rotate.left,.modal-content h2.left[data-toggle="collapse"]:after,.modal-content h4.left[data-toggle="collapse"]:after,.panel-body h2.left[data-toggle="collapse"]:after,.panel-body h4.left[data-toggle="collapse"]:after{-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg)}@font-face{font-family:'Triglavian';font-style:normal;font-weight:900;src:url("../../fonts/triglavian-regular.eot");src:url("../../fonts/triglavian-regular.eot?#iefix") format("embedded-opentype"),url("../../fonts/triglavian-regular.woff2") format("woff2"),url("../../fonts/triglavian-regular.woff") format("woff"),url("../../fonts/triglavian-regular.ttf") format("truetype")}.pf-triglivian{font-family:'Triglavian';font-weight:900}body{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.pf-body{overflow:hidden}a,.pf-link{color:#477372;will-change:color;text-decoration:none;cursor:pointer;-webkit-transition:color 0.08s ease-out,background-color 0.08s ease-out;transition:color 0.08s ease-out,background-color 0.08s ease-out}a:hover,.pf-link:hover{color:#6caead;text-decoration:none}a:focus,.pf-link:focus{color:#477372}em{font-style:italic}em.pf-brand{text-transform:uppercase}.pf-font-capitalize{text-transform:capitalize}.pf-font-line-through{text-decoration:line-through}.no-padding{padding:0 !important}::-webkit-scrollbar{display:none;width:16px;height:16px}::-webkit-scrollbar-track{background-color:#2b2b2b;border-left:1px solid #313335;border-radius:2px;-webkit-transition:background-color 0.5s;transition:background-color 0.5s}::-webkit-scrollbar-thumb{height:6px;border:5px solid transparent;background-clip:padding-box;-webkit-border-radius:8px;background-color:#868c90}::-webkit-scrollbar-thumb:hover{background-color:#a1a5a8}::-webkit-scrollbar-button{width:0;height:0;display:none}::-webkit-scrollbar-corner{background-color:transparent}::selection{background:#adadad;color:#1d1d1d}::-moz-selection{background:#adadad;color:#1d1d1d}.pf-help-default,.pf-help-light,.pf-help{cursor:help;-webkit-transition:color 0.08s ease-out;transition:color 0.08s ease-out}.pf-dialog-icon-button,.pf-system-signature-module .pf-sig-table .fa-plus,.pf-system-route-module .pf-system-route-table td .fa-sync,.pf-system-route-module .pf-system-route-table td .fa-search{cursor:pointer;margin-top:2px;-webkit-transition:color 0.15s ease-out;transition:color 0.15s ease-out}.pf-dialog-icon-button:not(.collapsed),.pf-system-signature-module .pf-sig-table .fa-plus:not(.collapsed),.pf-system-route-module .pf-system-route-table td .fa-sync:not(.collapsed),.pf-system-route-module .pf-system-route-table td .fa-search:not(.collapsed),.pf-dialog-icon-button:hover,.pf-system-signature-module .pf-sig-table .fa-plus:hover,.pf-system-route-module .pf-system-route-table td .fa-sync:hover,.pf-system-route-module .pf-system-route-table td .fa-search:hover{color:#e28a0d}.pf-module-icon-button{cursor:pointer;color:#63676a;-webkit-transition:color 0.15s ease-out;transition:color 0.15s ease-out}.pf-module-icon-button:hover,.pf-module-icon-button.active{color:#e28a0d !important}.pf-module-icon-button.editable{border-bottom:none !important}.pf-module-icon-button-copy{cursor:copy;-moz-user-select:text;user-select:text}a.disabled{color:#777;pointer-events:none;cursor:default}.alert{will-change:opacity, transform}.editable-input .pf-editable-name{text-transform:uppercase}.editable-input optgroup[label]{background-color:#3c3f41;color:#63676a}.editable-input optgroup[label] option{background-color:#313335;color:#adadad;font-family:Consolas,monospace,Menlo,Monaco,"Courier New"}.editable-input .editable-checklist>div>label{display:block !important;padding-left:20px !important;color:#adadad}.editable-input .editable-checklist>div>label>span:after{top:-2px}.editable-input .editable-checklist .pf-editable-unknown[value='0']+span{color:#d9534f}select:active,select:hover{outline:none}select:active,select:hover{outline-color:red}.select2-results .select2-results__options--nested .select2-results__option{padding-left:15px}.select2-results [class*="col-"]{padding-left:3px;padding-right:3px}.select2-results .clearfix.pf-result-image [class*="col-"]{line-height:22px}.select2 ::-webkit-search-cancel-button{-webkit-appearance:none !important}.select2 .select2-selection__choice__remove{float:left}.select2 .select2-selection--multiple input{box-shadow:none !important}.dataTables_wrapper .dataTables_length select{margin:0 3px}.dataTables_wrapper .dt-buttons .dt-button{padding:0 5px}.dataTables_wrapper .dt-buttons .dt-button:not(:last-child){margin-right:10px}.dataTables_wrapper .dt-buttons .dt-button .fa{margin-right:5px}.dataTable th.pf-table-image-cell,.dataTable th.pf-table-image-small-cell,.dataTable th.pf-table-image-smaller-cell{padding-left:0 !important;padding-right:0 !important;image-rendering:-webkit-optimize-contrast}.dataTable th.sorting,.dataTable th.sorting_asc,.dataTable th.sorting_desc{padding-right:18px !important}.dataTable tr.group{background-color:rgba(43,43,43,0.4)}.dataTable td.editable-disabled:focus{outline:none;background-color:transparent}.dataTable td.editable-click:not(.editable-disabled){cursor:pointer}.dataTable td:focus,.dataTable td.editable-open{outline:1px solid #c2760c;outline-offset:-1px;background-color:rgba(194,118,12,0.08)}.dataTable td>.fa-circle{font-size:9px !important}.dataTable td.pf-table-link-cell{cursor:pointer;-webkit-transition:color 0.08s ease-out;transition:color 0.08s ease-out}.dataTable td.pf-table-action-cell{cursor:pointer}.dataTable td.pf-table-action-cell>.pf-table-action-icon-cell{-webkit-transition:color 0.08s ease-out;transition:color 0.08s ease-out}.dataTable td.pf-table-image-cell{padding:0 !important;image-rendering:-webkit-optimize-contrast}.dataTable td.pf-table-image-cell img{width:26px;box-sizing:content-box;border-left:1px solid #3c3f41;border-right:1px solid #3c3f41}.dataTable td.pf-table-image-small-cell img{width:24px;border-left:1px solid transparent;border-right:1px solid transparent}.dataTable td.pf-table-image-smaller-cell{padding:0 !important}.dataTable td.pf-table-image-smaller-cell img{width:25px;border-left:1px solid transparent;border-right:1px solid transparent}.dataTable td.pf-table-button-sm-cell{padding:0 5px}.dataTable td.pf-table-counter-cell{color:#63676a}.dataTable td.pf-table-counter-cell .pf-digit-counter-small{width:20px;display:inline-block;font-size:10px}.dataTable td.pf-table-counter-cell .pf-digit-counter-large{width:26px;display:inline-block;font-size:10px}.dataTable td .pf-table-unknown-cell{color:#d9534f;font-style:italic}.dataTable td .pf-table-cell-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dataTable td .pf-table-cell-80{width:90px}.dataTable td .pf-table-cell-90{width:100px}.dataTable td .pf-table-cell-100{width:110px}.dataTable td.separator-right,.dataTable th.separator-right{border-right:1px solid #3c3f41}.dataTable td svg.peity,.dataTable th svg.peity{display:block}table.pf-table-fixed{width:100%;table-layout:fixed}table tr.collapsing{-webkit-transition:height 0.01s ease;transition:height 0.01s ease}table tr.collapse.in{display:table-row !important}table td.pf-table-cell-10,table th.pf-table-cell-10{width:10px}table td.pf-table-cell-20,table th.pf-table-cell-20{width:20px}table td.pf-table-cell-ellipses-auto,table th.pf-table-cell-ellipses-auto{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pf-table-tools{height:45px}.pf-table-tools>.btn-labeled:not(:last-child){margin-right:10px}.pf-table-tools-action{will-change:height, opacity;opacity:0;display:none;height:0;overflow:hidden}.pf-loading-overlay{position:absolute;width:100%;height:100%;top:0;left:0;opacity:0;background:#2b2b2b;z-index:1060;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.pf-loading-overlay .pf-loading-overlay-wrapper{width:25px;height:25px;margin:auto;text-align:center;position:absolute;top:0;left:0;bottom:0;right:0}.pf-loading-overlay .pf-loading-overlay-wrapper i{padding:3px}.navbar-header-block{width:100%}.navbar-header-block .navbar-nav{width:100%}.navbar-nav li:not(.disabled):not(.hide-before):hover:before,.navbar-nav li:not(.disabled):not(.hide-before).active:before{top:-4px;opacity:1}.navbar-nav li:not(.disabled):not(.hide-before):before{content:'';position:absolute;background-color:#5cb85c;opacity:0;will-change:opacity,top;-webkit-transition:top 0.15s ease-out,opacity 0.15s ease-out;transition:top 0.15s ease-out,opacity 0.15s ease-out;width:100%;height:2px;top:0}.pf-navbar-version-info{cursor:pointer}.pf-site{will-change:transform}.sb-slidebar{will-change:transform}.sb-left .list-group-item{cursor:pointer;-webkit-box-shadow:inset -10px 0px 5px -5px rgba(0,0,0,0.4);box-shadow:inset -10px 0px 5px -5px rgba(0,0,0,0.4)}.sb-right .list-group-item{cursor:pointer;-webkit-box-shadow:inset 10px 0px 5px -5px rgba(0,0,0,0.4);box-shadow:inset 10px 0px 5px -5px rgba(0,0,0,0.4)}.list-group-item.disabled:after{content:'\f023';font-family:'Font Awesome 5 Free';font-weight:bold;color:#2b2b2b;position:absolute;right:8px}.mCSB_container,.mCSB_dragger{will-change:top, left}.pf-timestamp-counter{visibility:hidden}.pf-map-type-private{color:#7986cb}.pf-map-type-corporation{color:#5cb85c}.pf-map-type-alliance{color:#428bca}.pf-map-type-global{color:#568a89}#pf-map-module{margin:20px 10px 0 10px}#pf-map-module #pf-map-tabs a[role="tab"]:hover .pf-map-tab-handler:before{color:#e28a0d}#pf-map-module #pf-map-tabs .pf-map-tab-handler:before{content:'\22EE\22EE\00A0';display:inline-block;cursor:-moz-grab !important;cursor:-webkit-grab !important;cursor:grab !important;color:#63676a;width:12px;transition:color 0.15s ease-out, background-color 0.15s ease-out;pointer-events:all}#pf-map-module #pf-map-tabs .pf-map-type-tab-default{border-top:2px solid transparent}#pf-map-module #pf-map-tabs .pf-map-type-tab-private{border-top:2px solid #7986cb}#pf-map-module #pf-map-tabs .pf-map-type-tab-corporation{border-top:2px solid #5cb85c}#pf-map-module #pf-map-tabs .pf-map-type-tab-alliance{border-top:2px solid #428bca}#pf-map-module #pf-map-tabs .pf-map-type-tab-global{border-top:2px solid #568a89}#pf-map-module #pf-map-tabs .pf-map-tab-icon{margin-right:3px}#pf-map-module #pf-map-tabs .pf-map-tab-shared-icon{margin-left:3px}.pf-map-content-row{margin-top:10px;padding-bottom:40px}.pf-map-content-row .pf-module{font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;background:rgba(60,63,65,0.27);padding:10px;width:100%;margin-bottom:10px;will-change:height, transform, opacity;overflow:hidden;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.pf-map-content-row .pf-module:before{content:'';position:absolute;top:0;left:0;border-style:solid;border-width:0 0 9px 9px;border-color:transparent transparent transparent #3c3f41;cursor:ns-resize}.pf-map-content-row .pf-module .label{margin-bottom:10px}.pf-map-content-row .pf-module .pf-dynamic-area{background:rgba(43,43,43,0.4)}.pf-map-content-row .pf-module .pf-module-head{margin-bottom:10px}.pf-map-content-row .pf-module .pf-module-head .pf-module-handler-drag{display:inline-block;cursor:-moz-grab !important;cursor:-webkit-grab !important;cursor:grab !important;transition:color 0.15s ease-out}.pf-map-content-row .pf-module .pf-module-head .pf-module-handler-drag:before{content:'\22EE\22EE\00A0'}.pf-map-content-row .pf-module .pf-module-head .pf-module-handler-drag:hover{color:#f0ad4e}.pf-map-content-row .pf-module .pf-module-head h5{display:inline-block;line-height:16px;margin-bottom:0}.pf-map-content-row .pf-module .pf-module-head h5 .pf-module-icon-button{margin-left:5px}.pf-map-content-row .pf-module .pf-module-table{font-size:11px;white-space:nowrap}.pf-map-content-row .pf-module-spacer{margin-bottom:10px}.pf-user-status{color:#a52521}.pf-user-status-corp{color:#5cb85c}.pf-user-status-ally{color:#428bca}.pf-user-status-own{color:#7986cb}.pf-system-effect{display:none;color:#adadad;cursor:help}.pf-system-effect-magnetar{color:#e06fdf;display:inline-block}.pf-system-effect-redgiant{color:#d9534f;display:inline-block}.pf-system-effect-pulsar{color:#428bca;display:inline-block}.pf-system-effect-wolfrayet{color:#e28a0d;display:inline-block}.pf-system-effect-cataclysmic{color:#ffb;display:inline-block}.pf-system-effect-blackhole{color:#000;display:inline-block}.pf-rally,.pf-system-info-rally .pf-system-head{text-shadow:1px 1px 2px #1d1d1d;background-color:#782d77;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjEuMCIgeTE9IjEuMCIgeDI9IjAuMCIgeTI9IjAuMCI+PHN0b3Agb2Zmc2V0PSIyNSUiIHN0b3AtY29sb3I9IiMzZTI2NGUiLz48c3RvcCBvZmZzZXQ9IjI1JSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjAiLz48c3RvcCBvZmZzZXQ9IjUwJSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjAiLz48c3RvcCBvZmZzZXQ9IjUwJSIgc3RvcC1jb2xvcj0iIzNlMjY0ZSIvPjxzdG9wIG9mZnNldD0iNzUlIiBzdG9wLWNvbG9yPSIjM2UyNjRlIi8+PHN0b3Agb2Zmc2V0PSI3NSUiIHN0b3AtY29sb3I9IiMwMDAwMDAiIHN0b3Atb3BhY2l0eT0iMC4wIi8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjMDAwMDAwIiBzdG9wLW9wYWNpdHk9IjAuMCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-moz-linear-gradient(135deg, #3e264e 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,#3e264e 50%,#3e264e 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0));background-image:-webkit-linear-gradient(135deg, #3e264e 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,#3e264e 50%,#3e264e 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0));background-image:linear-gradient(-45deg, #3e264e 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,#3e264e 50%,#3e264e 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0));background-size:25px 25px;-webkit-animation:move 2.5s linear infinite;-moz-animation:move 2.5s linear infinite;-ms-animation:move 2.5s linear infinite;animation:move 2.5s linear infinite}.pf-system-security-0-0{color:#be0000}.pf-system-security-0-1{color:#ab2600}.pf-system-security-0-2{color:#be3900}.pf-system-security-0-3{color:#c24e02}.pf-system-security-0-4{color:#ab5f00}.pf-system-security-0-5{color:#bebe00}.pf-system-security-0-6{color:#73bf26}.pf-system-security-0-7{color:#00bf00}.pf-system-security-0-8{color:#00bf39}.pf-system-security-0-9{color:#39bf99}.pf-system-security-1-0{color:#28c0bf}.pf-system-sec{margin-right:5px;cursor:-moz-grab;cursor:-webkit-grab;cursor:grab}.pf-system-sec-highSec{color:#5cb85c}.pf-system-sec-lowSec{color:#e28a0d}.pf-system-sec-nullSec{color:#d9534f}.pf-system-sec-high{color:#d9534f}.pf-system-sec-mid{color:#e28a0d}.pf-system-sec-low{color:#428bca}.pf-system-sec-unknown{color:#7986cb}.pf-system-sec-abyssal{color:#e06fdf}.pf-system-status-friendly{border-color:#428bca !important;color:#428bca}.pf-system-status-occupied{border-color:#e28a0d !important;color:#e28a0d}.pf-system-status-hostile{border-color:#d9534f !important;color:#d9534f}.pf-system-status-empty{border-color:#5cb85c !important;color:#5cb85c}.pf-system-status-unscanned{border-color:#568a89 !important;color:#568a89}.pf-system-info-status-label{background-color:#63676a;color:#000;will-change:background-color;-webkit-transition:background-color 0.3s ease-out;transition:background-color 0.3s ease-out}.pf-system-info-status-label.pf-system-status-friendly{background-color:#428bca}.pf-system-info-status-label.pf-system-status-occupied{background-color:#e28a0d}.pf-system-info-status-label.pf-system-status-hostile{background-color:#d9534f}.pf-system-info-status-label.pf-system-status-empty{background-color:#5cb85c}.pf-system-info-status-label.pf-system-status-unscanned{background-color:#568a89}.pf-system-hidden{opacity:0.15 !important;pointer-events:none}.pf-system-effect-dialog-wrapper .table,.pf-jump-info-dialog .table{margin:15px 0}.pf-system-effect-dialog-wrapper .table td,.pf-jump-info-dialog .table td{text-transform:capitalize}.pf-fake-connection{box-sizing:content-box;display:inline-block;width:70px;height:4px;border-top:2px solid #63676a;border-bottom:2px solid #63676a;background-color:#3c3f41;position:relative;font-size:10px;font-family:"Oxygen","Helvetica Neue",Helvetica,Arial,sans-serif}.pf-fake-connection.pf-map-connection-stargate{background-color:#313966;border-color:#63676a}.pf-fake-connection.pf-map-connection-jumpbridge{background-color:#6caead;border-color:#3c3f41;background:repeating-linear-gradient(to right, #6caead, #6caead 10px, #3c3f41 10px, #3c3f41 20px)}.pf-fake-connection.pf-map-connection-abyssal{background-color:#5a225a;border-color:#3c3f41;background:repeating-linear-gradient(to right, #5a225a, #5a225a 5px, #3c3f41 5px, #3c3f41 10px)}.pf-fake-connection.pf-map-connection-wh-eol{border-color:#d747d6}.pf-fake-connection.pf-map-connection-wh-reduced{background-color:#e28a0d}.pf-fake-connection.pf-map-connection-wh-critical{background-color:#a52521}.pf-fake-connection.pf-map-connection-frig{border-style:dashed;border-left:none;border-right:none}.pf-fake-connection.pf-map-connection-frig:after{content:'frig';background-color:#e28a0d;color:#1d1d1d;padding:0px 3px;position:absolute;left:25px;top:-6px;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.pf-fake-connection.pf-map-connection-preserve-mass:after{content:'save mass';background-color:#a52521;color:#eaeaea;padding:0px 3px;position:absolute;left:8px;top:-6px;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.pf-structure-status-unknown{color:#568a89}.pf-structure-status-online{color:#5cb85c}.pf-structure-status-offline{color:#a52521}.tooltip-inner{color:#adadad;background-color:#3c3f41;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;padding:5px 5px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.4);box-shadow:0 6px 12px rgba(0,0,0,0.4)}.modal .tooltip{z-index:1060}.modal .tooltip .tooltip-inner{color:#313335;background-color:#adadad}.tooltip.top .tooltip-arrow{border-top-color:#63676a}.tooltip.right .tooltip-arrow{border-right-color:#63676a}.tooltip.bottom .tooltip-arrow{border-bottom-color:#63676a}.tooltip.left .tooltip-arrow{border-left-color:#63676a}td.pf-popover-trigger:hover{color:#477372}.pf-notransition{-webkit-transition:none !important;-moz-transition:none !important;-o-transition:none !important;transition:none !important}.pf-dynamic-area{padding:10px;min-height:100px;position:relative;background-color:#313335;overflow:hidden;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.pf-dynamic-area .dl-horizontal{margin-bottom:0}.pf-dynamic-area .dl-horizontal dd{min-width:100px}.pf-dynamic-area .dl-horizontal dd.txt-color,.pf-dynamic-area .dl-horizontal dd.pf-help-light,.pf-dynamic-area .dl-horizontal dd.pf-help,.pf-dynamic-area .dl-horizontal .dataTable td.pf-table-action-cell>dd.pf-table-action-icon-cell,.dataTable .pf-dynamic-area .dl-horizontal td.pf-table-action-cell>dd.pf-table-action-icon-cell{font-weight:bold}.pf-dynamic-area>[class~='alert']:last-of-type{margin-bottom:0}.pf-code-ObjectBrace{color:#782d77;font-weight:bold}.pf-code-ArrayBrace{color:#3e264e;font-weight:bold}.pf-code-PropertyName{color:#1d1d1d;font-weight:bold}.pf-code-String{color:#e28a0d}.pf-code-Number{color:#4f9e4f}.pf-code-Boolean{color:#313966;font-weight:bold}.pf-code-Function{color:#782d77}.pf-code-Null{color:#2b2b2b;font-weight:bold}.pf-code-Comma{color:#1d1d1d;font-weight:bold}code .fas,code .pf-landing .pf-landing-list li>i,.pf-landing .pf-landing-list code li>i,code .far,code .fab{color:#3c3f41;cursor:pointer}#pf-logo-wrapper{display:block}#pf-head{margin-bottom:0px}#pf-head a{-webkit-transition:color 0.15s ease-out;transition:color 0.15s ease-out;will-change:color}#pf-head a:focus{color:#477372}#pf-head a:focus img{border-color:#3c3f41}#pf-head a:hover{text-decoration:none}#pf-head a:hover .badge{color:#6caead}#pf-head a:hover img{border-color:#568a89}#pf-head i{margin-right:2px}#pf-head .pf-brand-desc{margin:6px 10px 0 90px;width:180px}#pf-head .pf-head-menu{padding:3px 10px;line-height:24px}#pf-head .pf-head-menu .pf-head-menu-logo{width:24px;height:24px;display:inline-block;float:left}#pf-head .pf-head-user-character,#pf-head .pf-head-user-ship{opacity:0;visibility:hidden}#pf-head .pf-head-active-user{cursor:pointer}#pf-head .pf-head-active-user,#pf-head #pf-head-current-location{display:none}#pf-head .pf-head-active-user .badge,#pf-head #pf-head-current-location .badge{-webkit-transition:color 0.3s ease-out;transition:color 0.3s ease-out}#pf-head .pf-head-user-character-image,#pf-head .pf-head-user-ship-image{display:inline-block;margin-top:-6px;margin-bottom:-6px;width:27px;border:1px solid #3c3f41;margin-right:3px;image-rendering:-webkit-optimize-contrast;-webkit-transition:border-color 0.15s ease-out;transition:border-color 0.15s ease-out;will-change:border-color}#pf-head .pf-head-program-status{cursor:pointer}#pf-head .navbar-text{min-width:60px}#pf-head .tooltip .tooltip-inner{color:#adadad}.pf-head{-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.4);box-shadow:0 6px 12px rgba(0,0,0,0.4)}.pf-head .badge{background-color:#3c3f41;color:#adadad}.pf-head small{font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif}#pf-footer{position:absolute;bottom:0;left:0;width:100%;margin:0;background:rgba(60,63,65,0.3)}#pf-footer a{font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;color:#375959}#pf-footer a:hover{color:#477372;text-decoration:none}.navbar-fixed-bottom{padding:2px 0}.navbar-fixed-bottom .container-fluid{padding-left:0;padding-right:0}.pf-menu-clock{position:absolute;bottom:0;width:100%;padding:6px 8px;text-align:center}#pf-global-info{position:absolute;left:0;bottom:32px;width:100%;height:32px;margin-bottom:0}.panel-reverse-order{display:table;width:100%}.panel-reverse-order .reverse-order-header{display:table-header-group}.panel-reverse-order .reverse-order-footer{display:table-footer-group}.pf-sortable-ghost{will-change:opacity;transition:opacity 0.2s ease-out;opacity:0.7 !important}.pf-sortable-ghost .pf-module-handler-drag{color:#f0ad4e;cursor:-moz-grabbing;cursor:-webkit-grabbing;cursor:grabbing}@-webkit-keyframes move{0%{background-position:0 0}100%{background-position:50px 50px}}@-moz-keyframes move{0%{background-position:0 0}100%{background-position:50px 50px}}@-ms-keyframes move{0%{background-position:0 0}100%{background-position:50px 50px}}@keyframes move{0%{background-position:0 0}100%{background-position:50px 50px}}.pf-animate{visibility:hidden;opacity:0}.pf-color-line{position:fixed;top:0;left:0;width:100%;height:3px;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuMCIgeTE9IjAuNSIgeDI9IjEuMCIgeTI9IjAuNSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzY2Yzg0ZiIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzY2Yzg0ZiIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-webkit-gradient(linear, 0% 50%, 100% 50%, color-stop(0%, #66c84f),color-stop(100%, #66c84f));background-image:-moz-linear-gradient(left, #66c84f,#66c84f 100%);background-image:-webkit-linear-gradient(left, #66c84f,#66c84f 100%);background-image:linear-gradient(to right, #66c84f,#66c84f 100%)}.pf-color-line.warning{background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuMCIgeTE9IjAuNSIgeDI9IjEuMCIgeTI9IjAuNSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2UyOGEwZCIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2UyOGEwZCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-webkit-gradient(linear, 0% 50%, 100% 50%, color-stop(0%, #e28a0d),color-stop(100%, #e28a0d));background-image:-moz-linear-gradient(left, #e28a0d,#e28a0d 100%);background-image:-webkit-linear-gradient(left, #e28a0d,#e28a0d 100%);background-image:linear-gradient(to right, #e28a0d,#e28a0d 100%)}.pf-color-line.danger{background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuMCIgeTE9IjAuNSIgeDI9IjEuMCIgeTI9IjAuNSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2E1MjUyMSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2E1MjUyMSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-webkit-gradient(linear, 0% 50%, 100% 50%, color-stop(0%, #a52521),color-stop(100%, #a52521));background-image:-moz-linear-gradient(left, #a52521,#a52521 100%);background-image:-webkit-linear-gradient(left, #a52521,#a52521 100%);background-image:linear-gradient(to right, #a52521,#a52521 100%)}.pf-splash{position:absolute;z-index:2000;background-color:#1d1d1d;color:#63676a;top:0;bottom:0;left:0;right:0;will-change:opacity}.pf-splash:not(.pf-splash-warning):not(.pf-splash-error){cursor:wait}.pf-splash .pf-splash-title{position:fixed;left:50%;top:30%;text-align:center;max-width:500px;padding:20px;-moz-transform:translate(-50%, -50%);-ms-transform:translate(-50%, -50%);-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}.pf-splash .pf-splash-debug{position:absolute;bottom:0;width:100%}.pf-splash .pf-splash-debug .pf-splash-debug-headline{padding:0 10px}.pf-splash .pf-splash-debug .pf-splash-pre{margin-bottom:0}@media (max-width: 1200px){.pf-landing #pf-logo-container{margin:5px auto}.pf-landing .pf-brand-desc{display:none}.pf-landing .navbar .navbar-brand{margin-left:10px}}.pf-landing section:not(:last-of-type){border-bottom:1px solid #2b2b2b}.pf-landing section{min-height:200px;padding:20px 0 40px 0}.pf-landing section h4:not(.pf-dynamic-area){font-size:18px;font-family:"Oxygen","Helvetica Neue",Helvetica,Arial,sans-serif;margin:5px 0 10px 0;border-bottom:1px solid #2b2b2b;line-height:34px}.pf-landing .container>.row{margin-bottom:30px}.pf-landing .alert{box-shadow:0 4px 10px rgba(0,0,0,0.4)}.pf-landing a[data-gallery]{position:relative;display:inline-block;overflow:hidden;margin:5px 0 15px 0;box-shadow:0 4px 10px rgba(0,0,0,0.4)}.pf-landing a[data-gallery]:before{content:'\f06e';font-family:'Font Awesome 5 Free';font-size:20px;color:#e28a0d;position:absolute;height:100%;width:100%;z-index:10;-webkit-transition:transform 0.1s ease-out,opacity 0.1s ease-out;transition:transform 0.1s ease-out,opacity 0.1s ease-out;will-change:transform, opacity;transform:scale(1.3, 1.3);opacity:0;display:flex;flex-direction:column;justify-content:center;align-items:center}.pf-landing a[data-gallery]:hover img{border-color:#6caead;-webkit-filter:brightness(50%);filter:brightness(50%)}.pf-landing a[data-gallery]:hover:before{-webkit-transition-delay:.05s;transition-delay:.05s;transform:scale(1, 1);opacity:1}.pf-landing a[data-gallery] .pf-landing-image-preview{border-width:1px;border-style:solid;border-color:#1d1d1d;display:inline-block;will-change:all;-webkit-filter:brightness(100%);filter:brightness(100%);-webkit-transition:all 0.2s ease-out;transition:all 0.2s ease-out}.pf-landing a[data-gallery] .pf-landing-image-preview.pf-landing-image-preview-small{height:160px}.pf-landing a[data-gallery] .pf-landing-image-preview.pf-landing-image-preview-medium{height:256px}#pf-landing-top{height:355px;border-bottom:1px solid #313335;position:relative}#pf-landing-top:before{content:'';width:100%;height:100%;position:absolute;background:url("../../img/pf-bg.jpg") #05050a;background-repeat:no-repeat;background-position:0 0;-webkit-filter:brightness(.9);filter:brightness(.9)}#pf-landing-top #pf-logo-container{-moz-transform:scale3d(0.8, 0.8, 1);-ms-transform:scale3d(0.8, 0.8, 1);-webkit-transform:scale3d(0.8, 0.8, 1);transform:scale3d(0.8, 0.8, 1)}#pf-landing-top #pf-header-container{position:absolute;width:100%;background-position:center center}#pf-landing-top #pf-header-container #pf-header-canvas{position:absolute;visibility:hidden;top:0;left:0}#pf-landing-top #pf-header-container #pf-logo-container{z-index:110}#pf-landing-top #pf-header-container #pf-header-preview-container{position:absolute;left:400px;width:590px;height:350px;top:37px}#pf-landing-top #pf-header-container #pf-header-preview-container .pf-header-preview-element{position:relative;margin-left:12px;margin-top:12px;height:155px;width:180px;padding:7px;opacity:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background-color:rgba(43,43,43,0.5)}#pf-landing-top #pf-header-container #pf-header-preview-container .pf-header-preview-element:nth-child(n+4){box-shadow:0 4px 10px rgba(0,0,0,0.4)}#pf-landing-top #pf-header-container #pf-header-preview-container .pf-header-preview-element:after{content:'';position:absolute;width:calc(100% - 14px);height:calc(100% - 14px);-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background-repeat:no-repeat;background-position:50% 50%;background-color:rgba(29,29,29,0.75)}#pf-landing-top .container{position:relative;margin-top:10px}#pf-header-preview-intel:after{background-image:url("../../img/landing/intel.png")}#pf-header-preview-map:after{background-image:url("../../img/landing/map.png")}#pf-header-preview-scope:after{background-image:url("../../img/landing/scope.png")}#pf-header-preview-signature:after{background-image:url("../../img/landing/signature.png")}#pf-header-preview-data:after{background-image:url("../../img/landing/data.png")}#pf-header-preview-gameplay:after{background-image:url("../../img/landing/gameplay.png")}#pf-landing-login{padding-top:40px;padding-bottom:30px}#pf-landing-login .row{margin-bottom:0}#pf-landing-login .pf-character-selection>div:not(.pf-character-row-animate){-webkit-transition:width 0.2s ease,margin 0.2s ease;transition:width 0.2s ease,margin 0.2s ease}#pf-landing-login .pf-dynamic-area{display:inline-block;margin:10px 5px 20px 5px;padding:10px 10px 5px 10px;min-width:155px;min-height:184px;overflow:visible;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;-webkit-box-shadow:0 4px 10px rgba(0,0,0,0.4);box-shadow:0 4px 10px rgba(0,0,0,0.4)}#pf-landing-login .pf-dynamic-area .ribbon-wrapper{z-index:5}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper{opacity:0;width:128px;border:2px solid #63676a;-moz-border-radius:8px;-webkit-border-radius:8px;border-radius:8px;-webkit-transition:border-color 0.2s ease-out,box-shadow 0.2s ease-out;transition:border-color 0.2s ease-out,box-shadow 0.2s ease-out;-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);will-change:border-color, transition;overflow:hidden;cursor:pointer;display:inline-block;background-color:#2b2b2b;box-sizing:content-box}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper:hover{border-color:#4f9e4f}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper:hover .pf-character-name{color:#4f9e4f}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper:hover .pf-character-image{-webkit-filter:grayscale(50%);filter:grayscale(50%)}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper.pf-character-active:after{font-family:"Font Awesome 5 Free";content:"\f111";font-weight:bold;position:absolute;top:5px;left:5px;height:14px;width:14px;color:#5cb85c;font-size:10px}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper .pf-character-select-image{overflow:hidden;width:128px;height:128px;position:relative}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper .pf-character-select-image .pf-character-info{position:absolute;top:0;left:0;width:0;height:100%;color:#adadad;background:rgba(60,63,65,0.8);overflow:hidden;will-change:width, transition;padding:10px 0}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper .pf-character-select-image .pf-character-info .pf-character-info-text{line-height:25px}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper .pf-character-name{font-size:13px;line-height:30px;border-top:1px solid #313335;color:#adadad;-webkit-transition:color 0.2s ease-out;transition:color 0.2s ease-out}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper .pf-character-image{-webkit-transition:all 0.3s ease-out;transition:all 0.3s ease-out;-webkit-filter:grayscale(0%);filter:grayscale(0%)}#pf-landing-login .pf-sso-login-button{position:relative;display:inline-block;width:270px;height:45px;border:none;margin-bottom:10px;background-color:transparent;background-image:url("../../img/landing/eve_sso_login_buttons_large_black_hover.png");cursor:pointer;box-shadow:0 2px 5px rgba(0,0,0,0.2);-webkit-transition:box-shadow 0.12s ease-out;transition:box-shadow 0.12s ease-out;will-change:box-shadow}#pf-landing-login .pf-sso-login-button:after{content:' ';position:absolute;width:270px;height:45px;left:0;top:0;background-image:url("../../img/landing/eve_sso_login_buttons_large_black.png");-webkit-transition:opacity 0.12s ease-in-out;transition:opacity 0.12s ease-in-out;will-change:opacity}#pf-landing-login .pf-sso-login-button:hover{box-shadow:0 4px 5px rgba(0,0,0,0.2)}#pf-landing-login .pf-sso-login-button:hover:after{opacity:0}#pf-landing-login .pf-sso-login-button.disabled{pointer-events:auto}#pf-landing-login #pf-notification-panel{display:none}#pf-header-map{position:relative;margin:0 auto;height:380px;width:600px;pointer-events:none}#pf-header-map .pf-header-svg-layer{position:absolute;top:0;left:0;right:0;bottom:0}#pf-header-map #pf-header-systems{z-index:100}#pf-header-map #pf-header-connectors{z-index:90}#pf-header-map #pf-header-connections{z-index:80}#pf-header-map #pf-header-background{z-index:70}#pf-header-map #pf-header-background .pf-header-system{display:none}#pf-header-map-bg{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none}#pf-header-map-bg img{pointer-events:none}#pf-header-map-bg #pf-map-bg-image{opacity:0;position:absolute;bottom:0;right:0;width:100%;height:100%}#pf-header-map-bg #pf-map-neocom{opacity:0;height:665px;width:21px}#pf-header-map-bg #pf-map-browser{opacity:0;position:absolute;top:110px;left:21px;height:560px;width:515px}#pf-landing-gallery-carousel{background-image:url("../../img/pf-header-bg.jpg")}#pf-landing-gallery-carousel .slide-content{border-radius:5px;pointer-events:none}#pf-landing-gallery-carousel h3{width:100%;text-align:left}.pf-landing-pricing-panel{margin-top:20px}.pricing-big{position:relative;-webkit-box-shadow:0 4px 10px rgba(0,0,0,0.4);box-shadow:0 4px 10px rgba(0,0,0,0.4)}.pricing-big .panel-heading{border-color:#3c3f41}.pricing-big .the-price{padding:1px 0;background:#2d3031;text-align:center}.pricing-big .the-price .subscript{font-size:12px;color:#63676a}.pricing-big .price-features{background:#3c3f41;color:#adadad;padding:20px 15px;line-height:22px}.pricing-big .price-features:not(.price-features-fluid){min-height:205px}.pricing-big .price-features .list-unstyled.text-left li,.pricing-big .price-features .text-left.list-inline li{text-indent:-1em;padding-left:1.5em}.pricing-big .price-features .list-unstyled.text-left li .fa,.pricing-big .price-features .text-left.list-inline li .fa{text-indent:0}.pricing-big table tr td{line-height:1}#pf-landing-admin .pf-landing-admin-login{margin-bottom:0}#pf-landing-about .pf-landing-about-me{width:256px;height:256px;border:none;-webkit-box-shadow:0 4px 10px rgba(0,0,0,0.4);box-shadow:0 4px 10px rgba(0,0,0,0.4)}.pf-landing-footer{padding:30px 0;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;background-color:#171717}.pf-landing-footer .row{margin-bottom:0 !important}.pf-landing-footer .pf-social-networks>li{display:inline-block;line-height:1}.pf-landing-footer .pf-social-networks>li a{display:inline-block;background:rgba(99,103,106,0.5);line-height:24px;text-align:center;font-size:14px;margin-right:3px;padding:6px 6px 2px 6px;width:36px}.pf-body[data-script='admin'] .navbar-brand:hover{color:#777}.pf-body[data-script='admin'] .panel{text-align:initial}.pf-body[data-script='admin'] .panel h3 img{position:absolute;right:0;top:0;margin:4px 14px 0 0;border-radius:30%}.pf-body[data-script='admin'] .form-horizontal .panel{color:#adadad}#pf-static-logo-svg{opacity:0;position:absolute;z-index:105;overflow:visible}#pf-static-logo-svg path{will-change:fill, opacity, transform, translateZ, translateX, translateY;pointer-events:all;-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}.logo-ploygon-top-right{fill:#477372;fill-rule:evenodd;stroke:#477372;stroke-width:0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1}.logo-ploygon-bottom-left{fill:#5cb85c;fill-rule:evenodd;stroke:#5cb85c;stroke-width:0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1}.logo-ploygon-bottom-right{fill:#375959;fill-rule:evenodd;stroke:#375959;stroke-width:0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1}.logo-ploygon-top-left{fill:#63676a;fill-opacity:1;fill-rule:evenodd;stroke:#63676a;stroke-width:0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1}@-webkit-keyframes bounce{0%, 20%, 50%, 80%, 100%{-webkit-transform:translateY(0)}40%{-webkit-transform:translateY(-8px)}60%{-webkit-transform:translateY(-4px)}}@keyframes bounce{0%, 20%, 50%, 80%, 100%{transform:translateY(0)}40%{transform:translateY(-8px)}60%{transform:translateY(-4px)}}#pf-map-tab-element{max-width:2535px;margin:0 auto}.pf-map-tab-content .pf-map-wrapper{position:relative;resize:vertical;width:100%;height:555px;max-width:2535px;max-height:1000px;min-height:250px;overflow:auto;padding:5px;background:rgba(43,43,43,0.93);box-shadow:inset -3px 3px 10px 0 rgba(0,0,0,0.3);will-change:width, height;border-bottom-right-radius:5px;border-bottom-left-radius:5px;border-width:1px;border-style:solid;border-color:#313335}.pf-map-tab-content .pf-map-wrapper:before{content:'';position:absolute;bottom:0;right:0;border-style:solid;border-width:14px 14px 0 0;border-color:transparent #313335 transparent transparent;cursor:nwse-resize}.pf-map-tab-content .pf-map-wrapper:focus,.pf-map-tab-content .pf-map-wrapper:hover{border:1px solid #3c3f41}.pf-map-tab-content .pf-map-wrapper:focus:before,.pf-map-tab-content .pf-map-wrapper:hover:before{border-color:transparent #3c3f41 transparent transparent}.pf-map-overlay{position:absolute;display:none;z-index:10000;right:26px;background:rgba(0,0,0,0.25);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.pf-map-overlay.pf-map-overlay-timer{bottom:23px;width:36px;height:36px}.pf-map-overlay.pf-map-overlay-info{top:8px;height:36px;min-height:36px;min-width:36px;padding:3px 3px 3px 8px;line-height:26px}.pf-map-overlay.pf-map-overlay-info i{margin:0;margin-top:5px;width:0;height:26px;opacity:0;color:#63676a;transform:scale(0);transform-origin:50% 50% 0px;-webkit-transition:color 0.18s ease-in-out;transition:color 0.18s ease-in-out;cursor:help;will-change:all}.pf-map-overlay.pf-map-overlay-info i.fas,.pf-map-overlay.pf-map-overlay-info .pf-landing .pf-landing-list li>i,.pf-landing .pf-landing-list .pf-map-overlay.pf-map-overlay-info li>i,.pf-map-overlay.pf-map-overlay-info i.far{font-size:20px}.pf-map-overlay.pf-map-overlay-info i.glyphicon{margin-top:1px;font-size:22px;padding-left:3px}.pf-map-overlay.pf-map-overlay-info i.active,.pf-map-overlay.pf-map-overlay-info i:hover{color:#c2760c}.pf-map-overlay.pf-map-overlay-local{top:54px;min-height:80px;width:32px;display:block;will-change:width}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content{margin-right:36px;padding:5px 0 5px 5px;overflow:hidden}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .pf-map-overlay-headline{font-size:12px;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;white-space:nowrap}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .pf-map-overlay-headline .badge{margin-left:5px}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .pf-map-overlay-headline .pf-system-sec{cursor:default}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .pf-local-table{font-size:10px}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .pf-local-table td{white-space:nowrap}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .dataTables_paginate,.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .dataTables_empty{white-space:nowrap}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .pf-map-overlay-toolbar .pf-map-overlay-toolbar-icon{vertical-align:0;margin-top:14px}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .pf-map-overlay-toolbar .pf-map-overlay-toolbar-checkbox{display:inline-block;margin-bottom:0}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-main{position:absolute;top:0;right:0;height:100%;padding:3px;width:32px;cursor:pointer;text-align:center;border-left:1px solid #2b2b2b}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-main .pf-map-overlay-local-trigger{margin-bottom:10px}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-main .pf-map-overlay-local-trigger:hover,.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-main .pf-map-overlay-local-trigger.right{color:#c2760c}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-main i{font-size:12px}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-jumps{position:absolute;bottom:5px;width:calc(100% - 6px)}.pf-map-overlay.pf-map-overlay-local .badge{font-family:Arial, sans-serif;background-color:#2b2b2b}.pf-grid-small:before{content:' ';display:block;position:absolute;left:0;top:0;width:100%;height:100%;opacity:0.6;background:url('data:image/png;base64,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') !important}.pf-map{width:2500px;height:1500px;position:relative;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif}.pf-map .jsplumb-overlay{opacity:1;pointer-events:none;will-change:opacity;-webkit-transition:opacity 0.18s ease-out;transition:opacity 0.18s ease-out}.pf-map .jsplumb-hover.jsplumb-overlay{opacity:0 !important}.pf-map .jsplumb-hover:not(.jsplumb-overlay){-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-delay:.5s;animation-delay:.5s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-timing-function:linear;animation-timing-function:linear;animation-iteration-count:infinite;-webkit-animation-iteration-count:infinite;-webkit-animation-name:bounce;animation-name:bounce}.pf-map .jsplumb-target-hover,.pf-map .jsplumb-source-hover{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-delay:.5s;animation-delay:.5s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-timing-function:linear;animation-timing-function:linear;animation-iteration-count:infinite;-webkit-animation-iteration-count:infinite;-webkit-animation-name:bounce;animation-name:bounce;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.3);box-shadow:0 6px 12px rgba(0,0,0,0.3)}.pf-map .pf-system{position:absolute;min-width:60px;height:auto;overflow:hidden;background-color:#313335;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;z-index:100;will-change:top, left, opacity;border-width:2px;border-style:solid;border-color:#63676a;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-webkit-transition:border-color 0.2s ease-out,box-shadow 0.12s ease-out,opacity 0.12s ease-out;transition:border-color 0.2s ease-out,box-shadow 0.12s ease-out,opacity 0.12s ease-out;-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}.pf-map .pf-system:hover{-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.3);box-shadow:0 6px 12px rgba(0,0,0,0.3);-moz-transform:translate3d(0, -1px, 0) !important;-ms-transform:translate3d(0, -1px, 0) !important;-webkit-transform:translate3d(0, -1px, 0) !important;transform:translate3d(0, -1px, 0) !important}.pf-map .pf-system:hover:not(.jsPlumb_dragged){z-index:1040 !important}.pf-map .pf-system .pf-system-head{padding:0 3px 0 3px;cursor:pointer;font-family:Arial, sans-serif;font-weight:bold;white-space:nowrap}.pf-map .pf-system .pf-system-head .pf-system-head-name{border:none;display:inline-block;min-width:50px;color:#adadad;margin-right:2px}.pf-map .pf-system .pf-system-head .pf-system-head-counter{display:inline-block;text-align:right;min-width:8px;margin-right:1px;color:#5cb85c;cursor:help}.pf-map .pf-system .pf-system-head .pf-system-head-counter:empty{display:none}.pf-map .pf-system .pf-system-head .pf-system-effect{font-size:11px}.pf-map .pf-system .pf-system-head .fa-lock{font-size:11px;display:none}.pf-map .pf-system .pf-system-head .pf-system-head-expand{margin-left:2px;color:#63676a;width:10px;display:none}.pf-map .pf-system .pf-system-head .editable-empty{font-style:normal}.pf-map .pf-system .pf-system-head-info{display:flex;color:#7c8184;font-size:10px;line-height:10px;padding-right:1px;margin-bottom:2px}.pf-map .pf-system .pf-system-head-info [class^="pf-system-sec-"]{cursor:help}.pf-map .pf-system .pf-system-head-info-left{flex:1}.pf-map .pf-system .pf-system-head-info-right{flex:1;text-align:right}.pf-map .pf-system .pf-system-body{height:0px;width:100%;overflow:hidden;cursor:-moz-grab;cursor:-webkit-grab;cursor:grab;padding:0 4px;white-space:nowrap;display:none;will-change:width;border-top-width:1px;border-top-style:dashed;border-top-color:#63676a}.pf-map .pf-system .pf-system-body .pf-system-body-item{position:relative;color:#7c8184;font-size:10px;line-height:16px;height:16px}.pf-map .pf-system .pf-system-body .pf-system-body-item .pf-system-body-right{float:right;color:#f0ad4e;width:50px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:none}.pf-map .pf-system .pf-system-body .pf-system-body-item .pf-user-status{font-size:6px;width:10px;vertical-align:middle}.pf-map .pf-system .pf-system-body .pf-system-body-item .pf-system-body-item-name{position:absolute;display:inline-block;width:calc(100% - 10px);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.pf-map .pf-system .tooltip.in{opacity:1}.pf-map .pf-system .tooltip .tooltip-inner{color:#313335;background-color:#adadad;padding:3px 3px}.pf-map .pf-system-active:not(.pf-map-endpoint-source):not(.pf-map-endpoint-target){-webkit-box-shadow:#ffb 0px 0px 8px 0px;box-shadow:#ffb 0px 0px 8px 0px}.pf-map .pf-system-selected:not(.pf-map-endpoint-source):not(.pf-map-endpoint-target),.pf-map .jsPlumb_dragged:not(.pf-map-endpoint-source):not(.pf-map-endpoint-target){-webkit-box-shadow:#58100d 0px 0px 8px 0px;box-shadow:#58100d 0px 0px 8px 0px;background-color:#58100d}.pf-map .pf-system-selected:not(.pf-map-endpoint-source):not(.pf-map-endpoint-target) .pf-system-head,.pf-map .jsPlumb_dragged:not(.pf-map-endpoint-source):not(.pf-map-endpoint-target) .pf-system-head,.pf-map .pf-system-selected:not(.pf-map-endpoint-source):not(.pf-map-endpoint-target) .pf-system-body,.pf-map .jsPlumb_dragged:not(.pf-map-endpoint-source):not(.pf-map-endpoint-target) .pf-system-body{background-color:#58100d}.pf-map .pf-system-locked .pf-system-sec{cursor:default !important}.pf-map .pf-system-locked .pf-system-body{cursor:default !important}.pf-map .pf-system-locked .fa-lock{color:#63676a !important;display:inline-block !important}.pf-map .pf-system-debug{position:absolute;color:#fff;font-size:10px;line-height:22px;text-align:center;pointer-events:none;z-index:500}.pf-map .pf-map-endpoint-source,.pf-map .pf-map-endpoint-target{z-index:90}.pf-map .pf-map-endpoint-source svg,.pf-map .pf-map-endpoint-target svg{overflow:visible}.pf-map .pf-map-endpoint-source svg circle,.pf-map .pf-map-endpoint-target svg circle{-webkit-transition:stroke 0.18s ease-out,fill 0.18s ease-out;transition:stroke 0.18s ease-out,fill 0.18s ease-out}.pf-map .pf-map-endpoint-source svg *,.pf-map .pf-map-endpoint-target svg *{stroke:#63676a;stroke-width:2;fill:#3c3f41;cursor:pointer}.pf-map .pf-map-endpoint-source:hover circle,.pf-map .pf-map-endpoint-target:hover circle{stroke:#e28a0d !important}.pf-map .pf-map-endpoint-source.jsplumb-hover,.pf-map .pf-map-endpoint-target.jsplumb-hover{z-index:95}.pf-map .pf-map-endpoint-source.jsplumb-dragging circle,.pf-map .pf-map-endpoint-target.jsplumb-dragging circle{stroke:#e28a0d}.pf-map .jsplumb-endpoint-drop-allowed circle{stroke:#5cb85c !important;fill:#5cb85c !important}.pf-map .jsplumb-endpoint-drop-forbidden circle{stroke:#a52521 !important;fill:#a52521 !important}.pf-map svg.jsplumb-connector{cursor:pointer;stroke-linecap:round;-webkit-transition:stroke 0.18s ease-out;transition:stroke 0.18s ease-out;will-change:all}.pf-map svg.jsplumb-connector path{-webkit-transition:stroke 0.18s ease-out;transition:stroke 0.18s ease-out}.pf-map svg.jsplumb-connector path:nth-child(2){stroke:#3c3f41}.pf-map svg.jsplumb-connector path:first-child{stroke:#63676a}.pf-map svg.jsplumb-connector.jsplumb-hover{z-index:80;filter:drop-shadow(-3px 3px 4px rgba(0,0,0,0.3))}.pf-map svg.jsplumb-connector.jsplumb-hover:not(.pf-map-connection-jumpbridge):not(.pf-map-connection-abyssal) path:first-child{stroke:#eaeaea}.pf-map svg.jsplumb-connector.jsplumb-hover.pf-map-connection-jumpbridge path:nth-child(2),.pf-map svg.jsplumb-connector.jsplumb-hover.pf-map-connection-abyssal path:nth-child(2){stroke:#eaeaea}.pf-map svg.jsplumb-connector.jsplumb-dragging{-webkit-transition:opacity 0.18s ease-out;transition:opacity 0.18s ease-out;opacity:0.4;z-index:80}.pf-map svg.pf-map-connection-abyssal{z-index:40}.pf-map svg.pf-map-connection-abyssal path:first-child{stroke:rgba(255,255,255,0)}.pf-map svg.pf-map-connection-abyssal path:nth-child(2){stroke:#5a225a}.pf-map svg.pf-map-connection-abyssal:hover path:first-child{stroke:rgba(255,255,255,0)}.pf-map svg.pf-map-connection-abyssal:hover path:nth-child(2){stroke:#eaeaea}.pf-map svg.pf-map-connection-jumpbridge{z-index:50}.pf-map svg.pf-map-connection-jumpbridge path:first-child{stroke:rgba(255,255,255,0)}.pf-map svg.pf-map-connection-jumpbridge path:nth-child(2){stroke:#568a89}.pf-map svg.pf-map-connection-jumpbridge:hover path:first-child{stroke:rgba(255,255,255,0)}.pf-map svg.pf-map-connection-jumpbridge:hover path:nth-child(2){stroke:#eaeaea}.pf-map svg.pf-map-connection-stargate{z-index:60}.pf-map svg.pf-map-connection-stargate path:first-child{stroke:#63676a}.pf-map svg.pf-map-connection-stargate path:nth-child(2){stroke:#313966}.pf-map svg.pf-map-connection-stargate:hover path:first-child{stroke:#eaeaea}.pf-map svg.pf-map-connection-wh-fresh,.pf-map svg.pf-map-connection-wh-reduced,.pf-map svg.pf-map-connection-wh-critical,.pf-map svg.pf-map-connection-wh-eol{z-index:70}.pf-map svg.pf-map-connection-wh-eol path:first-child{stroke:#d747d6}.pf-map svg.pf-map-connection-wh-eol:hover path:first-child{stroke:#eaeaea}.pf-map svg.pf-map-connection-wh-reduced path:nth-child(2){stroke:#e28a0d}.pf-map svg.pf-map-connection-wh-critical path:nth-child(2){stroke:#a52521}.pf-map svg.pf-map-connection-active{filter:drop-shadow(0px 0px 3px #ffb)}.pf-map .pf-map-connection-overlay{padding:1px 4px;font-size:10px;z-index:1020;background-color:#3c3f41;color:#adadad;-moz-border-radius:6px;-webkit-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.4);box-shadow:0 6px 12px rgba(0,0,0,0.4)}.pf-map .frig{background-color:#f0ad4e;color:#1d1d1d}.pf-map .mass{background-color:#a52521;color:#eaeaea}.pf-map .eol{background-color:#3c3f41;color:#d747d6}.pf-map .pf-map-connection-arrow-overlay{stroke:#313335;fill:#5cb85c}.pf-map .pf-map-connection-diamond-overlay{stroke:#313335;fill:#d9534f;animation-name:pfPulseDanger;animation-duration:4s;animation-iteration-count:infinite}.pf-map .pf-map-connection-small-overlay{filter:blur(0px);-webkit-font-smoothing:antialiased;font-family:Arial, sans-serif;padding:2px;font-size:9.5px;line-height:100%;z-index:1020;background-color:#3c3f41;color:#adadad;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-webkit-box-shadow:0 3px 6px rgba(0,0,0,0.3);box-shadow:0 3px 6px rgba(0,0,0,0.3)}.ui-dialog-content label,.ui-dialog-content .editable-input .editable-checklist>div>label>span,.editable-input .ui-dialog-content .editable-checklist>div>label>span{min-width:60px}.dropdown-menu{min-width:150px;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;z-index:1050;will-change:opacity, top, left, transform}.dropdown-menu a{cursor:pointer}.dropdown-menu i{width:20px;pointer-events:none}.dropdown-menu .dropdown-menu{border-top-left-radius:0;border-bottom-left-radius:0;clip-path:inset(-12px -12px -12px 0px)}.dropdown-menu[role]>li:not(.disabled){position:relative}.dropdown-menu[role]>li:not(.disabled):before{content:'';position:absolute;background-color:#5cb85c;opacity:0;will-change:opacity,left;-webkit-transition:left 0.15s ease-out,opacity 0.15s ease-out;transition:left 0.15s ease-out,opacity 0.15s ease-out;width:2px;height:100%;left:0}.dropdown-menu[role]>li:not(.disabled):hover:before{left:-4px;opacity:1}.dropdown-menu>li.disabled{cursor:not-allowed;pointer-events:none}.dropdown-menu>li>a{padding:3px 8px}.pf-system-tooltip-inner{color:#adadad;padding:2px 4px;min-width:25px;-webkit-transition:color 0.2s ease-out;transition:color 0.2s ease-out}.pf-system-info-module h5{text-transform:capitalize}.pf-system-info-module .pf-system-info-description-area{min-height:124px}.pf-system-info-module .pf-system-info-description-area .editable-container{width:100%}.pf-system-info-module .pf-system-info-description-area .editable-container .editableform{width:100%}.pf-system-info-module .pf-system-info-description-area .editable-container .editableform .form-group{width:100%}.pf-system-info-module .pf-system-info-description-area .editable-container .editableform .form-group .editable-input{width:calc(100% - 75px)}.pf-system-info-module .pf-system-info-description-area .editable-container .editableform .form-group .editable-input textarea{width:100%;max-height:200px;resize:vertical}.pf-system-signature-module .progress-label-right{margin-right:20px;vertical-align:middle;font-size:11px}.pf-system-signature-module .pf-system-progress-scanned{display:inline-block;margin-left:20px;width:calc(100% - 225px)}.pf-system-signature-module .pf-system-progress-scanned .progress{margin-bottom:3px}.pf-system-signature-module .pf-sig-table-clear-button{will-change:opacity, transform;display:none;color:#a52521}.pf-system-signature-module .pf-sig-table{font-size:10px}.pf-system-signature-module .pf-sig-table .pf-sig-table-edit-name-input{text-transform:uppercase}.pf-system-signature-module .pf-sig-table .editable-container.editable-inline{display:inline}.pf-system-signature-module .pf-sig-table .editable-container.editable-inline .control-group{display:inline}.pf-system-signature-module .pf-sig-table .editable-container.editable-inline .control-group .editable-input{display:inline}.pf-system-signature-module .pf-sig-table .pf-editable-description{width:100%;background-color:#2b2b2b;max-height:50px;font-size:11px;line-height:14px;padding:3px 6px}.pf-system-signature-module .pf-sig-table-secondary th{pointer-events:none}.pf-system-signature-module .pf-sig-table-secondary th:after{display:none !important}.pf-system-signature-module .pf-sig-table-secondary th.pf-table-counter-cell{color:transparent}.pf-system-graph-module .pf-system-graph{position:relative;width:100%;height:100px}.pf-system-route-module .pf-system-route-table{width:100%;font-size:10px}.pf-system-route-module .pf-system-route-table td{text-transform:capitalize}.pf-system-route-module .pf-system-route-table td>.fas,.pf-system-route-module .pf-system-route-table td>.far{font-size:10px}.pf-system-route-module .pf-system-route-table td .pf-fake-connection{display:none;width:12px;height:3px;cursor:pointer}.pf-system-route-module .pf-system-route-table td .pf-fake-connection[data-disabled]{cursor:initial}.pf-system-route-module .pf-system-route-table td .pf-fake-connection.pf-map-connection-frig{width:32px}.pf-system-route-module .pf-system-route-table td .pf-fake-connection.pf-map-connection-frig:after{left:4px}.pf-system-route-module .pf-system-route-table td .pf-fake-connection.pf-map-connection-preserve-mass{width:26px}.pf-system-route-module .pf-system-route-table td .pf-fake-connection.pf-map-connection-preserve-mass:after{content:"\f071";font-family:"Font Awesome 5 Free";font-style:normal;font-weight:bold;left:4px}.pf-system-route-module .pf-system-route-table td.pf-table-jump-cell .pf-fake-connection{display:inline-block}.pf-system-intel-module .pf-system-structure-table{font-size:10px}.pf-system-killboard-module .pf-system-killboard-graph-kills{width:100%;height:100px;position:relative;margin-bottom:30px}.pf-system-killboard-module .pf-system-killboard-list{padding-bottom:10px;border-bottom:1px solid #2b2b2b}.pf-system-killboard-module .pf-system-killboard-list>li{margin-left:0;overflow:visible;min-height:50px;will-change:transform, opacity, margin-left;-webkit-transition:margin-left 0.12s cubic-bezier(0.3, 0.8, 0.8, 1.7);transition:margin-left 0.12s cubic-bezier(0.3, 0.8, 0.8, 1.7)}.pf-system-killboard-module .pf-system-killboard-list>li h5{white-space:nowrap}.pf-system-killboard-module .pf-system-killboard-list>li h3{width:120px;display:inline-block}.pf-system-killboard-module .pf-system-killboard-list>li .pf-system-killboard-img-char{display:inline;width:32px;margin-top:9px;margin-right:10px;border:1px solid #2b2b2b;will-change:border-color;-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%;-webkit-transition:border-color 0.12s ease-out;transition:border-color 0.12s ease-out}.pf-system-killboard-module .pf-system-killboard-list>li .pf-system-killboard-img-char:hover{border-color:#568a89}.pf-system-killboard-module .pf-system-killboard-list>li .pf-system-killboard-img-corp,.pf-system-killboard-module .pf-system-killboard-list>li .pf-system-killboard-img-ally{display:inline;width:20px;margin-right:10px;border:1px solid #2b2b2b;will-change:border-color;-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%;-webkit-transition:border-color 0.12s ease-out;transition:border-color 0.12s ease-out}.pf-system-killboard-module .pf-system-killboard-list>li .pf-system-killboard-img-corp:hover,.pf-system-killboard-module .pf-system-killboard-list>li .pf-system-killboard-img-ally:hover{border-color:#568a89}.pf-system-killboard-module .pf-system-killboard-list>li .pf-system-killboard-img-ship{width:50px;margin-right:10px;border:1px solid #2b2b2b;will-change:border-color;-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%;-webkit-transition:border-color 0.12s ease-out;transition:border-color 0.12s ease-out}.pf-system-killboard-module .pf-system-killboard-list>li .pf-system-killboard-img-ship:hover{border-color:#568a89}.pf-system-killboard-module .pf-system-killboard-list>li:before{content:"\f054";font-family:"Font Awesome 5 Free";font-weight:bold;position:absolute;z-index:10;left:-18px;top:15px;color:#477372;opacity:0;will-change:opacity, left;-webkit-transition:all 0.12s ease-out;transition:all 0.12s ease-out}.pf-system-killboard-module .pf-system-killboard-list>li:hover{margin-left:10px}.pf-system-killboard-module .pf-system-killboard-list>li:hover:before{opacity:1;left:-15px}.pf-connection-info-module .row{display:flex;align-items:stretch;flex-wrap:wrap}.pf-connection-info-module .pf-dynamic-area{display:flex;justify-content:center;align-items:center;margin-bottom:10px;min-height:inherit}.pf-connection-info-module .pf-connection-info-table{width:100%;font-size:10px}.pf-connection-info-module .pf-connection-info-table td>.fas,.pf-connection-info-module .pf-connection-info-table td>.far{font-size:10px}input,select{background-color:#313335;color:#adadad;border:1px solid #63676a;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif}input:focus,select:focus{border-color:#568a89}input:-webkit-autofill,select:-webkit-autofill{background-color:#313335 !important;-webkit-box-shadow:0 0 0 50px #313335 inset !important;box-shadow:0 0 0 50px #313335 inset !important;-webkit-text-fill-color:#adadad}input:-webkit-autofill:focus,select:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 50px #313335 inset !important;box-shadow:0 0 0 50px #313335 inset !important;-webkit-text-fill-color:#adadad}input::-webkit-file-upload-button,select::-webkit-file-upload-button{background-color:transparent;border:none;color:#63676a;outline:none}input[disabled]::-moz-placeholder,select[disabled]::-moz-placeholder{color:transparent;opacity:1}input[disabled]:-ms-input-placeholder,select[disabled]:-ms-input-placeholder{color:transparent}input[disabled]::-webkit-input-placeholder,select[disabled]::-webkit-input-placeholder{color:transparent}input.pf-select2,select.pf-select2{height:32px;padding:6px 12px}textarea{min-height:32px;max-height:400px;resize:vertical}fieldset[disabled] .form-control{color:#63676a}fieldset[disabled] .form-control::-moz-placeholder{color:transparent;opacity:1}fieldset[disabled] .form-control:-ms-input-placeholder{color:transparent}fieldset[disabled] .form-control::-webkit-input-placeholder{color:transparent}fieldset[disabled] .input-icon-left .fa-stack i:last-child,fieldset[disabled] .input-icon-right .fa-stack i:last-child{color:#3c3f41}#select2-pf-map-dialog-edit-icon-select-container,#select2-pf-map-dialog-new-icon-select-container,#select2-pf-map-dialog-new-icon-select-results,#select2-pf-map-dialog-edit-icon-select-results,.pf-form-icon-field{font-family:"Font Awesome 5 Free";font-weight:bold}#select2-pf-map-dialog-edit-icon-select-container option,#select2-pf-map-dialog-new-icon-select-container option,#select2-pf-map-dialog-new-icon-select-results option,#select2-pf-map-dialog-edit-icon-select-results option,.pf-form-icon-field option{font-family:inherit;font-weight:inherit}.input-icon-left:not(.input-icon-right) .fa-stack:first-child{left:14px}.input-icon-right:not(.input-icon-left) .fa-stack:first-child{right:14px}.input-icon-left.input-icon-right .fa-stack:first-child{left:14px}.input-icon-left.input-icon-right .fa-stack:nth-child(2){right:14px}.input-icon-left .fa-stack,.input-icon-right .fa-stack{position:absolute;top:4px}.input-icon-left .fa-stack i:first-child,.input-icon-right .fa-stack i:first-child{color:#63676a}.input-icon-left .fa-stack i:last-child,.input-icon-right .fa-stack i:last-child{color:#313335}.btn.btn-fake{border:none;text-align:left;cursor:default;opacity:1 !important;color:#63676a !important;background-color:#3c3f41 !important}.btn .btn-progress{position:absolute;display:block;height:100%;background-color:rgba(92,184,92,0.2);max-width:100%;width:0;top:0;left:0;overflow:hidden;line-height:30px;color:#f0ad4e;font-size:10px;text-align:left;-webkit-transition:width 0.1s linear;transition:width 0.1s linear}.pf-form-dropzone{border:2px dashed #2b2b2b;height:100px;background-color:#353739;text-align:center;font-size:20px;line-height:100px;margin:15px 0;color:#2b2b2b;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;-webkit-transition:color 0.18s ease-out,border-color 0.18s ease-out;transition:color 0.18s ease-out,border-color 0.18s ease-out}.pf-form-dropzone:hover{color:#568a89;border-color:#568a89;cursor:-moz-grabbing;cursor:-webkit-grabbing;cursor:grabbing}.toggle.btn:active{box-shadow:none}.pf-form-field-char-count{display:block;margin-top:10px}.pf-icon{display:inline-block}.pf-icon.disabled{opacity:0.5;color:#63676a}.pf-icon-dotlan,.pf-icon-anoik{position:relative;display:inline-block;width:17px;height:17px;opacity:0.8;margin:-5px 0px 0 10px}.pf-icon-dotlan:after{content:'';position:absolute;left:0;right:0;height:17px;width:17px;margin-top:4px;background:url('data:image/png;base64,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') no-repeat}.pf-icon-anoik:after{content:'';position:absolute;left:0;right:0;height:17px;width:17px;margin-top:4px;background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAMAUExURRoQEB4PERwRCx0SDRoTDSQQDiERDhgUExwTEx4UDyQUEiAWEiYVDSoUDigUFC4TEB0YEiIXEyAaFScYFiQZFSkYEi0XEzEWEzQXECAcGyYbGCoaGC4ZGSIdGDQZFyIeHSUeFS0cFiwcGjEbFiEgGiUfGioeFikeGjEeEzQdGTEfGTodFjkdGiwhHS4hGTUfHyojGTEhHiUlHjcgGykkHjMiGy8jIEIfGzkiHT8hGj4hHzsjGjkjIzEmIjMmHjUlIycpJTclHi8oHjwkIC4oI0MlHUIlIj4nIj0nJkglIjspIkEoHzIsJjYrJzsqJzkrI0wnHSwvLDAvKEcpIUYpJjYuJEAsIT8sJUMrJjouKjYwKkwtJUstKj8xKUcvKkYvLz4yLkIxLkQxKjo0LkYyJlMuKEsxKD01Ki85NFExKVAyL0I2MlgxJk00MEU3Ljo6Mkk2Lz85M0k3NFgzMlU2Lk45LVY3ND8+OEo8M007OU87NFQ6NUk9OVM6OkU/OUc/NERBNWI6L01BPUREPVpBQVxCPVNFPElJQVNGQldFQllFPk9IQlJJP0dNRHdDNE9ORlVOSF9MSVdPRGZLRVxPTWNOR1RTRlNTS09VTGBRR2RTRG1STGBYUWZXVFZcUmdYTmxXT15cUXBYXHRYUnBbTmhfVm1iUnpeWF9mXHVgWHFhX3JiWWdmXWxnVXhmV35pYXZtY31saYZqZHJwZINtVGxyZ2Z0aYBuX3tyYIRvZ2x8cYV1cX94bYh2Z4t1bYF5Z3Z8c5J2cop8ZY99bZZ7epN+dYiCdZ97d4WEfJOAfHmLf5CHdYaLgJqHeJaKc4KPfZeLeaCIgJ+KdaGJh5KPhZuVgo2ZiZKYjp2YjaqVja6XiKiag46jkrWYlbOdh6+elbWdlqiij8Gcl7ulj7mllaSslb2noLOsmayxo8ippLqyl6e3qMewq8K8p8i9sbnEttK/uszHtcXTx9vQsN/Nx+zQwd/ZxN/ez/Db1e7hvtjn4fPx5ub17P7w6vv++////59V2N4AAAE/SURBVHjaADIBzf4AElERERpMi3GLi2BZNQ0ODgUAGQkRNEQ9Wlp+T2CwVyEWFg0ABBE0CSBai5yCWXyfiFczDQ0AEjICNmOPs8rYknjDiu5fIyMAJREURFWPlqj+18beqtOKSCkABBAnLUSeb5r71ZnZxa97WCMAAiUlGkSHh8Kl6smv6aebeywAAhE0RD02cSqtYpP0vmJ7WEYAAhEaNi00EyIFa6l6WDVDajkAAgkRLRoUCgw1KpFXWDNHXDoAAggJCREGFE4cLE5XYjNYW0YABAACAgoJBgY2TiFXQ0czWFMAAggAAhEJFBQnKk5iR0NFXHQAAAAAAhEUCicxKjM1VyMsN1QAAgkGChsnKkFBSmJXS0VFUGwAAgIBBgoTGyIxISEjQx4YXEYAAgIAAgkbGxshIzUzDxgrQywDAKFaTfFe+Wg9AAAAAElFTkSuQmCC') no-repeat}.modal-content h2,.panel-body h2{font-family:"Oxygen","Helvetica Neue",Helvetica,Arial,sans-serif;letter-spacing:0;font-size:14px;margin:20px 0;line-height:normal}.modal-content h2.pf-dynamic-area,.modal-content h4.pf-dynamic-area,.panel-body h2.pf-dynamic-area,.panel-body h4.pf-dynamic-area{min-height:0;margin:0 0 10px 0}.modal-content h2.pf-dynamic-area>img,.modal-content h4.pf-dynamic-area>img,.panel-body h2.pf-dynamic-area>img,.panel-body h4.pf-dynamic-area>img{margin:-10px 5px -10px -10px;width:35px}.modal-content h2[data-toggle="collapse"],.modal-content h4[data-toggle="collapse"],.panel-body h2[data-toggle="collapse"],.panel-body h4[data-toggle="collapse"]{cursor:pointer}.modal-content h2[data-toggle="collapse"]:hover:after,.modal-content h4[data-toggle="collapse"]:hover:after,.panel-body h2[data-toggle="collapse"]:hover:after,.panel-body h4[data-toggle="collapse"]:hover:after{color:#e28a0d !important}.modal-content h2[data-toggle="collapse"]:after,.modal-content h4[data-toggle="collapse"]:after,.panel-body h2[data-toggle="collapse"]:after,.panel-body h4[data-toggle="collapse"]:after{content:"\f078";font-family:"Font Awesome 5 Free";font-style:normal;font-weight:bold;font-size:13px;padding-right:10px;position:absolute;color:#e28a0d;top:10px;right:6px}.modal-content h2[data-toggle="collapse"].collapsed:after,.modal-content h4[data-toggle="collapse"].collapsed:after,.panel-body h2[data-toggle="collapse"].collapsed:after,.panel-body h4[data-toggle="collapse"].collapsed:after{top:13px;right:5px;color:#63676a;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.modal-content .dataTables_wrapper+.alert{margin-top:10px}.modal-content .dataTable,.modal-content .table{font-size:10px;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif}.modal-content hr{margin:5px 0 15px 0;border-color:#63676a}.modal-content .well{margin-bottom:0}.modal-content .well .list-inline{margin-bottom:0}.modal-content .pf-wizard-navigation{margin:0}.modal-content .pf-wizard-navigation li:not(:last-child):before{border-top:1px solid #63676a;content:"";display:block;font-size:0;overflow:hidden;position:relative;top:12px;left:71px;right:1px;width:100%}.modal-content .pf-wizard-navigation li.finished:before{-moz-border-image:-moz-linear-gradient(left, #375959,#375959) 1 1%;-moz-border-image:linear-gradient(to right, #375959,#375959) 1 1%;-o-border-image:linear-gradient(to right, #375959,#375959) 1 1%;-webkit-border-image:-webkit-linear-gradient(left, #375959,#375959) 1 1%;-webkit-border-image:linear-gradient(to right, #375959,#375959) 1 1%;border-image:-moz-linear-gradient(left, #375959,#375959) 1 1%;border-image:-webkit-linear-gradient(left, #375959,#375959) 1 1%;border-image:linear-gradient(to right, #375959,#375959) 1 1%;border-bottom:0}.modal-content .pf-wizard-navigation li.active:before{-moz-border-image:-moz-linear-gradient(left, #4f9e4f,#63676a) 1 1%;-moz-border-image:linear-gradient(to right, #4f9e4f,#63676a) 1 1%;-o-border-image:linear-gradient(to right, #4f9e4f,#63676a) 1 1%;-webkit-border-image:-webkit-linear-gradient(left, #4f9e4f,#63676a) 1 1%;-webkit-border-image:linear-gradient(to right, #4f9e4f,#63676a) 1 1%;border-image:-moz-linear-gradient(left, #4f9e4f,#63676a) 1 1%;border-image:-webkit-linear-gradient(left, #4f9e4f,#63676a) 1 1%;border-image:linear-gradient(to right, #4f9e4f,#63676a) 1 1%;border-bottom:0}.modal-content .pf-wizard-navigation li>h6{color:#63676a;font-size:11px;margin:5px}.modal-content .pf-wizard-navigation li a:hover+h6{color:#adadad}.modal-content .pf-wizard-navigation li.active a:not(.btn-danger)+h6{color:#adadad}#pf-settings-dialog .form-group .btn-sm,#pf-settings-dialog .form-group .btn-group-sm>.btn{padding:4px 7px 3px}#pf-settings-dialog #pf-dialog-captcha-wrapper{margin:0;padding:3px 0}#pf-map-dialog #pf-map-dialog-character-select,#pf-map-dialog #pf-map-dialog-corporation-select,#pf-map-dialog #pf-map-dialog-alliance-select{width:535px}#pf-route-dialog #pf-route-dialog-map-select{width:300px !important}#pf-shortcuts-dialog td kbd:last-of-type+i{display:none}#pf-manual-scrollspy{position:relative;height:700px;overflow:auto}.pf-system-dialog-select{width:300px !important}#pf-task-dialog .pf-task-dialog-status{min-height:inherit}#pf-map-info-logs{margin-bottom:10px}#pf-stats-dialog .pf-dynamic-area{margin-bottom:10px}#pf-structure-dialog #pf-structure-dialog-corporation-select,#pf-structure-dialog #pf-structure-dialog-type-select{width:267px !important}.pf-jump-info-dialog blockquote{margin-top:15px;margin-bottom:5px}.pf-changelog-dialog .pf-dynamic-message-container{margin-bottom:20px}.pf-credits-dialog .pf-credits-logo-background{overflow:visible;background:url("../../img/logo_bg.png");background-size:cover;padding:20px;margin-bottom:20px}.pf-credits-dialog #pf-logo-container{width:355px;height:366px;margin:0 auto}.pf-credits-dialog .pf-dynamic-area{min-height:50px}.pf-credits-dialog .dl-horizontal{display:inline-block;width:48%}.pf-credits-dialog .btn{padding:0}.pf-credits-dialog blockquote{font-size:14px}.pf-log-graph{height:100px;width:100%}.timeline{list-style:none;position:relative}.timeline:before{top:0;bottom:0;position:absolute;content:" ";width:1px;left:50%;margin-top:20px;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzRmOWU0ZiIvPjxzdG9wIG9mZnNldD0iMjUlIiBzdG9wLWNvbG9yPSIjNjM2NzZhIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0idXJsKCNncmFkKSIgLz48L3N2Zz4g');background-size:100%;background-image:-webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #4f9e4f),color-stop(25%, #63676a));background-image:-moz-linear-gradient(top, #4f9e4f,#63676a 25%);background-image:-webkit-linear-gradient(top, #4f9e4f,#63676a 25%);background-image:linear-gradient(to bottom, #4f9e4f,#63676a 25%)}.timeline>li{margin-bottom:20px;position:relative}.timeline>li.timeline-first .timeline-title{color:#4f9e4f}.timeline>li.timeline-first .timeline-badge{background-color:#4f9e4f}.timeline>li:before,.timeline>li:after{content:" ";display:table}.timeline>li:after{clear:both}.timeline>li:before,.timeline>li:after{content:" ";display:table}.timeline>li:after{clear:both}.timeline>li>.timeline-panel{width:47%;float:left;border:1px solid #313335;padding:8px;position:relative;background-color:#313335;font-size:11px;-webkit-box-shadow:0 4px 10px rgba(0,0,0,0.4);box-shadow:0 4px 10px rgba(0,0,0,0.4);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.timeline>li>.timeline-panel:before{content:" ";position:absolute;top:10px;right:-8px;display:inline-block;border-top:7px solid transparent;border-left:7px solid #63676a;border-right:0 solid #63676a;border-bottom:7px solid transparent}.timeline>li>.timeline-panel:after{content:" ";position:absolute;top:10px;right:-8px;display:inline-block;border-top:7px solid transparent;border-left:7px solid #63676a;border-right:0 solid #63676a;border-bottom:7px solid transparent}.timeline>li>.timeline-badge{color:#2b2b2b;width:22px;height:22px;line-height:22px;text-align:center;position:absolute;top:7px;left:50%;margin-left:-11px;background-color:#63676a;z-index:100;-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%}.timeline>li>.timeline-badge>i{vertical-align:middle}.timeline>li.timeline-inverted>.timeline-panel{float:right}.timeline>li.timeline-inverted>.timeline-panel:before{border-left-width:0;border-right-width:7px;left:-8px;right:auto}.timeline>li.timeline-inverted>.timeline-panel:after{border-left-width:0;border-right-width:8px;left:-9px;right:auto}.timeline-title{margin-top:0;color:inherit}.timeline-body>hr{display:none}.timeline-body>hr ~ *{display:none}.timeline-body>p,.timeline-body>ul{margin-bottom:0;list-style-type:disc;margin-left:15px}.timeline-body>p+p{margin-top:5px}@media (max-width: 1200px){ul.timeline:before{left:40px}ul.timeline>li>.timeline-panel{width:calc(100% - 62px)}ul.timeline>li>.timeline-badge{left:29px;margin-left:0;top:6px}ul.timeline>li>.timeline-panel{float:right}ul.timeline>li>.timeline-panel:before{border-left-width:0;border-right-width:7px;left:-8px;right:auto}ul.timeline>li>.timeline-panel:after{border-left-width:0;border-right-width:7px;left:-8px;right:auto}}.popover{z-index:1060;max-width:600px}.popover .arrow{pointer-events:none}.popover .popover-title{text-transform:capitalize;font-family:"Arial","Oxygen Bold","Helvetica Neue",Helvetica,sans-serif;font-weight:bold}.popover .popover-content{font-family:"Arial","Oxygen Bold","Helvetica Neue",Helvetica,sans-serif}.popover img{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.popover h4{color:#adadad}.popover table{color:#adadad;line-height:16px;font-size:11px}.popover table td{padding:0 5px;vertical-align:middle !important}.popover .select2-container{margin-top:-1px;margin-left:-1px}.pf-popover-small .popover-title{padding:3px 6px}.pf-popover-small .popover-content{padding:6px 1px 3px}.pf-popover{display:initial}.pf-popover .popover-content{padding:0}.pf-popover h6{white-space:nowrap;margin-right:50px}.pf-popover h6:before,.pf-popover h6:after{content:" ";display:table}.pf-popover h6:after{clear:both}.pf-popover .well{margin-top:7px;margin-bottom:10px}.pf-popover .list-group{margin:0}.pf-popover .list-group .list-group-item{color:#313335}.pf-popover .list-group .list-group-item:hover{color:#1d1d1d}.pf-popover .list-group .list-group-item.disabled{background-color:#3c3f41;color:#63676a;cursor:not-allowed}.pf-popover .list-group .list-group-item img{width:30px;margin:-8px 10px -6px -8px;border-radius:0}.pf-popover .list-group .list-group-item i{margin-right:20px}.pf-popover-character .table>tbody>tr>td{border:none}.pf-popover-character .table>tbody>tr>td:first-child+td{padding:0 5px}.pf-popover-character .well{margin-bottom:0}.ribbon-wrapper{width:72px;height:88px;overflow:hidden;position:absolute;top:-3px;right:-3px;pointer-events:none}.ribbon{font:bold 12px "Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;color:#2b2b2b;text-align:center;text-shadow:rgba(255,255,255,0.2) 0px 1px 0px;position:relative;padding:3px 0;left:-4px;top:16px;width:99px;-webkit-box-shadow:2px 3px 3px rgba(0,0,0,0.2);box-shadow:2px 3px 3px rgba(0,0,0,0.2);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-webkit-transform:rotate(45deg);transform:rotate(45deg)}.ribbon:before,.ribbon:after{content:"";border-left:3px solid transparent;border-right:3px solid transparent;position:absolute;bottom:-3px}.ribbon.ribbon-default{color:#adadad;background-color:#353739;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzJkMzAzMSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzJhMmIyZCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #2d3031),color-stop(100%, #2a2b2d));background-image:-moz-linear-gradient(top, #2d3031,#2a2b2d);background-image:-webkit-linear-gradient(top, #2d3031,#2a2b2d);background-image:linear-gradient(to bottom, #2d3031,#2a2b2d)}.ribbon.ribbon-default:before,.ribbon.ribbon-default:after{border-top:3px solid #000}.ribbon.ribbon-green{background-color:#5cb85c;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzUxYjM1MSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzRhOTQ0YSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #51b351),color-stop(100%, #4a944a));background-image:-moz-linear-gradient(top, #51b351,#4a944a);background-image:-webkit-linear-gradient(top, #51b351,#4a944a);background-image:linear-gradient(to bottom, #51b351,#4a944a)}.ribbon.ribbon-green:before,.ribbon.ribbon-green:after{border-top:3px solid #285028}.ribbon.ribbon-orange{background-color:#e28a0d;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2Q0ODEwYyIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2I0NmQwYiIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #d4810c),color-stop(100%, #b46d0b));background-image:-moz-linear-gradient(top, #d4810c,#b46d0b);background-image:-webkit-linear-gradient(top, #d4810c,#b46d0b);background-image:linear-gradient(to bottom, #d4810c,#b46d0b)}.ribbon.ribbon-orange:before,.ribbon.ribbon-orange:after{border-top:3px solid #6c4107}.ribbon.ribbon-red{background-color:#d9534f;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2M5MzAyYyIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2E4MjgyNCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #c9302c),color-stop(100%, #a82824));background-image:-moz-linear-gradient(top, #c9302c,#a82824);background-image:-webkit-linear-gradient(top, #c9302c,#a82824);background-image:linear-gradient(to bottom, #c9302c,#a82824)}.ribbon.ribbon-red:before,.ribbon.ribbon-red:after{border-top:3px solid #541412}.ribbon.ribbon-blue{background-color:#428bca;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzM3ODRjNSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzJkNWM4NSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #3784c5),color-stop(100%, #2d5c85));background-image:-moz-linear-gradient(top, #3784c5,#2d5c85);background-image:-webkit-linear-gradient(top, #3784c5,#2d5c85);background-image:linear-gradient(to bottom, #3784c5,#2d5c85)}.ribbon.ribbon-blue:before,.ribbon.ribbon-blue:after{border-top:3px solid #1a344c}.ribbon:before{left:0}.ribbon:after{right:0}.pf-loading-bars-container{position:relative;z-index:4;margin:0 auto;left:5px;right:19px;width:70px;height:50px;list-style:none}.pf-loading-bars-container .pf-loading-bars-loader{position:absolute;z-index:3;margin:0 auto;left:0;right:0;top:50%;margin-top:-19px;width:56px;height:37px;list-style:none}.pf-loading-bars-container .pf-loading-bars-loader li{background-color:#5cb85c;width:6px;height:6px;float:right;margin-right:3px !important;-webkit-box-shadow:0px 12px 6px rgba(0,0,0,0.2);box-shadow:0px 12px 6px rgba(0,0,0,0.2)}.pf-loading-bars-container .pf-loading-bars-loader li:first-child{-webkit-animation:cssload-loadbars 1.75s cubic-bezier(0.645, 0.045, 0.355, 1) infinite 0s;animation:cssload-loadbars 1.75s cubic-bezier(0.645, 0.045, 0.355, 1) infinite 0s}.pf-loading-bars-container .pf-loading-bars-loader li:nth-child(2){-webkit-animation:cssload-loadbars 1.75s ease-in-out infinite -0.35s;animation:cssload-loadbars 1.75s ease-in-out infinite -0.35s}.pf-loading-bars-container .pf-loading-bars-loader li:nth-child(3){-webkit-animation:cssload-loadbars 1.75s ease-in-out infinite -0.7s;animation:cssload-loadbars 1.75s ease-in-out infinite -0.7s}.pf-loading-bars-container .pf-loading-bars-loader li:nth-child(4){-webkit-animation:cssload-loadbars 1.75s ease-in-out infinite -1.05s;animation:cssload-loadbars 1.75s ease-in-out infinite -1.05s}.pf-loading-bars-container .pf-loading-bars-loader li:nth-child(5){-webkit-animation:cssload-loadbars 1.75s ease-in-out infinite -1.4s;animation:cssload-loadbars 1.75s ease-in-out infinite -1.4s}.pf-loading-bars-container .pf-loading-bars-loader li:nth-child(6){-webkit-animation:cssload-loadbars 1.75s ease-in-out infinite -1.75s;animation:cssload-loadbars 1.75s ease-in-out infinite -1.75s}@-webkit-keyframes cssload-loadbars{0%{height:6px;margin-top:16px}33%{height:6px;margin-top:16px}66%{height:31px;margin-top:0px}100%{height:6px;margin-top:16px}}@-moz-keyframes cssload-loadbars{0%{height:6px;margin-top:16px}33%{height:6px;margin-top:16px}66%{height:31px;margin-top:0px}100%{height:6px;margin-top:16px}}@-ms-keyframes cssload-loadbars{0%{height:6px;margin-top:16px}33%{height:6px;margin-top:16px}66%{height:31px;margin-top:0px}100%{height:6px;margin-top:16px}}@keyframes cssload-loadbars{0%{height:6px;margin-top:16px}33%{height:6px;margin-top:16px}66%{height:31px;margin-top:0px}100%{height:6px;margin-top:16px}}.pf-landing-sticky-panel{position:fixed;min-width:100px;border-radius:5px;padding:7px;box-shadow:0 4px 10px rgba(0,0,0,0.4);background-color:rgba(43,43,43,0.7)}.pf-landing-sticky-panel h4{margin:5px 0 10px 0}.pf-landing-sticky-panel ul{margin-bottom:0}.pf-landing-sticky-panel ul li{text-transform:lowercase}#pf-landing-server-panel{top:50px;left:10px}#pf-landing-admin-panel{bottom:10px;right:10px}.youtube{background-position:center;background-repeat:no-repeat;position:relative;display:inline-block;overflow:hidden;transition:all 200ms ease-out;cursor:pointer}.youtube .play{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAERklEQVR4nOWbTWhcVRTHb1IJVoxGtNCNdal2JYJReC6GWuO83PM/59yUS3FRFARdFlwYP1CfiojQWt36sRCUurRIdVFXIn41lAoVdRGrG1M01YpKrWjiYmaSl8ybZJL3cd+YA//NLObd3++eO8x79z5jSq5Gw+8kov0AP8vMR5l1BtBZQM4B8ks75wCdZdYZZj5qLZ4hov2Nht9Z9vhKKSIaB/gI4M4w62KeAO6Mte4lYOq20FxrlqqOibhHmeWbvNC9ZfDX1mLae391aN6limO/gwgvAPJbWeAZuSDingdwXTBw7/0IsyaA/Fkh+KqOkD+YNfHej1QKD+y7iVlOhgLvFqFfNJvNGyuBJ+KDAF8MDd0tgS8y64OlgSdJMsysL4cG7SOHkyQZLhTee7+d2R2rAVy/S+Jd7/32ouBHAP4gNNRGQyTHc/84NhqNywZp5rvjjnnvt21aABFeCQ+RLwAf2hQ8s7sv9OCLk6AHNgQvIrvbfzKCD76g/O6cu7lf/iER/aQGgy448pExZmhdegAPhR9sObFWH1gT3lp7DaA/5bkIgJhZPgsNmz02novj+KqeApj1ubwXWe4kdyeznAgNvTpE/HQmvKqOMeuFogTUVQSRno+iaLRLAJF7uIgL9O4ubgL8aWgB7S44mNX+35YpICUiAvS9sBLkq1WzT+NFffl6AuoiApi6NT37h6sWkBIRZGkQ8YtLgyji6e1mBYTqCEBPG2Naz+0BWQgtoGoRgCzEsd9hAN1X5BfnFZASUfrSAFQNsyZ1FJASUVpHiLinDJG8U2cBZYogkrcNs5waBAGdstbeU9zdqpw0gPwwSAI6VUxHyFlDpOcHUUBBIuYNs14aZAE5RVwyzPr3/0EAEY0TyfGNjBWQvwZ +CTSbehfAH29mrID8bET0+0EUkAd8WYDOmqJ3ecsG30yr9wqRfm6Y+a1BEFDEjHfHvWmY9ck6CygHvBVr8Xhtb4ZE5HZA3y8DvBNA1TjnrmXWf+sioMwZX5V/VHXMGGMMoKdDCxCRvRWBdzKzdHEO+EisilbPyopHYqp6S9UCAsz4iojI7hUDAtyXVQgIDd6KnOoaWNkbI6FaPSuZGyMArsi7MZoloB4zviI/Nhr3X95jltwTRQmoIfgisy5ai+me67OI7fE4nrqjrqfK1t0eby0FPRB6oGVlchL3rgnfrq19RKbVBdhV9IOSwJmfmJi4vi/4ThERitwyCxVAFqydshuCX5awhQ9KtmuIWd8IDZED/nXT77rvVVv6sHRKwjYi91poqP7Dr+Y6JJ1VSZIMA3wkPNy6bX+o8Bcm0sXMdwM8Fxo0A3xORPaWBp6uPXsmbxCRD0NDL0dOANhVCXy6iAjMcjbcrMt3RITKwdMVRdFo+y5yvkL4eWZ+zHt/ZVD4dEVRNGotpst+dZZZH8k86lqn2pIvT/eqrNfn2xuyqYPZ8mv7s8pfn/8Pybm4TIjanscAAAAASUVORK5CYII=") no-repeat center center;background-size:64px 64px;position:absolute;height:100%;width:100%;opacity:.8;filter:alpha(opacity=80);transition:all 0.2s ease-out}.youtube .play:hover{opacity:1;filter:alpha(opacity=100)} /*# sourceMappingURL=pathfinder.css.map */ diff --git a/public/css/v1.4.1/pathfinder.css.map b/public/css/v1.4.1/pathfinder.css.map index 1a05d185..08acdba5 100644 --- a/public/css/v1.4.1/pathfinder.css.map +++ b/public/css/v1.4.1/pathfinder.css.map @@ -1,6 +1,6 @@ { "version": 3, -"mappings": "CAAA;;;;;;;;;IASG,DCLD,6cAYyB,CAiDzB,MAAM,CAAE,CAAC,CACT,OAAO,CAAE,CAAC,CACV,MAAM,CAAE,CAAC,CAIT,IAAI,CAAE,OAAO,CACb,SAAS,CAAE,IAAI,CACf,cAAc,CAAE,QAAQ,CApDxB,IAAK,CA6DL,WAAW,CAAE,CAAC,CA3Dd,KAAO,CA+DP,UAAU,CAAE,IAAI,CA7DhB,KAAM,CAiEN,eAAe,CAAE,QAAQ,CACzB,cAAc,CAAE,CAAC,CAhEjB,aAAgB,CAoEhB,UAAU,CAAE,IAAI,CAChB,WAAW,CAAE,MAAM,CACnB,cAAc,CAAE,MAAM,CApEtB,YAAc,CAwEd,MAAM,CAAE,IAAI,CACZ,mDAAkB,CAChB,OAAO,CAAE,EAAE,CACX,OAAO,CAAE,IAAI,CAzEf,KAAM,CA6EN,MAAM,CAAE,IAAI,CAOZ,0FAAiC,CAC/B,OAAO,CAAE,KAAK,CCnFlB,UASC,CARC,WAAW,CAAE,QAAQ,CACrB,GAAG,CAAE,6CAAkD,CACvD,GAAG,CAAE,wQAGgE,CACrE,WAAW,CAAE,GAAG,CAChB,UAAU,CAAE,MAAM,CAepB,UASC,CARC,WAAW,CAAE,aAAa,CAC1B,GAAG,CAAE,0CAA+C,CACpD,GAAG,CAAE,4PAG6D,CAClE,WAAW,CAAE,GAAG,CAChB,UAAU,CAAE,MAAM,CChEpB;;;;;;;;GAQG,ACEH,CAAE,CC0OA,kBAAkB,CDzOE,UAAU,CC0O3B,eAAe,CD1OE,UAAU,CC2OtB,UAAU,CD3OE,UAAU,CAEhC,gBACQ,CCsON,kBAAkB,CDrOE,UAAU,CCsO3B,eAAe,CDtOE,UAAU,CCuOtB,UAAU,CDvOE,UAAU,CAMhC,IAAK,CACH,SAAS,CAAE,KAAK,CAChB,2BAA2B,CAAE,WAAa,CAG5C,IAAK,CACH,WAAW,CFmEa,oDAAiB,CElEzC,UAAU,CFgDc,MAAM,CE/C9B,WAAW,CFgDa,GAAG,CE/C3B,SAAS,CFiDe,IAAI,CEhD5B,WAAW,CF4Da,GAAG,CE3D3B,KAAK,CF8sBuB,OAAW,CE7sBvC,gBAAgB,CFisBY,OAAa,CE7rB3C,4BAGS,CACP,WAAW,CAAE,OAAO,CACpB,SAAS,CAAE,OAAO,CAClB,WAAW,CAAE,OAAO,CAMtB,CAAE,CACA,KAAK,CFunBuB,OAAW,CEtnBvC,eAAe,CAAE,IAAI,CAErB,eACQ,CACN,KAAK,CFqX8B,OAAiB,CEpXpD,eAAe,CAAE,SAAS,CAG5B,OAAQ,CC3BR,OAAO,CAAE,WAAW,CAEpB,OAAO,CAAE,iCAAiC,CAC1C,cAAc,CAAE,IAAI,CACpB,aAAa,CH8T4B,OAAa,CErSpD,eAAe,CAAE,IAAI,CAUzB,MAAO,CACL,MAAM,CAAE,CAAC,CAMX,GAAI,CACF,cAAc,CAAE,MAAM,CAIxB,eAAgB,CC4Sd,OAAO,CADuB,KAAK,CAEnC,SAAS,CAAE,IAAI,CACf,MAAM,CAAE,IAAI,CDzSd,YAAa,CACX,aAAa,CF2Ca,GAAG,CErC/B,cAAe,CACb,OAAO,CFgjBqB,GAAG,CE/iB/B,WAAW,CFNa,GAAG,CEO3B,gBAAgB,CFgoBY,OAAa,CE/nBzC,MAAM,CAAE,cAA2B,CACnC,aAAa,CF+iBe,GAAmB,CGnhB/C,kBAAkB,CAAE,oBAAW,CACvB,UAAU,CAAE,oBAAW,CA8P/B,OAAO,CDvRiB,YAAY,CCwRpC,SAAS,CAAE,IAAI,CACf,MAAM,CAAE,IAAI,CDrRd,WAAY,CACV,aAAa,CAAE,GAAG,CAMpB,EAAG,CACD,UAAU,CFwNuB,IAAqB,CEvNtD,aAAa,CFuNoB,IAAqB,CEtNtD,MAAM,CAAE,CAAC,CACT,UAAU,CAAE,iBAAoB,CAQlC,QAAS,CACP,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,GAAG,CACV,MAAM,CAAE,GAAG,CACX,MAAM,CAAE,IAAI,CACZ,OAAO,CAAE,CAAC,CACV,QAAQ,CAAE,MAAM,CAChB,IAAI,CAAE,gBAAa,CACnB,MAAM,CAAE,CAAC,CE/HX,yCAC6B,CAC3B,WAAW,CJoFa,oDAAiB,CInFzC,WAAW,CJoFa,GAAG,CInF3B,WAAW,CJoFa,GAAG,CInF3B,KAAK,CJoFmB,OAAO,CIlF/B,+OACO,CACL,WAAW,CAAE,MAAM,CACnB,WAAW,CAAE,CAAC,CACd,KAAK,CJ2tBqB,OAAW,CIvtBzC,oBAEQ,CACN,UAAU,CJkTuB,IAAqB,CIjTtD,aAAa,CAAE,GAA2B,CAE1C,uHACO,CACL,SAAS,CAAE,GAAG,CAGlB,oBAEQ,CACN,UAAU,CAAE,GAA2B,CACvC,aAAa,CAAE,GAA2B,CAE1C,uHACO,CACL,SAAS,CAAE,GAAG,CAIlB,MAAQ,CAAE,SAAS,CJqCO,IAA+B,CIpCzD,MAAQ,CAAE,SAAS,CJqCO,IAAI,CIpC9B,MAAQ,CAAE,SAAS,CJqCO,IAA+B,CIpCzD,MAAQ,CAAE,SAAS,CJqCO,IAAe,CIpCzC,MAAQ,CAAE,SAAS,CJqCO,IAA8B,CIpCxD,MAAQ,CAAE,SAAS,CJqCO,IAA8B,CI/BxD,CAAE,CACA,MAAM,CAAE,OAA+B,CAGzC,KAAM,CACJ,aAAa,CJ8QoB,IAAqB,CI7QtD,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,GAAG,CAChB,WAAW,CAAE,GAAG,CAEhB,yBAAmC,CANrC,KAAM,CAOF,SAAS,CAAE,IAAI,EASnB,YACQ,CAAE,SAAS,CAAE,GAAG,CAGxB,IAAQ,CAAE,UAAU,CAAE,MAAM,CAG5B,UAAqB,CAAE,UAAU,CAAE,IAAI,CACvC,WAAqB,CAAE,UAAU,CAAE,KAAK,CACxC,YAAqB,CAAE,UAAU,CAAE,MAAM,CACzC,aAAqB,CAAE,UAAU,CAAE,OAAO,CAG1C,WAAY,CACV,KAAK,CJmpBuB,OAAW,CGjJvC,aAAW,CACT,KAAK,CH2EqB,OAAW,CGzEvC,oBAAkB,CAChB,KAAK,CAAE,OAAmB,CAJ5B,aAAW,CACT,KAAK,CHiIqB,OAAY,CG/HxC,oBAAkB,CAChB,KAAK,CAAE,OAAmB,CAJ5B,UAAW,CACT,KAAK,CHiIqB,OAAY,CG/HxC,iBAAkB,CAChB,KAAK,CAAE,OAAmB,CAJ5B,aAAW,CACT,KAAK,CHiIqB,OAAY,CG/HxC,oBAAkB,CAChB,KAAK,CAAE,OAAmB,CAJ5B,YAAW,CACT,KAAK,CHiIqB,OAAY,CG/HxC,mBAAkB,CAChB,KAAK,CAAE,OAAmB,CCtf9B,WAAY,CAGV,KAAK,CAAE,IAAI,CDmeX,WAAW,CACT,gBAAgB,CHuFU,OAAW,CGrFvC,kBAAkB,CAChB,gBAAgB,CAAE,OAAmB,CAJvC,WAAW,CACT,gBAAgB,CH2CU,OAAiB,CGzC7C,kBAAkB,CAChB,gBAAgB,CAAE,OAAmB,CAJvC,QAAW,CACT,gBAAgB,CH+CU,OAAc,CG7C1C,eAAkB,CAChB,gBAAgB,CAAE,OAAmB,CAJvC,WAAW,CACT,gBAAgB,CHnBU,OAAiB,CGqB7C,kBAAkB,CAChB,gBAAgB,CAAE,OAAmB,CAJvC,UAAW,CACT,gBAAgB,CHuDU,OAAgB,CGrD5C,iBAAkB,CAChB,gBAAgB,CAAE,OAAmB,CCvdzC,YAAa,CACX,cAAc,CAAE,GAAiC,CACjD,MAAM,CAAE,WAAmD,CAC3D,aAAa,CAAE,iBAAmC,CAQpD,KACG,CACD,UAAU,CAAE,CAAC,CACb,aAAa,CAAE,GAA2B,CAC1C,uBACG,CACD,aAAa,CAAE,CAAC,CAOpB,2BAAe,CACb,YAAY,CAAE,CAAC,CACf,UAAU,CAAE,IAAI,CAIlB,YAAa,CAEX,WAAW,CAAE,IAAI,CAEjB,eAAK,CACH,OAAO,CAAE,YAAY,CACrB,YAAY,CAAE,GAAG,CACjB,aAAa,CAAE,GAAG,CAKtB,EAAG,CACD,UAAU,CAAE,CAAC,CACb,aAAa,CJkKoB,IAAqB,CIhKxD,KACG,CACD,WAAW,CJnFa,GAAG,CIqF7B,EAAG,CACD,WAAW,CAAE,IAAI,CAEnB,EAAG,CACD,WAAW,CAAE,CAAC,CAQhB,yBAA2C,CAEvC,iBAAG,CACD,KAAK,CAAE,IAAI,CACX,KAAK,CAAE,IAAmC,CAC1C,KAAK,CAAE,IAAI,CACX,UAAU,CAAE,KAAK,CDhIrB,QAAQ,CAAE,MAAM,CAChB,aAAa,CAAE,QAAQ,CACvB,WAAW,CAAE,MAAM,CCiIjB,iBAAG,CACD,WAAW,CJsjBa,KAAK,CGzuBjC,gDACQ,CACN,OAAO,CAAE,GAAG,CACZ,OAAO,CAAE,KAAK,CAEhB,uBAAQ,CACN,KAAK,CAAE,IAAI,ECuLf,qCAE0B,CACxB,MAAM,CAAE,IAAI,CACZ,aAAa,CAAE,kBAA6B,CAE9C,WAAY,CACV,SAAS,CAAE,GAAG,CACd,cAAc,CAAE,SAAS,CAI3B,UAAW,CACT,OAAO,CAAE,QAAiD,CAC1D,MAAM,CAAE,QAAyB,CACjC,SAAS,CJghBoB,IAAsB,CI/gBnD,WAAW,CAAE,iBAAkC,CAK7C,yEAAa,CACX,aAAa,CAAE,CAAC,CAMpB,oDAEO,CACL,OAAO,CAAE,KAAK,CACd,SAAS,CAAE,GAAG,CACd,WAAW,CJtJW,GAAG,CIuJzB,KAAK,CJ4fqB,OAAW,CI1frC,yEAAS,CACP,OAAO,CAAE,aAAa,CAQ5B,yCACsB,CACpB,aAAa,CAAE,IAAI,CACnB,YAAY,CAAE,CAAC,CACf,YAAY,CAAE,iBAAkC,CAChD,WAAW,CAAE,CAAC,CACd,UAAU,CAAE,KAAK,CAMf,+MAAS,CAAE,OAAO,CAAE,EAAE,CACtB,yMAAQ,CACN,OAAO,CAAE,aAAa,CAM5B,kCACiB,CACf,OAAO,CAAE,EAAE,CAIb,OAAQ,CACN,aAAa,CJoDoB,IAAqB,CInDtD,UAAU,CAAE,MAAM,CAClB,WAAW,CJ/La,GAAG,CKrF7B,iBAGK,CACH,WAAW,CL8Da,6CAAiD,CK1D3E,IAAK,CACH,OAAO,CAAE,OAAO,CAChB,SAAS,CAAE,GAAG,CACd,KAAK,CLitBuB,OAAa,CKhtBzC,gBAAgB,CL4tBY,OAAW,CK3tBvC,WAAW,CAAE,MAAM,CACnB,aAAa,CLiHa,GAAG,CK7G/B,GAAI,CACF,OAAO,CAAE,OAAO,CAChB,SAAS,CAAE,GAAG,CACd,KAAK,CL8tBuB,OAAa,CK7tBzC,gBAAgB,CLmsBY,OAAY,CKlsBxC,aAAa,CLwGa,GAAG,CKvG7B,UAAU,CAAE,+BAA8B,CAI5C,GAAI,CACF,OAAO,CAAE,KAAK,CACd,OAAO,CAAE,KAAiC,CAC1C,MAAM,CAAE,OAA+B,CACvC,SAAS,CAAE,IAAqB,CAChC,WAAW,CLoDa,GAAG,CKnD3B,UAAU,CAAE,SAAS,CACrB,SAAS,CAAE,UAAU,CACrB,KAAK,CLwrBuB,OAAa,CKvrBzC,gBAAgB,CLmsBY,OAAW,CKjsBvC,aAAa,CLwFa,GAAG,CKrF7B,QAAK,CACH,OAAO,CAAE,CAAC,CACV,SAAS,CAAE,OAAO,CAClB,KAAK,CAAE,OAAO,CACd,WAAW,CAAE,QAAQ,CACrB,gBAAgB,CAAE,WAAW,CAC7B,aAAa,CAAE,CAAC,CAKpB,eAAgB,CACd,UAAU,CLwqBkB,KAAK,CKvqBjC,UAAU,CAAE,MAAM,CCpDpB,UAAW,CHyoBT,YAAY,CAAE,IAAI,CAClB,WAAW,CAAE,IAAI,CACjB,YAAY,CAAG,IAAwB,CACvC,aAAa,CAAE,IAAwB,CAloBvC,kCACQ,CACN,OAAO,CAAE,GAAG,CACZ,OAAO,CAAE,KAAK,CAEhB,gBAAQ,CACN,KAAK,CAAE,IAAI,CGbb,yBAAmC,CAHrC,UAAW,CAIP,KAAK,CN4SsB,KAAiB,EM1S9C,0BAAmC,CANrC,UAAW,CAOP,KAAK,CN8SsB,MAAkB,EM5S/C,0BAAmC,CATrC,UAAW,CAUP,KAAK,CNgTsB,MAAwB,EMtSvD,gBAAiB,CHqnBf,YAAY,CAAE,IAAI,CAClB,WAAW,CAAE,IAAI,CACjB,YAAY,CAAG,IAAwB,CACvC,aAAa,CAAE,IAAwB,CAloBvC,8CACQ,CACN,OAAO,CAAE,GAAG,CACZ,OAAO,CAAE,KAAK,CAEhB,sBAAQ,CACN,KAAK,CAAE,IAAI,CGaf,IAAK,CHqnBH,WAAW,CAAG,KAAc,CAC5B,YAAY,CAAE,KAAc,CAzoB5B,sBACQ,CACN,OAAO,CAAE,GAAG,CACZ,OAAO,CAAE,KAAK,CAEhB,UAAQ,CACN,KAAK,CAAE,IAAI,CAqwBb,2eAAS,CACP,QAAQ,CAAE,QAAQ,CAElB,UAAU,CAAE,GAAG,CAEf,YAAY,CAAG,IAAwB,CACvC,aAAa,CAAE,IAAwB,CAazC,0HAAS,CACP,KAAK,CAAE,IAAI,CAOX,SAAyB,CACvB,KAAK,CAAE,QAAoC,CAD7C,SAAyB,CACvB,KAAK,CAAE,SAAoC,CAD7C,SAAyB,CACvB,KAAK,CAAE,GAAoC,CAD7C,SAAyB,CACvB,KAAK,CAAE,SAAoC,CAD7C,SAAyB,CACvB,KAAK,CAAE,SAAoC,CAD7C,SAAyB,CACvB,KAAK,CAAE,GAAoC,CAD7C,SAAyB,CACvB,KAAK,CAAE,SAAoC,CAD7C,SAAyB,CACvB,KAAK,CAAE,SAAoC,CAD7C,SAAyB,CACvB,KAAK,CAAE,GAAoC,CAD7C,UAAyB,CACvB,KAAK,CAAE,SAAoC,CAD7C,UAAyB,CACvB,KAAK,CAAE,SAAoC,CAD7C,UAAyB,CACvB,KAAK,CAAE,IAAoC,CAS7C,cAA8B,CAC5B,KAAK,CAAE,EAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,QAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,SAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,GAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,SAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,SAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,GAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,SAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,SAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,GAAoC,CAD7C,eAA8B,CAC5B,KAAK,CAAE,SAAoC,CAD7C,eAA8B,CAC5B,KAAK,CAAE,SAAoC,CAD7C,eAA8B,CAC5B,KAAK,CAAE,IAAoC,CAN7C,cAA8B,CAC5B,IAAI,CAAE,EAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,QAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,SAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,GAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,SAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,SAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,GAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,SAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,SAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,GAAoC,CAD5C,eAA8B,CAC5B,IAAI,CAAE,SAAoC,CAD5C,eAA8B,CAC5B,IAAI,CAAE,SAAoC,CAD5C,eAA8B,CAC5B,IAAI,CAAE,IAAoC,CAS5C,gBAAgC,CAC9B,WAAW,CAAE,EAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,QAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,SAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,GAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,SAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,SAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,GAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,SAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,SAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,GAAoC,CADnD,iBAAgC,CAC9B,WAAW,CAAE,SAAoC,CADnD,iBAAgC,CAC9B,WAAW,CAAE,SAAoC,CADnD,iBAAgC,CAC9B,WAAW,CAAE,IAAoC,CG1wBvD,yBAAmC,CHkvBjC,0HAAS,CACP,KAAK,CAAE,IAAI,CAOX,SAAyB,CACvB,KAAK,CAAE,QAAoC,CAD7C,SAAyB,CACvB,KAAK,CAAE,SAAoC,CAD7C,SAAyB,CACvB,KAAK,CAAE,GAAoC,CAD7C,SAAyB,CACvB,KAAK,CAAE,SAAoC,CAD7C,SAAyB,CACvB,KAAK,CAAE,SAAoC,CAD7C,SAAyB,CACvB,KAAK,CAAE,GAAoC,CAD7C,SAAyB,CACvB,KAAK,CAAE,SAAoC,CAD7C,SAAyB,CACvB,KAAK,CAAE,SAAoC,CAD7C,SAAyB,CACvB,KAAK,CAAE,GAAoC,CAD7C,UAAyB,CACvB,KAAK,CAAE,SAAoC,CAD7C,UAAyB,CACvB,KAAK,CAAE,SAAoC,CAD7C,UAAyB,CACvB,KAAK,CAAE,IAAoC,CAS7C,cAA8B,CAC5B,KAAK,CAAE,EAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,QAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,SAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,GAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,SAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,SAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,GAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,SAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,SAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,GAAoC,CAD7C,eAA8B,CAC5B,KAAK,CAAE,SAAoC,CAD7C,eAA8B,CAC5B,KAAK,CAAE,SAAoC,CAD7C,eAA8B,CAC5B,KAAK,CAAE,IAAoC,CAN7C,cAA8B,CAC5B,IAAI,CAAE,EAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,QAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,SAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,GAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,SAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,SAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,GAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,SAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,SAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,GAAoC,CAD5C,eAA8B,CAC5B,IAAI,CAAE,SAAoC,CAD5C,eAA8B,CAC5B,IAAI,CAAE,SAAoC,CAD5C,eAA8B,CAC5B,IAAI,CAAE,IAAoC,CAS5C,gBAAgC,CAC9B,WAAW,CAAE,EAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,QAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,SAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,GAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,SAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,SAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,GAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,SAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,SAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,GAAoC,CADnD,iBAAgC,CAC9B,WAAW,CAAE,SAAoC,CADnD,iBAAgC,CAC9B,WAAW,CAAE,SAAoC,CADnD,iBAAgC,CAC9B,WAAW,CAAE,IAAoC,EGjwBvD,0BAAmC,CHyuBjC,0HAAS,CACP,KAAK,CAAE,IAAI,CAOX,SAAyB,CACvB,KAAK,CAAE,QAAoC,CAD7C,SAAyB,CACvB,KAAK,CAAE,SAAoC,CAD7C,SAAyB,CACvB,KAAK,CAAE,GAAoC,CAD7C,SAAyB,CACvB,KAAK,CAAE,SAAoC,CAD7C,SAAyB,CACvB,KAAK,CAAE,SAAoC,CAD7C,SAAyB,CACvB,KAAK,CAAE,GAAoC,CAD7C,SAAyB,CACvB,KAAK,CAAE,SAAoC,CAD7C,SAAyB,CACvB,KAAK,CAAE,SAAoC,CAD7C,SAAyB,CACvB,KAAK,CAAE,GAAoC,CAD7C,UAAyB,CACvB,KAAK,CAAE,SAAoC,CAD7C,UAAyB,CACvB,KAAK,CAAE,SAAoC,CAD7C,UAAyB,CACvB,KAAK,CAAE,IAAoC,CAS7C,cAA8B,CAC5B,KAAK,CAAE,EAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,QAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,SAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,GAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,SAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,SAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,GAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,SAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,SAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,GAAoC,CAD7C,eAA8B,CAC5B,KAAK,CAAE,SAAoC,CAD7C,eAA8B,CAC5B,KAAK,CAAE,SAAoC,CAD7C,eAA8B,CAC5B,KAAK,CAAE,IAAoC,CAN7C,cAA8B,CAC5B,IAAI,CAAE,EAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,QAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,SAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,GAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,SAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,SAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,GAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,SAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,SAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,GAAoC,CAD5C,eAA8B,CAC5B,IAAI,CAAE,SAAoC,CAD5C,eAA8B,CAC5B,IAAI,CAAE,SAAoC,CAD5C,eAA8B,CAC5B,IAAI,CAAE,IAAoC,CAS5C,gBAAgC,CAC9B,WAAW,CAAE,EAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,QAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,SAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,GAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,SAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,SAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,GAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,SAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,SAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,GAAoC,CADnD,iBAAgC,CAC9B,WAAW,CAAE,SAAoC,CADnD,iBAAgC,CAC9B,WAAW,CAAE,SAAoC,CADnD,iBAAgC,CAC9B,WAAW,CAAE,IAAoC,EGxvBvD,0BAAmC,CHguBjC,0HAAS,CACP,KAAK,CAAE,IAAI,CAOX,SAAyB,CACvB,KAAK,CAAE,QAAoC,CAD7C,SAAyB,CACvB,KAAK,CAAE,SAAoC,CAD7C,SAAyB,CACvB,KAAK,CAAE,GAAoC,CAD7C,SAAyB,CACvB,KAAK,CAAE,SAAoC,CAD7C,SAAyB,CACvB,KAAK,CAAE,SAAoC,CAD7C,SAAyB,CACvB,KAAK,CAAE,GAAoC,CAD7C,SAAyB,CACvB,KAAK,CAAE,SAAoC,CAD7C,SAAyB,CACvB,KAAK,CAAE,SAAoC,CAD7C,SAAyB,CACvB,KAAK,CAAE,GAAoC,CAD7C,UAAyB,CACvB,KAAK,CAAE,SAAoC,CAD7C,UAAyB,CACvB,KAAK,CAAE,SAAoC,CAD7C,UAAyB,CACvB,KAAK,CAAE,IAAoC,CAS7C,cAA8B,CAC5B,KAAK,CAAE,EAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,QAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,SAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,GAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,SAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,SAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,GAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,SAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,SAAoC,CAD7C,cAA8B,CAC5B,KAAK,CAAE,GAAoC,CAD7C,eAA8B,CAC5B,KAAK,CAAE,SAAoC,CAD7C,eAA8B,CAC5B,KAAK,CAAE,SAAoC,CAD7C,eAA8B,CAC5B,KAAK,CAAE,IAAoC,CAN7C,cAA8B,CAC5B,IAAI,CAAE,EAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,QAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,SAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,GAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,SAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,SAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,GAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,SAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,SAAoC,CAD5C,cAA8B,CAC5B,IAAI,CAAE,GAAoC,CAD5C,eAA8B,CAC5B,IAAI,CAAE,SAAoC,CAD5C,eAA8B,CAC5B,IAAI,CAAE,SAAoC,CAD5C,eAA8B,CAC5B,IAAI,CAAE,IAAoC,CAS5C,gBAAgC,CAC9B,WAAW,CAAE,EAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,QAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,SAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,GAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,SAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,SAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,GAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,SAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,SAAoC,CADnD,gBAAgC,CAC9B,WAAW,CAAE,GAAoC,CADnD,iBAAgC,CAC9B,WAAW,CAAE,SAAoC,CADnD,iBAAgC,CAC9B,WAAW,CAAE,SAAoC,CADnD,iBAAgC,CAC9B,WAAW,CAAE,IAAoC,EIp0BvD,KAAM,CACJ,SAAS,CAAE,IAAI,CACf,gBAAgB,CPkJc,WAAW,COhJ3C,EAAG,CACD,UAAU,CAAE,IAAI,CAMlB,MAAO,CACL,KAAK,CAAE,IAAI,CACX,aAAa,CAAE,CAAC,CAChB,cAAc,CAAE,CAAC,CAMb,iHACK,CACH,OAAO,CP2HiB,GAAG,CO1H3B,WAAW,CP+DO,GAAG,CO9DrB,cAAc,CAAE,GAAG,CACnB,UAAU,CAAE,iBAA6B,CAK/C,kBAAkB,CAChB,cAAc,CAAE,MAAM,CACtB,aAAa,CAAE,iBAA6B,CAO1C,mPACK,CACH,UAAU,CAAE,CAAC,CAKnB,kBAAgB,CACd,UAAU,CAAE,iBAA6B,CAI3C,aAAO,CACL,gBAAgB,CPyqBU,OAAa,CO7pBrC,6KACK,CACH,OAAO,CPgFiB,GAAG,COrEnC,eAAgB,CACd,MAAM,CAAE,iBAA6B,CAKjC,uKACK,CACH,MAAM,CAAE,iBAA6B,CAKzC,uDACK,CACH,mBAAmB,CAAE,GAAG,CAY1B,mFACK,CACH,gBAAgB,CP2CU,OAAO,CO/BnC,6DACK,CACH,gBAAgB,CP+BU,OAAe,COrB/C,wBAAyB,CACvB,QAAQ,CAAE,MAAM,CAChB,KAAK,CAAE,IAAI,CACX,OAAO,CAAE,YAAY,CAKnB,+CAAiB,CACf,QAAQ,CAAE,MAAM,CAChB,KAAK,CAAE,IAAI,CACX,OAAO,CAAE,UAAU,CJ4SrB,uTAGiB,CACf,gBAAgB,CHtSU,OAAe,CG6S3C,uJAGuB,CACrB,gBAAgB,CAAE,OAAuB,CAf3C,mUAGiB,CACf,gBAAgB,CH2LQ,OAAiB,CGpL3C,2JAGuB,CACrB,gBAAgB,CAAE,OAAuB,CAf3C,+RAGiB,CACf,gBAAgB,CH+LQ,OAAc,CGxLxC,+IAGuB,CACrB,gBAAgB,CAAE,OAAuB,CAf3C,mUAGiB,CACf,gBAAgB,CH6HQ,OAAiB,CGtH3C,2JAGuB,CACrB,gBAAgB,CAAE,OAAuB,CAf3C,uTAGiB,CACf,gBAAgB,CHuMQ,OAAgB,CGhM1C,uJAGuB,CACrB,gBAAgB,CAAE,OAAuB,CIlS/C,yBAAmC,CACjC,iBAAkB,CAChB,KAAK,CAAE,IAAI,CACX,aAAa,CAAE,MAA8B,CAC7C,UAAU,CAAE,MAAM,CAClB,UAAU,CAAE,MAAM,CAClB,kBAAkB,CAAE,wBAAwB,CAC5C,MAAM,CAAE,iBAA6B,CACrC,0BAA0B,CAAE,KAAK,CAGjC,wBAAS,CACP,aAAa,CAAE,CAAC,CAOZ,6NACK,CACH,WAAW,CAAE,MAAM,CAO3B,iCAAkB,CAChB,MAAM,CAAE,CAAC,CAOL,2VACiB,CACf,WAAW,CAAE,CAAC,CAEhB,qVACgB,CACd,YAAY,CAAE,CAAC,CAWjB,mOACK,CACH,aAAa,CAAE,CAAC,ECzN5B,QAAS,CACP,OAAO,CAAE,CAAC,CACV,MAAM,CAAE,CAAC,CACT,MAAM,CAAE,CAAC,CAIT,SAAS,CAAE,CAAC,CAGd,MAAO,CACL,OAAO,CAAE,KAAK,CACd,KAAK,CAAE,IAAI,CACX,OAAO,CAAE,CAAC,CACV,aAAa,CRqToB,IAAqB,CQpTtD,SAAS,CAAE,IAAuB,CAClC,WAAW,CAAE,OAAO,CACpB,KAAK,CRooBuB,OAAU,CQnoBtC,MAAM,CAAE,CAAC,CACT,aAAa,CAAE,iBAA8B,CAG/C,wDAAM,CACJ,OAAO,CAAE,YAAY,CACrB,aAAa,CAAE,GAAG,CAClB,WAAW,CAAE,IAAI,CAWnB,oBAAqB,CLuMnB,kBAAkB,CKtME,UAAU,CLuM3B,eAAe,CKvME,UAAU,CLwMtB,UAAU,CKxME,UAAU,CAIhC,0CACuB,CACrB,MAAM,CAAE,OAAO,CACf,UAAU,CAAE,MAAM,CAClB,WAAW,CAAE,MAAM,CAIrB,kBAAmB,CACjB,OAAO,CAAE,KAAK,CAIhB,mBAAoB,CAClB,OAAO,CAAE,KAAK,CACd,KAAK,CAAE,IAAI,CAIb,6BACa,CACX,MAAM,CAAE,IAAI,CAId,+EAE6B,CL7C3B,OAAO,CAAE,WAAW,CAEpB,OAAO,CAAE,iCAAiC,CAC1C,cAAc,CAAE,IAAI,CACpB,aAAa,CH8T4B,OAAa,CQhRxD,MAAO,CACL,OAAO,CAAE,KAAK,CACd,WAAW,CAAE,GAA4B,CACzC,SAAS,CRNe,IAAI,CQO5B,WAAW,CRKa,GAAG,CQJ3B,KAAK,CRkqBuB,OAAa,CQxoB3C,aAAc,CACZ,OAAO,CAAE,KAAK,CACd,KAAK,CAAE,IAAI,CACX,MAAM,CR4F0B,IAAwD,CQ3FxF,OAAO,CAAE,QAA+C,CACxD,SAAS,CRvCe,IAAI,CQwC5B,WAAW,CR5Ba,GAAG,CQ6B3B,KAAK,CRioBuB,OAAa,CQhoBzC,gBAAgB,CRqiBY,OAAU,CQpiBtC,gBAAgB,CAAE,IAAI,CACtB,MAAM,CAAE,iBAAuB,CAC/B,aAAa,CR+EkB,GAAG,CGjFlC,kBAAkB,CAAE,iCAAO,CACnB,UAAU,CAAE,iCAAO,CAK3B,kBAAkB,CAAE,qDAAW,CACvB,UAAU,CAAE,qDAAW,CA0xB/B,mBAAQ,CACN,YAAY,CH1jB2B,OAAa,CG2jBpD,OAAO,CAAE,CAAC,CAnyBZ,kBAAkB,CAAE,8DAAO,CACnB,UAAU,CAAE,8DAAO,CAlE3B,+BAA8B,CAAE,KAAK,CHqrBT,OAAW,CGprBP,OAAO,CAAE,CAAC,CAC1C,mCAA8B,CAAE,KAAK,CHmrBT,OAAW,CGlrBvC,wCAA8B,CAAE,KAAK,CHkrBT,OAAW,CQnmBvC,gFAEqB,CACnB,MAAM,CAAE,WAAW,CACnB,gBAAgB,CR6dU,OAAK,CQ5d/B,OAAO,CAAE,CAAC,CAOd,qBAAsB,CACpB,MAAM,CAAE,IAAI,CAWd,oBAAqB,CACnB,kBAAkB,CAAE,IAAI,CAS1B,kBAAmB,CACjB,WAAW,CRkCqB,IAAwD,CQzB1F,WAAY,CACV,aAAa,CAAE,IAAI,CAQrB,8DACU,CACR,OAAO,CAAE,KAAK,CACd,UAAU,CRyIuB,IAAqB,CQxItD,UAAU,CAAE,IAAI,CAChB,aAAa,CAAE,IAAI,CACnB,YAAY,CAAE,IAAI,CAClB,uPAAM,CACJ,OAAO,CAAE,MAAM,CACf,WAAW,CAAE,MAAM,CACnB,MAAM,CAAE,OAAO,CAGnB,0MAGwC,CACtC,QAAQ,CAAE,QAAQ,CAElB,WAAW,CAAE,KAAK,CAEpB,qMACsB,CACpB,UAAU,CAAE,IAAI,CAIlB,8BACiB,CACf,OAAO,CAAE,YAAY,CACrB,YAAY,CAAE,IAAI,CAClB,aAAa,CAAE,CAAC,CAChB,cAAc,CAAE,MAAM,CACtB,WAAW,CAAE,MAAM,CACnB,MAAM,CAAE,OAAO,CAEjB,6DACoC,CAClC,UAAU,CAAE,CAAC,CACb,WAAW,CAAE,IAAI,CAYjB,6hBACqB,CACnB,MAAM,CAAE,WAAW,CLqrBrB,gHAAW,CACT,MAAM,CHztBwB,IAAgF,CG0tB9G,OAAO,CAAE,QAAqC,CAC9C,SAAS,CH51Ba,IAA8B,CG61BpD,WAAW,CH7yBa,GAAG,CG8yB3B,aAAa,CH1yBW,GAAG,CG6yB7B,wIAAiB,CACf,MAAM,CHjuBwB,IAAgF,CGkuB9G,WAAW,CHluBmB,IAAgF,CGquBhH,iUAC2B,CACzB,MAAM,CAAE,IAAI,CAfd,gHAAW,CACT,MAAM,CH1tBwB,IAA+E,CG2tB7G,OAAO,CAAE,SAAqC,CAC9C,SAAS,CH71Ba,IAA8B,CG81BpD,WAAW,CH9yBa,IAAI,CG+yB5B,aAAa,CH3yBW,GAAG,CG8yB7B,wIAAiB,CACf,MAAM,CHluBwB,IAA+E,CGmuB7G,WAAW,CHnuBmB,IAA+E,CGsuB/G,iUAC2B,CACzB,MAAM,CAAE,IAAI,CKjrBhB,aAAc,CAEZ,QAAQ,CAAE,QAAQ,CAGlB,2BAAc,CACZ,aAAa,CAAE,IAA2B,CAI5C,oCAAuB,CACrB,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,IAA2B,CAChC,KAAK,CAAE,CAAC,CACR,OAAO,CAAE,KAAK,CACd,KAAK,CRvEyB,IAAwD,CQwEtF,MAAM,CRxEwB,IAAwD,CQyEtF,WAAW,CRzEmB,IAAwD,CQ0EtF,UAAU,CAAE,MAAM,CL4kBpB,8QAKkB,CAChB,KAAK,CH5HqB,OAAM,CG+HlC,0BAAc,CACZ,YAAY,CHhIc,OAAM,CGtnBlC,kBAAkB,CAAE,iCAAO,CACnB,UAAU,CAAE,iCAAO,CAuvBzB,gCAAQ,CAxvBV,kBAAkB,CAAE,iDAAO,CACnB,UAAU,CAAE,iDAAO,CA+vB3B,+BAAkB,CAChB,MAAM,CAAE,oBAAoB,CAC5B,YAAY,CAAE,kBAAwB,CAlwBxC,kBAAkB,CAAE,iCAAO,CACnB,UAAU,CAAE,iCAAO,CAswB3B,+BAAmB,CACjB,KAAK,CHlJqB,OAAM,CGmJhC,YAAY,CHnJc,OAAM,CGoJhC,gBAAgB,CHvQU,OAAiB,CG0Q7C,mCAAuB,CACrB,KAAK,CHxJqB,OAAM,CGsHlC,8QAKkB,CAChB,KAAK,CH7IqB,OAAY,CGgJxC,0BAAc,CACZ,YAAY,CHjJc,OAAY,CGrmBxC,kBAAkB,CAAE,iCAAO,CACnB,UAAU,CAAE,iCAAO,CAuvBzB,gCAAQ,CAxvBV,kBAAkB,CAAE,iDAAO,CACnB,UAAU,CAAE,iDAAO,CA+vB3B,+BAAkB,CAChB,MAAM,CAAE,oBAAoB,CAC5B,YAAY,CAAE,kBAAwB,CAlwBxC,kBAAkB,CAAE,iCAAO,CACnB,UAAU,CAAE,iCAAO,CAswB3B,+BAAmB,CACjB,KAAK,CHnKqB,OAAY,CGoKtC,YAAY,CHpKc,OAAY,CGqKtC,gBAAgB,CHrUU,OAAiB,CGwU7C,mCAAuB,CACrB,KAAK,CHzKqB,OAAY,CGuIxC,8PAKkB,CAChB,KAAK,CMryBqB,OAAI,CNwyBhC,wBAAc,CACZ,YAAY,CMzyBc,OAAI,CNmDhC,kBAAkB,CAAE,iCAAO,CACnB,UAAU,CAAE,iCAAO,CAuvBzB,8BAAQ,CAxvBV,kBAAkB,CAAE,iDAAO,CACnB,UAAU,CAAE,iDAAO,CA+vB3B,6BAAkB,CAChB,MAAM,CAAE,oBAAoB,CAC5B,YAAY,CAAE,kBAAwB,CAlwBxC,kBAAkB,CAAE,iCAAO,CACnB,UAAU,CAAE,iCAAO,CAswB3B,6BAAmB,CACjB,KAAK,CM3zBqB,OAAI,CN4zB9B,YAAY,CM5zBc,OAAI,CN6zB9B,gBAAgB,CH3PU,OAAgB,CG8P5C,iCAAuB,CACrB,KAAK,CMj0BqB,OAAI,CDwOlC,oBAAqB,CACnB,aAAa,CAAE,CAAC,CASlB,WAAY,CACV,OAAO,CAAE,KAAK,CACd,UAAU,CAAE,GAAG,CACf,aAAa,CAAE,IAAI,CACnB,KAAK,CAAE,OAAyB,CAmBhC,yBAAmC,CAEjC,iDAAY,CACV,OAAO,CAAE,YAAY,CACrB,aAAa,CAAE,CAAC,CAChB,cAAc,CAAE,MAAM,CAIxB,qDAAc,CACZ,OAAO,CAAE,YAAY,CACrB,KAAK,CAAE,IAAI,CACX,cAAc,CAAE,MAAM,CAGxB,+EAA6B,CAC3B,KAAK,CAAE,IAAI,CAGb,uDAAe,CACb,aAAa,CAAE,CAAC,CAChB,cAAc,CAAE,MAAM,CAMxB,iUACU,CACR,OAAO,CAAE,YAAY,CACrB,UAAU,CAAE,CAAC,CACb,aAAa,CAAE,CAAC,CAChB,YAAY,CAAE,CAAC,CACf,cAAc,CAAE,MAAM,CAExB,mfACiC,CAC/B,KAAK,CAAE,IAAI,CACX,WAAW,CAAE,CAAC,CAOhB,mGAAqC,CACnC,GAAG,CAAE,CAAC,EAcV,iRAIiB,CACf,UAAU,CAAE,CAAC,CACb,aAAa,CAAE,CAAC,CAChB,WAAW,CAAE,GAA4B,CAI3C,gLACU,CACR,UAAU,CAAE,IAAsD,CAIpE,4BAAY,CL8PZ,WAAW,CAAG,KAAc,CAC5B,YAAY,CAAE,KAAc,CAzoB5B,sEACQ,CACN,OAAO,CAAE,GAAG,CACZ,OAAO,CAAE,KAAK,CAEhB,kCAAQ,CACN,KAAK,CAAE,IAAI,CKwYb,qCAAqB,CACnB,WAAW,CAAE,GAA4B,CAI3C,yBAAmC,CACjC,+BAAe,CACb,UAAU,CAAE,KAAK,EAQrB,qDAAqC,CACnC,GAAG,CAAE,CAAC,CACN,KAAK,CAAE,IAAwB,CE1anC,IAAK,CACH,OAAO,CAAE,YAAY,CACrB,aAAa,CAAE,CAAC,CAChB,WAAW,CV0JoB,MAAM,CUzJrC,UAAU,CAAE,MAAM,CAClB,cAAc,CAAE,MAAM,CACtB,MAAM,CAAE,OAAO,CACf,gBAAgB,CAAE,IAAI,CACtB,MAAM,CAAE,qBAAqB,CAC7B,WAAW,CAAE,MAAM,CPkhBnB,OAAO,CAAE,QAAqC,CAC9C,SAAS,CHrde,IAAI,CGsd5B,WAAW,CH1ca,GAAG,CG2c3B,aAAa,CHnaa,GAAG,CGyH7B,mBAAmB,COzOE,IAAI,CP0OtB,gBAAgB,CO1OE,IAAI,CP2OrB,eAAe,CO3OE,IAAI,CP4OjB,WAAW,CO5OE,IAAI,CAKvB,8CAAQ,CPQV,OAAO,CAAE,WAAW,CAEpB,OAAO,CAAE,iCAAiC,CAC1C,cAAc,CAAE,IAAI,CACpB,aAAa,CH8T4B,OAAa,CUrUtD,qBACQ,CACN,KAAK,CVsoBqB,OAAc,CUroBxC,eAAe,CAAE,IAAI,CP0FvB,kBAAkB,CAAE,IAAO,CACnB,UAAU,CAAE,IAAO,COvF3B,uBACS,CACP,OAAO,CAAE,CAAC,CACV,gBAAgB,CAAE,IAAI,CPmFxB,kBAAkB,CAAE,2DAAO,CACnB,UAAU,CAAE,2DAAO,CO/E3B,oDAEqB,CACnB,MAAM,CAAE,WAAW,CACnB,cAAc,CAAE,IAAI,CP8OtB,OAAO,CO7OY,GAAG,CPgPtB,MAAM,CAAE,iBAA6B,CAvKrC,kBAAkB,CAAE,IAAO,CACnB,UAAU,CAAE,IAAO,COjE7B,YAAa,CP2bX,KAAK,CHgLuB,OAAc,CG/K1C,gBAAgB,CHwPY,OAAW,CGvPvC,YAAY,CH9UmB,OAAuB,CGgVtD,8GAG0C,CACxC,KAAK,CHwKqB,OAAc,CGvKxC,gBAAgB,CAAE,OAAwB,CACtC,YAAY,CAAE,OAAqB,CAE/B,kCAAkB,CAC1B,KAAK,CHmKqB,OAAc,CGlKxC,gBAAgB,CAAE,OAAwB,CACtC,YAAY,CAAE,OAAqB,CAEzC,uCACS,CACP,gBAAgB,CAAE,IAAI,CAEd,kCAAkB,CAC1B,gBAAgB,CAAE,IAAI,CAKtB,8cAIS,CACP,gBAAgB,CHyNQ,OAAW,CGxN/B,YAAY,CH7WW,OAAuB,CGiXtD,mBAAO,CACL,KAAK,CHmNqB,OAAW,CGlNrC,gBAAgB,CHyIU,OAAc,CUxmB5C,YAAa,CPwbX,KAAK,CHgLuB,OAAc,CG/K1C,gBAAgB,CHmLY,OAAW,CGlLvC,YAAY,CH1UmB,OAA2B,CG4U1D,8GAG0C,CACxC,KAAK,CHwKqB,OAAc,CGvKxC,gBAAgB,CAAE,OAAwB,CACtC,YAAY,CAAE,OAAqB,CAE/B,kCAAkB,CAC1B,KAAK,CHmKqB,OAAc,CGlKxC,gBAAgB,CAAE,OAAwB,CACtC,YAAY,CAAE,OAAqB,CAEzC,uCACS,CACP,gBAAgB,CAAE,IAAI,CAEd,kCAAkB,CAC1B,gBAAgB,CAAE,IAAI,CAKtB,8cAIS,CACP,gBAAgB,CHoJQ,OAAW,CGnJ/B,YAAY,CHzWW,OAA2B,CG6W1D,mBAAO,CACL,KAAK,CH8IqB,OAAW,CG7IrC,gBAAgB,CHyIU,OAAc,CUpmB5C,8EAAa,CPobX,KAAK,CHgLuB,OAAc,CG/K1C,gBAAgB,CH0FY,OAAc,CGzF1C,YAAY,CHtUmB,OAA2B,CGwU1D,ibAG0C,CACxC,KAAK,CHwKqB,OAAc,CGvKxC,gBAAgB,CAAE,OAAwB,CACtC,YAAY,CAAE,OAAqB,CAE/B,kNAAkB,CAC1B,KAAK,CHmKqB,OAAc,CGlKxC,gBAAgB,CAAE,OAAwB,CACtC,YAAY,CAAE,OAAqB,CAEzC,yLACS,CACP,gBAAgB,CAAE,IAAI,CAEd,kNAAkB,CAC1B,gBAAgB,CAAE,IAAI,CAKtB,2nEAIS,CACP,gBAAgB,CH2DQ,OAAc,CG1DlC,YAAY,CHrWW,OAA2B,CGyW1D,4FAAO,CACL,KAAK,CHqDqB,OAAc,CGpDxC,gBAAgB,CHyIU,OAAc,CUhmB5C,SAAU,CPgbR,KAAK,CHgLuB,OAAc,CG/K1C,gBAAgB,CH6FY,OAAW,CG5FvC,YAAY,CHlUmB,OAAwB,CGoUvD,kGAG0C,CACxC,KAAK,CHwKqB,OAAc,CGvKxC,gBAAgB,CAAE,OAAwB,CACtC,YAAY,CAAE,OAAqB,CAE/B,+BAAkB,CAC1B,KAAK,CHmKqB,OAAc,CGlKxC,gBAAgB,CAAE,OAAwB,CACtC,YAAY,CAAE,OAAqB,CAEzC,iCACS,CACP,gBAAgB,CAAE,IAAI,CAEd,+BAAkB,CAC1B,gBAAgB,CAAE,IAAI,CAKtB,iaAIS,CACP,gBAAgB,CH8DQ,OAAW,CG7D/B,YAAY,CHjWW,OAAwB,CGqWvD,gBAAO,CACL,KAAK,CHwDqB,OAAW,CGvDrC,gBAAgB,CHyIU,OAAc,CU5lB5C,YAAa,CP4aX,KAAK,CHgLuB,OAAc,CG/K1C,gBAAgB,CH4Rc,OAAY,CG3R1C,YAAY,CH9TmB,OAA2B,CGgU1D,8GAG0C,CACxC,KAAK,CHwKqB,OAAc,CGvKxC,gBAAgB,CAAE,OAAwB,CACtC,YAAY,CAAE,OAAqB,CAE/B,kCAAkB,CAC1B,KAAK,CHmKqB,OAAc,CGlKxC,gBAAgB,CAAE,OAAwB,CACtC,YAAY,CAAE,OAAqB,CAEzC,uCACS,CACP,gBAAgB,CAAE,IAAI,CAEd,kCAAkB,CAC1B,gBAAgB,CAAE,IAAI,CAKtB,8cAIS,CACP,gBAAgB,CH6PU,OAAY,CG5PlC,YAAY,CH7VW,OAA2B,CGiW1D,mBAAO,CACL,KAAK,CHuPuB,OAAY,CGtPxC,gBAAgB,CHyIU,OAAc,CUxlB5C,WAAY,CPwaV,KAAK,CHgLuB,OAAc,CG/K1C,gBAAgB,CH6NY,OAAW,CG5NvC,YAAY,CH1TmB,OAA0B,CG4TzD,0GAG0C,CACxC,KAAK,CHwKqB,OAAc,CGvKxC,gBAAgB,CAAE,OAAwB,CACtC,YAAY,CAAE,OAAqB,CAE/B,iCAAkB,CAC1B,KAAK,CHmKqB,OAAc,CGlKxC,gBAAgB,CAAE,OAAwB,CACtC,YAAY,CAAE,OAAqB,CAEzC,qCACS,CACP,gBAAgB,CAAE,IAAI,CAEd,iCAAkB,CAC1B,gBAAgB,CAAE,IAAI,CAKtB,+bAIS,CACP,gBAAgB,CH8LQ,OAAW,CG7L/B,YAAY,CHzVW,OAA0B,CG6VzD,kBAAO,CACL,KAAK,CHwLqB,OAAW,CGvLrC,gBAAgB,CHyIU,OAAc,CU/kB5C,SAAU,CACR,KAAK,CVklBuB,OAAW,CUjlBvC,WAAW,CAAE,MAAM,CACnB,MAAM,CAAE,OAAO,CACf,aAAa,CAAE,CAAC,CAEhB,2EAGqB,CACnB,gBAAgB,CAAE,WAAW,CP0B/B,kBAAkB,CAAE,IAAO,CACnB,UAAU,CAAE,IAAO,COxB3B,0DAGS,CACP,YAAY,CAAE,WAAW,CAE3B,+BACQ,CACN,KAAK,CViU8B,OAAiB,CUhUpD,eAAe,CAAE,SAAS,CAC1B,gBAAgB,CAAE,WAAW,CAI7B,yHACQ,CACN,KAAK,CV2nBmB,OAAW,CU1nBnC,eAAe,CAAE,IAAI,CAS3B,0BAAQ,CPsaN,OAAO,CAAE,SAAqC,CAC9C,SAAS,CHpde,IAA8B,CGqdtD,WAAW,CHrae,IAAI,CGsa9B,aAAa,CHlaa,GAAG,CUH/B,0BAAQ,CPkaN,OAAO,CAAE,QAAqC,CAC9C,SAAS,CHnde,IAA8B,CGodtD,WAAW,CHpae,GAAG,CGqa7B,aAAa,CHjaa,GAAG,CUA/B,0BAAQ,CP8ZN,OAAO,CAAE,OAAqC,CAC9C,SAAS,CHnde,IAA8B,CGodtD,WAAW,CHpae,GAAG,CGqa7B,aAAa,CHjaa,GAAG,CUQ/B,UAAW,CACT,OAAO,CAAE,KAAK,CACd,KAAK,CAAE,IAAI,CACX,YAAY,CAAE,CAAC,CACf,aAAa,CAAE,CAAC,CAIlB,qBAAwB,CACtB,UAAU,CAAE,GAAG,CAOf,2FAAY,CACV,KAAK,CAAE,IAAI,CCrJf,KAAM,CACJ,OAAO,CAAE,CAAC,CRsHV,kBAAkB,CAAE,oBAAW,CACvB,UAAU,CAAE,oBAAW,CQrH/B,QAAK,CACH,OAAO,CAAE,CAAC,CAId,SAAU,CACR,OAAO,CAAE,IAAI,CACb,YAAK,CACH,OAAO,CAAE,KAAK,CAGlB,WAAY,CACV,QAAQ,CAAE,QAAQ,CAClB,MAAM,CAAE,CAAC,CACT,QAAQ,CAAE,MAAM,CAChB,WAAW,CAAE,MAAM,CRqGnB,kBAAkB,CAAE,iBAAW,CACvB,UAAU,CAAE,iBAAW,CS3HjC,MAAO,CACL,OAAO,CAAE,YAAY,CACrB,KAAK,CAAE,CAAC,CACR,MAAM,CAAE,CAAC,CACT,WAAW,CAAE,GAAG,CAChB,cAAc,CAAE,MAAM,CACtB,UAAU,CAAI,SAAuB,CACrC,YAAY,CAAE,qBAAmC,CACjD,WAAW,CAAG,qBAAmC,CAInD,SAAU,CACR,QAAQ,CAAE,QAAQ,CAIpB,sBAAuB,CACrB,OAAO,CAAE,CAAC,CAIZ,cAAe,CACb,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,IAAI,CACT,IAAI,CAAE,CAAC,CACP,OAAO,CZyNqB,IAAI,CYxNhC,OAAO,CAAE,IAAI,CACb,KAAK,CAAE,IAAI,CACX,SAAS,CAAE,KAAK,CAChB,OAAO,CAAE,KAAK,CACd,MAAM,CAAE,OAAO,CACf,UAAU,CAAE,IAAI,CAChB,SAAS,CZwCe,IAAI,CYvC5B,gBAAgB,CZitBY,OAAa,CYhtBzC,MAAM,CAAE,cAAmC,CAC3C,MAAM,CAAE,0BAA0B,CCkTlC,kBAAwC,CDjTjB,GAAG,CCiT1B,qBAAwC,CC9Sb,GAAuB,CD8SlD,aAAwC,CDjTjB,GAAG,CT+E1B,kBAAkB,CAAE,0BAAO,CACnB,UAAU,CAAE,0BAAO,CS9E3B,eAAe,CAAE,WAAW,CAK5B,yBAAa,CACX,KAAK,CAAE,CAAC,CACR,IAAI,CAAE,IAAI,CAIZ,uBAAS,CToVT,MAAM,CAAE,GAAG,CACX,MAAM,CAAE,KAAmC,CAC3C,QAAQ,CAAE,MAAM,CAChB,gBAAgB,CH+VY,OAAW,CYjrBvC,mBAAS,CACP,OAAO,CAAE,KAAK,CACd,OAAO,CAAE,QAAQ,CACjB,KAAK,CAAE,IAAI,CACX,WAAW,CAAE,MAAM,CACnB,WAAW,CZyBW,GAAG,CYxBzB,KAAK,CZ2lBqB,OAAU,CY1lBpC,WAAW,CAAE,MAAM,CAMrB,mDACQ,CACN,eAAe,CAAE,IAAI,CACrB,KAAK,CZqpBqB,OAAa,CYppBvC,gBAAgB,CZgqBU,OAAW,CY1pBvC,sFAEQ,CACN,KAAK,CZkqBqB,OAAa,CYjqBvC,eAAe,CAAE,IAAI,CACrB,OAAO,CAAE,CAAC,CACV,gBAAgB,CZ+kBU,OAAW,CYtkBvC,4FAEQ,CACN,KAAK,CZwoBqB,OAAW,CYnoBvC,iEACQ,CACN,eAAe,CAAE,IAAI,CACrB,gBAAgB,CAAE,WAAW,CAC7B,gBAAgB,CAAE,IAAI,CTkPxB,MAAM,CAAE,2DAA2D,CShPjE,MAAM,CAAE,WAAW,CAOrB,oBAAiB,CACf,OAAO,CAAE,KAAK,CAIhB,OAAI,CACF,OAAO,CAAE,CAAC,CAQd,oBAAqB,CACnB,IAAI,CAAE,IAAI,CACV,KAAK,CAAE,CAAC,CAQV,mBAAoB,CAClB,IAAI,CAAE,CAAC,CACP,KAAK,CAAE,IAAI,CAIb,gBAAiB,CACf,OAAO,CAAE,KAAK,CACd,OAAO,CAAE,QAAQ,CACjB,SAAS,CZxEe,IAA8B,CYyEtD,WAAW,CZ/Da,GAAG,CYgE3B,KAAK,CZmlBuB,OAAW,CY/kBzC,kBAAmB,CACjB,QAAQ,CAAE,KAAK,CACf,IAAI,CAAE,CAAC,CACP,KAAK,CAAE,CAAC,CACR,MAAM,CAAE,CAAC,CACT,GAAG,CAAE,CAAC,CACN,OAAO,CAAE,GAAuB,CAIlC,0BAA6B,CAC3B,KAAK,CAAE,CAAC,CACR,IAAI,CAAE,IAAI,CAWV,oDAAO,CACL,UAAU,CAAE,CAAC,CACb,aAAa,CAAE,SAAuB,CACtC,OAAO,CAAE,EAAE,CAGb,oEAAe,CACb,GAAG,CAAE,IAAI,CACT,MAAM,CAAE,IAAI,CACZ,aAAa,CAAE,GAAG,CAStB,yBAA2C,CAEvC,4BAAe,CACb,KAAK,CAAE,CAAC,CAAE,IAAI,CAAE,IAAI,CAItB,iCAAoB,CAClB,IAAI,CAAE,CAAC,CAAE,KAAK,CAAE,IAAI,EG3M1B,8BACoB,CAClB,QAAQ,CAAE,QAAQ,CAClB,OAAO,CAAE,YAAY,CACrB,cAAc,CAAE,MAAM,CACtB,wCAAO,CACL,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,IAAI,CAEX,uNAGS,CACP,OAAO,CAAE,CAAC,CAEZ,oDAAQ,CAEN,OAAO,CAAE,IAAI,CAOjB,2GAGwB,CACtB,WAAW,CAAE,IAAI,CAKrB,YAAa,CACX,WAAW,CAAE,IAAI,CZpBjB,sCACQ,CACN,OAAO,CAAE,GAAG,CACZ,OAAO,CAAE,KAAK,CAEhB,kBAAQ,CACN,KAAK,CAAE,IAAI,CYiBb,iDACa,CACX,KAAK,CAAE,IAAI,CAEb,mEAEe,CACb,WAAW,CAAE,GAAG,CAIpB,wEAA2E,CACzE,aAAa,CAAE,CAAC,CAIlB,2BAA8B,CAC5B,WAAW,CAAE,CAAC,CACd,kEAAyC,CZ4CzC,0BAA0B,CY3CK,CAAC,CZ4C7B,uBAAuB,CY5CK,CAAC,CAIlC,0FACgD,CZ8C9C,yBAAyB,CY7CG,CAAC,CZ8C1B,sBAAsB,CY9CG,CAAC,CAI/B,qBAAwB,CACtB,KAAK,CAAE,IAAI,CAEb,6DAAkE,CAChE,aAAa,CAAE,CAAC,CAGhB,oGACmB,CZyBnB,0BAA0B,CYxBK,CAAC,CZyB7B,uBAAuB,CYzBK,CAAC,CAGlC,iDAAsD,CZ6BpD,yBAAyB,CY5BG,CAAC,CZ6B1B,sBAAsB,CY7BG,CAAC,CAI/B,mEACiC,CAC/B,OAAO,CAAE,CAAC,CAiBZ,gCAAqC,CACnC,YAAY,CAAE,GAAG,CACjB,aAAa,CAAE,GAAG,CAEpB,iFAAwC,CACtC,YAAY,CAAE,IAAI,CAClB,aAAa,CAAE,IAAI,CAKrB,gCAAiC,CZI/B,kBAAkB,CAAE,iCAAO,CACnB,UAAU,CAAE,iCAAO,CYD3B,yCAAW,CZAX,kBAAkB,CAAE,IAAO,CACnB,UAAU,CAAE,IAAO,CYM7B,WAAY,CACV,WAAW,CAAE,CAAC,CAGhB,wCAAe,CACb,YAAY,CAAE,SAAuC,CACrD,mBAAmB,CAAE,CAAC,CAGxB,wDAAuB,CACrB,YAAY,CAAE,SAAuC,CAQrD,2FAEoB,CAClB,OAAO,CAAE,KAAK,CACd,KAAK,CAAE,IAAI,CACX,KAAK,CAAE,IAAI,CACX,SAAS,CAAE,IAAI,CZtIjB,0EACQ,CACN,OAAO,CAAE,GAAG,CACZ,OAAO,CAAE,KAAK,CAEhB,oCAAQ,CACN,KAAK,CAAE,IAAI,CYsIX,mCAAO,CACL,KAAK,CAAE,IAAI,CAIf,+IAG0B,CACxB,UAAU,CAAE,IAAI,CAChB,WAAW,CAAE,CAAC,CAKhB,2DAAqC,CACnC,aAAa,CAAE,CAAC,CAElB,qDAA+B,CAC7B,uBAAuB,Cf/CC,GAAG,CGvB7B,0BAA0B,CYuEM,CAAC,CZtEhC,yBAAyB,CYsEM,CAAC,CAEjC,qDAA+B,CAC7B,yBAAyB,CfnDD,GAAG,CG/B7B,uBAAuB,CYmFM,CAAC,CZlF7B,sBAAsB,CYkFM,CAAC,CAGhC,sEAA2E,CACzE,aAAa,CAAE,CAAC,CAGhB,wJACmB,CZnFnB,0BAA0B,CYoFM,CAAC,CZnFhC,yBAAyB,CYmFM,CAAC,CAGnC,4EAAiF,CZ/F/E,uBAAuB,CYgGI,CAAC,CZ/F3B,sBAAsB,CY+FI,CAAC,CAQ9B,oBAAqB,CACnB,OAAO,CAAE,KAAK,CACd,KAAK,CAAE,IAAI,CACX,YAAY,CAAE,KAAK,CACnB,eAAe,CAAE,QAAQ,CACzB,yDACa,CACX,KAAK,CAAE,IAAI,CACX,OAAO,CAAE,UAAU,CACnB,KAAK,CAAE,EAAE,CAEX,oCAAkB,CAChB,KAAK,CAAE,IAAI,CAMf,oGACwD,CACtD,OAAO,CAAE,IAAI,CC1Nf,YAAa,CACX,QAAQ,CAAE,QAAQ,CAClB,OAAO,CAAE,KAAK,CACd,eAAe,CAAE,QAAQ,CAGzB,2BAAiB,CACf,KAAK,CAAE,IAAI,CACX,YAAY,CAAE,CAAC,CACf,aAAa,CAAE,CAAC,CAGlB,0BAAc,CAGZ,QAAQ,CAAE,QAAQ,CAClB,OAAO,CAAE,CAAC,CAKV,KAAK,CAAE,IAAI,CAEX,KAAK,CAAE,IAAI,CACX,aAAa,CAAE,CAAC,CAmBpB,8DAE2B,CACzB,OAAO,CAAE,UAAU,CAEnB,uKAAqC,CACnC,aAAa,CAAE,CAAC,CAIpB,mCACiB,CACf,KAAK,CAAE,EAAE,CACT,WAAW,CAAE,MAAM,CACnB,cAAc,CAAE,MAAM,CAKxB,kBAAmB,CACjB,OAAO,CAAE,QAA+C,CACxD,SAAS,ChBSe,IAAI,CgBR5B,WAAW,CAAE,MAAM,CACnB,WAAW,CAAE,CAAC,CACd,KAAK,ChBqqBuB,OAAW,CgBpqBvC,UAAU,CAAE,MAAM,CAClB,gBAAgB,ChBopBY,OAAY,CgBnpBxC,MAAM,CAAE,iBAAyC,CACjD,aAAa,ChBsDa,GAAG,CgBnD7B,sHAAW,CACT,OAAO,CAAE,QAAiD,CAC1D,SAAS,ChBDa,IAA8B,CgBEpD,aAAa,ChBkDW,GAAG,CgBhD7B,sHAAW,CACT,OAAO,CAAE,SAAiD,CAC1D,SAAS,ChBPa,IAA8B,CgBQpD,aAAa,ChB4CW,GAAG,CgBxC7B,gFACuB,CACrB,UAAU,CAAE,CAAC,CAKjB,uUAMiE,CbD/D,0BAA0B,CaEG,CAAC,CbD3B,uBAAuB,CaCG,CAAC,CAEhC,8BAA+B,CAC7B,YAAY,CAAE,CAAC,CAEjB,gTAMmE,CbLjE,yBAAyB,CaMG,CAAC,CbL1B,sBAAsB,CaKG,CAAC,CAE/B,6BAA8B,CAC5B,WAAW,CAAE,CAAC,CAKhB,gBAAiB,CACf,QAAQ,CAAE,QAAQ,CAGlB,SAAS,CAAE,CAAC,CACZ,WAAW,CAAE,MAAM,CAInB,qBAAO,CACL,QAAQ,CAAE,QAAQ,CAClB,0BAAO,CACL,WAAW,CAAE,IAAI,CAGnB,oFAES,CACP,OAAO,CAAE,CAAC,CAMZ,yEACa,CACX,YAAY,CAAE,IAAI,CAIpB,uEACa,CACX,WAAW,CAAE,IAAI,CCtJvB,IAAK,CACH,aAAa,CAAE,CAAC,CAChB,YAAY,CAAE,CAAC,CACf,UAAU,CAAE,IAAI,CdQhB,sBACQ,CACN,OAAO,CAAE,GAAG,CACZ,OAAO,CAAE,KAAK,CAEhB,UAAQ,CACN,KAAK,CAAE,IAAI,CcXb,OAAK,CACH,QAAQ,CAAE,QAAQ,CAClB,OAAO,CAAE,KAAK,CAEd,SAAI,CACF,QAAQ,CAAE,QAAQ,CAClB,OAAO,CAAE,KAAK,CACd,OAAO,CjBqX+B,WAAW,CiBpXjD,+BACQ,CACN,eAAe,CAAE,IAAI,CACrB,gBAAgB,CjBmlBM,OAAK,CiB9kB/B,kBAAe,CACb,KAAK,CjB+sBmB,OAAW,CiB7sBnC,iDACQ,CACN,KAAK,CjB2sBiB,OAAW,CiB1sBjC,eAAe,CAAE,IAAI,CACrB,gBAAgB,CAAE,WAAW,CAC7B,MAAM,CAAE,WAAW,CAOvB,kDAEQ,CACN,gBAAgB,CjB4jBQ,OAAK,CiB3jB7B,YAAY,CjBwnBY,OAAW,CiB/mBvC,iBAAa,CdkVb,MAAM,CAAE,GAAG,CACX,MAAM,CAAE,KAAmC,CAC3C,QAAQ,CAAE,MAAM,CAChB,gBAAgB,CAJS,OAAO,Cc1UhC,aAAe,CACb,SAAS,CAAE,IAAI,CASnB,SAAU,CACR,aAAa,CAAE,iBAAgC,CAC/C,YAAK,CACH,KAAK,CAAE,IAAI,CAEX,aAAa,CAAE,IAAI,CACnB,YAAY,CAAE,GAAG,CAGjB,cAAI,CACF,WAAW,CjBMS,GAAG,CiBLvB,MAAM,CAAE,qBAAqB,CAE7B,oBAAQ,CACN,YAAY,CAAE,uBAA0F,CAM1G,6EAEQ,CACN,KAAK,CjB4jBiB,OAAU,CiB3jBhC,MAAM,CAAE,iBAAkD,CAC1D,mBAAmB,CAAE,WAAW,CAChC,MAAM,CAAE,OAAO,CAerB,aAAK,CACH,KAAK,CAAE,IAAI,CAGX,eAAI,CACF,aAAa,CjBsSyB,GAAmB,CiBpS3D,gBAAK,CACH,WAAW,CAAE,GAAG,CAKhB,gFAEQ,CACN,KAAK,CjB6R+B,IAAuB,CiB5R3D,gBAAgB,CjBoiBM,OAAW,CiB3hBvC,eAAK,CACH,KAAK,CAAE,IAAI,CACX,kBAAK,CACH,UAAU,CAAE,GAAG,CACf,WAAW,CAAE,CAAC,CAYpB,sCAAe,CACb,KAAK,CAAE,IAAI,CAEX,4CAAK,CACH,KAAK,CAAE,IAAI,CACV,gDAAI,CACH,UAAU,CAAE,MAAM,CAClB,aAAa,CAAE,GAAG,CAItB,uCAA2B,CACzB,GAAG,CAAE,IAAI,CACT,IAAI,CAAE,IAAI,CAGZ,yBAAmC,CACjC,4CAAK,CACH,OAAO,CAAE,UAAU,CACnB,KAAK,CAAE,EAAE,CACT,gDAAI,CACF,aAAa,CAAE,CAAC,EASxB,2CAAoB,CAClB,aAAa,CAAE,CAAC,CAEhB,qDAAS,CAEP,YAAY,CAAE,CAAC,CACf,aAAa,CjB/DW,GAAG,CiBkE7B,uNAEoB,CAClB,MAAM,CAAE,cAA+C,CAGzD,yBAAmC,CACjC,qDAAS,CACP,aAAa,CAAE,cAA+C,CAC9D,aAAa,CAAE,WAA2C,CAE5D,uNAEoB,CAClB,mBAAmB,CjB+gBK,OAAa,EiBpgBzC,sBAAY,CACV,OAAO,CAAE,IAAI,CAEf,oBAAU,CACR,OAAO,CAAE,KAAK,CASlB,wBAAyB,CAEvB,UAAU,CAAE,IAAI,CdzIhB,uBAAuB,Cc2II,CAAC,Cd1I3B,sBAAsB,Cc0II,CAAC,CCrO9B,OAAQ,CACN,QAAQ,CAAE,QAAQ,CAClB,UAAU,ClB+TuB,IAAI,CkB9TrC,aAAa,ClB+ToB,IAAqB,CGzTtD,4BACQ,CACN,OAAO,CAAE,GAAG,CACZ,OAAO,CAAE,KAAK,CAEhB,aAAQ,CACN,KAAK,CAAE,IAAI,CePb,yBAA2C,CAR7C,OAAQ,CASJ,aAAa,ClB0TkB,GAAmB,EG1TpD,0CACQ,CACN,OAAO,CAAE,GAAG,CACZ,OAAO,CAAE,KAAK,CAEhB,oBAAQ,CACN,KAAK,CAAE,IAAI,CeOb,yBAA2C,CAH7C,cAAe,CAIX,KAAK,CAAE,IAAI,EAef,gBAAiB,CACf,UAAU,ClB+RuB,KAAK,CkB9RtC,UAAU,CAAE,OAAO,CACnB,aAAa,ClB2RoB,IAA+B,CkB1RhE,YAAY,ClB0RqB,IAA+B,CkBzRhE,UAAU,CAAE,qBAAqB,CACjC,UAAU,CAAE,mCAAkC,CAE9C,0BAA0B,CAAE,KAAK,CfrCjC,8CACQ,CACN,OAAO,CAAE,GAAG,CACZ,OAAO,CAAE,KAAK,CAEhB,sBAAQ,CACN,KAAK,CAAE,IAAI,CeiCb,mBAAK,CACH,UAAU,CAAE,IAAI,CAGlB,yBAA2C,CAd7C,gBAAiB,CAeb,KAAK,CAAE,IAAI,CACX,UAAU,CAAE,CAAC,CACb,UAAU,CAAE,IAAI,CAEhB,yBAAW,CACT,OAAO,CAAE,gBAAgB,CACzB,MAAM,CAAE,eAAe,CACvB,cAAc,CAAE,CAAC,CACjB,QAAQ,CAAE,kBAAkB,CAG9B,mBAAK,CACH,UAAU,CAAE,OAAO,CAKrB,4GAEuB,CACrB,YAAY,CAAE,CAAC,CACf,aAAa,CAAE,CAAC,EAYpB,uHACmB,CACjB,YAAY,CAAE,KAA2B,CACzC,WAAW,CAAG,KAA2B,CAEzC,yBAA2C,CAL7C,uHACmB,CAKf,YAAY,CAAE,CAAC,CACf,WAAW,CAAG,CAAC,EAarB,kBAAmB,CACjB,OAAO,ClBmIqB,IAAI,CkBlIhC,YAAY,CAAE,OAAO,CAErB,yBAA2C,CAJ7C,kBAAmB,CAKf,aAAa,CAAE,CAAC,EAKpB,sCACqB,CACnB,QAAQ,CAAE,KAAK,CACf,KAAK,CAAE,CAAC,CACR,IAAI,CAAE,CAAC,CACP,OAAO,ClByHqB,IAAI,CkBtHhC,yBAA2C,CAR7C,sCACqB,CAQjB,aAAa,CAAE,CAAC,EAGpB,iBAAkB,CAChB,GAAG,CAAE,CAAC,CACN,YAAY,CAAE,OAAO,CAEvB,oBAAqB,CACnB,MAAM,CAAE,CAAC,CACT,aAAa,CAAE,CAAC,CAChB,YAAY,CAAE,OAAO,CAMvB,aAAc,CACZ,KAAK,CAAE,IAAI,CACX,OAAO,CAAE,QAAmD,CAC5D,SAAS,CAAE,KAAK,CAChB,WAAW,ClBiLsB,IAAqB,CkBhLtD,MAAM,ClB+K2B,IAAI,CkB9KrC,WAAW,ClBpFa,yDAA6D,CkBsFrF,uCACQ,CACN,eAAe,CAAE,IAAI,CAGvB,yBAA2C,CACzC,uEAC6B,CAC3B,WAAW,CAAE,KAA2B,EAW9C,cAAe,CACb,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,KAAK,CACZ,YAAY,ClByJqB,IAA+B,CkBxJhE,WAAW,ClBwJsB,IAA+B,CkBvJhE,OAAO,CAAE,QAAQ,CfmbjB,UAAU,CAAE,IAAwC,CACpD,aAAa,CAAE,IAAwC,CelbvD,gBAAgB,ClBqeY,OAAU,CkBpetC,gBAAgB,CAAE,IAAI,CACtB,MAAM,CAAE,iBAAmC,CLiK3C,kBAAwC,CKhKjB,GAAG,CLgK1B,qBAAwC,CC9Sb,GAAuB,CD8SlD,aAAwC,CKhKjB,GAAG,CAI1B,oBAAQ,CACN,OAAO,CAAE,IAAI,CAIf,wBAAU,CACR,OAAO,CAAE,KAAK,CACd,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,GAAG,CACX,aAAa,CAAE,GAAG,CAEpB,kCAAsB,CACpB,UAAU,CAAE,GAAG,CAGjB,yBAA2C,CA7B7C,cAAe,CA8BX,OAAO,CAAE,IAAI,EAUjB,WAAY,CACV,MAAM,CAAE,SAA4D,CAkClE,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,CAAC,CAjCX,gBAAS,CACP,WAAW,CAAK,IAAI,CACpB,cAAc,CAAE,IAAI,CACpB,WAAW,ClB4GoB,IAAqB,CkBzGtD,yBAA+C,CAE7C,gCAAqB,CACnB,QAAQ,CAAE,MAAM,CAChB,KAAK,CAAE,IAAI,CACX,KAAK,CAAE,IAAI,CACX,UAAU,CAAE,CAAC,CACb,gBAAgB,CAAE,WAAW,CAC7B,MAAM,CAAE,CAAC,CACT,UAAU,CAAE,IAAI,CAChB,uFACiB,CACf,OAAO,CAAE,iBAAiB,CAE5B,qCAAS,CACP,WAAW,ClB0FgB,IAAqB,CkBzFhD,uFACQ,CACN,gBAAgB,CAAE,IAAI,EAW5B,cAAK,CACH,KAAK,CAAE,IAAI,CACX,YAAY,CAAE,GAAG,CACjB,gBAAI,CACF,WAAW,ClB2EkB,GAA2C,CkB1ExE,cAAc,ClB0Ee,GAA2C,CkBtE5E,mCAA0B,CACxB,YAAY,CAAE,KAA2B,CAY/C,yBAA2C,CACzC,YAAa,CACX,KAAK,CAAE,eAAe,CAExB,aAAc,CACZ,KAAK,CAAE,gBAAgB,EAU3B,YAAa,CACX,WAAW,CAAE,KAA2B,CACxC,YAAY,CAAE,KAA2B,CACzC,OAAO,CAAE,SAA+B,CACxC,UAAU,CAAE,qBAAqB,CACjC,aAAa,CAAE,qBAAqB,CfhLpC,kBAAkB,CAAE,iEAAO,CACnB,UAAU,CAAE,iEAAO,CA+e3B,UAAU,CAAE,IAAwC,CACpD,aAAa,CAAE,IAAwC,CezTrD,yBAA+C,CADjD,wBAAY,CAER,aAAa,CAAE,GAAG,EAQtB,yBAA2C,CAtB7C,YAAa,CAuBT,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,CAAC,CACT,WAAW,CAAE,CAAC,CACd,YAAY,CAAE,CAAC,CACf,WAAW,CAAE,CAAC,CACd,cAAc,CAAE,CAAC,CfvMnB,kBAAkB,CAAE,IAAO,CACnB,UAAU,CAAE,IAAO,Ce0MzB,oCAA0B,CACxB,YAAY,CAAE,KAA2B,EAS/C,6BAAkC,CAChC,UAAU,CAAE,CAAC,Cf5Ob,uBAAuB,Ce6OI,CAAC,Cf5O3B,sBAAsB,Ce4OI,CAAC,CAG9B,kDAAuD,CfxOrD,0BAA0B,CeyOI,CAAC,CfxO9B,yBAAyB,CewOI,CAAC,CAQjC,WAAY,Cf6QV,UAAU,CAAE,IAAwC,CACpD,aAAa,CAAE,IAAwC,Ce3QvD,gDAAS,Cf0QT,UAAU,CAAE,GAAwC,CACpD,aAAa,CAAE,GAAwC,CexQvD,gDAAS,CfuQT,UAAU,CAAE,GAAwC,CACpD,aAAa,CAAE,GAAwC,Ce9PzD,YAAa,Cf6PX,UAAU,CAAE,GAAwC,CACpD,aAAa,CAAE,GAAwC,Ce5PvD,WAAW,ClBtSa,yDAA6D,CkBySnF,KAAK,CAAE,IAAI,CACX,WAAW,ClBrCoB,IAA+B,CkBsC9D,YAAY,ClBtCmB,IAA+B,CkByC9D,oCAA0B,CACxB,YAAY,CAAE,CAAC,CASrB,eAAgB,CACd,UAAU,CAAE,kBAAmD,CAC/D,YAAY,ClB9CqB,IAAI,CkBgDrC,6BAAc,CACZ,KAAK,ClBrCkC,IAA0B,CkBsCjE,uEACQ,CACN,KAAK,ClBvCgC,OAAa,CkBwClD,gBAAgB,ClBvCqB,WAAW,CkB2CpD,4BAAa,CACX,KAAK,ClB+VqB,OAAW,CkB3VrC,gCAAS,CACP,KAAK,ClBnDgC,IAA0B,CkBqD/D,6EACQ,CACN,KAAK,ClB/D8B,OAAc,CkBgEjD,gBAAgB,ClB/DmB,WAAW,CkBmEhD,iFACQ,CACN,KAAK,ClB7D8B,OAAa,CkB8DhD,gBAAgB,ClBpEmB,WAAW,CkBsEhD,2CAAO,CACL,KAAK,ClB1E8B,OAAc,CkB8EnD,mIAEQ,CACN,KAAK,ClBkMiB,OAAK,CkBjM3B,gBAAgB,ClB7EmB,WAAW,CkBkFpD,8BAAe,CACb,YAAY,ClBzE2B,OAAK,CkB0E5C,KAAK,ClB6SqB,OAAY,CkB5StC,MAAM,CAAE,OAAO,CAEf,yEACQ,CACN,YAAY,CAAE,OAAkB,CAChC,gBAAgB,CAAE,OAAuB,CAEzC,6FAAS,CACP,gBAAgB,ClBzFmB,OAAa,CkB4FpD,wCAAU,CACR,gBAAgB,ClBvFqB,OAAK,CkB2F9C,6DACa,CACX,YAAY,ClBhHmB,IAAI,CkBuHjC,uHAEQ,CACN,gBAAgB,ClBnHmB,WAAW,CkBoH9C,KAAK,ClB9G8B,OAAa,CkBkHpD,yBAA+C,CAG3C,qDAAS,CACP,KAAK,ClBvH4B,IAA0B,CkBwH3D,uHACQ,CACN,KAAK,ClBlI0B,OAAc,CkBmI7C,gBAAgB,ClBlIe,WAAW,CkBsI5C,4LAEQ,CACN,KAAK,ClBjI0B,OAAa,CkBkI5C,gBAAgB,ClBxIe,WAAW,CkB4I5C,kMAEQ,CACN,KAAK,ClBiIa,OAAK,CkBhIvB,gBAAgB,ClB9Ie,WAAW,EkB0JpD,4BAAa,CACX,KAAK,ClBxJkC,IAA0B,CkByJjE,kCAAQ,CACN,KAAK,ClBlKgC,OAAc,CkB0KzD,eAAgB,CACd,gBAAgB,ClBtJ0B,IAAI,CkBuJ9C,YAAY,ClBtJ8B,OAA+B,CkBwJzE,6BAAc,CACZ,KAAK,ClBsOqB,OAAW,CkBrOrC,uEACQ,CACN,KAAK,ClB/IiC,IAAI,CkBgJ1C,gBAAgB,ClB/IsB,WAAW,CkBmJrD,4BAAa,CACX,KAAK,ClB6NqB,OAAW,CkBzNrC,gCAAS,CACP,KAAK,ClBwNmB,OAAW,CkBtNnC,6EACQ,CACN,KAAK,ClBrK+B,IAAgC,CkBsKpE,gBAAgB,ClBvKoB,WAAW,CkB2KjD,6HAEQ,CACN,KAAK,ClB7K+B,IAAgC,CkB8KpE,gBAAgB,ClB7KoB,OAA+B,CkBiLrE,mIAEQ,CACN,KAAK,ClBnL+B,IAAI,CkBoLxC,gBAAgB,ClBnLoB,WAAW,CkByLrD,8BAAe,CACb,YAAY,ClBhL4B,IAAI,CkBiL5C,yEACQ,CACN,gBAAgB,ClBrLsB,IAAI,CkBuL5C,wCAAU,CACR,gBAAgB,ClBvLsB,IAAI,CkB2L9C,6DACa,CACX,YAAY,CAAE,OAA8B,CAM1C,uHAEQ,CACN,gBAAgB,ClBjNoB,OAA+B,CkBkNnE,KAAK,ClBnN+B,IAAgC,CkBuNxE,yBAA+C,CAG3C,iEAAmB,CACjB,YAAY,ClBjOsB,OAA+B,CkBmOnE,yDAAS,CACP,gBAAgB,ClBpOkB,OAA+B,CkBsOnE,qDAAS,CACP,KAAK,ClBwJe,OAAW,CkBvJ/B,uHACQ,CACN,KAAK,ClBpO2B,IAAgC,CkBqOhE,gBAAgB,ClBtOgB,WAAW,CkB0O7C,4LAEQ,CACN,KAAK,ClB5O2B,IAAgC,CkB6OhE,gBAAgB,ClB5OgB,OAA+B,CkBgPjE,kMAEQ,CACN,KAAK,ClBlP2B,IAAI,CkBmPpC,gBAAgB,ClBlPgB,WAAW,EkByPrD,4BAAa,CACX,KAAK,ClB4HqB,OAAW,CkB3HrC,kCAAQ,CACN,KAAK,ClB/PiC,IAAgC,CmBhX5E,WAAY,CACV,OAAO,CAAE,OAA2D,CACpE,aAAa,CnBqUoB,IAAqB,CmBpUtD,UAAU,CAAE,IAAI,CAChB,gBAAgB,CnB8qBc,IAAI,CmB7qBlC,aAAa,CnByHa,GAAG,CmBvH7B,cAAK,CACH,OAAO,CAAE,YAAY,CAErB,wBAAY,CACV,OAAO,CAAE,IAA+B,CACxC,OAAO,CAAE,KAAK,CACd,KAAK,CnB4tBmB,OAAW,CmBxtBvC,mBAAU,CACR,KAAK,CnBytBqB,OAAM,CoB7uBpC,WAAY,CACV,OAAO,CAAE,YAAY,CACrB,YAAY,CAAE,CAAC,CACf,MAAM,CAAE,MAAuB,CAC/B,aAAa,CpB4Ha,GAAG,CoB1H7B,cAAK,CACH,OAAO,CAAE,MAAM,CACf,oCACO,CACL,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,IAAI,CACX,OAAO,CAAE,QAA+C,CACxD,WAAW,CpB2ES,GAAG,CoB1EvB,eAAe,CAAE,IAAI,CACrB,KAAK,CpBupBmB,OAAW,CoBtpBnC,gBAAgB,CpB0aiB,IAAc,CoBza/C,MAAM,CAAE,cAA4B,CACpC,WAAW,CAAE,IAAI,CAGjB,4DACO,CACL,WAAW,CAAE,CAAC,CjBsFpB,yBAAyB,CHmBC,GAAG,CGlB1B,sBAAsB,CHkBC,GAAG,CoBpGzB,0DACO,CjBwEX,0BAA0B,CH2BA,GAAG,CG1B1B,uBAAuB,CH0BA,GAAG,CoB3F3B,iGACQ,CACN,KAAK,CpBkY4B,OAAiB,CoBjYlD,gBAAgB,CpB8sBQ,OAAa,CoB7sBrC,YAAY,CpBkYqB,IAAI,CoB5XvC,oKAEQ,CACN,OAAO,CAAE,CAAC,CACV,KAAK,CpB8Y4B,IAAwB,CoB7YzD,gBAAgB,CpBknBQ,OAAW,CoBjnBnC,YAAY,CpBinBY,OAAW,CoBhnBnC,MAAM,CAAE,OAAO,CAKjB,gLAKU,CACR,KAAK,CpB0qBmB,OAAW,CoBzqBnC,gBAAgB,CpBgXiB,IAAI,CoB/WrC,YAAY,CpBgXqB,IAAI,CoB/WrC,MAAM,CAAE,WAAW,CjBserB,0CACO,CACL,OAAO,CAAE,SAAqC,CAC9C,SAAS,CHheW,IAA8B,CGmelD,kEACO,CApcX,yBAAyB,CHoBC,GAAG,CGnB1B,sBAAsB,CHmBC,GAAG,CGqbzB,gEACO,CAldX,0BAA0B,CH4BA,GAAG,CG3B1B,uBAAuB,CH2BA,GAAG,CGya3B,0CACO,CACL,OAAO,CAAE,QAAqC,CAC9C,SAAS,CH/dW,IAA8B,CGkelD,kEACO,CApcX,yBAAyB,CHqBC,GAAG,CGpB1B,sBAAsB,CHoBC,GAAG,CGobzB,gEACO,CAldX,0BAA0B,CH6BA,GAAG,CG5B1B,uBAAuB,CH4BA,GAAG,CqBhI/B,MAAO,CACL,YAAY,CAAE,CAAC,CACf,MAAM,CAAE,MAAuB,CAC/B,UAAU,CAAE,IAAI,CAChB,UAAU,CAAE,MAAM,ClBUlB,0BACQ,CACN,OAAO,CAAE,GAAG,CACZ,OAAO,CAAE,KAAK,CAEhB,YAAQ,CACN,KAAK,CAAE,IAAI,CkBdb,SAAG,CACD,OAAO,CAAE,MAAM,CACf,0BACO,CACL,OAAO,CAAE,YAAY,CACrB,OAAO,CAAE,QAAQ,CACjB,gBAAgB,CrB4aiB,IAAc,CqB3a/C,MAAM,CAAE,cAAuB,CAC/B,aAAa,CrB4aoB,IAAI,CqBzavC,mCACU,CACR,eAAe,CAAE,IAAI,CACrB,gBAAgB,CrBguBQ,OAAa,CqB3tBvC,gCACO,CACL,KAAK,CAAE,KAAK,CAKd,wCACO,CACL,KAAK,CAAE,IAAI,CAKb,0FAGO,CACL,KAAK,CrB8rBmB,OAAW,CqB7rBnC,gBAAgB,CrB4YiB,IAAc,CqB3Y/C,MAAM,CAAE,WAAW,CC9CzB,MAAO,CACL,OAAO,CAAE,MAAM,CACf,OAAO,CAAE,OAAO,CAChB,SAAS,CAAE,GAAG,CACd,WAAW,CAAE,IAAI,CACjB,WAAW,CAAE,CAAC,CACd,KAAK,CtB0gBuB,IAAM,CsBzgBlC,UAAU,CAAE,MAAM,CAClB,WAAW,CAAE,MAAM,CACnB,cAAc,CAAE,QAAQ,CT+UxB,kBAAwC,CS9UjB,GAAG,CT8U1B,qBAAwC,CC9Sb,GAAuB,CD8SlD,aAAwC,CS9UjB,GAAG,CAKxB,qCACQ,CACN,KAAK,CtBggBmB,IAAI,CsB/f5B,eAAe,CAAE,IAAI,CACrB,MAAM,CAAE,OAAO,CAKnB,YAAQ,CACN,OAAO,CAAE,IAAI,CAIf,WAAO,CACL,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,IAAI,CAOb,cAAe,CnB0hBb,gBAAgB,CH0KY,OAAW,CGxKrC,qDACQ,CACN,gBAAgB,CAAE,OAAmB,CmB1hB3C,cAAe,CnBshBb,gBAAgB,CHqGY,OAAW,CGnGrC,qDACQ,CACN,gBAAgB,CAAE,OAAmB,CmBthB3C,cAAe,CnBkhBb,gBAAgB,CHYY,OAAc,CGVxC,qDACQ,CACN,gBAAgB,CAAE,OAAmB,CmBlhB3C,WAAY,CnB8gBV,gBAAgB,CHeY,OAAW,CGbrC,+CACQ,CACN,gBAAgB,CAAE,OAAmB,CmB9gB3C,cAAe,CnB0gBb,gBAAgB,CHiEY,OAAc,CG/DxC,qDACQ,CACN,gBAAgB,CAAE,OAAmB,CmB1gB3C,aAAc,CnBsgBZ,gBAAgB,CH+IY,OAAW,CG7IrC,mDACQ,CACN,gBAAgB,CAAE,OAAmB,CoBlkB3C,MAAO,CACL,OAAO,CAAE,YAAY,CACrB,SAAS,CAAE,IAAI,CACf,OAAO,CAAE,OAAO,CAChB,SAAS,CvBuEe,IAA8B,CuBtEtD,WAAW,CvBiqBiB,IAAI,CuBhqBhC,KAAK,CvBypBuB,OAAc,CuBxpB1C,WAAW,CvBgqBiB,CAAC,CuB/pB7B,cAAc,CAAE,QAAQ,CACxB,WAAW,CAAE,MAAM,CACnB,UAAU,CAAE,MAAM,CAClB,gBAAgB,CvB6tBY,OAAW,CuB5tBvC,WAAW,CAAE,OAAO,CV0UpB,kBAAwC,CbkVZ,IAAI,CalVhC,qBAAwC,CC9Sb,IAAuB,CD8SlD,aAAwC,CbkVZ,IAAI,CuBvpBhC,YAAQ,CACN,OAAO,CAAE,IAAI,CAIf,WAAO,CACL,QAAQ,CAAE,QAAQ,CAGpB,wCAAU,CACR,GAAG,CAAE,CAAC,CACN,OAAO,CAAE,OAAO,CAMlB,2BACQ,CACN,KAAK,CvB4nBqB,IAAI,CuB3nB9B,eAAe,CAAE,IAAI,CACrB,MAAM,CAAE,OAAO,CAKnB,2DACkC,CAChC,KAAK,CvBsnBuB,OAAW,CuBrnBvC,gBAAgB,CvBsnBY,IAAI,CuBpnBlC,sBAA6B,CAC3B,WAAW,CAAE,GAAG,CCjDlB,UAAW,CACT,OAAO,CAAE,KAAK,CACd,OAAO,CxBwoBqB,GAAG,CwBvoB/B,aAAa,CxBmUoB,IAAqB,CwBlUtD,WAAW,CxBiFa,GAAG,CwBhF3B,gBAAgB,CxButBY,OAAa,CwBttBzC,MAAM,CAAE,cAA2B,CACnC,aAAa,CxBsoBe,GAAmB,CGnhB/C,kBAAkB,CAAE,oBAAW,CACvB,UAAU,CAAE,oBAAW,CqBjH/B,+BACQ,CrB8WR,OAAO,CADuB,KAAK,CAEnC,SAAS,CAAE,IAAI,CACf,MAAM,CAAE,IAAI,CqB9WV,WAAW,CAAE,IAAI,CACjB,YAAY,CAAE,IAAI,CAMpB,mBAAS,CACP,OAAO,CxB2nBmB,GAAG,CwB1nB7B,KAAK,CxBktBqB,OAAW,CwB7sBzC,sDAEmB,CACjB,YAAY,CxBqoBgB,OAAW,CyBjqBzC,MAAO,CACL,OAAO,CzB0iBqB,IAAI,CyBziBhC,aAAa,CzBkUoB,IAAqB,CyBjUtD,MAAM,CAAE,qBAAqB,CAC7B,aAAa,CzBwiBe,GAAmB,CyBriB/C,SAAG,CACD,UAAU,CAAE,CAAC,CAEb,KAAK,CAAE,OAAO,CAGhB,kBAAY,CACV,WAAW,CzB+hBe,IAAI,CyB3hBhC,kBACK,CACH,aAAa,CAAE,CAAC,CAElB,UAAQ,CACN,UAAU,CAAE,GAAG,CAQnB,kBAAmB,CAClB,aAAa,CAAE,IAAqB,CAGnC,yBAAO,CACL,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,IAAI,CACT,KAAK,CAAE,KAAK,CACZ,KAAK,CAAE,OAAO,CAQlB,cAAe,CtBmXb,gBAAgB,CHmNY,OAAiB,CGlN7C,YAAY,CHqKgB,OAAc,CGpK1C,KAAK,CHmTuB,OAAY,CGjTxC,iBAAG,CACD,gBAAgB,CAAE,OAAmB,CAEvC,0BAAY,CACV,KAAK,CAAE,OAAwB,CsBxXnC,WAAY,CtBgXV,gBAAgB,CHuNY,OAAc,CGtN1C,YAAY,CHwKgB,OAAW,CGvKvC,KAAK,CHmTuB,OAAY,CGjTxC,cAAG,CACD,gBAAgB,CAAE,OAAmB,CAEvC,uBAAY,CACV,KAAK,CAAE,OAAwB,CsBrXnC,cAAe,CtB6Wb,gBAAgB,CHqJY,OAAiB,CGpJ7C,YAAY,CH0NgB,OAAc,CGzN1C,KAAK,CHmTuB,OAAY,CGjTxC,iBAAG,CACD,gBAAgB,CAAE,OAAmB,CAEvC,0BAAY,CACV,KAAK,CAAE,OAAwB,CsBlXnC,aAAc,CtB0WZ,gBAAgB,CH+NY,OAAgB,CG9N5C,YAAY,CHwSgB,OAAW,CGvSvC,KAAK,CHmTuB,OAAY,CGjTxC,gBAAG,CACD,gBAAgB,CAAE,OAAmB,CAEvC,yBAAY,CACV,KAAK,CAAE,OAAwB,CuBzanC,uCAGC,CAFC,IAAM,CAAE,mBAAmB,CAAE,MAAM,CACnC,EAAM,CAAE,mBAAmB,CAAE,GAAG,EAIlC,+BAGC,CAFC,IAAM,CAAE,mBAAmB,CAAE,MAAM,CACnC,EAAM,CAAE,mBAAmB,CAAE,GAAG,EASlC,SAAU,CACR,QAAQ,CAAE,MAAM,CAChB,MAAM,C1BgT2B,IAAqB,C0B/StD,aAAa,C1B+SoB,IAAqB,C0B9StD,gBAAgB,C1B8iBY,OAAO,C0B7iBnC,aAAa,C1BoGa,GAAG,CGT7B,kBAAkB,CAAE,+BAAO,CACnB,UAAU,CAAE,+BAAO,CuBvF7B,aAAc,CACZ,KAAK,CAAE,IAAI,CACX,KAAK,CAAE,EAAE,CACT,MAAM,CAAE,IAAI,CACZ,SAAS,C1ByCe,IAA8B,C0BxCtD,WAAW,C1BmSsB,IAAqB,C0BlStD,KAAK,C1BmiBuB,IAAI,C0BliBhC,UAAU,CAAE,MAAM,CAClB,gBAAgB,C1B6nBY,OAAW,CG/iBvC,kBAAkB,CAAE,+BAAO,CACnB,UAAU,CAAE,+BAAO,CAK3B,kBAAkB,CAAE,eAAW,CACvB,UAAU,CAAE,eAAW,CuB/EjC,+BAAgC,CvBsS9B,gBAAgB,CAAE,kLAAmI,CACrJ,gBAAgB,CAAE,4KAA2H,CuBrS7I,eAAe,CAAE,SAAS,CAI5B,8BAA+B,CvBqJ7B,iBAAiB,CuBpJE,uCAAuC,CvBqJlD,SAAS,CuBrJE,uCAAuC,CAQ5D,qBAAsB,CvBgjBpB,gBAAgB,CHjCY,OAAc,CGkC1C,uCAAoB,CA1RpB,gBAAgB,CAAE,kLAAmI,CACrJ,gBAAgB,CAAE,4KAA2H,CuBpR/I,kBAAmB,CvB4iBjB,gBAAgB,CH9BY,OAAW,CG+BvC,oCAAoB,CA1RpB,gBAAgB,CAAE,kLAAmI,CACrJ,gBAAgB,CAAE,4KAA2H,CuBhR/I,qBAAsB,CvBwiBpB,gBAAgB,CHoBY,OAAc,CGnB1C,uCAAoB,CA1RpB,gBAAgB,CAAE,kLAAmI,CACrJ,gBAAgB,CAAE,4KAA2H,CuB5Q/I,oBAAqB,CvBoiBnB,gBAAgB,CHkGY,OAAW,CGjGvC,sCAAoB,CA1RpB,gBAAgB,CAAE,kLAAmI,CACrJ,gBAAgB,CAAE,4KAA2H,CwBhV/I,kBACY,CACV,QAAQ,CAAE,MAAM,CAChB,IAAI,CAAE,CAAC,CAIT,oBACc,CACZ,UAAU,CAAE,IAAI,CAElB,kBAAmB,CACjB,UAAU,CAAE,CAAC,CAIf,aAAc,CACZ,OAAO,CAAE,KAAK,CAIhB,cAAe,CACb,MAAM,CAAE,OAAO,CAQf,iBAAa,CACX,YAAY,CAAE,IAAI,CAEpB,kBAAc,CACZ,WAAW,CAAE,IAAI,CASrB,WAAY,CACV,YAAY,CAAE,CAAC,CACf,UAAU,CAAE,IAAI,CC7ClB,WAAY,CAEV,aAAa,CAAE,IAAI,CACnB,YAAY,CAAE,CAAC,CAQjB,gBAAiB,CACf,QAAQ,CAAE,QAAQ,CAClB,OAAO,CAAE,KAAK,CACd,OAAO,CAAE,OAAO,CAChB,gBAAgB,C5BiuBY,OAAa,C4BhuBzC,aAAa,CAAE,iBAA4B,CAC3C,WAAW,C5B+Ca,yDAA6D,C4B5CrF,4BAAc,CzBuEd,uBAAuB,CHwfO,GAAmB,CGvfhD,sBAAsB,CHufO,GAAmB,C4B5jBjD,2BAAa,CACX,aAAa,CAAE,CAAC,CzB2ElB,0BAA0B,CHgfI,GAAmB,CG/ehD,yBAAyB,CH+eI,GAAmB,C4BtjBjD,uBAAS,CACP,KAAK,CAAE,KAAK,CAEd,8BAAkB,CAChB,YAAY,CAAE,GAAG,CAUrB,iBAAkB,CAChB,KAAK,C5B+iByB,IAAI,C4B7iBlC,0CAAyB,CACvB,KAAK,C5B6iBuB,IAAI,C4BziBlC,+CACQ,CACN,eAAe,CAAE,IAAI,CACrB,gBAAgB,C5B+qBU,OAAW,C4B9qBrC,KAAK,C5BkqBqB,OAAa,C4B9pBzC,sFAEe,CACb,OAAO,CAAE,CAAC,CACV,KAAK,C5B6lBqB,OAAc,C4B5lBxC,gBAAgB,C5BgmBU,OAAW,C4B/lBrC,YAAY,C5B+lBc,OAAW,C4B5lBrC,iKAAyB,CACvB,KAAK,CAAE,OAAO,CAEhB,wJAAsB,CACpB,KAAK,C5BihBqB,OAAmC,CG7IjE,wBAA2B,CACzB,KAAK,CHyQqB,OAAY,CGxQtC,gBAAgB,CHsKU,OAAiB,CGjK7C,yBAA4B,CAC1B,KAAK,CHkQqB,OAAY,CGhQtC,kDAAyB,CAAE,KAAK,CAAE,OAAO,CAEzC,+DACQ,CACN,KAAK,CH4PmB,OAAY,CG3PpC,gBAAgB,CAAE,OAAuB,CAE3C,8GAEe,CACb,KAAK,CAAE,IAAI,CACX,gBAAgB,CHqPQ,OAAY,CGpPpC,YAAY,CHoPY,OAAY,CG1QxC,qBAA2B,CACzB,KAAK,CHyQqB,OAAY,CGxQtC,gBAAgB,CH0KU,OAAc,CGrK1C,sBAA4B,CAC1B,KAAK,CHkQqB,OAAY,CGhQtC,+CAAyB,CAAE,KAAK,CAAE,OAAO,CAEzC,yDACQ,CACN,KAAK,CH4PmB,OAAY,CG3PpC,gBAAgB,CAAE,OAAuB,CAE3C,qGAEe,CACb,KAAK,CAAE,IAAI,CACX,gBAAgB,CHqPQ,OAAY,CGpPpC,YAAY,CHoPY,OAAY,CG1QxC,wBAA2B,CACzB,KAAK,CHyQqB,OAAY,CGxQtC,gBAAgB,CHwGU,OAAiB,CGnG7C,yBAA4B,CAC1B,KAAK,CHkQqB,OAAY,CGhQtC,kDAAyB,CAAE,KAAK,CAAE,OAAO,CAEzC,+DACQ,CACN,KAAK,CH4PmB,OAAY,CG3PpC,gBAAgB,CAAE,OAAuB,CAE3C,8GAEe,CACb,KAAK,CAAE,IAAI,CACX,gBAAgB,CHqPQ,OAAY,CGpPpC,YAAY,CHoPY,OAAY,CG1QxC,uBAA2B,CACzB,KAAK,CHyQqB,OAAY,CGxQtC,gBAAgB,CHkLU,OAAgB,CG7K5C,wBAA4B,CAC1B,KAAK,CHkQqB,OAAY,CGhQtC,iDAAyB,CAAE,KAAK,CAAE,OAAO,CAEzC,6DACQ,CACN,KAAK,CH4PmB,OAAY,CG3PpC,gBAAgB,CAAE,OAAuB,CAE3C,2GAEe,CACb,KAAK,CAAE,IAAI,CACX,gBAAgB,CHqPQ,OAAY,CGpPpC,YAAY,CHoPY,OAAY,C4BznB1C,wBAAyB,CACvB,UAAU,CAAE,CAAC,CACb,aAAa,CAAE,GAAG,CAEpB,qBAAsB,CACpB,aAAa,CAAE,CAAC,CAChB,WAAW,CAAE,GAAG,CCtGlB,MAAO,CACL,aAAa,C7BqUoB,IAAqB,C6BpUtD,gBAAgB,C7BomBY,OAAK,C6BnmBjC,MAAM,CAAE,qBAAqB,CAC7B,aAAa,C7BomBe,GAAG,CGpf/B,kBAAkB,CAAE,0BAAO,CACnB,UAAU,CAAE,0BAAO,C0B5G7B,WAAY,CACV,OAAO,C7B6lBqB,IAAI,CG1lBhC,oCACQ,CACN,OAAO,CAAE,GAAG,CACZ,OAAO,CAAE,KAAK,CAEhB,iBAAQ,CACN,KAAK,CAAE,IAAI,C0BJf,cAAe,CACb,OAAO,CAAE,SAAS,CAClB,aAAa,CAAE,qBAAqB,C1B6EpC,uBAAuB,CAAE,GAAO,CAC/B,sBAAsB,CAAE,GAAO,C0B3EhC,yCAA6B,CAC3B,KAAK,CAAE,OAAO,CAKlB,YAAa,CACX,UAAU,CAAE,CAAC,CACb,aAAa,CAAE,CAAC,CAChB,SAAS,CAAE,IAAI,CACf,KAAK,CAAE,OAAO,CAEd,cAAI,CACF,KAAK,CAAE,OAAO,CAKlB,aAAc,CACZ,OAAO,CAAE,SAAS,CAClB,gBAAgB,C7BmkBY,OAA6B,C6BlkBzD,UAAU,CAAE,iBAA6B,C1B6DzC,0BAA0B,CAAE,GAAO,CAClC,yBAAyB,CAAE,GAAO,C0BnDnC,kBAAc,CACZ,aAAa,CAAE,CAAC,CAEhB,mCAAiB,CACf,YAAY,CAAE,KAAK,CACnB,aAAa,CAAE,CAAC,CAKhB,2DAA6B,CAC3B,UAAU,CAAE,CAAC,C1B+BnB,uBAAuB,CAAE,GAAO,CAC/B,sBAAsB,CAAE,GAAO,C0B1B5B,yDAA4B,CAC1B,aAAa,CAAE,CAAC,C1BgCtB,0BAA0B,CAAE,GAAO,CAClC,yBAAyB,CAAE,GAAO,C0BzBnC,uDAA6B,CAC3B,gBAAgB,CAAE,CAAC,CAWrB,6CAC6B,CAC3B,aAAa,CAAE,CAAC,CAGlB,iFACqD,C1BFrD,uBAAuB,CAAE,GAAO,CAC/B,sBAAsB,CAAE,GAAO,C0BO1B,usBACe,CACb,sBAAsB,CAAE,GAA0B,CAEpD,+rBACc,CACZ,uBAAuB,CAAE,GAA0B,CAM3D,8EACmD,C1BbnD,0BAA0B,CAAE,GAAO,CAClC,yBAAyB,CAAE,GAAO,C0BkB7B,2qBACe,CACb,yBAAyB,CAAE,GAA0B,CAEvD,mqBACc,CACZ,0BAA0B,CAAE,GAA0B,CAK9D,8DACkC,CAChC,UAAU,CAAE,iBAA6B,CAE3C,mGACiD,CAC/C,UAAU,CAAE,CAAC,CAEf,+DACsC,CACpC,MAAM,CAAE,CAAC,CAKL,+pBACiB,CACf,WAAW,CAAE,CAAC,CAEhB,mpBACgB,CACd,YAAY,CAAE,CAAC,CAOjB,+bACK,CACH,aAAa,CAAE,CAAC,CAOlB,ubACK,CACH,aAAa,CAAE,CAAC,CAKxB,wBAAoB,CAClB,MAAM,CAAE,CAAC,CACT,aAAa,CAAE,CAAC,CAUpB,YAAa,CACX,aAAa,C7ByIoB,IAAqB,C6BtItD,mBAAO,CACL,aAAa,CAAE,CAAC,CAChB,aAAa,C7Bsaa,GAAG,C6Bra7B,QAAQ,CAAE,MAAM,CAChB,0BAAS,CACP,UAAU,CAAE,GAAG,CAInB,2BAAe,CACb,aAAa,CAAE,CAAC,CAChB,uDAA8B,CAC5B,UAAU,CAAE,iBAA6B,CAG7C,0BAAc,CACZ,UAAU,CAAE,CAAC,CACb,sDAA8B,CAC5B,aAAa,CAAE,iBAA6B,CAOlD,cAAe,C1BsLb,YAAY,CH6UgB,OAAa,CG3UzC,6BAAmB,CACjB,KAAK,CHsVqB,OAAW,CGrVrC,gBAAgB,CH4NU,OAA6B,CG3NvD,YAAY,CHwUc,OAAa,CGtUvC,yDAA8B,CAC5B,gBAAgB,CHqUQ,OAAa,CGjUvC,wDAA8B,CAC5B,mBAAmB,CHgUK,OAAa,C6BhgB3C,cAAe,C1BmLb,YAAY,CH6UgB,OAAa,CG3UzC,6BAAmB,CACjB,KAAK,CH0UqB,OAAa,CGzUvC,gBAAgB,CHgRU,OAAW,CG/QrC,YAAY,CHwUc,OAAa,CGtUvC,yDAA8B,CAC5B,gBAAgB,CHqUQ,OAAa,CGjUvC,wDAA8B,CAC5B,mBAAmB,CHgUK,OAAa,C6B7f3C,cAAe,C1BgLb,YAAY,CH6UgB,OAAa,CG3UzC,6BAAmB,CACjB,KAAK,CHuUqB,OAAY,CGtUtC,gBAAgB,CHoOU,OAAiB,CGnO3C,YAAY,CHwUc,OAAa,CGtUvC,yDAA8B,CAC5B,gBAAgB,CHqUQ,OAAa,CGjUvC,wDAA8B,CAC5B,mBAAmB,CHgUK,OAAa,C6B1f3C,WAAY,C1B6KV,YAAY,CH6UgB,OAAa,CG3UzC,0BAAmB,CACjB,KAAK,CHuUqB,OAAY,CGtUtC,gBAAgB,CHwOU,OAAc,CGvOxC,YAAY,CHwUc,OAAa,CGtUvC,sDAA8B,CAC5B,gBAAgB,CHqUQ,OAAa,CGjUvC,qDAA8B,CAC5B,mBAAmB,CHgUK,OAAa,C6Bvf3C,cAAe,C1B0Kb,YAAY,CH6UgB,OAAa,CG3UzC,6BAAmB,CACjB,KAAK,CH0UqB,OAAa,CGzUvC,gBAAgB,CH4OU,OAAc,CG3OxC,YAAY,CHwUc,OAAa,CGtUvC,yDAA8B,CAC5B,gBAAgB,CHqUQ,OAAa,CGjUvC,wDAA8B,CAC5B,mBAAmB,CHgUK,OAAa,C6Bpf3C,aAAc,C1BuKZ,YAAY,CH6UgB,OAAa,CG3UzC,4BAAmB,CACjB,KAAK,CHuUqB,OAAY,CGtUtC,gBAAgB,CHgPU,OAAgB,CG/O1C,YAAY,CHwUc,OAAa,CGtUvC,wDAA8B,CAC5B,gBAAgB,CHqUQ,OAAa,CGjUvC,uDAA8B,CAC5B,mBAAmB,CHgUK,OAAa,C8B5tB3C,KAAM,CACJ,UAAU,CAAE,IAAI,CAChB,OAAO,CAAE,IAAI,CACb,aAAa,CAAE,IAAI,CACnB,gBAAgB,C9BouBY,OAAW,C8BnuBvC,MAAM,CAAE,iBAAsB,CjBiV9B,kBAAwC,CiBhVjB,GAAG,CjBgV1B,qBAAwC,CC9Sb,GAAuB,CD8SlD,aAAwC,CiBhVjB,GAAG,CAC1B,KAAK,C9BktBuB,OAAY,C8BjtBxC,WAAW,C9B2Da,yDAA6D,C8B1DrF,gBAAW,CACT,YAAY,CAAE,IAAI,CAClB,YAAY,CAAE,gBAAe,CAG/B,OAAE,CACA,KAAK,C9BoUkC,OAAc,C8B/TzD,QAAS,CACP,OAAO,CAAE,IAAI,CACb,aAAa,C9BwGa,GAAG,C8BtG/B,QAAS,CACP,OAAO,CAAE,GAAG,CACZ,aAAa,C9BqGa,GAAG,C+BhI/B,MAAO,CACL,KAAK,CAAE,KAAK,CACZ,SAAS,CAAE,IAAuB,CAClC,WAAW,C/B0sBiB,IAAI,C+BzsBhC,WAAW,CAAE,CAAC,CACd,KAAK,C/BysBuB,OAAW,C+BvsBvC,yBACQ,CACN,KAAK,C/BqsBqB,OAAW,C+BpsBrC,eAAe,CAAE,IAAI,CACrB,MAAM,CAAE,OAAO,C5B8QjB,OAAO,C4B7QY,EAAE,C5BgRrB,MAAM,CAAE,iBAA6B,C4BvQvC,YAAa,CACX,OAAO,CAAE,CAAC,CACV,MAAM,CAAE,OAAO,CACf,UAAU,CAAE,WAAW,CACvB,MAAM,CAAE,CAAC,CACT,kBAAkB,CAAE,IAAI,CCrB1B,WAAY,CACV,QAAQ,CAAE,MAAM,CAIlB,MAAO,CACL,OAAO,CAAE,IAAI,CACb,QAAQ,CAAE,IAAI,CACd,UAAU,CAAE,IAAI,CAChB,QAAQ,CAAE,KAAK,CACf,GAAG,CAAE,CAAC,CACN,KAAK,CAAE,CAAC,CACR,MAAM,CAAE,CAAC,CACT,IAAI,CAAE,CAAC,CACP,OAAO,ChCsOqB,IAAI,CgCrOhC,0BAA0B,CAAE,KAAK,CAIjC,OAAO,CAAE,CAAC,CAGV,yBAAqB,C7BkIrB,iBAAiB,CAAE,kBAAiB,CAChC,aAAa,CAAE,kBAAiB,CAC5B,SAAS,CAAE,kBAAiB,CApBpC,kBAAkB,CAAE,8DAA6B,CAC9C,eAAe,CAAE,2DAA0B,CACzC,aAAa,CAAE,yDAAwB,CACpC,UAAU,CAAE,sDAAqB,C6B7GzC,uBAAmB,C7B4HnB,iBAAiB,CAAE,eAAiB,CAChC,aAAa,CAAE,eAAiB,CAC5B,SAAS,CAAE,eAAiB,C6BxHtC,aAAc,CACZ,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,OAAO,ChC8MqB,IAAI,CgC1MlC,cAAe,CACb,QAAQ,CAAE,QAAQ,CAClB,gBAAgB,ChCsjBY,OAAK,CgCrjBjC,MAAM,CAAE,cAA8C,CACtD,MAAM,CAAE,yBAAqC,C7BkE7C,kBAAkB,CAAE,yBAAO,CACnB,UAAU,CAAE,yBAAO,C6BhE3B,eAAe,CAAE,WAAW,CAE5B,OAAO,CAAE,IAAI,CAIf,eAAgB,CACd,QAAQ,CAAE,KAAK,CACf,GAAG,CAAE,CAAC,CACN,KAAK,CAAE,CAAC,CACR,MAAM,CAAE,CAAC,CACT,IAAI,CAAE,CAAC,CACP,OAAO,ChCsLqB,IAAI,CgCrLhC,gBAAgB,ChC6dY,IAAI,CgC3dhC,oBAAO,C7BoNP,OAAO,C6BpNmB,CAAC,C7BuN3B,MAAM,CAAE,gBAA6B,C6BtNrC,kBAAK,C7BmNL,OAAO,CHwQqB,EAAE,CGrQ9B,MAAM,CAAE,iBAA6B,C6BjNvC,aAAc,CACZ,OAAO,ChC6cqB,IAAI,CgC3chC,aAAa,CAAE,iBAAuC,CACtD,UAAU,CAAE,MAAiD,CAC7D,gBAAgB,CAAE,OAA6B,CAI/C,qEAAsB,CACpB,OAAO,CAAE,KAAK,CACd,SAAS,CAAE,IAAI,CACf,UAAU,CAAE,IAAI,CAKpB,YAAa,CACX,MAAM,CAAE,CAAC,CACT,WAAW,ChC4biB,GAAiB,CgCvb/C,WAAY,CACV,QAAQ,CAAE,QAAQ,CAClB,OAAO,ChCkbqB,IAAI,CgCjbhC,KAAK,ChC8oBuB,OAAa,CgC1oB3C,aAAc,CACZ,OAAO,CAAE,cAAoE,CAC7E,UAAU,CAAE,KAAK,CACjB,UAAU,CAAE,iBAAuC,CACnD,gBAAgB,CAAE,OAA6B,C7BhG/C,wCACQ,CACN,OAAO,CAAE,GAAG,CACZ,OAAO,CAAE,KAAK,CAEhB,mBAAQ,CACN,KAAK,CAAE,IAAI,C6B8Fb,uBAAY,CACV,WAAW,CAAE,GAAG,CAChB,aAAa,CAAE,CAAC,CAGlB,kCAAuB,CACrB,WAAW,CAAE,IAAI,CAGnB,mCAAwB,CACtB,WAAW,CAAE,CAAC,CAKlB,yBAAmC,CAEjC,aAAc,CACZ,KAAK,ChCkaqB,KAAK,CgCja/B,MAAM,CAAE,SAAS,CAEnB,cAAe,C7BlBf,kBAAkB,CAAE,0BAAO,CACnB,UAAU,CAAE,0BAAO,C6BsB3B,SAAU,CAAE,KAAK,ChC2ZW,KAAK,EgCxZnC,0BAAmC,CACjC,SAAU,CAAE,KAAK,ChCqZW,MAAM,EiCpiBpC,QAAS,CACP,QAAQ,CAAE,QAAQ,CAClB,OAAO,CjCkPqB,IAAI,CiCjPhC,OAAO,CAAE,KAAK,CACd,UAAU,CAAE,OAAO,CACnB,SAAS,CjCsEe,IAA8B,CiCrEtD,WAAW,CAAE,GAAG,C9BkRhB,OAAO,C8BjRU,CAAC,C9BoRlB,MAAM,CAAE,gBAA6B,C8BlRrC,WAAS,C9B+QT,OAAO,CHkNqB,EAAG,CG/M/B,MAAM,CAAE,iBAA6B,C8BjRrC,YAAS,CAAE,UAAU,CAAG,IAAI,CAAE,OAAO,CAAE,KAAsB,CAC7D,cAAS,CAAE,WAAW,CAAG,GAAG,CAAE,OAAO,CAAE,KAAsB,CAC7D,eAAS,CAAE,UAAU,CAAI,GAAG,CAAE,OAAO,CAAE,KAAsB,CAC7D,aAAS,CAAE,WAAW,CAAE,IAAI,CAAE,OAAO,CAAE,KAAsB,CAI/D,cAAe,CACb,SAAS,CjCqdmB,KAAK,CiCpdjC,OAAO,CAAE,OAAO,CAChB,KAAK,CjCoduB,IAAI,CiCndhC,UAAU,CAAE,MAAM,CAClB,eAAe,CAAE,IAAI,CACrB,gBAAgB,CjCsdY,IAAW,CiCrdvC,aAAa,CjCqGa,GAAG,CiCjG/B,cAAe,CACb,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,CAAC,CACR,MAAM,CAAE,CAAC,CACT,YAAY,CAAE,WAAW,CACzB,YAAY,CAAE,KAAK,CAGnB,2BAAqB,CACnB,MAAM,CAAE,CAAC,CACT,IAAI,CAAE,GAAG,CACT,WAAW,CAAE,IAAqB,CAClC,YAAY,CAAE,SAA2C,CACzD,gBAAgB,CjCocU,IAAW,CiClcvC,gCAA0B,CACxB,MAAM,CAAE,CAAC,CACT,IAAI,CjC+bsB,GAAG,CiC9b7B,YAAY,CAAE,SAA2C,CACzD,gBAAgB,CjC8bU,IAAW,CiC5bvC,iCAA2B,CACzB,MAAM,CAAE,CAAC,CACT,KAAK,CjCybqB,GAAG,CiCxb7B,YAAY,CAAE,SAA2C,CACzD,gBAAgB,CjCwbU,IAAW,CiCtbvC,6BAAuB,CACrB,GAAG,CAAE,GAAG,CACR,IAAI,CAAE,CAAC,CACP,UAAU,CAAE,IAAqB,CACjC,YAAY,CAAE,aAAgE,CAC9E,kBAAkB,CjCibQ,IAAW,CiC/avC,4BAAsB,CACpB,GAAG,CAAE,GAAG,CACR,KAAK,CAAE,CAAC,CACR,UAAU,CAAE,IAAqB,CACjC,YAAY,CAAE,aAAgE,CAC9E,iBAAiB,CjC0aS,IAAW,CiCxavC,8BAAwB,CACtB,GAAG,CAAE,CAAC,CACN,IAAI,CAAE,GAAG,CACT,WAAW,CAAE,IAAqB,CAClC,YAAY,CAAE,SAA2C,CACzD,mBAAmB,CjCmaO,IAAW,CiCjavC,mCAA6B,CAC3B,GAAG,CAAE,CAAC,CACN,IAAI,CjC8ZsB,GAAG,CiC7Z7B,YAAY,CAAE,SAA2C,CACzD,mBAAmB,CjC6ZO,IAAW,CiC3ZvC,oCAA8B,CAC5B,GAAG,CAAE,CAAC,CACN,KAAK,CjCwZqB,GAAG,CiCvZ7B,YAAY,CAAE,SAA2C,CACzD,mBAAmB,CjCuZO,IAAW,CkC9ezC,QAAS,CACP,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,CAAC,CACN,IAAI,CAAE,CAAC,CACP,OAAO,ClCkPqB,IAAI,CkCjPhC,OAAO,CAAE,IAAI,CACb,SAAS,ClCgf2B,KAAK,CkC/ezC,OAAO,CAAE,GAAG,CACZ,UAAU,CAAE,IAAI,CAChB,gBAAgB,ClC8lBY,OAAK,CkC7lBjC,eAAe,CAAE,WAAW,CAC5B,MAAM,CAAE,cAAwC,CAChD,MAAM,CAAE,yBAA+B,CACvC,aAAa,ClCkHa,GAAG,CGV7B,kBAAkB,CAAE,0BAAO,CACnB,UAAU,CAAE,0BAAO,C+BrG3B,WAAW,CAAE,MAAM,CAGnB,YAAU,CAAE,UAAU,CAAE,IAAqB,CAC7C,cAAU,CAAE,WAAW,ClCuea,GAAG,CkCtevC,eAAU,CAAE,UAAU,ClCsec,GAAG,CkCrevC,aAAU,CAAE,WAAW,CAAE,IAAqB,CAGhD,cAAe,CACb,MAAM,CAAE,CAAC,CACT,OAAO,CAAE,QAAQ,CACjB,SAAS,ClC6Ce,IAAI,CkC5C5B,WAAW,CAAE,MAAM,CACnB,WAAW,CAAE,IAAI,CACjB,gBAAgB,ClC0doB,OAAuB,CkCzd3D,aAAa,CAAE,iBAAuC,CACtD,aAAa,CAAE,WAAW,CAC1B,KAAK,ClCssBuB,OAAW,CkCnsBzC,gBAAiB,CACf,OAAO,CAAE,QAAQ,CACjB,oBAAG,CACD,aAAa,CAAE,GAAG,CASpB,qCACQ,CACN,QAAQ,CAAE,QAAQ,CAClB,OAAO,CAAE,KAAK,CACd,KAAK,CAAE,CAAC,CACR,MAAM,CAAE,CAAC,CACT,YAAY,CAAE,WAAW,CACzB,YAAY,CAAE,KAAK,CAGvB,eAAkB,CAChB,YAAY,ClCkcyB,GAAwB,CkChc/D,qBAAwB,CACtB,YAAY,ClC4bwB,GAAG,CkC3bvC,OAAO,CAAE,EAAE,CAIX,mBAAe,CACb,IAAI,CAAE,GAAG,CACT,WAAW,CAAE,IAA2B,CACxC,mBAAmB,CAAE,CAAC,CACtB,gBAAgB,ClCwbkB,IAAI,CkCvbtC,gBAAgB,ClCsbkB,gBAAe,CkCrbjD,MAAM,CAAE,IAA2B,CACnC,yBAAQ,CACN,OAAO,CAAE,GAAG,CACZ,MAAM,CAAE,GAAG,CACX,WAAW,CAAE,IAAqB,CAClC,mBAAmB,CAAE,CAAC,CACtB,gBAAgB,ClCwpBQ,OAAW,CkCrpBvC,qBAAiB,CACf,GAAG,CAAE,GAAG,CACR,IAAI,CAAE,IAA2B,CACjC,UAAU,CAAE,IAA2B,CACvC,iBAAiB,CAAE,CAAC,CACpB,kBAAkB,ClCwagB,IAAI,CkCvatC,kBAAkB,ClCsagB,gBAAe,CkCrajD,2BAAQ,CACN,OAAO,CAAE,GAAG,CACZ,IAAI,CAAE,GAAG,CACT,MAAM,CAAE,IAAqB,CAC7B,iBAAiB,CAAE,CAAC,CACpB,kBAAkB,ClCyoBM,OAAW,CkCtoBvC,sBAAkB,CAChB,IAAI,CAAE,GAAG,CACT,WAAW,CAAE,IAA2B,CACxC,gBAAgB,CAAE,CAAC,CACnB,mBAAmB,ClC0Ze,IAAI,CkCzZtC,mBAAmB,ClCwZe,gBAAe,CkCvZjD,GAAG,CAAE,IAA2B,CAChC,4BAAQ,CACN,OAAO,CAAE,GAAG,CACZ,GAAG,CAAE,GAAG,CACR,WAAW,CAAE,IAAqB,CAClC,gBAAgB,CAAE,CAAC,CACnB,mBAAmB,ClC0nBK,OAAW,CkCtnBvC,oBAAgB,CACd,GAAG,CAAE,GAAG,CACR,KAAK,CAAE,IAA2B,CAClC,UAAU,CAAE,IAA2B,CACvC,kBAAkB,CAAE,CAAC,CACrB,iBAAiB,ClCyYiB,IAAI,CkCxYtC,iBAAiB,ClCuYiB,gBAAe,CkCtYjD,0BAAQ,CACN,OAAO,CAAE,GAAG,CACZ,KAAK,CAAE,GAAG,CACV,kBAAkB,CAAE,CAAC,CACrB,iBAAiB,ClC2mBO,OAAW,CkC1mBnC,MAAM,CAAE,IAAqB,C/BjHjC,gCACQ,CACN,OAAO,CAAE,GAAG,CACZ,OAAO,CAAE,KAAK,CAEhB,eAAQ,CACN,KAAK,CAAE,IAAI,CgCdf,aAAc,ChC8BZ,OAAO,CAAE,KAAK,CACd,WAAW,CAAE,IAAI,CACjB,YAAY,CAAE,IAAI,CgC7BpB,WAAY,CACV,KAAK,CAAE,gBAAgB,CAEzB,UAAW,CACT,KAAK,CAAE,eAAe,CAQxB,KAAM,CACJ,OAAO,CAAE,eAAe,CAE1B,KAAM,CACJ,OAAO,CAAE,gBAAgB,CAE3B,UAAW,CACT,UAAU,CAAE,MAAM,CAEpB,UAAW,ChC+CT,IAAI,CAAE,KAAQ,CACd,KAAK,CAAE,WAAW,CAClB,WAAW,CAAE,IAAI,CACjB,gBAAgB,CAAE,WAAW,CAC7B,MAAM,CAAE,CAAC,CgC1CX,OAAQ,CACN,OAAO,CAAE,eAAe,CACxB,UAAU,CAAE,iBAAiB,CAO/B,MAAO,CACL,QAAQ,CAAE,KAAK,CCnCjB,aAEC,CADC,KAAK,CAAE,YAAY,CjCmnBnB,+CAAW,CACT,OAAO,CAAE,eAAe,CiC5mB5B,yBAAmC,CjCgmBjC,WAAW,CACT,OAAO,CAAE,gBAAgB,CAE3B,gBAAiB,CAAE,OAAO,CAAE,KAAK,CACjC,aAAiB,CAAE,OAAO,CAAE,oBAAoB,CAChD,2BACiB,CAAE,OAAO,CAAE,qBAAqB,EiClmBnD,iDAAmE,CjC4lBjE,WAAW,CACT,OAAO,CAAE,gBAAgB,CAE3B,gBAAiB,CAAE,OAAO,CAAE,KAAK,CACjC,aAAiB,CAAE,OAAO,CAAE,oBAAoB,CAChD,2BACiB,CAAE,OAAO,CAAE,qBAAqB,EiC9lBnD,kDAAmE,CjCwlBjE,WAAW,CACT,OAAO,CAAE,gBAAgB,CAE3B,gBAAiB,CAAE,OAAO,CAAE,KAAK,CACjC,aAAiB,CAAE,OAAO,CAAE,oBAAoB,CAChD,2BACiB,CAAE,OAAO,CAAE,qBAAqB,EiC1lBnD,0BAAmC,CjColBjC,WAAW,CACT,OAAO,CAAE,gBAAgB,CAE3B,gBAAiB,CAAE,OAAO,CAAE,KAAK,CACjC,aAAiB,CAAE,OAAO,CAAE,oBAAoB,CAChD,2BACiB,CAAE,OAAO,CAAE,qBAAqB,EiCtlBnD,yBAAmC,CjC2lBjC,UAAW,CACT,OAAO,CAAE,eAAe,EiCxlB5B,iDAAmE,CjCulBjE,UAAW,CACT,OAAO,CAAE,eAAe,EiCplB5B,kDAAmE,CjCmlBjE,UAAW,CACT,OAAO,CAAE,eAAe,EiChlB5B,0BAAmC,CjC+kBjC,UAAW,CACT,OAAO,CAAE,eAAe,EAD1B,cAAW,CACT,OAAO,CAAE,eAAe,CiCrkB5B,YAAa,CjCyjBX,cAAW,CACT,OAAO,CAAE,gBAAgB,CAE3B,mBAAiB,CAAE,OAAO,CAAE,KAAK,CACjC,gBAAiB,CAAE,OAAO,CAAE,oBAAoB,CAChD,iCACiB,CAAE,OAAO,CAAE,qBAAqB,EiC3jBnD,YAAa,CjCgkBX,aAAW,CACT,OAAO,CAAE,eAAe,EkCxoB5B;;;GAGG,ACAH,yDAIK,CACH,uBAAuB,CAAE,SAAS,CAClC,sBAAsB,CAAE,WAAW,CACnC,OAAO,CAAE,YAAY,CACrB,UAAU,CAAE,MAAM,CAClB,YAAY,CAAE,MAAM,CACpB,cAAc,CAAE,IAAI,CACpB,WAAW,CAAE,CAAC,CCVhB,MAAsB,CACpB,SAAS,CAAE,SAAS,CACpB,WAAW,CAAE,KAAS,CACtB,cAAc,CAAE,QAAQ,CAG1B,MAAsB,CACpB,SAAS,CAAE,KAAK,CAGlB,MAAsB,CACpB,SAAS,CAAE,MAAM,CAIjB,MAA0B,CACxB,SAAS,CAAE,GAAQ,CADrB,MAA0B,CACxB,SAAS,CAAE,GAAQ,CADrB,MAA0B,CACxB,SAAS,CAAE,GAAQ,CADrB,MAA0B,CACxB,SAAS,CAAE,GAAQ,CADrB,MAA0B,CACxB,SAAS,CAAE,GAAQ,CADrB,MAA0B,CACxB,SAAS,CAAE,GAAQ,CADrB,MAA0B,CACxB,SAAS,CAAE,GAAQ,CADrB,MAA0B,CACxB,SAAS,CAAE,GAAQ,CADrB,MAA0B,CACxB,SAAS,CAAE,GAAQ,CADrB,OAA0B,CACxB,SAAS,CAAE,IAAQ,CClBvB,kOAAsB,CACpB,UAAU,CAAE,MAAM,CAClB,KAAK,CAAE,MAAW,CCDpB,MAAsB,CACpB,eAAe,CAAE,IAAI,CACrB,WAAW,CAAE,KAAkB,CAC/B,YAAY,CAAE,CAAC,CAEf,SAAK,CAAE,QAAQ,CAAE,QAAQ,CAG3B,wCAAsB,CACpB,IAAI,CAAE,IAAa,CACnB,QAAQ,CAAE,QAAQ,CAClB,UAAU,CAAE,MAAM,CAClB,KAAK,CCNuB,GAAG,CDO/B,WAAW,CAAE,OAAO,CEbtB,UAA0B,CACxB,MAAM,CAAE,iBAA4B,CACpC,aAAa,CAAE,IAAI,CACnB,OAAO,CAAE,gBAAgB,CAG3B,aAA6B,CAAE,KAAK,CAAE,IAAI,CAC1C,cAA8B,CAAE,KAAK,CAAE,KAAK,CAO1C,uIAA8B,CAAE,YAAY,CAAE,IAAI,CAClD,6IAA+B,CAAE,WAAW,CAAE,IAAI,CCfpD,QAAwB,CACtB,SAAS,CAAE,0BAA0B,CAGvC,SAAyB,CACvB,SAAS,CAAE,4BAA4B,CAGzC,kBAQC,CAPC,EAAG,CACD,SAAS,CAAE,YAAY,CAGzB,IAAK,CACH,SAAS,CAAE,cAAc,ECd7B,aAA8B,CCY5B,UAAU,CAAE,0DAAqE,CACjF,SAAS,CAAE,aAAgB,CDZ7B,uGAA8B,CCW5B,UAAU,CAAE,0DAAqE,CACjF,SAAS,CAAE,cAAgB,CDX7B,cAA8B,CCU5B,UAAU,CAAE,0DAAqE,CACjF,SAAS,CAAE,cAAgB,CDT7B,mBAAmC,CCajC,UAAU,CAAE,oEAA+E,CAC3F,SAAS,CAAE,YAAoB,CDbjC,iBAAmC,CCYjC,UAAU,CAAE,oEAA+E,CAC3F,SAAS,CAAE,YAAoB,CDZjC,oCAAmE,CCWjE,UAAU,CAAE,oEAA+E,CAC3F,SAAS,CAAE,aAAoB,CDN/B,8MAIiC,CAC/B,MAAM,CAAE,IAAI,CEjBhB,SAAyB,CACvB,OAAO,CAAE,YAAY,CACrB,MAAM,CAAE,GAAG,CACX,WAAW,CAAE,GAAG,CAChB,QAAQ,CAAE,QAAQ,CAClB,cAAc,CAAE,MAAM,CACtB,KAAK,CAAE,GAAG,CAGZ,yBAC4B,CAC1B,IAAI,CAAE,CAAC,CACP,QAAQ,CAAE,QAAQ,CAClB,UAAU,CAAE,MAAM,CAClB,KAAK,CAAE,IAAI,CAGb,YAA4B,CAC1B,WAAW,CAAE,OAAO,CAGtB,YAA4B,CAC1B,SAAS,CAAE,GAAG,CAGhB,WAA2B,CACzB,KAAK,CLrBuB,IAAI,CMLlC,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,8CAA8D,CAAE,OAAO,CAAE,OAAuD,CAChI,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,4BAA4C,CAAE,OAAO,CAAE,OAAqC,CAC5F,4BAA4C,CAAE,OAAO,CAAE,OAAqC,CAC5F,6BAA6C,CAAE,OAAO,CAAE,OAAsC,CAC9F,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,+DAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,gCAAgD,CAAE,OAAO,CAAE,OAAyC,CACpG,gCAAgD,CAAE,OAAO,CAAE,OAAyC,CACpG,iCAAiD,CAAE,OAAO,CAAE,OAA0C,CACtG,8BAA8C,CAAE,OAAO,CAAE,OAAuC,CAChG,4BAA4C,CAAE,OAAO,CAAE,OAAqC,CAC5F,4BAA4C,CAAE,OAAO,CAAE,OAAqC,CAC5F,6BAA6C,CAAE,OAAO,CAAE,OAAsC,CAC9F,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,sCAAsD,CAAE,OAAO,CAAE,OAA+C,CAChH,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,aAA6B,CAAE,OAAO,CAAE,OAAsB,CAC9D,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,4BAA4C,CAAE,OAAO,CAAE,OAAqC,CAC5F,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,iCAAiD,CAAE,OAAO,CAAE,OAA0C,CACtG,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,4BAA4C,CAAE,OAAO,CAAE,OAAqC,CAC5F,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,2BAA2C,CAAE,OAAO,CAAE,OAAoC,CAC1F,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,4BAA4C,CAAE,OAAO,CAAE,OAAqC,CAC5F,4BAA4C,CAAE,OAAO,CAAE,OAAqC,CAC5F,6BAA6C,CAAE,OAAO,CAAE,OAAsC,CAC9F,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,6BAA6C,CAAE,OAAO,CAAE,OAAsC,CAC9F,2BAA2C,CAAE,OAAO,CAAE,OAAoC,CAC1F,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,8BAA8C,CAAE,OAAO,CAAE,OAAuC,CAChG,8BAA8C,CAAE,OAAO,CAAE,OAAuC,CAChG,+BAA+C,CAAE,OAAO,CAAE,OAAwC,CAClG,4BAA4C,CAAE,OAAO,CAAE,OAAqC,CAC5F,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,4BAA4C,CAAE,OAAO,CAAE,OAAqC,CAC5F,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,6BAA6C,CAAE,OAAO,CAAE,OAAsC,CAC9F,2BAA2C,CAAE,OAAO,CAAE,OAAoC,CAC1F,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,2BAA2C,CAAE,OAAO,CAAE,OAAoC,CAC1F,8BAA8C,CAAE,OAAO,CAAE,OAAuC,CAChG,8BAA8C,CAAE,OAAO,CAAE,OAAuC,CAChG,iCAAiD,CAAE,OAAO,CAAE,OAA0C,CACtG,iCAAiD,CAAE,OAAO,CAAE,OAA0C,CACtG,8BAA8C,CAAE,OAAO,CAAE,OAAuC,CAChG,8BAA8C,CAAE,OAAO,CAAE,OAAuC,CAChG,kCAAkD,CAAE,OAAO,CAAE,OAA2C,CACxG,iCAAiD,CAAE,OAAO,CAAE,OAA0C,CACtG,8BAA8C,CAAE,OAAO,CAAE,OAAuC,CAChG,oCAAoD,CAAE,OAAO,CAAE,OAA6C,CAC5G,yCAAyD,CAAE,OAAO,CAAE,OAAkD,CACtH,iCAAiD,CAAE,OAAO,CAAE,OAA0C,CACtG,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,6BAA6C,CAAE,OAAO,CAAE,OAAsC,CAC9F,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,2BAA2C,CAAE,OAAO,CAAE,OAAoC,CAC1F,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,6BAA6C,CAAE,OAAO,CAAE,OAAsC,CAC9F,+BAA+C,CAAE,OAAO,CAAE,OAAwC,CAClG,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,4BAA4C,CAAE,OAAO,CAAE,OAAqC,CAC5F,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,4BAA4C,CAAE,OAAO,CAAE,OAAqC,CAC5F,mCAAmD,CAAE,OAAO,CAAE,OAA4C,CAC1G,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,6BAA6C,CAAE,OAAO,CAAE,OAAsC,CAC9F,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,8BAA8C,CAAE,OAAO,CAAE,OAAuC,CAChG,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,2BAA2C,CAAE,OAAO,CAAE,OAAoC,CAC1F,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,4BAA4C,CAAE,OAAO,CAAE,OAAqC,CAC5F,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,4BAA4C,CAAE,OAAO,CAAE,OAAqC,CAC5F,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,2BAA2C,CAAE,OAAO,CAAE,OAAoC,CAC1F,4BAA4C,CAAE,OAAO,CAAE,OAAqC,CAC5F,iCAAiD,CAAE,OAAO,CAAE,OAA0C,CACtG,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,2BAA2C,CAAE,OAAO,CAAE,OAAoC,CAC1F,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,4BAA4C,CAAE,OAAO,CAAE,OAAqC,CAC5F,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,aAA6B,CAAE,OAAO,CAAE,OAAsB,CAC9D,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,4BAA4C,CAAE,OAAO,CAAE,OAAqC,CAC5F,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,6BAA6C,CAAE,OAAO,CAAE,OAAsC,CAC9F,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,6BAA6C,CAAE,OAAO,CAAE,OAAsC,CAC9F,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,4BAA4C,CAAE,OAAO,CAAE,OAAqC,CAC5F,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,6BAA6C,CAAE,OAAO,CAAE,OAAsC,CAC9F,2BAA2C,CAAE,OAAO,CAAE,OAAoC,CAC1F,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,6BAA6C,CAAE,OAAO,CAAE,OAAsC,CAC9F,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,6BAA6C,CAAE,OAAO,CAAE,OAAsC,CAC9F,2BAA2C,CAAE,OAAO,CAAE,OAAoC,CAC1F,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,2BAA2C,CAAE,OAAO,CAAE,OAAoC,CAC1F,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,4BAA4C,CAAE,OAAO,CAAE,OAAqC,CAC5F,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,aAA6B,CAAE,OAAO,CAAE,OAAsB,CAC9D,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,8BAA8C,CAAE,OAAO,CAAE,OAAuC,CAChG,8BAA8C,CAAE,OAAO,CAAE,OAAuC,CAChG,+BAA+C,CAAE,OAAO,CAAE,OAAwC,CAClG,4BAA4C,CAAE,OAAO,CAAE,OAAqC,CAC5F,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,2BAA2C,CAAE,OAAO,CAAE,OAAoC,CAC1F,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,+BAA+C,CAAE,OAAO,CAAE,OAAwC,CAClG,2BAA2C,CAAE,OAAO,CAAE,OAAoC,CAC1F,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,8BAA8C,CAAE,OAAO,CAAE,OAAuC,CAChG,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,+BAA+C,CAAE,OAAO,CAAE,OAAwC,CAClG,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,4BAA4C,CAAE,OAAO,CAAE,OAAqC,CAC5F,2BAA2C,CAAE,OAAO,CAAE,OAAoC,CAC1F,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,2BAA2C,CAAE,OAAO,CAAE,OAAoC,CAC1F,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,8BAA8C,CAAE,OAAO,CAAE,OAAuC,CAChG,kCAAkD,CAAE,OAAO,CAAE,OAA2C,CACxG,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,aAA6B,CAAE,OAAO,CAAE,OAAsB,CAC9D,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,2BAA2C,CAAE,OAAO,CAAE,OAAoC,CAC1F,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,2BAA2C,CAAE,OAAO,CAAE,OAAoC,CAC1F,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,2BAA2C,CAAE,OAAO,CAAE,OAAoC,CAC1F,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,4BAA4C,CAAE,OAAO,CAAE,OAAqC,CAC5F,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,6BAA6C,CAAE,OAAO,CAAE,OAAsC,CAC9F,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,2BAA2C,CAAE,OAAO,CAAE,OAAoC,CAC1F,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,aAA6B,CAAE,OAAO,CAAE,OAAsB,CAC9D,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,4BAA4C,CAAE,OAAO,CAAE,OAAqC,CAC5F,2BAA2C,CAAE,OAAO,CAAE,OAAoC,CAC1F,2BAA2C,CAAE,OAAO,CAAE,OAAoC,CAC1F,8BAA8C,CAAE,OAAO,CAAE,OAAuC,CAChG,qCAAqD,CAAE,OAAO,CAAE,OAA8C,CAC9G,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,2BAA2C,CAAE,OAAO,CAAE,OAAoC,CAC1F,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,aAA6B,CAAE,OAAO,CAAE,OAAsB,CAC9D,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,2BAA2C,CAAE,OAAO,CAAE,OAAoC,CAC1F,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,wBAAwC,CAAE,OAAO,CAAE,OAAiC,CACpF,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,aAA6B,CAAE,OAAO,CAAE,OAAsB,CAC9D,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,0BAA0C,CAAE,OAAO,CAAE,OAAmC,CACxF,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,cAA8B,CAAE,OAAO,CAAE,OAAuB,CAChE,8BAA8C,CAAE,OAAO,CAAE,OAAuC,CAChG,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,oBAAoC,CAAE,OAAO,CAAE,OAA6B,CAC5E,2BAA2C,CAAE,OAAO,CAAE,OAAoC,CAC1F,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,qBAAqC,CAAE,OAAO,CAAE,OAA8B,CAC9E,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,sBAAsC,CAAE,OAAO,CAAE,OAA+B,CAChF,uBAAuC,CAAE,OAAO,CAAE,OAAgC,CAClF,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,iBAAiC,CAAE,OAAO,CAAE,OAA0B,CACtE,+BAA+C,CAAE,OAAO,CAAE,OAAwC,CAClG,eAA+B,CAAE,OAAO,CAAE,OAAwB,CAClE,mBAAmC,CAAE,OAAO,CAAE,OAA4B,CAC1E,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CACpE,kBAAkC,CAAE,OAAO,CAAE,OAA2B,CACxE,yBAAyC,CAAE,OAAO,CAAE,OAAkC,CACtF,gBAAgC,CAAE,OAAO,CAAE,OAAyB,CCxnCpE,QAAS,CH2BP,MAAM,CAAE,CAAC,CACT,IAAI,CAAE,gBAAgB,CACtB,MAAM,CAAE,GAAG,CACX,MAAM,CAAE,IAAI,CACZ,QAAQ,CAAE,MAAM,CAChB,OAAO,CAAE,CAAC,CACV,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,GAAG,CAUV,kDACQ,CACN,IAAI,CAAE,IAAI,CACV,MAAM,CAAE,IAAI,CACZ,MAAM,CAAE,CAAC,CACT,QAAQ,CAAE,OAAO,CACjB,QAAQ,CAAE,MAAM,CAChB,KAAK,CAAE,IAAI,CItDf;;;GAGG,AAGH,UAUC,CATC,WAAW,CAAE,qBAAqB,CAClC,UAAU,CAAE,MAAM,CAClB,WAAW,CAAE,GAAG,CAChB,GAAG,CAAE,qCAA0C,CAC/C,GAAG,CAAE,+SAI+D,CAGtE,IAAK,CACH,WAAW,CAAE,qBAAqB,CAClC,WAAW,CAAE,GAAG,CCpBlB;;;GAGG,AAGH,UAUC,CATC,WAAW,CAAE,qBAAqB,CAClC,UAAU,CAAE,MAAM,CAClB,WAAW,CAAE,GAAG,CAChB,GAAG,CAAE,mCAAwC,CAC7C,GAAG,CAAE,qSAI6D,CAGpE,0CACK,CACH,WAAW,CAAE,qBAAqB,CAClC,WAAW,CAAE,GAAG,CCrBlB;;;GAGG,AAGH,UAUC,CATC,WAAW,CAAE,uBAAuB,CACpC,UAAU,CAAE,MAAM,CAClB,WAAW,CAAE,MAAM,CACnB,GAAG,CAAE,oCAAyC,CAC9C,GAAG,CAAE,0SAI8D,CAGrE,IAAK,CACH,WAAW,CAAE,uBAAuB,CCStC,iBAAiB,CAAE,gBAAgB,CAAE,UAAU,CAAE,YAAY,CAAE,UAAU,CACzE,qEAAsE,CAAE,gBAAgB,CAAE,IAAI,CAAE,YAAY,CAAE,IAAI,CAElH,iBAAiB,CACf,QAAQ,CAAE,QAAQ,CAClB,QAAQ,CAAE,MAAM,CAChB,MAAM,CAAE,IAAI,CACZ,SAAS,CAAE,IAAI,CACf,OAAO,CAAE,IAAI,CACb,SAAS,CAAE,GAAG,CAGhB,eAAe,CACb,QAAQ,CAAE,MAAM,CAChB,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CAYd,4BAA8B,CAAE,YAAY,CAvDX,IAAI,CAyDrC,+CAA+C,CAAE,YAAY,CAAE,CAAC,CAEhE,yCAA6C,CAC3C,YAAY,CAAE,CAAC,CACf,WAAW,CA7DoB,IAAI,CAgErC,yEAA6E,CAAE,WAAW,CAAE,CAAC,CAE7F,iBAAiB,CACf,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,IAAI,CAAE,IAAI,CACV,GAAG,CAAE,CAAC,CACN,KAAK,CAAE,CAAC,CACR,MAAM,CAAE,CAAC,CAGX,+BAAiC,CAAE,KAAK,CAAE,KAAK,CAE/C,wFACgD,CAC9C,KAAK,CAAE,IAAI,CACX,IAAI,CAAE,CAAC,CAGT,4CAAgD,CAAE,IAAI,CAAE,KAAK,CAE7D,wCAAwC,CACtC,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,CAAC,CACN,IAAI,CAAE,CAAC,CACP,MAAM,CAAE,CAAC,CACT,KAAK,CAAE,CAAC,CACR,MAAM,CAAE,IAAI,CAGd,0CAA4C,CAAE,MAAM,CAAE,MAAM,CAE5D,mCAAmC,CACjC,KAAK,CAAE,GAAG,CACV,MAAM,CAAE,IAAI,CACZ,MAAM,CAAE,MAAM,CACd,qBAAqB,CAAE,IAAI,CAAE,kBAAkB,CAAE,IAAI,CAAE,aAAa,CAAE,IAAI,CAG5E,+BAA+B,CAC7B,MAAM,CAAE,OAAO,CACf,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,OAAO,CAAE,CAAC,CAGZ,iDAAiD,CAC/C,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,GAAG,CACV,MAAM,CAAE,IAAI,CACZ,MAAM,CAAE,MAAM,CACd,qBAAqB,CAAE,IAAI,CAAE,kBAAkB,CAAE,IAAI,CAAE,aAAa,CAAE,IAAI,CAC1E,UAAU,CAAE,MAAM,CAGpB,6OACsH,CAAE,KAAK,CAAE,IAAI,CAEnI,+NACwG,CAAE,KAAK,CAAE,GAAG,CAEpH,mEACkC,CAChC,OAAO,CAAE,KAAK,CACd,QAAQ,CAAE,QAAQ,CAClB,MAAM,CAAE,IAAI,CACZ,KAAK,CAAE,IAAI,CACX,QAAQ,CAAE,MAAM,CAChB,MAAM,CAAE,MAAM,CACd,MAAM,CAAE,OAAO,CAGjB,kCAAkC,CAAE,MAAM,CAAE,CAAC,CAW7C,4CAA8C,CAC5C,YAAY,CAAE,CAAC,CACf,aAAa,CAtJkB,IAAI,CAyJrC,6CAA+C,CAAE,UAAU,CAAE,IAAI,CAEjE,gEAAkE,CAAE,aAAa,CAAE,CAAC,CAEpF,6CAA6C,CAC3C,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,GAAG,CAAE,IAAI,CACT,KAAK,CAAE,CAAC,CACR,MAAM,CAAE,CAAC,CACT,IAAI,CAAE,CAAC,CAGT,iJACqF,CAAE,MAAM,CAAE,KAAK,CAEpG,sEAAwE,CAAE,MAAM,CAAE,MAAM,CAExF,+DAA+D,CAC7D,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,GAAG,CACX,MAAM,CAAE,KAAK,CAGf,2DAA2D,CACzD,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,IAAI,CAAE,CAAC,CAGT,6EAA6E,CAC3E,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,GAAG,CACX,MAAM,CAAE,QAAQ,CAGlB,iPACwH,CACtH,MAAM,CAAE,IAAI,CACZ,MAAM,CAAE,QAAQ,CAGlB,mOAC0G,CACxG,MAAM,CAAE,GAAG,CACX,MAAM,CAAE,KAAK,CAGf,8HAC+D,CAC7D,OAAO,CAAE,KAAK,CACd,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,QAAQ,CAAE,MAAM,CAChB,MAAM,CAAE,MAAM,CACd,MAAM,CAAE,OAAO,CAGjB,8DAA8D,CAAE,IAAI,CAAE,CAAC,CAEvE,+DAA+D,CAAE,KAAK,CAAE,CAAC,CAWzE,uBAAuB,CACrB,QAAQ,CAAE,QAAQ,CAClB,MAAM,CAAE,IAAI,CACZ,KAAK,CAAE,IAAI,CACX,QAAQ,CAAE,MAAM,CAChB,GAAG,CAAE,CAAC,CACN,IAAI,CAAE,CAAC,CACP,KAAK,CAAE,CAAC,CACR,MAAM,CAAE,CAAC,CACT,YAAY,CA1OmB,IAAI,CA2OnC,aAAa,CA3OkB,IAAI,CA8OrC,uCAAyC,CACvC,aAAa,CA/OkB,IAAI,CAgPnC,cAAc,CAhPiB,IAAI,CAiPnC,kBAAkB,CAAE,UAAU,CAAE,eAAe,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAGrF,qEAAuE,CAAE,MAAM,CAAE,IAAI,CAErF,uEAAyE,CAAE,KAAK,CAAE,IAAI,CAGtF,mGAAqG,CAAE,MAAM,CAAE,CAAC,CAGhH,2OACqH,CAAE,KAAK,CAAE,CAAC,CAG/H,iHAAqH,CAAE,IAAI,CAAE,IAAI,CAGjI,6LAAmM,CAAE,IAAI,CAAE,CAAC,CAE5M,iDAAqD,CACnD,YAAY,CAAE,CAAC,CACf,WAAW,CAvQoB,IAAI,CA0QrC,uEAAyE,CAAE,aAAa,CAAE,CAAC,CAE3F,uEAAyE,CAAE,cAAc,CAAE,CAAC,CAE5F,8GAAgH,CAC9G,YAAY,CAAE,CAAC,CACf,WAAW,CAAE,CAAC,CAIhB,8GAAgH,CAAE,aAAa,CAAE,CAAC,CAUlI,8MAKmC,CACjC,kBAAkB,CAAE,yDAAyD,CAC7E,eAAe,CAAE,yDAAyD,CAC1E,aAAa,CAAE,yDAAyD,CACxE,UAAU,CAAE,yDAAyD,CAGvE,mTAG6E,CAC3E,kBAAkB,CAAE,oOAGqC,CACzD,eAAe,CAAE,oOAGwC,CACzD,aAAa,CAAE,oOAG0C,CACzD,UAAU,CAAE,oOAG6C,CAmB3D,iBAAiB,CAAE,OAAO,CAAE,IAAI,CAAE,MAAM,CAAE,mBAAmB,CAAE,UAAU,CAAE,mBAAmB,CAE9F,qGACqD,CAAE,OAAO,CAAE,CAAC,CAAE,MAAM,CAAE,kBAAkB,CAAE,UAAU,CAAE,kBAAkB,CAE7H,qWAK2D,CAAE,OAAO,CAAE,CAAC,CAAE,MAAM,CAAE,oBAAoB,CAAE,UAAU,CAAE,oBAAoB,CAEvI,mCAAmC,CACjC,gBAAgB,CAAE,IAAI,CAAE,gBAAgB,CAAE,eAAe,CACzD,MAAM,CAAE,mBAAmB,CAAE,UAAU,CAAE,mBAAmB,CAG9D,iDAAiD,CAC/C,gBAAgB,CrDuZY,OAAa,CqDvZR,gBAAgB,CAAE,sBAAsB,CACzE,MAAM,CAAE,mBAAmB,CAAE,UAAU,CAAE,mBAAmB,CAG9D,uDAAuD,CACrD,gBAAgB,CrD8RY,OAAc,CqD9Rf,gBAAgB,CAAE,qBAAqB,CAClE,MAAM,CAAE,mBAAmB,CAAE,UAAU,CAAE,mBAAmB,CAE9D,8HACqE,CACnE,gBAAgB,CrDyRY,OAAc,CqDzRf,gBAAgB,CAAE,oBAAoB,CACjE,MAAM,CAAE,mBAAmB,CAAE,UAAU,CAAE,mBAAmB,CAG9D,0IAGmC,CAEjC,UAAU,CAAE,67HAAkD,CAC9D,iBAAiB,CAAE,SAAS,CAC5B,OAAO,CAAE,GAAG,CAAE,MAAM,CAAE,mBAAmB,CAAE,UAAU,CAAE,mBAAmB,CAG5E,gCAAgC,CAC9B,mBAAmB,CAAE,GAAG,CAQ1B,kCAAkC,CAChC,mBAAmB,CAAE,OAAO,CAQ9B,kCAAkC,CAChC,mBAAmB,CAAE,OAAO,CAQ9B,mCAAmC,CACjC,mBAAmB,CAAE,OAAO,CAQ9B,kKAGyC,CAAE,OAAO,CAAE,IAAI,CAAE,MAAM,CAAE,mBAAmB,CAAE,UAAU,CAAE,mBAAmB,CAEtH,sKAG0C,CAAE,OAAO,CAAE,GAAG,CAAE,MAAM,CAAE,mBAAmB,CAAE,UAAU,CAAE,mBAAmB,CA+pBtH,8FAC8C,CAC5C,KAAK,CAAE,GAAG,CACV,gBAAgB,CAAE,IAAI,CAAE,gBAAgB,CAAE,eAAe,CAG3D,0HAC4D,CAAE,KAAK,CAAE,GAAG,CAExE,qQAGyD,CACvD,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,GAAG,CACX,MAAM,CAAE,KAAK,CAGf,6eAGmH,CACjH,KAAK,CAAE,IAAI,CAGb,qfAGqH,CACnH,MAAM,CAAE,IAAI,CACZ,MAAM,CAAE,KAAK,CAGf,4CAA4C,CAAE,mBAAmB,CAAE,WAAW,CAE9E,8CAA8C,CAAE,mBAAmB,CAAE,WAAW,CAEhF,8CAA8C,CAAE,mBAAmB,CAAE,YAAY,CAEjF,+CAA+C,CAAE,mBAAmB,CAAE,YAAY,CCzmClF,eAAgB,CACd,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,MAAM,CACd,KAAK,CAAE,IAAI,CACX,eAAe,CAAE,QAAQ,CACzB,cAAc,CAAE,CAAC,CAQnB,iDACyB,CACvB,WAAW,CAAE,IAAI,CAEnB,iDACyB,CACvB,OAAO,CAAE,SAAS,CAClB,aAAa,CAAE,iBAAe,CAEhC,+DACgC,CAC9B,OAAO,CAAE,IAAI,CAEf,iDACyB,CACvB,OAAO,CAAE,kBAAkB,CAC3B,UAAU,CAAE,iBAAe,CAE7B,qGAEoC,CAClC,MAAM,CAAE,OAAO,CACf,OAAO,CAAE,IAAI,CAEf,8LAI6C,CAC3C,iBAAiB,CAAE,SAAS,CAC5B,mBAAmB,CAAE,YAAY,CAEnC,8BAA+B,CAC7B,gBAAgB,CAAE,uCAAuC,CAE3D,kCAAmC,CACjC,gBAAgB,CAAE,sCAAsC,CAE1D,mCAAoC,CAClC,gBAAgB,CAAE,uCAAuC,CAE3D,2CAA4C,CAC1C,gBAAgB,CAAE,+CAA+C,CAEnE,4CAA6C,CAC3C,gBAAgB,CAAE,gDAAgD,CAEpE,wBAAyB,CACvB,gBAAgB,CAAE,OAAwB,CAE5C,iCAAkC,CAChC,gBAAgB,C7CxCY,OAAO,C6C0CrC,iDACyB,CACvB,OAAO,CAAE,QAAQ,CAEnB,yIAA6I,CAC3I,UAAU,CAAE,iBAAe,CAE7B,qMAEgD,CAC9C,UAAU,CAAE,IAAI,CAElB,yEAA2E,CACzE,UAAU,CAAE,cAAc,CAC1B,YAAY,CAAE,cAAc,CAE9B,uGACoD,CAClD,WAAW,CAAE,cAAc,CAE7B,uGACoD,CAClD,UAAU,CAAE,IAAI,CAElB,wEAA0E,CACxE,gBAAgB,CtDioBY,OAAY,CsD/nB1C,0FAA4F,CAC1F,gBAAgB,C7CtEY,OAAO,C6CwErC,2EAA6E,CAE3E,OAAO,CAAE,iBAAsB,CAC/B,cAAc,CAAE,IAAI,CAEpB,iFAAE,CACA,gBAAgB,CAAE,qBAAuB,CAG7C,6FAA+F,CAC7F,gBAAgB,CAAE,OAAyB,CAE7C,sRAI8C,CAC5C,gBAAgB,CtD2mBY,OAAY,CsDzmB1C,4UAIuD,CACrD,gBAAgB,CAAE,OAAO,CAE3B,2GAAiH,CAC/G,gBAAgB,C7CpGY,OAAO,C6CsGrC,2GAAiH,CAC/G,gBAAgB,C7CtGY,OAAO,C6CwGrC,2GAAiH,CAC/G,gBAAgB,CAAE,OAAyB,CAE7C,6HAAmI,CACjI,gBAAgB,CAAE,OAAyB,CAE7C,6HAAmI,CACjI,gBAAgB,CAAE,OAAO,CAE3B,6HAAmI,CACjI,gBAAgB,CAAE,OAAO,CAE3B,6GAAmH,CACjH,gBAAgB,C7CtHY,OAAO,C6CwHrC,6GAAmH,CACjH,gBAAgB,C7CxHY,OAAO,C6C0HrC,6GAAmH,CACjH,gBAAgB,CAAE,OAAyB,CAE7C,+HAAqI,CACnI,gBAAgB,CAAE,OAAyB,CAE7C,+HAAqI,CACnI,gBAAgB,CAAE,OAAO,CAE3B,+HAAqI,CACnI,gBAAgB,CAAE,OAAO,CAE3B,8GAAoH,CAClH,gBAAgB,CAAE,eAAmC,CAEvD,8GAAoH,CAClH,gBAAgB,CAAE,eAAmC,CAEvD,8GAAoH,CAClH,gBAAgB,CAAE,eAAmC,CAEvD,gIAAsI,CACpI,gBAAgB,CAAE,OAAyB,CAE7C,gIAAsI,CACpI,gBAAgB,CAAE,OAAO,CAE3B,gIAAsI,CACpI,gBAAgB,CAAE,OAAO,CAE3B,yBAA0B,CACxB,aAAa,CAAE,iBAAe,CAEhC,mDAAqD,CACnD,WAAW,CAAE,MAAM,CAErB,+GACwD,CACtD,OAAO,CAAE,gBAAgB,CAE3B,iEACiC,CAC/B,OAAO,CAAE,eAAe,CAE1B,iEACiC,CAC/B,OAAO,CAAE,GAAG,CAEd,iEACiC,CAC/B,OAAO,CAAE,GAAG,CAEd,qDAC2B,CACzB,UAAU,CAAE,IAAI,CAElB,6FAEoC,CAClC,UAAU,CAAE,MAAM,CAEpB,uDAC4B,CAC1B,UAAU,CAAE,KAAK,CAEnB,2DAC8B,CAC5B,UAAU,CAAE,OAAO,CAErB,yDAC6B,CAC3B,WAAW,CAAE,MAAM,CAErB,uJAGsC,CACpC,UAAU,CAAE,IAAI,CAElB,+JAGwC,CACtC,UAAU,CAAE,MAAM,CAEpB,2JAGuC,CACrC,UAAU,CAAE,KAAK,CAEnB,mKAGyC,CACvC,UAAU,CAAE,OAAO,CAErB,+JAGwC,CACtC,WAAW,CAAE,MAAM,CAErB,2EACsC,CACpC,UAAU,CAAE,IAAI,CAElB,+EACwC,CACtC,UAAU,CAAE,MAAM,CAEpB,6EACuC,CACrC,UAAU,CAAE,KAAK,CAEnB,iFACyC,CACvC,UAAU,CAAE,OAAO,CAErB,+EACwC,CACtC,WAAW,CAAE,MAAM,CAGrB,qDAEmB,CACjB,kBAAkB,CAAE,WAAW,CAC/B,eAAe,CAAE,WAAW,CAC5B,UAAU,CAAE,WAAW,CAMzB,mBAAoB,CAClB,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,IAAI,CACX,KAAK,CAAE,CAAC,CACR,IAAI,CAAE,CAAC,CAET,sCAAuC,CACrC,KAAK,CAAE,IAAI,CAEb,sCAAuC,CACrC,KAAK,CAAE,KAAK,CACZ,UAAU,CAAE,KAAK,CAEnB,4CAA6C,CAC3C,WAAW,CAAE,KAAK,CAEpB,oCAAqC,CACnC,KAAK,CAAE,IAAI,CACX,KAAK,CAAE,IAAI,CACX,WAAW,CAAE,KAAK,CAEpB,wCAAyC,CACvC,KAAK,CAAE,KAAK,CACZ,UAAU,CAAE,KAAK,CACjB,WAAW,CAAE,KAAK,CAEpB,yDAA0D,CACxD,UAAU,CAAE,UAAU,CACtB,OAAO,CAAE,YAAY,CACrB,SAAS,CAAE,KAAK,CAChB,OAAO,CAAE,WAAW,CACpB,WAAW,CAAE,GAAG,CAChB,UAAU,CAAE,MAAM,CAClB,eAAe,CAAE,eAAe,CAChC,MAAM,CAAE,OAAO,CACf,OAAO,CAAE,IAAI,CACb,KAAK,CAAE,kBAAmC,CAC1C,MAAM,CAAE,qBAAqB,CAC7B,aAAa,CAAE,GAAG,CAEpB,yIAA2I,CACzI,KAAK,CAAE,kBAAwB,CAC/B,MAAM,CAAE,qBAAqB,CAC7B,gBAAgB,CtDuVY,OAAU,CsDtVtC,UAAU,CAAE,mGAA2G,CAEvH,UAAU,CAAE,sDAA8D,CAE1E,UAAU,CAAE,mDAA2D,CAEvE,UAAU,CAAE,kDAA0D,CAEtE,UAAU,CAAE,iDAAyD,CAErE,UAAU,CAAE,mDAA4D,CAG1E,qNAAwN,CACtN,MAAM,CAAE,OAAO,CACf,KAAK,CAAE,kBAAkC,CACzC,MAAM,CAAE,qBAAqB,CAC7B,UAAU,CAAE,WAAW,CACvB,UAAU,CAAE,IAAI,CAChB,cAAc,CAAE,GAAG,CACnB,MAAM,CAAE,WAAW,CAErB,+DAAgE,CAC9D,KAAK,CAAE,kBAAqB,CAC5B,MAAM,CAAE,qBAAqB,CAC7B,gBAAgB,CtDibc,OAAY,CsDhb1C,UAAU,CAAE,mGAA6G,CAEzH,UAAU,CAAE,sDAAgE,CAE5E,UAAU,CAAE,mDAA6D,CAEzE,UAAU,CAAE,kDAA4D,CAExE,UAAU,CAAE,iDAA2D,CAEvE,UAAU,CAAE,mDAA8D,CAG5E,gEAAiE,CAC/D,OAAO,CAAE,IAAI,CACb,gBAAgB,CtDiac,OAAY,CsDha1C,UAAU,CAAE,mGAA6G,CAEzH,UAAU,CAAE,sDAAgE,CAE5E,UAAU,CAAE,mDAA6D,CAEzE,UAAU,CAAE,kDAA4D,CAExE,UAAU,CAAE,iDAA2D,CAEvE,UAAU,CAAE,mDAA8D,CAE5E,kDAAmD,CACjD,OAAO,CAAE,KAAK,CAEhB,0CAA2C,CACzC,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,GAAG,CACR,IAAI,CAAE,GAAG,CACT,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,WAAW,CAAE,IAAI,CACjB,UAAU,CAAE,KAAK,CACjB,WAAW,CAAE,IAAI,CACjB,UAAU,CAAE,MAAM,CAClB,SAAS,CAAE,KAAK,CAChB,gBAAgB,CAAE,KAAK,CACvB,UAAU,CAAE,yMAAqN,CACjO,UAAU,CAAE,qIAAiJ,CAC7J,UAAU,CAAE,kIAA8I,CAC1J,UAAU,CAAE,iIAA6I,CACzJ,UAAU,CAAE,gIAA4I,CACxJ,UAAU,CAAE,8HAA6I,CAE3J,sMAIyC,CACvC,KAAK,CtDqVuB,OAAW,CsDnVzC,sCAAuC,CACrC,KAAK,CAAE,IAAI,CAEb,gEAAiE,CAC/D,WAAW,CAAE,IAAI,CACjB,0BAA0B,CAAE,KAAK,CAEnC,uIAAyI,CACvI,cAAc,CAAE,MAAM,CAExB,mLAC4F,CAC1F,MAAM,CAAE,CAAC,CACT,QAAQ,CAAE,MAAM,CAChB,MAAM,CAAE,YAAY,CACpB,OAAO,CAAE,YAAY,CAEvB,oDAAqD,CACnD,aAAa,CAAE,cAAc,CAE/B,2HAC8D,CAC5D,aAAa,CAAE,IAAI,CAErB,yBAA0B,CACxB,UAAU,CAAE,MAAM,CAClB,OAAO,CAAE,KAAK,CACd,OAAO,CAAE,EAAE,CACX,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,CAAC,CAGX,oCAAqC,CACnC,6EACyC,CACvC,KAAK,CAAE,IAAI,CACX,UAAU,CAAE,MAAM,CAEpB,wCAAyC,CACvC,UAAU,CAAE,KAAK,EAGrB,oCAAqC,CACnC,6EACuC,CACrC,KAAK,CAAE,IAAI,CACX,UAAU,CAAE,MAAM,CAEpB,sCAAuC,CACrC,UAAU,CAAE,KAAK,EC5crB,kBAAmB,CACjB,QAAQ,CAAE,KAAK,CACf,GAAG,CAAE,GAAG,CACR,IAAI,CAAE,GAAG,CACT,KAAK,CAAE,KAAK,CACZ,UAAU,CAAE,MAAM,CAClB,WAAW,CAAE,MAAM,CACnB,gBAAgB,CAAE,KAAK,CACvB,MAAM,CAAE,cAAc,CACtB,UAAU,CAAE,2BAA8B,CAC1C,aAAa,CAAE,GAAG,CAClB,UAAU,CAAE,MAAM,CAClB,OAAO,CAAE,EAAE,CAEb,qBAAsB,CACpB,OAAO,CAAE,KAAK,CACd,MAAM,CAAE,CAAC,CACT,WAAW,CAAE,MAAM,CACnB,aAAa,CAAE,cAAc,CAC7B,gBAAgB,CAAE,OAAO,CAE3B,sBAAyB,CACvB,OAAO,CAAE,GAAG,CAGd,qCAAsC,CACpC,OAAO,CAAE,KAAK,CACd,OAAO,CAAE,IAAI,CACb,kBAAkB,CAAE,GAAG,CACvB,eAAe,CAAE,GAAG,CACpB,cAAc,CAAE,GAAG,CACnB,aAAa,CAAE,GAAG,CAClB,UAAU,CAAE,GAAG,CAEjB,2CAA4C,CAC1C,QAAQ,CAAE,KAAK,CACf,GAAG,CAAE,GAAG,CACR,IAAI,CAAE,GAAG,CACT,WAAW,CAAE,KAAK,CAClB,aAAa,CAAE,CAAC,CAElB,sDAAuD,CACrD,WAAW,CAAE,MAAM,CAErB,wDAAyD,CACvD,WAAW,CAAE,MAAM,CAErB,uDAAwD,CACtD,WAAW,CAAE,MAAM,CAErB,uCAA0C,CACxC,2BAA2B,CAAE,KAAK,CAClC,YAAY,CAAE,KAAK,CAErB,gDAAiD,CAC/C,KAAK,CAAE,KAAK,CACZ,cAAc,CAAE,GAAG,CACnB,oBAAoB,CAAE,CAAC,CACvB,iBAAiB,CAAE,CAAC,CACpB,gBAAgB,CAAE,CAAC,CACnB,eAAe,CAAE,CAAC,CAClB,YAAY,CAAE,CAAC,CAEjB,kDAAmD,CACjD,KAAK,CAAE,KAAK,CACZ,cAAc,CAAE,GAAG,CACnB,oBAAoB,CAAE,CAAC,CACvB,iBAAiB,CAAE,CAAC,CACpB,gBAAgB,CAAE,CAAC,CACnB,eAAe,CAAE,CAAC,CAClB,YAAY,CAAE,CAAC,CAEjB,iDAAkD,CAChD,KAAK,CAAE,KAAK,CACZ,cAAc,CAAE,GAAG,CACnB,oBAAoB,CAAE,CAAC,CACvB,iBAAiB,CAAE,CAAC,CACpB,gBAAgB,CAAE,CAAC,CACnB,eAAe,CAAE,CAAC,CAClB,YAAY,CAAE,CAAC,CAGjB,wBAAyB,CACvB,QAAQ,CAAE,KAAK,CACf,GAAG,CAAE,CAAC,CACN,IAAI,CAAE,CAAC,CACP,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,OAAO,CAAE,IAAI,CAGf,oCAAqC,CACnC,cAAe,CACb,KAAK,CAAE,IAAI,CACX,KAAK,CAAE,IAAI,CACX,UAAU,CAAE,MAAM,CAClB,aAAa,CAAE,KAAK,CAEtB,oBAAqB,CACnB,KAAK,CAAE,IAAI,ECnGf;;;GAGG,AAKH,wBAAyB,CACvB,QAAQ,CAAE,QAAQ,CAClB,gBAAgB,CAAE,eAAe,CAGnC,6HAE4C,CAC1C,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,IAAI,CACT,KAAK,CAAE,GAAG,CACV,OAAO,CAAE,KAAK,CACd,WAAW,CAAE,qBAAqB,CAClC,UAAU,CAAE,IAAI,CAGlB,sCAAuC,CACrC,OAAO,CAAE,OAAO,CAChB,KAAK,CxDstBuB,OAAM,CwDrtBlC,SAAS,CAAE,KAAK,CAChB,UAAU,CAAE,IAAI,CAElB,0CAA2C,CACzC,OAAO,CAAE,OAAO,CAElB,2CAA4C,CAC1C,OAAO,CAAE,OAAO,CAGlB,2MAEsE,CACpE,OAAO,CAAE,EAAE,CAMb,kGACmD,CACjD,QAAQ,CAAE,QAAQ,CAClB,YAAY,CAAE,IAAI,CAGpB,6FAC+C,CAC7C,QAAQ,CAAE,QAAQ,CAClB,aAAa,CAAE,IAAI,CAGrB,gFAC0C,CACxC,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,GAAG,CACR,IAAI,CAAE,IAAI,CACV,OAAO,CAAE,KAAK,CACd,WAAW,CAAE,IAAI,CACjB,WAAW,CAAE,qBAAqB,CAGpC,yEACqC,CACnC,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,GAAG,CACR,KAAK,CAAE,IAAI,CACX,OAAO,CAAE,KAAK,CACd,WAAW,CAAE,IAAI,CACjB,WAAW,CAAE,qBAAqB,CAGpC,sCAAuC,CACrC,OAAO,CAAE,OAAO,CAGlB,yCAA0C,CACxC,OAAO,CAAE,OAAO,CAGlB,oCAAqC,CACnC,OAAO,CAAE,OAAO,CAGlB,oCAAqC,CACnC,OAAO,CAAE,OAAO,CC3FlB,+KAEwE,CACtE,MAAM,CAAE,kBAAkB,CAE5B,oMAE+E,CAC7E,OAAO,CAAE,eAAe,CAE1B,yHACmE,CACjE,QAAQ,CAAE,QAAQ,CAClB,YAAY,CAAE,IAAI,CAClB,MAAM,CAAE,OAAO,CAEjB,uIAC0E,CACxE,GAAG,CAAE,GAAG,CACR,IAAI,CAAE,GAAG,CACT,MAAM,CAAE,IAAI,CACZ,KAAK,CAAE,IAAI,CACX,OAAO,CAAE,KAAK,CACd,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,KAAK,CACZ,MAAM,CAAE,eAAe,CACvB,aAAa,CAAE,IAAI,CACnB,UAAU,CAAE,YAAY,CACxB,UAAU,CAAE,WAAW,CACvB,UAAU,CAAE,MAAM,CAClB,WAAW,CAAE,iCAAiC,CAC9C,WAAW,CAAE,IAAI,CACjB,OAAO,CAAE,GAAG,CACZ,gBAAgB,CAAE,OAAO,CAE3B,qJACiF,CAC/E,OAAO,CAAE,GAAG,CACZ,gBAAgB,CAAE,OAAO,CAE3B,6DAAkE,CAChE,OAAO,CAAE,IAAI,CAEf,yIAC2E,CACzE,YAAY,CAAE,IAAI,CAEpB,uJACkF,CAChF,GAAG,CAAE,GAAG,CACR,IAAI,CAAE,GAAG,CACT,MAAM,CAAE,IAAI,CACZ,KAAK,CAAE,IAAI,CACX,aAAa,CAAE,IAAI,CACnB,WAAW,CAAE,IAAI,CACjB,WAAW,CAAE,GAAG,CAElB,6FACqD,CACnD,QAAQ,CAAE,QAAQ,CAClB,MAAM,CAAE,OAAO,CAEjB,2GAC4D,CAC1D,GAAG,CAAE,GAAG,CACR,IAAI,CAAE,GAAG,CACT,MAAM,CAAE,IAAI,CACZ,KAAK,CAAE,IAAI,CACX,UAAU,CAAE,KAAK,CACjB,WAAW,CAAE,KAAK,CAClB,OAAO,CAAE,KAAK,CACd,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,KAAK,CACZ,MAAM,CAAE,eAAe,CACvB,aAAa,CAAE,IAAI,CACnB,UAAU,CAAE,YAAY,CACxB,UAAU,CAAE,WAAW,CACvB,UAAU,CAAE,MAAM,CAClB,WAAW,CAAE,iCAAiC,CAC9C,WAAW,CAAE,IAAI,CACjB,OAAO,CAAE,GAAG,CACZ,gBAAgB,CAAE,OAAO,CAE3B,yHACiE,CAC/D,OAAO,CAAE,GAAG,CACZ,gBAAgB,CAAE,OAAO,CAE3B,8BAAmC,CACjC,OAAO,CAAE,SAAS,CAEpB,oCAAyC,CACvC,UAAU,CAAE,sBAAsB,CAEpC,iCAAsC,CACpC,OAAO,CAAE,YAAY,CACrB,eAAe,CAAE,IAAI,CACrB,MAAM,CAAE,CAAC,CACT,OAAO,CAAE,CAAC,CAEZ,oCAAyC,CACvC,aAAa,CAAE,iBAAiB,CAChC,OAAO,CAAE,OAAO,CAElB,gDAAqD,CACnD,WAAW,CAAE,CAAC,CAEhB,+CAAoD,CAClD,aAAa,CAAE,IAAI,CAErB,6CAAkD,CAChD,OAAO,CAAE,YAAY,CACrB,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,IAAI,CAGnB,aAAc,CACZ,QAAQ,CAAE,KAAK,CACf,UAAU,CAAE,UAAU,CACtB,GAAG,CAAE,CAAC,CACN,IAAI,CAAE,CAAC,CACP,MAAM,CAAE,IAAI,CACZ,KAAK,CAAE,IAAI,CACX,OAAO,CAAE,GAAG,CACZ,OAAO,CAAE,QAAQ,CAEnB,mCAAoC,CAClC,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,CAAC,CACN,IAAI,CAAE,CAAC,CACP,MAAM,CAAE,CAAC,CACT,KAAK,CAAE,CAAC,CACR,KAAK,CAAE,GAAG,CACV,MAAM,CAAE,GAAG,CACX,QAAQ,CAAE,IAAI,CACd,MAAM,CAAE,IAAI,CACZ,OAAO,CAAE,GAAG,CACZ,gBAAgB,CAAE,OAAO,CACzB,MAAM,CAAE,eAAe,CACvB,aAAa,CAAE,KAAK,CACpB,UAAU,CAAE,2BAA8B,CAE5C,mCAAoC,CAClC,QAAQ,CAAE,QAAQ,CAClB,OAAO,CAAE,GAAG,CAEd,iCAAkC,CAChC,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,GAAG,CACR,KAAK,CAAE,GAAG,CACV,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,MAAM,CAAE,iBAAiB,CACzB,gBAAgB,CAAE,OAAO,CACzB,UAAU,CAAE,MAAM,CAClB,aAAa,CAAE,GAAG,CAClB,MAAM,CAAE,OAAO,CACf,OAAO,CAAE,EAAE,CAEb,uCAAwC,CACtC,gBAAgB,CAAE,OAAO,CAE3B,sCAAuC,CACrC,QAAQ,CAAE,KAAK,CACf,GAAG,CAAE,CAAC,CACN,IAAI,CAAE,CAAC,CACP,KAAK,CAAE,CAAC,CACR,MAAM,CAAE,CAAC,CACT,OAAO,CAAE,GAAG,CACZ,UAAU,CAAE,eAAkB,CAGhC,oCAAqC,CACnC,mCAAoC,CAClC,KAAK,CAAE,GAAG,EC9Kd,oEACuC,CACrC,gBAAgB,CjDyBY,OAAO,CiDvBrC,uLAEmD,CACjD,gBAAgB,CjDoBY,OAAO,CiDlBrC,6LAEqD,CACnD,gBAAgB,CAAE,OAAyB,CAE7C,uaAM+C,CAC7C,gBAAgB,CAAE,OAAO,CAE3B,6HAAuI,CACrI,gBAAgB,CAAE,OAAyB,CAE7C,6HAAuI,CACrI,gBAAgB,CAAE,OAAO,CAE3B,6HAAuI,CACrI,gBAAgB,CAAE,OAAO,CAE3B,+HAAyI,CACvI,gBAAgB,CAAE,OAAyB,CAE7C,+HAAyI,CACvI,gBAAgB,CAAE,OAAO,CAE3B,+HAAyI,CACvI,gBAAgB,CAAE,OAAO,CAE3B,yGAAmH,CACjH,gBAAgB,CAAE,OAAyB,CAE7C,2GAAqH,CACnH,gBAAgB,CAAE,OAAO,CAE3B,gIAA0I,CACxI,gBAAgB,CAAE,OAAyB,CAE7C,gIAA0I,CACxI,gBAAgB,CAAE,OAAO,CAE3B,gIAA0I,CACxI,gBAAgB,CAAE,OAAO,CAE3B,yNAEgE,CAC9D,gBAAgB,CAAE,OAAO,CAE3B,kCAAmC,CACjC,QAAQ,CAAE,QAAQ,CAEpB,kFAAoF,CAClF,OAAO,CAAE,KAAK,CACd,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,KAAK,CACV,IAAI,CAAE,GAAG,CACT,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,UAAU,CAAE,UAAU,CAExB,yCAA0C,CACxC,OAAO,CAAE,GAAG,CACZ,UAAU,CAAE,IAAI,CAChB,WAAW,CAAE,IAAI,CACjB,MAAM,CAAE,eAAe,CACvB,aAAa,CAAE,GAAG,CAEpB,oDAAqD,CACnD,OAAO,CAAE,OAAO,CAChB,UAAU,CAAE,KAAK,CACjB,WAAW,CAAE,IAAI,CACjB,UAAU,CAAE,MAAM,CAClB,WAAW,CAAE,sEAAsE,CAGrF,+EACwC,CACtC,WAAW,CAAE,KAAK,CAGpB,oCAAqC,CACnC,+EACwC,CACtC,WAAW,CAAE,CAAC,CACd,OAAO,CAAE,KAAK,ECjGlB;;;qDAGqD,AACrD,aAAc,CACZ,aAAa,CAAE,CAAC,CAIlB,yBAAyB,CACvB,WAAW,CAAE,YAAY,CAG3B,4BAA6B,CAC3B,aAAa,CAAE,CAAC,CAChB,WAAW,CAAE,MAAM,CACnB,WAAW,CAAE,IAAI,CAGnB,iBAAkB,CAChB,OAAO,CAAE,YAAY,CACrB,cAAc,CAAE,GAAG,CACnB,WAAW,CAAE,GAAG,CAEhB,IAAI,CAAE,CAAC,CACP,QAAQ,CAAE,MAAM,CAGlB,yCAA0C,CACxC,OAAO,CAAE,KAAK,CACd,UAAU,CAAE,GAAG,CACf,WAAW,CAAE,CAAC,CAGhB,eAAgB,CACd,cAAc,CAAE,GAAG,CACnB,OAAO,CAAE,YAAY,CACrB,KAAK,CAAE,IAAI,CACX,WAAW,CAAE,MAAM,CAEnB,IAAI,CAAE,CAAC,CACP,QAAQ,CAAE,MAAM,CAGlB,kCAAmC,CACjC,WAAW,CAAE,GAAG,CAIlB,4CAA6C,CAC3C,MAAM,CAAE,IAAI,CACZ,KAAK,CAAE,IAAI,CAGb,qBAAsB,CAEpB,MAAM,CAAE,IAAI,CACZ,KAAK,CAAE,IAAI,CACX,SAAS,CAAE,IAAI,CACf,UAAU,CAAE,MAAM,CAElB,uBAAE,CACA,UAAU,CAAE,IAAI,CAIpB,sCAAuC,CACrC,mBAAmB,CAAE,QAAQ,CAG/B,qBAAsB,CACpB,SAAS,CAAE,KAAK,CAChB,MAAM,CAAE,SAAS,CACjB,KAAK,CAAE,IAAI,CACX,WAAW,CAAE,MAAM,CAIrB,oCAAqC,CACnC,OAAO,CAAE,GAAG,CAGd,eAAgB,CACd,KAAK,CAAE,GAAG,CAKZ,4BAA6B,CAC3B,OAAO,CAAE,CAAC,CACV,MAAM,CAAE,CAAC,CACT,KAAK,CAAE,IAAI,CAIb,iCAAkC,CAChC,UAAU,CAAE,GAAG,CACf,WAAW,CAAE,GAAG,CAKlB,iNAC+B,CAC7B,cAAc,CAAE,MAAM,CACtB,MAAM,CAAE,CAAC,CAGX,4EAA0B,CACxB,WAAW,CAAE,MAAM,CAIrB,mBAAoB,CAClB,KAAK,CAAE,KAAK,CACZ,MAAM,CAAE,KAAK,CAIf,eAAgB,CACd,KAAK,CAAE,IAAI,CACX,SAAS,CAAE,KAAK,CAChB,eAAe,CAAE,IAAI,CACrB,UAAU,CAAE,KAAK,CAInB,iBAAkB,CAEhB,OAAO,CAAE,KAAK,CACd,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,QAAQ,CAAE,QAAQ,CAClB,OAAO,CAAE,GAAG,CACZ,OAAO,CAAE,GAAG,CAEZ,GAAG,CAAE,GAAG,CACR,KAAK,CAAE,GAAG,CACV,UAAU,CAAE,IAAI,CAIlB,uBAAwB,CACtB,OAAO,CAAE,CAAC,CAGZ,qBAAsB,CACpB,WAAW,CAAE,QAAQ,CAEvB,kCAAmC,CACjC,SAAS,CAAE,eAAe,CAG5B,2BAA4B,CAC1B,KAAK,CAAE,IAAI,CAGb,mCAAoC,CAClC,OAAO,CAAE,YAAY,CACrB,cAAc,CAAE,MAAM,CACtB,KAAK,CAAE,IAAI,CAEX,IAAI,CAAE,CAAC,CACP,QAAQ,CAAE,MAAM,CAGlB,6BAA8B,CAC5B,SAAS,CAAE,OAAO,CAClB,OAAO,CAAE,IAAI,CAEf,uDAEuB,CACrB,eAAe,CAAE,IAAI,CAIvB,6GAEyC,CACvC,KAAK,CAAE,OAAO,CACd,MAAM,CAAE,OAAO,CACf,aAAa,CAAE,IAAI,CAGrB,2DAA6D,CAC3D,UAAU,CAAE,MAAM,CAClB,KAAK,ClDpHuB,OAAI,CkDsHhC,eAAe,CAAE,IAAI,CAGvB,iBAAkB,CAChB,WAAW,CAAE,IAAI,CAOnB,uBAAwB,CACtB,kBAAkB,CAAE,gCAAgC,CACpD,eAAe,CAAE,gCAAgC,CACjD,aAAa,CAAE,gCAAgC,CAC/C,cAAc,CAAE,gCAAgC,CAChD,UAAU,CAAE,gCAAgC,CAI9C,0BACA,CACE,WAAW,CAAE,GAAG,CAChB,OAAO,CAAC,YAAY,CAItB;;;;;;;;GAQG,AACH,WAAY,CACV,OAAO,CAAE,GAAG,CACZ,qBAAqB,CAAE,GAAG,CAC1B,kBAAkB,CAAE,GAAG,CACvB,aAAa,CAAE,GAAG,CAClB,SAAS,CAAE,GAAG,CAMhB,kBAAmB,CACjB,KAAK,CAAE,KAAK,CAEd,0BAA2B,CACzB,SAAS,CAAE,GAAG,CAEhB,2CAA4C,CAC1C,KAAK,CAAE,KAAK,CAEd,oBAAqB,CACnB,GAAG,CAAE,CAAC,CACN,IAAI,CAAE,CAAC,CAET,2BAA4B,CAC1B,OAAO,CAAE,EAAE,CACX,OAAO,CAAE,YAAY,CACrB,WAAW,CAAE,qBAAqB,CAClC,YAAY,CAAE,qBAAqB,CACnC,aAAa,CAAE,cAAc,CAC7B,mBAAmB,CAAE,eAAkB,CACvC,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,IAAI,CACT,IAAI,CAAE,GAAG,CAEX,0BAA2B,CACzB,OAAO,CAAE,EAAE,CACX,OAAO,CAAE,YAAY,CACrB,WAAW,CAAE,qBAAqB,CAClC,YAAY,CAAE,qBAAqB,CACnC,aAAa,CAAE,iBAAiB,CAChC,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,IAAI,CACT,IAAI,CAAE,GAAG,CAEX,eAAkB,CAChB,OAAO,CAAE,IAAI,CAEf,oCAAqC,CACnC,OAAO,CAAE,KAAK,CAEhB,wCAAyC,CACvC,OAAO,CAAE,KAAK,CAEhB,sCAAuC,CACrC,OAAO,CAAE,KAAK,CAEhB,iBAAkB,CAChB,MAAM,CAAE,CAAC,CAEX,6BACe,CACb,UAAU,CAAE,MAAM,CAClB,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,qBAAqB,CAAE,GAAG,CAC1B,kBAAkB,CAAE,GAAG,CACvB,aAAa,CAAE,GAAG,CAClB,MAAM,CAAE,IAAI,CAEd,6EACuC,CACrC,gBAAgB,CAAE,WAAW,CAE/B,iCAAkC,CAChC,UAAU,CAAE,OAAO,CACnB,MAAM,CAAE,OAAO,CAEjB,uDAC4B,CAC1B,KAAK,CAAE,OAAO,CAEhB,uEACuC,CACrC,UAAU,CAAE,IAAI,CAChB,KAAK,CAAE,OAAO,CACd,MAAM,CAAE,OAAO,CAEjB,qJAG6C,CAC3C,gBAAgB,CAAE,OAAO,CACzB,gBAAgB,CAAE,2CAA2C,CAC7D,gBAAgB,CAAE,0CAA0C,CAC5D,gBAAgB,CAAE,iEAAiE,CACnF,gBAAgB,CAAE,8CAA8C,CAChE,gBAAgB,CAAE,yCAAyC,CAC3D,gBAAgB,CAAE,2CAAsC,CACxD,iBAAiB,CAAE,QAAQ,CAC3B,MAAM,CAAE,0GAA0G,CAClH,YAAY,CAAE,uBAAuB,CACrC,YAAY,CAAE,gDAAyD,CACvE,MAAM,CAAE,yDAAyD,CACjE,KAAK,CAAE,IAAI,CAEb,y4BAmBuD,CACrD,gBAAgB,CAAE,OAAO,CAE3B,mWAOoD,CAClD,gBAAgB,CAAE,UAAU,CAE9B,yCAA0C,CACxC,KAAK,CAAE,IAAI,CAEb,0CAA2C,CACzC,KAAK,CAAE,IAAI,CAEb,qJAG6C,CAC3C,UAAU,CAAE,OAAO,CACnB,qBAAqB,CAAE,CAAC,CACxB,kBAAkB,CAAE,CAAC,CACrB,aAAa,CAAE,CAAC,CAElB,6KAGmD,CACjD,gBAAgB,CAAE,OAAO,CACzB,gBAAgB,CAAE,2CAA2C,CAC7D,gBAAgB,CAAE,0CAA0C,CAC5D,gBAAgB,CAAE,iEAAiE,CACnF,gBAAgB,CAAE,8CAA8C,CAChE,gBAAgB,CAAE,yCAAyC,CAC3D,gBAAgB,CAAE,2CAAsC,CACxD,iBAAiB,CAAE,QAAQ,CAC3B,MAAM,CAAE,0GAA0G,CAClH,YAAY,CAAE,uBAAuB,CACrC,YAAY,CAAE,gDAAyD,CACvE,MAAM,CAAE,yDAAyD,CACjE,qBAAqB,CAAE,CAAC,CACxB,kBAAkB,CAAE,CAAC,CACrB,aAAa,CAAE,CAAC,CAElB,igCAmB6D,CAC3D,gBAAgB,CAAE,OAAO,CAE3B,mZAO0D,CACxD,gBAAgB,CAAE,UAAU,CAE9B,iKAGgD,CAC9C,gBAAgB,CAAE,OAAO,CACzB,gBAAgB,CAAE,wCAA2C,CAC7D,gBAAgB,CAAE,uCAA0C,CAC5D,gBAAgB,CAAE,8DAAiE,CACnF,gBAAgB,CAAE,2CAA8C,CAChE,gBAAgB,CAAE,sCAAyC,CAC3D,gBAAgB,CAAE,2CAAsC,CACxD,iBAAiB,CAAE,QAAQ,CAC3B,MAAM,CAAE,0GAA0G,CAClH,YAAY,CAAE,uBAAuB,CACrC,YAAY,CAAE,gDAAyD,CACvE,MAAM,CAAE,yDAAyD,CACjE,KAAK,CAAE,IAAI,CACX,WAAW,CAAE,yBAA4B,CAE3C,q8BAmB0D,CACxD,gBAAgB,CAAE,OAAO,CAE3B,2XAOuD,CACrD,gBAAgB,CAAE,UAAU,CAE9B,yJAG8C,CAC5C,gBAAgB,CAAE,OAAO,CACzB,gBAAgB,CAAE,qCAA2C,CAC7D,gBAAgB,CAAE,oCAA0C,CAC5D,gBAAgB,CAAE,2DAAiE,CACnF,gBAAgB,CAAE,wCAA8C,CAChE,gBAAgB,CAAE,mCAAyC,CAC3D,gBAAgB,CAAE,2CAAsC,CACxD,iBAAiB,CAAE,QAAQ,CAC3B,MAAM,CAAE,0GAA0G,CAClH,YAAY,CAAE,uBAAuB,CACrC,YAAY,CAAE,gDAAyD,CACvE,MAAM,CAAE,yDAAyD,CACjE,KAAK,CAAE,IAAI,CACX,WAAW,CAAE,yBAA4B,CAE3C,65BAmBwD,CACtD,gBAAgB,CAAE,OAAO,CAE3B,2WAOqD,CACnD,gBAAgB,CAAE,UAAU,CAE9B,4BAA6B,CAC3B,OAAO,CAAE,KAAK,CACd,KAAK,CAAE,GAAG,CACV,MAAM,CAAE,IAAI,CACZ,WAAW,CAAE,IAAI,CACjB,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,EAAE,CACV,MAAM,CAAE,OAAO,CACf,qBAAqB,CAAE,GAAG,CAC1B,kBAAkB,CAAE,GAAG,CACvB,aAAa,CAAE,GAAG,CAEpB,kCAAmC,CACjC,UAAU,CAAE,OAAO,CAErB,iFAC4C,CAC1C,UAAU,CAAE,IAAI,CAChB,KAAK,CAAE,OAAO,CACd,MAAM,CAAE,OAAO,CAEjB,6KAGmD,CACjD,gBAAgB,CAAE,OAAO,CACzB,gBAAgB,CAAE,qCAA2C,CAC7D,gBAAgB,CAAE,oCAA0C,CAC5D,gBAAgB,CAAE,2DAAiE,CACnF,gBAAgB,CAAE,wCAA8C,CAChE,gBAAgB,CAAE,mCAAyC,CAC3D,gBAAgB,CAAE,2CAAsC,CACxD,iBAAiB,CAAE,QAAQ,CAC3B,MAAM,CAAE,0GAA0G,CAClH,YAAY,CAAE,uBAAuB,CACrC,YAAY,CAAE,gDAAyD,CACvE,MAAM,CAAE,yDAAyD,CACjE,KAAK,CAAE,IAAI,CACX,WAAW,CAAE,yBAA4B,CAE3C,igCAmB6D,CAC3D,gBAAgB,CAAE,OAAO,CAE3B,mZAO0D,CACxD,gBAAgB,CAAE,UAAU,CAE9B,iEACiC,CAC/B,KAAK,CAAE,OAAO,CAEhB,gCAAiC,CAC/B,KAAK,CAAE,KAAK,CAEd,2DACwB,CACtB,MAAM,CAAE,OAAO,CAEjB,uEAC8B,CAC5B,UAAU,CAAE,OAAO,CAErB,eAAgB,CACd,SAAS,CAAE,IAAI,CACf,KAAK,CAAE,IAAI,CACX,OAAO,CAAE,WAAW,CACpB,cAAc,CAAE,MAAM,CAExB,sCAAuC,CACrC,MAAM,CAAE,OAAO,CACf,gBAAgB,CAAE,WAAW,CAE/B,0DAC8B,CAC5B,OAAO,CAAE,KAAK,CACd,MAAM,CAAE,OAAO,CACf,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CAEd,sBAAuB,CACrB,UAAU,CAAE,MAAM,CAEpB,kCAAmC,CACjC,qBAAqB,CAAE,WAAW,CAClC,kBAAkB,CAAE,WAAW,CAC/B,aAAa,CAAE,WAAW,CAE5B,iCAAkC,CAChC,qBAAqB,CAAE,WAAW,CAClC,kBAAkB,CAAE,WAAW,CAC/B,aAAa,CAAE,WAAW,CAE5B,wBAAyB,CACvB,OAAO,CAAE,YAAY,CACrB,KAAK,CAAE,IAAI,CACX,SAAS,CAAE,IAAI,CACf,MAAM,CAAE,IAAI,CACZ,OAAO,CAAE,OAAO,CAChB,WAAW,CAAE,MAAM,CACnB,WAAW,CAAE,IAAI,CACjB,UAAU,CAAE,MAAM,CAClB,WAAW,CAAE,eAAe,CAC5B,cAAc,CAAE,MAAM,CACtB,gBAAgB,CAAE,OAAO,CACzB,MAAM,CAAE,cAAc,CACtB,WAAW,CAAE,IAAI,CACjB,YAAY,CAAE,IAAI,CCvpBpB;;;;EAIE,AAEF,WAAY,CACV,GAAG,CAAE,IAAI,CACT,KAAK,CAAE,IAAI,CACX,QAAQ,CAAE,QAAQ,CAClB,MAAM,CAAE,IAAI,CACZ,OAAO,CAAE,CAAC,CAEZ,gBAAmB,CAEjB,QAAQ,CAAE,KAAK,CAEf,OAAO,CAAE,MAAM,CAEjB,yBAA0B,CACxB,gBAAgB,CAAE,eAAiB,CACnC,GAAG,CAAE,CAAC,CACN,IAAI,CAAE,CAAC,CACP,QAAQ,CAAE,QAAQ,CAClB,MAAM,CAAE,IAAI,CACZ,KAAK,CAAE,IAAI,CACX,OAAO,CAAE,CAAC,CAEZ,8BAAiC,CAC/B,QAAQ,CAAE,KAAK,CACf,OAAO,CAAE,MAAM,CAEjB,yBAA0B,CACxB,OAAO,CAAE,gBAAgB,CAE3B,2BAA4B,CAC1B,UAAU,CAAE,4DAA4D,CAE1E,gCAAiC,CAC/B,UAAU,CAAE,kBAAkB,CAC9B,OAAO,CAAE,CAAC,CAEZ,2DAA4D,CAC1D,UAAU,CAAE,gFAAgF,CAE9F,kCAAmC,CACjC,UAAU,CAAE,mBAAmB,CAC/B,OAAO,CAAE,CAAC,CAEZ,6DAA8D,CAC5D,UAAU,CAAE,iFAAiF,CAE/F,gCAAiC,CAC/B,UAAU,CAAE,kBAAkB,CAC9B,OAAO,CAAE,CAAC,CAEZ,2DAA4D,CAC1D,UAAU,CAAE,gFAAgF,CAE9F,8BAA+B,CAC7B,OAAO,CAAE,CAAC,CAEZ,8BAA+B,CAC7B,kBAAkB,CAAE,gCAAgC,CACpD,eAAe,CAAE,gCAAgC,CACjD,UAAU,CAAE,gCAAgC,CAE9C,qBAAsB,CACpB,mBAAmB,CAAE,GAAG,CACxB,OAAO,CAAE,IAAI,CACb,MAAM,CAAE,IAAI,CACZ,MAAM,CAAE,CAAC,CAEX,2BAA4B,CAC1B,OAAO,CAAE,GAAG,CACZ,UAAU,CAAE,MAAM,CAClB,OAAO,CAAE,KAAK,CACd,MAAM,CAAE,CAAC,CACT,KAAK,CAAE,IAAI,CAEb,sCAAuC,CACrC,qBAAqB,CAAE,CAAC,CACxB,kBAAkB,CAAE,CAAC,CACrB,aAAa,CAAE,CAAC,CAElB,iBAAkB,CAChB,OAAO,CAAE,KAAK,CACd,aAAa,CAAE,IAAI,CACnB,UAAU,CAAE,CAAC,CAEf,gBAAiB,CACf,OAAO,CAAE,KAAK,CAEhB,sCAAwC,CACtC,OAAO,CAAE,KAAK,CACd,KAAK,CAAE,IAAI,CACX,YAAY,CAAE,IAAI,CAGpB,sDAAwD,CACtD,IAAI,CAAE,IAAI,CACV,KAAK,CAAE,IAAI,CAEb,0DAA4D,CAC1D,MAAM,CAAE,IAAI,CACZ,GAAG,CAAE,IAAI,CAEX,uBAAwB,CACtB,IAAI,CAAE,GAAG,CACT,KAAK,CAAE,IAAI,CACX,WAAW,CAAE,MAAM,CC9GrB,oCAAqC,CAEnC,OAAO,CAAE,EAAE,CAEb,oCAAqC,CACnC,OAAO,CAAE,eAAe,CCHxB,4BAAkB,CAChB,WAAW,CAAE,GAAG,CAChB,aAAa,CAAE,IAAI,CACnB,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,CAAC,CACT,GAAG,CAAE,IAAI,CACT,IAAI,CAAE,IAAI,CCgBd,kDAAuD,CAErD,MAAM,CAAE,CAAC,CACT,OAAO,CAAE,CAAC,CACV,kBAAkB,CAAE,UAAU,CAC9B,eAAe,CAAE,UAAU,CAC3B,UAAU,CAAE,UAAU,CAGxB,SAAW,CACT,KAAK,CAAE,IAAI,CACX,UAAU,CAAE,MAAM,CAGpB,IAAK,CACH,MAAM,CAAE,IAAI,CAGd,IAAK,CACH,UAAU,CAAE,IAAI,CAChB,MAAM,CAAE,IAAI,CACZ,QAAQ,CAAE,QAAQ,CAGpB,6CAA8C,CAC5C,QAAQ,CAAE,MAAM,CAOlB,2BAA6B,CAE3B,KAAK,CAAE,IAAI,CACX,QAAQ,CAAE,QAAQ,CAClB,OAAO,CAAE,CAAC,CAGV,gBAAgB,C/DgvBM,OAAS,C+D/uB/B,iBAAiB,CAAE,SAAS,CAO9B,YAAa,CACX,MAAM,CAAE,IAAI,CACZ,UAAU,CAAE,IAAI,CAChB,QAAQ,CAAE,KAAK,CACf,GAAG,CAAE,CAAC,CACN,OAAO,CAAE,CAAC,CACV,OAAO,CAAE,IAAI,CACb,gBAAgB,C/DglBY,OAAU,C+D/kBtC,iBAAiB,CAAE,cAAc,CAGnC,QAAS,CACP,IAAI,CAAE,CAAC,C5DuCP,kBAAkB,CAAE,uCAAO,CACnB,UAAU,CAAE,uCAAO,C4DpC7B,SAAU,CACR,KAAK,CAAE,CAAC,C5DkCR,kBAAkB,CAAE,sCAAO,CACnB,UAAU,CAAE,sCAAO,C4D/B7B,kDACuB,CACrB,QAAQ,CAAE,QAAQ,CAGpB,sBAAuB,CACrB,OAAO,CAAE,KAAK,CAGhB,iBAAkB,CAChB,OAAO,CAAE,IAAI,CAGf,sBAAuB,CACrB,0BAA0B,CAAE,KAAK,CAInC,YAAa,CACX,KAAK,CAAE,GAAG,CAGZ,cAAe,CACb,KAAK,CAAE,GAAG,CAGZ,cAAe,CACb,KAAK,CAAE,GAAG,CAGZ,yBAA0B,CACxB,YAAa,CACX,KAAK,CAAE,GAAG,CAGZ,cAAe,CACb,KAAK,CAAE,GAAG,CAGZ,cAAe,CACb,KAAK,CAAE,GAAG,EAId,yBAA0B,CACxB,YAAa,CACX,KAAK,CAAE,GAAG,CAGZ,cAAe,CACb,KAAK,CAAE,GAAG,CAGZ,cAAe,CACb,KAAK,CAAE,GAAG,EAId,yBAA0B,CACxB,YAAa,CACX,KAAK,CAAE,GAAG,CAGZ,cAAe,CACb,KAAK,CAAE,GAAG,CAGZ,cAAe,CACb,KAAK,CAAE,GAAG,EAId,yBAA0B,CACxB,YAAa,CACX,KAAK,CAAE,GAAG,CAGZ,cAAe,CACb,KAAK,CAAE,GAAG,CAGZ,cAAe,CACb,KAAK,CAAE,GAAG,EAId,0BAA2B,CACzB,YAAa,CACX,KAAK,CAAE,GAAG,CAGZ,cAAe,CACb,KAAK,CAAE,EAAE,CAGX,cAAe,CACb,KAAK,CAAE,GAAG,EAQd,kDAAsD,C5DpEpD,kBAAkB,CAAE,wBAAW,CACvB,UAAU,CAAE,wBAAW,C4DqE/B,2BAA2B,CAAE,8BAA8B,CAC3D,2BAA2B,CAAE,MAAM,CAOrC,QAAS,CACP,OAAO,CAAE,IAAI,CC9Mf,aAAc,CACZ,QAAQ,CAAE,mBAAmB,CAC7B,OAAO,CAAC,UAAU,CAClB,UAAU,CAAE,MAAM,CAClB,cAAc,CAAE,MAAM,CAEtB,kBAAI,CACF,OAAO,CAAE,YAAY,CAGvB,oBAAO,CACL,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,CAAC,CACN,IAAI,CAAE,CAAC,CAKX,uBAAuB,CACrB,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,MAAM,CAAE,GAAG,CAEX,8BAAO,CACL,GAAG,CAAE,GAAG,CACR,IAAI,CAAE,GAAG,CAGX,4BAAI,CACF,SAAS,CAAE,IAAI,CACf,kCAAQ,CACN,OAAO,CAAE,GAAG,CACZ,WAAW,CAAE,GAAG,CC9BtB,yBAA0B,CACxB,UAAU,CAAE,kBAAqB,CACjC,OAAO,CAAE,KAAK,CACd,UAAU,CAAE,MAAM,CAClB,OAAO,CAAE,CAAC,CACV,OAAO,CAAE,IAAI,CACb,MAAM,CAAE,kBAAwB,CAChC,WAAW,CAAE,iCAAiC,CpDkV9C,kBAAwC,CoDjVjB,GAAG,CpDiV1B,qBAAwC,CC9Sb,GAAuB,CD8SlD,aAAwC,CoDjVjB,GAAG,C9DqH1B,kBAAkB,CAAE,oBAAW,CACvB,UAAU,CAAE,oBAAW,C8DnH/B,gCAAS,CACP,UAAU,CAAE,OAAO,CACnB,OAAO,CAAE,GAAG,CChBhB,kBAAmB,CACjB,UAAU,CAAE,UAAU,CAEtB,OAAO,CAAE,YAAY,CACrB,MAAM,CAAE,CAAC,CACT,QAAQ,CAAE,QAAQ,CAClB,cAAc,CAAE,MAAM,CCNxB,6CAA2B,CACzB,UAAU,CAAE,UAAU,CAEtB,MAAM,CAAE,OAAO,CACf,OAAO,CAAE,KAAK,CAEd,MAAM,CAAE,IAAI,CAEZ,WAAW,CAAE,IAAI,CACjB,mBAAmB,CAAE,IAAI,CAEzB,0EAA6B,CAC3B,OAAO,CAAE,KAAK,CACd,YAAY,CAAE,GAAG,CACjB,aAAa,CAAE,IAAI,CAEnB,QAAQ,CAAE,MAAM,CAChB,aAAa,CAAE,QAAQ,CACvB,WAAW,CAAE,MAAM,CAMnB,qFAA6B,CAC3B,aAAa,CAAE,GAAG,CAClB,YAAY,CAAE,IAAI,CC1BxB,+CAA6B,CAC3B,UAAU,CAAE,UAAU,CAEtB,MAAM,CAAE,OAAO,CACf,OAAO,CAAE,KAAK,CAEd,UAAU,CAAE,IAAI,CAEhB,WAAW,CAAE,IAAI,CACjB,mBAAmB,CAAE,IAAI,CAEzB,4EAA6B,CAC3B,OAAO,CAAE,YAAY,CACrB,QAAQ,CAAE,MAAM,CAChB,YAAY,CAAE,GAAG,CACjB,aAAa,CAAE,QAAQ,CACvB,WAAW,CAAE,MAAM,CAIvB,0CAAwB,CACtB,KAAK,CAAE,IAAI,CAEX,iEAAuB,CACrB,UAAU,CAAE,UAAU,CACtB,MAAM,CAAE,IAAI,CACZ,SAAS,CAAE,IAAI,CACf,UAAU,CAAE,GAAG,CAEf,+FAAgC,CAC9B,kBAAkB,CAAE,IAAI,CC9B9B,iBAAkB,CAChB,gBAAgB,CAAE,KAAK,CAEvB,MAAM,CAAE,cAAc,CACtB,aAAa,CAAE,GAAG,CAElB,UAAU,CAAE,UAAU,CAEtB,OAAO,CAAE,KAAK,CAEd,QAAQ,CAAE,QAAQ,CAClB,IAAI,CAAE,SAAS,CAEf,KAAK,CAAE,IAAI,CAEX,OAAO,CAAE,IAAI,CAGf,gBAAiB,CACf,OAAO,CAAE,KAAK,CAGhB,yBAA0B,CACxB,UAAU,CAAE,IAAI,CAChB,MAAM,CAAE,CAAC,CACT,OAAO,CAAE,CAAC,CAGZ,wBAAyB,CACvB,OAAO,CAAE,GAAG,CACZ,KAAK,CrE2tBuB,OAAa,CqE1tBzC,WAAW,CAAE,IAAI,CACjB,mBAAmB,CAAE,IAAI,CAEzB,uCAAiB,CACf,MAAM,CAAE,OAAO,CAInB,0CAA2C,CACzC,IAAI,CAAE,CAAC,CAGT,iDAAkD,CAChD,aAAa,CAAE,IAAI,CACnB,yBAAyB,CAAE,CAAC,CAC5B,0BAA0B,CAAE,CAAC,CAG/B,iDAAkD,CAChD,UAAU,CAAE,IAAI,CAChB,sBAAsB,CAAE,CAAC,CACzB,uBAAuB,CAAE,CAAC,CAG5B,yBAA0B,CACxB,OAAO,CAAE,KAAK,CACd,OAAO,CAAE,GAAG,CAEZ,gDAAuB,CACrB,OAAO,CAAE,GAAG,CACZ,KAAK,CAAE,IAAI,CACX,UAAU,CAAE,UAAU,CAEtB,8EAAgC,CAC9B,kBAAkB,CAAE,IAAI,CAI5B,8CAAuB,CACrB,OAAO,CAAE,IAAI,CHxDjB,mBAAoB,CAClB,MAAM,CAAE,CAAC,CACT,MAAM,CAAE,CAAC,CACT,OAAO,CAAE,CAAC,CACV,OAAO,CAAE,KAAK,CACd,QAAQ,CAAE,KAAK,CACf,IAAI,CAAE,CAAC,CACP,GAAG,CAAE,CAAC,CACN,UAAU,CAAE,IAAI,CAChB,SAAS,CAAE,IAAI,CACf,MAAM,CAAE,IAAI,CACZ,KAAK,CAAE,IAAI,CACX,OAAO,CAAE,CAAC,CACV,OAAO,CAAE,EAAE,CAIX,gBAAgB,CAAE,IAAI,CACtB,MAAM,CAAE,gBAAgB,CAG1B,0BAA2B,CACzB,MAAM,CAAE,CAAC,CACT,IAAI,CAAE,aAAa,CACnB,MAAM,CAAE,GAAG,CACX,MAAM,CAAE,IAAI,CACZ,QAAQ,CAAE,MAAM,CAChB,OAAO,CAAE,CAAC,CACV,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,GAAG,CACV,cAAc,CAAE,IAAI,CI5CtB,yDAA2B,CACzB,gBAAgB,CC+Bc,OAAU,CD9BxC,MAAM,CAAE,iBAAuB,CAC/B,aAAa,CCIC,GAAG,CDHjB,OAAO,CAAE,CAAC,CACV,MAAM,CAAE,IAAI,CACZ,OAAO,CAAE,QAAQ,CAEjB,+DAAQ,CACN,MAAM,CAAE,iBAA6B,CAGvC,sFAA6B,CAC3B,WAAW,CAAE,aAAa,CAC1B,KAAK,CCiBuB,OAAa,CDhBzC,WAAW,CAAE,GAAG,CAChB,OAAO,CAAE,UAAU,CAGrB,mFAA0B,CACxB,KAAK,CCpBM,OAAW,CDqBtB,MAAM,CAAE,OAAO,CACf,KAAK,CAAE,KAAK,CACZ,WAAW,CAAE,IAAI,CACjB,YAAY,CAAE,GAAG,CACjB,WAAW,CAAE,IAAI,CAEjB,yFAAQ,CACN,KAAK,CC3BU,OAAY,CD+B/B,yFAAgC,CAC9B,KAAK,CCC8B,OAAW,CDEhD,mFAA0B,CACxB,gBAAgB,CCLY,OAAU,CDMtC,MAAM,CAAE,IAAI,CACZ,WAAW,CAAE,IAAI,CACjB,uBAAuB,CCjCX,GAAG,CDkCf,0BAA0B,CClCd,GAAG,CDmCf,MAAM,CAAE,IAAI,CACZ,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,GAAG,CACR,KAAK,CAAE,GAAG,CACV,KAAK,CAAE,IAAI,CAGX,qFAAE,CACA,YAAY,CAAE,wCAAwC,CACtD,YAAY,CAAE,KAAK,CACnB,YAAY,CAAE,aAAa,CAE3B,MAAM,CAAE,CAAC,CACT,IAAI,CAAE,GAAG,CAET,WAAW,CAAE,IAAI,CACjB,UAAU,CAAE,IAAI,CAEhB,QAAQ,CAAE,QAAQ,CAElB,GAAG,CAAE,GAAG,CACR,KAAK,CAAE,CAAC,CAOV,8FAA0B,CACxB,KAAK,CAAE,IAAI,CAGb,8FAA0B,CACxB,MAAM,CAAE,IAAI,CACZ,YAAY,CAAE,iBAAuB,CAErC,aAAa,CAAE,CAAC,CAChB,sBAAsB,CCxEZ,GAAG,CDyEb,yBAAyB,CCzEf,GAAG,CD2Eb,IAAI,CAAE,GAAG,CACT,KAAK,CAAE,IAAI,CAMf,iFAA2B,CACzB,MAAM,CAAE,iBAA6B,CAErC,2GAA0B,CACxB,UAAU,CAAE,WAAW,CAEvB,MAAM,CAAE,IAAI,CAEZ,6GAAE,CACA,YAAY,CAAE,wCAAwC,CACtD,YAAY,CAAE,aAAa,CAM/B,0GAA2B,CACzB,UAAU,CAAE,IAAI,CAChB,sBAAsB,CAAE,CAAC,CACzB,uBAAuB,CAAE,CAAC,CAK5B,0GAA2B,CACzB,aAAa,CAAE,IAAI,CACnB,yBAAyB,CAAE,CAAC,CAC5B,0BAA0B,CAAE,CAAC,CEpHnC,2DAA6B,CAC3B,gBAAgB,CD+Bc,OAAU,CC9BxC,KAAK,CD8ByB,OAAU,CC7BxC,MAAM,CAAE,iBAAuB,CAC/B,aAAa,CDGC,GAAG,CCFjB,MAAM,CAAE,IAAI,CACZ,OAAO,CAAE,CAAC,CAEV,iEAAQ,CACN,MAAM,CAAE,iBAA6B,CAGvC,wFAA6B,CAC3B,UAAU,CAAE,IAAI,CAChB,MAAM,CAAE,CAAC,CACT,OAAO,CAAE,KAAK,CACd,KAAK,CAAE,IAAI,CAGb,qFAA0B,CACxB,OAAO,CAAE,IAAI,CAGf,sFAA2B,CACzB,gBAAgB,CDOY,OAAa,CCNzC,MAAM,CAAE,iBAAuB,CAC/B,aAAa,CDlBM,GAAG,CCmBtB,MAAM,CAAE,OAAO,CACf,KAAK,CAAE,IAAI,CACX,YAAY,CAAE,GAAG,CACjB,UAAU,CAAE,GAAG,CACf,OAAO,CAAE,KAAK,CAGhB,8FAAmC,CACjC,KAAK,CDnCM,OAAW,CCoCtB,MAAM,CAAE,OAAO,CACf,OAAO,CAAE,YAAY,CACrB,WAAW,CAAE,IAAI,CACjB,YAAY,CAAE,GAAG,CAEjB,oGAAQ,CACN,KAAK,CDzCU,OAAY,CC6C/B,2FAAgC,CAC9B,KAAK,CDb8B,OAAW,CCmB9C,iGAA2B,CACzB,KAAK,CAAE,KAAK,CAGd,iGAA2B,CACzB,WAAW,CAAE,GAAG,CAChB,YAAY,CAAE,IAAI,CAGpB,yGAAmC,CACjC,WAAW,CAAE,GAAG,CAChB,YAAY,CAAE,IAAI,CAMtB,mFAA6B,CAC3B,MAAM,CAAE,iBAA6B,CAIrC,4GAA6B,CAC3B,UAAU,CAAE,IAAI,CAChB,sBAAsB,CAAE,CAAC,CACzB,uBAAuB,CAAE,CAAC,CAK5B,4GAA6B,CAC3B,aAAa,CAAE,IAAI,CACnB,yBAAyB,CAAE,CAAC,CAC5B,0BAA0B,CAAE,CAAC,CC9E/B,+EAAuB,CACrB,MAAM,CAAE,iBAAuB,CAC/B,OAAO,CAAE,CAAC,CAKZ,6EAAuB,CACrB,OAAO,CAAE,CAAC,CtEyCd,+FAA8B,CAAE,KAAK,CoEvBA,OAAW,CpEwBhB,OAAO,CAAE,CAAC,CAC1C,mGAA8B,CAAE,KAAK,CoEzBA,OAAW,CpE0BhD,wGAA8B,CAAE,KAAK,CoE1BA,OAAW,CEbhD,gDAAkB,CAChB,gBAAgB,CFUY,OAAU,CETtC,MAAM,CAAE,qBAAqB,CAC7B,QAAQ,CAAE,MAAM,CtEkGlB,kBAAkB,CAAE,0BAAO,CACnB,UAAU,CAAE,0BAAO,CsEhGzB,oDAAG,CACD,eAAe,CAAE,yBAAyB,CAC1C,KAAK,CAAE,IAAI,CAIf,uDAAyB,CACvB,aAAa,CAAE,IAAI,CAGrB,uDAAyB,CACvB,UAAU,CAAE,IAAI,CAGlB,+CAAiB,CACf,UAAU,CFdO,KAAK,CEetB,UAAU,CAAE,IAAI,CAGlB,uDAAyB,CACvB,OAAO,CAAE,OAAO,CAChB,UAAU,CAAE,IAAI,CAEhB,mEAAc,CACZ,OAAO,CAAE,CAAC,CAGZ,uJACqB,CACnB,KAAK,CFtB4B,OAAW,CEuB5C,gBAAgB,CFtBiB,OAAK,CEyBtC,qMAAuB,CACrB,YAAY,CAAE,IAAI,CAElB,mNAAS,CACP,OAAO,CAAE,OAAO,CAChB,WAAW,CAAE,qBAAqB,CAClC,WAAW,CAAE,IAAI,CACjB,SAAS,CAAE,GAAG,CACd,QAAQ,CAAE,QAAQ,CAClB,IAAI,CAAE,GAAG,CACT,GAAG,CAAE,CAAC,CACN,KAAK,CFrCwB,OAAW,CE2ChD,mFAAqD,CACnD,gBAAgB,CF/CY,OAAa,CEgDzC,KAAK,CF/CuB,OAAU,CEkDxC,sDAAwB,CACtB,MAAM,CAAE,OAAO,CACf,OAAO,CAAE,KAAK,CACd,OAAO,CAAE,OAAO,CAChB,gBAAgB,CFnDmB,OAAK,CEoDxC,cAAc,CAAE,UAAU,CAG5B,wEAA4C,CAC1C,YAAY,CFjFK,OAAa,CEsFlC,gCAAgC,CClFK,eAAe,CADrC,IAAoB,CAED,kBAAkB,CAFrC,IAAoB,CCDnC,+DACqD,CACnD,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,CAAC,CACN,KAAK,CAAE,CAAC,CACR,MAAM,CAAE,CAAC,CACT,IAAI,CAAE,CAAC,CAEP,wBAAwB,CAAE,MAAM,CAElC,8CAAqD,CACnD,MAAM,CAAE,IAAI,CACZ,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,SAAS,CAAE,IAAI,CACf,UAAU,CAAE,IAAI,CAChB,OAAO,CAAE,CAAC,CAEZ,gBAAiB,CACf,QAAQ,CAAE,KAAK,CACf,OAAO,CAAE,MAAM,CACf,QAAQ,CAAE,MAAM,CAChB,UAAU,CAAE,IAAI,CAChB,UAAU,CAAE,eAAkB,CAC9B,OAAO,CAAE,CAAC,CACV,OAAO,CAAE,IAAI,CACb,SAAS,CAAE,GAAG,CACd,gBAAgB,CAAE,IAAI,CACtB,YAAY,CAAE,IAAI,CAEpB,yBAA0B,CACxB,QAAQ,CAAE,QAAQ,CAClB,OAAO,CAAE,IAAI,CACb,MAAM,CAAE,QAAQ,CAEhB,cAAc,CAAE,MAAM,CxE2EtB,kBAAkB,CAAE,0BAAO,CACnB,UAAU,CAAE,0BAAO,CUiO3B,kBAAwC,C8D3SjB,GAAG,C9D2S1B,qBAAwC,CC9Sb,GAAuB,CD8SlD,aAAwC,C8D3SjB,GAAG,CAC1B,gBAAgB,CAAE,KAAK,CACvB,YAAY,CAAE,KAAK,CAErB,wBAAyB,CACvB,OAAO,CAAE,KAAK,CACd,OAAO,CAAE,CAAC,CAEZ,wBAA2B,CACzB,QAAQ,CAAE,QAAQ,CAClB,MAAM,CAAE,IAAI,CACZ,QAAQ,CAAE,MAAM,CAElB,iCAAoC,CAClC,QAAQ,CAAE,QAAQ,CAEpB,+BAAoC,CAClC,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,UAAU,CAAE,MAAM,CAClB,WAAW,CAAE,GAAG,CAChB,kCAAkC,CAAE,oCAAwC,CACzE,+BAA+B,CAAE,oCAAwC,CACxE,8BAA8B,CAAE,oCAAwC,CACvE,6BAA6B,CAAE,oCAAwC,CACpE,0BAA0B,CAAE,oCAAwC,CAE9E,+DACqD,CACnD,kBAAkB,CAAE,mBAAmB,CACpC,eAAe,CAAE,mBAAmB,CACnC,cAAc,CAAE,mBAAmB,CAClC,aAAa,CAAE,mBAAmB,CAC/B,UAAU,CAAE,mBAAmB,CAEzC,uCAA4C,CAE1C,eAAe,CAAE,SAAS,CAE5B,sDAA6D,CAC3D,OAAO,CAAE,CAAC,CAKZ,oDAA2D,CACzD,OAAO,CAAE,IAAI,CAEf,6CACyB,CACvB,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,GAAG,CACR,IAAI,CAAE,IAAI,CACV,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,UAAU,CAAE,KAAK,CACjB,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,IAAI,CACjB,KAAK,CJ1EgC,OAAW,CI2EhD,eAAe,CAAE,IAAI,CACrB,UAAU,CAAE,MAAM,CAClB,UAAU,CAAE,eAAiB,C9D6O7B,kBAAwC,C8D5OjB,GAAG,C9D4O1B,qBAAwC,CC9Sb,GAAuB,CD8SlD,aAAwC,C8D5OjB,GAAG,CxEoI1B,kBAAkB,CwEnIE,WAAW,CxEoI5B,eAAe,CwEpIE,WAAW,CxEqIvB,UAAU,CwErIE,WAAW,CxEe/B,kBAAkB,CAAE,kBAAW,CACvB,UAAU,CAAE,kBAAW,CwEd/B,WAAW,CAAE,KAAK,CAClB,OAAO,CAAE,CAAC,CACV,MAAM,CAAE,OAAO,CACf,OAAO,CAAE,IAAI,CAEf,sBAAyB,CACvB,IAAI,CAAE,IAAI,CACV,KAAK,CAAE,IAAI,CAGb,+CAC0B,CACxB,QAAQ,CAAE,QAAQ,CAClB,MAAM,CAAE,IAAI,CACZ,IAAI,CAAE,IAAI,CACV,MAAM,CAAE,UAAU,CAClB,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,IAAI,CACjB,SAAS,C3E5De,yDAA6D,C2E6DrF,KAAK,CJpGgC,OAAW,CIqGhD,WAAW,CAAE,iBAAuB,CACpC,OAAO,CAAE,CAAC,CACV,OAAO,CAAE,IAAI,CAIf,uBAAyB,CACvB,WAAW,CAAE,IAAI,CAEjB,8BAAQ,CACN,OAAO,CAAE,OAAO,CAChB,WAAW,CAAE,qBAAqB,CAClC,WAAW,CAAE,IAAI,CACjB,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,IAAI,CACT,IAAI,CAAE,KAAK,CACX,MAAM,CAAE,IAAI,CACZ,KAAK,CAAE,IAAI,CAIf,uBAA0B,CACxB,OAAO,CAAE,IAAI,CACb,KAAK,CAAE,IAAI,CACX,IAAI,CAAE,IAAI,CACV,MAAM,CAAE,KAAK,CACb,SAAS,CAAE,IAAI,CACf,eAAe,CAAE,IAAI,CACrB,MAAM,CAAE,OAAO,CAEjB,4BAA+B,CAC7B,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,IAAI,CACjB,UAAU,CAAE,MAAM,CAClB,UAAU,CAAE,eAAiB,C9D8K7B,kBAAwC,C8D7KjB,GAAG,C9D6K1B,qBAAwC,CC9Sb,GAAuB,CD8SlD,aAAwC,C8D7KjB,GAAG,CxEqE1B,kBAAkB,CwEpEE,WAAW,CxEqE5B,eAAe,CwErEE,WAAW,CxEsEvB,UAAU,CwEtEE,WAAW,CxEhD/B,kBAAkB,CAAE,kBAAW,CACvB,UAAU,CAAE,kBAAW,CwEiD/B,WAAW,CAAE,KAAK,CAClB,KAAK,C3EkduB,OAAc,C2Ejd1C,MAAM,CAAE,OAAO,CACf,OAAO,CAAE,CAAC,CACV,OAAO,CAAE,IAAI,CAEf,oCAAuC,CACrC,KAAK,C3EsiBuB,OAAY,C2EniB1C,0HAGqC,CACnC,KAAK,C3EqcuB,OAAc,C2Enc5C,uKAIwC,CACtC,OAAO,CAAE,KAAK,CAEd,iBAAiB,CAAE,aAAa,CAC7B,cAAc,CAAE,aAAa,CAC5B,aAAa,CAAE,aAAa,CAC3B,YAAY,CAAE,aAAa,CACxB,SAAS,CAAE,aAAa,CAElC,wJAIsC,CACpC,OAAO,CAAE,IAAI,CAEf,iJAI+B,CAC7B,mBAAmB,CAAE,IAAI,CACxB,kBAAkB,CAAE,IAAI,CACtB,gBAAgB,CAAE,IAAI,CACrB,eAAe,CAAE,IAAI,CACjB,WAAW,CAAE,IAAI,CAY3B,oDAAuD,CACrD,mBAAmB,CAAE,OAAO,CAI9B,sCAA2C,CACzC,UAAU,CAAE,KAAK,CAEnB,qDAA4D,CAC1D,QAAQ,CAAE,QAAQ,CAIpB,6CAAoD,CAClD,QAAQ,CAAE,IAAI,CACd,MAAM,CAAE,MAAM,CACd,QAAQ,CAAE,MAAM,CAChB,UAAU,CAAE,IAAI,CChPlB,4BAA6B,CAC5B,QAAQ,CAAE,QAAQ,CAClB,UAAU,CAAE,MAAM,CAClB,OAAO,CAAE,YAAY,CACrB,QAAQ,CAAE,MAAM,CAChB,MAAM,CAAE,OAAO,CAEhB,8BAA+B,CAC9B,MAAM,CAAE,CAAC,CAEV,mLAG8C,CAC7C,SAAS,CAAE,IAAI,CACf,UAAU,CAAE,IAAI,CAChB,MAAM,CAAE,IAAI,CACZ,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,CAAC,CACN,KAAK,CAAE,CAAC,CACR,MAAM,CAAE,CAAC,CACT,IAAI,CAAE,CAAC,CAER,iDAAkD,CAChD,OAAO,CAAE,IAAI,CAEf,iDAAkD,CACjD,OAAO,CAAE,KAAK,CAEf,kDAAmD,CAClD,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,MAAM,CAAE,IAAI,CACZ,IAAI,CAAE,IAAI,CAEX,kDAAmD,CAClD,IAAI,CAAE,CAAC,CAER,6FAC8C,CAC5C,OAAO,CAAE,IAAI,CAEf,6CAA8C,CAC7C,MAAM,CAAE,OAAO,CAEhB,mDAAoD,CACnD,WAAW,CAAE,sBAAsB,CACnC,sBAAsB,CAAE,WAAW,CACnC,OAAO,CAAE,OAAO,CAChB,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,IAAI,CACjB,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,GAAG,CACR,MAAM,CAAE,eAAe,CAExB,6CAA8C,CAC7C,UAAU,CAAE,wCAAwC,CACpD,eAAe,CAAE,SAAS,CAE3B,mDAAoD,CACnD,OAAO,CAAE,IAAI,CAGd,oCAAqC,CACnC,8BAA+B,CAC7B,KAAK,CAAE,IAAI,CACX,IAAI,CAAE,IAAI,CACb,KAAK,CAAE,IAAI,CACR,SAAS,CAAE,MAAM,CACjB,YAAY,CAAE,EAAE,CAChB,aAAa,CAAE,EAAE,ECpFrB;;;;;;8EAM8E,AAG9E,uKACwB,CACtB,WAAW,CAAE,KAAK,CAClB,YAAY,CAAE,GAAG,CAGnB,OAAQ,CACN,QAAQ,CAAE,QAAQ,CAClB,QAAQ,CAAE,MAAM,CAElB,8BAA+B,CAC7B,OAAO,CAAE,IAAI,CAEf,aAAc,CACZ,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,IAAI,CACX,GAAG,CAAE,CAAC,CACN,MAAM,CAAE,CAAC,CACT,IAAI,CAAE,CAAC,CACP,UAAU,CAAE,sBAAsB,CAClC,kBAAkB,CAAE,sBAAsB,CAC1C,gBAAgB,CAAE,IAAI,CACtB,mBAAmB,CAAE,IAAI,CAE3B,yBAA0B,CACxB,IAAI,CAAE,KAAK,CAEb,UAAW,CACT,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,CAAC,CACN,MAAM,CAAE,CAAC,CACT,IAAI,CAAE,CAAC,CACP,KAAK,CAAE,GAAG,CACV,MAAM,CAAE,CAAC,CACT,MAAM,CAAE,CAAC,CACT,aAAa,CAAE,CAAC,CAElB,WAAY,CACV,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,CAAC,CACN,MAAM,CAAE,CAAC,CACT,IAAI,CAAE,GAAG,CACT,KAAK,CAAE,CAAC,CACR,MAAM,CAAE,CAAC,CACT,MAAM,CAAE,CAAC,CACT,aAAa,CAAE,CAAC,CAElB,cAAe,CACb,QAAQ,CAAE,QAAQ,CAClB,MAAM,CAAE,MAAM,CACd,WAAW,CAAE,CAAC,CACd,cAAc,CAAE,CAAC,CACjB,MAAM,CAAE,IAAI,CACZ,KAAK,CAAE,CAAC,CACR,YAAY,CAAE,KAAK,CACnB,UAAU,CAAE,OAAO,CAGrB,WAAY,CAAE,SAAS,CAAE,IAAI,CAAE,UAAU,CAAE,IAAI,CAC/C,cAAe,CAAE,aAAa,CAAE,IAAI,CACpC,eAAgB,CAAE,YAAY,CAAE,IAAI,CAEpC,wCAAe,CAAE,SAAS,CAAE,IAAI,CAAE,UAAU,CAAE,IAAI,CAClD,8CAAkB,CAAE,aAAa,CAAE,IAAI,CACvC,gDAAmB,CAAE,YAAY,CAAE,IAAI,CACvC,sDAAsB,CAAE,KAAK,CAAE,IAAI,CAEnC,wCAAe,CAAE,SAAS,CAAE,IAAI,CAAE,UAAU,CAAE,IAAI,CAClD,8CAAkB,CAAE,aAAa,CAAE,IAAI,CAAE,YAAY,CAAE,CAAC,CACxD,gDAAmB,CAAE,YAAY,CAAE,IAAI,CAAE,aAAa,CAAE,CAAC,CAEzD,wCAAe,CAAE,SAAS,CAAE,IAAI,CAAE,UAAU,CAAE,IAAI,CAClD,8CAAkB,CAAE,aAAa,CAAE,GAAG,CACtC,gDAAmB,CAAE,YAAY,CAAE,GAAG,CC9CtC,uDAAS,CACP,YAAY,CAAE,IAAI,CAElB,sHAAK,CACH,OAAO,CAAE,YAAY,CACrB,cAAc,CAAE,MAAM,CACtB,QAAQ,CAAE,QAAQ,CAClB,YAAY,CAAE,GAAG,CAEjB,8IAAS,CACP,OAAO,CAAE,EAAE,CACX,OAAO,CAAE,YAAY,CACrB,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,IAAI,CAAE,CAAC,CACP,WAAW,CAAE,KAAK,CAClB,MAAM,CAAE,iBAAuB,CAC/B,aAAa,CAAE,GAAG,CAClB,gBAAgB,CPvBU,OAAU,CpEgGxC,kBAAkB,CAAE,8DAAW,CACvB,UAAU,CAAE,8DAAW,C2EtE7B,2IAAS,CACP,WAAW,CAvDE,qBAAqB,CAwDlC,OAAO,CAvDA,OAAyB,CAwDhC,WAAW,CAAE,IAAI,CACjB,OAAO,CAAE,YAAY,CACrB,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,IAAI,CAAE,CAAC,CACP,GAAG,CAAE,CAAC,CACN,OAAO,CAAE,CAAC,CACV,SAAS,CAAE,wBAAwB,CACnC,UAAU,CAAE,iBAAiB,CAC7B,WAAW,CAAE,kBAAkB,CAC/B,WAAW,CAAE,KAAK,CAClB,YAAY,CAAE,GAAG,CACjB,WAAW,CAAE,GAAG,CAChB,SAAS,CAAE,gBAAgB,CAC3B,KAAK,CP9CqB,OAAa,COkD3C,qMACoB,CAClB,OAAO,CAAE,CAAC,CACV,OAAO,CAAE,CAAC,CACV,MAAM,CAAE,OAAO,CAMf,wcAAwB,CACtB,WAAW,CAvFE,qBAAqB,CAwFlC,OAAO,CAvFA,OAAyB,CA0FlC,wcAAwB,CACtB,SAAS,CAAE,sBAAsB,CACjC,OAAO,CAAE,CAAC,CAGZ,4eAA8B,CAC5B,OAAO,CAAE,KAAK,CACd,OAAO,CAAE,EAAE,CACX,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,GAAG,CACX,gBAAgB,CAAE,OAAO,CACzB,aAAa,CAAE,GAAG,CAClB,WAAW,CAAE,OAAO,CACpB,UAAU,CAAE,GAAG,CAGjB,oaAAkB,CAChB,OAAO,CAAE,IAAI,CAEb,odAAS,CACP,gBAAgB,CPjFe,OAAK,COkFpC,MAAM,CAAE,WAAW,CAMzB,sYAA+B,CAC7B,aAAa,CAAE,GAAG,CAGpB,uFAAiB,CACf,UAAU,CAAE,CAAC,CArHb,oiBAAU,CACR,gBAAgB,C9E6pBQ,OAAW,C8E5pBnC,YAAY,C9E4pBY,OAAW,C8E1pBrC,8hBAAQ,CACN,KAAK,CAAE,IAAI,CALb,8hBAAU,CACR,gBAAgB,CPZP,OAAW,COapB,YAAY,CPbH,OAAW,COetB,whBAAQ,CACN,KAAK,CAAE,IAAI,CALb,khBAAU,CACR,gBAAgB,C9EukBQ,OAAW,C8EtkBnC,YAAY,C9EskBY,OAAW,C8EpkBrC,4gBAAQ,CACN,KAAK,CAAE,IAAI,CALb,oiBAAU,CACR,gBAAgB,C9EynBQ,OAAc,C8ExnBtC,YAAY,C9EwnBY,OAAc,C8EtnBxC,8hBAAQ,CACN,KAAK,CAAE,IAAI,CALb,oiBAAU,CACR,gBAAgB,C9EokBQ,OAAc,C8EnkBtC,YAAY,C9EmkBY,OAAc,C8EjkBxC,8hBAAQ,CACN,KAAK,CAAE,IAAI,CAQb,wkBAAU,CACR,gBAAgB,C9EgpBQ,OAAW,C8E/oBnC,YAAY,C9E+oBY,OAAW,C8E7oBrC,kkBAAQ,CACN,gBAAgB,CAAE,IAAI,CALxB,kkBAAU,CACR,gBAAgB,CPzBP,OAAW,CO0BpB,YAAY,CP1BH,OAAW,CO4BtB,4jBAAQ,CACN,gBAAgB,CAAE,IAAI,CALxB,sjBAAU,CACR,gBAAgB,C9E0jBQ,OAAW,C8EzjBnC,YAAY,C9EyjBY,OAAW,C8EvjBrC,gjBAAQ,CACN,gBAAgB,CAAE,IAAI,CALxB,wkBAAU,CACR,gBAAgB,C9E4mBQ,OAAc,C8E3mBtC,YAAY,C9E2mBY,OAAc,C8EzmBxC,kkBAAQ,CACN,gBAAgB,CAAE,IAAI,CALxB,wkBAAU,CACR,gBAAgB,C9EujBQ,OAAc,C8EtjBtC,YAAY,C9EsjBY,OAAc,C8EpjBxC,kkBAAQ,CACN,gBAAgB,CAAE,IAAI,CA0I5B,MAAM,CACJ,YAAY,CAAE,IAAI,CAElB,gIAAK,CACH,OAAO,CAAE,YAAY,CACrB,cAAc,CAAE,MAAM,CACtB,QAAQ,CAAE,QAAQ,CAClB,YAAY,CAAE,GAAG,CAEjB,wJAAS,CACP,OAAO,CAAE,EAAE,CACX,OAAO,CAAE,YAAY,CACrB,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,IAAI,CAAE,CAAC,CACP,WAAW,CAAE,KAAK,CAClB,MAAM,CAAE,iBAAuB,CAC/B,aAAa,CAAE,GAAG,CAClB,gBAAgB,CP1JU,OAAU,CpEgGxC,kBAAkB,CAAE,kCAAW,CACvB,UAAU,CAAE,kCAAW,C2E6D7B,qJAAQ,CACN,OAAO,CAAE,YAAY,CACrB,QAAQ,CAAE,QAAQ,CAClB,OAAO,CAAE,GAAG,CACZ,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,IAAI,CAAE,GAAG,CACT,GAAG,CAAE,GAAG,CACR,OAAO,CAAE,CAAC,CACV,SAAS,CAAE,wBAAwB,CACnC,UAAU,CAAE,aAAa,CACzB,WAAW,CAAE,kBAAkB,CAC/B,WAAW,CAAE,KAAK,CAClB,aAAa,CAAE,GAAG,CAClB,gBAAgB,CP7KU,OAAa,CpE8H3C,iBAAiB,CAAE,UAAkB,CACjC,aAAa,CAAE,UAAkB,CAC7B,SAAS,CAAE,UAAkB,CAfrC,kBAAkB,CAAE,2DAA6B,CAC9C,eAAe,CAAE,wDAA0B,CACzC,aAAa,CAAE,sDAAwB,CACpC,UAAU,CAAE,mDAAqB,C2EiEzC,0BAAmB,CACjB,OAAO,CAAE,CAAC,CACV,OAAO,CAAE,CAAC,CACV,MAAM,CAAE,OAAO,CAMf,yOAAwB,C3EhE1B,iBAAiB,CAAE,UAAkB,CACjC,aAAa,CAAE,UAAkB,CAC7B,SAAS,CAAE,UAAkB,C2EgEjC,OAAO,CAAE,CAAC,CAGZ,uNAAkB,CAChB,OAAO,CAAE,IAAI,CAEb,+OAAS,CACP,MAAM,CAAE,WAAW,CAMzB,mBAAc,CACZ,UAAU,CAAE,CAAC,CArFX,yOAAQ,CACN,gBAAgB,C9EghBM,OAAW,C8E5gBnC,oQAAU,CACR,YAAY,C9E2gBU,OAAW,C8EzgBnC,iQAAQ,CACN,gBAAgB,C9EwgBM,OAAW,C8EjhBnC,sOAAQ,CACN,gBAAgB,CPzJT,OAAW,CO6JpB,iQAAU,CACR,YAAY,CP9JL,OAAW,COgKpB,8PAAQ,CACN,gBAAgB,CPjKT,OAAW,COwJpB,gOAAQ,CACN,gBAAgB,C9E0bM,OAAW,C8EtbnC,2PAAU,CACR,YAAY,C9EqbU,OAAW,C8EnbnC,wPAAQ,CACN,gBAAgB,C9EkbM,OAAW,C8E3bnC,yOAAQ,CACN,gBAAgB,C9E4eM,OAAc,C8ExetC,oQAAU,CACR,YAAY,C9EueU,OAAc,C8EretC,iQAAQ,CACN,gBAAgB,C9EoeM,OAAc,C8E7etC,yOAAQ,CACN,gBAAgB,C9EubM,OAAc,C8EnbtC,oQAAU,CACR,YAAY,C9EkbU,OAAc,C8EhbtC,iQAAQ,CACN,gBAAgB,C9E+aM,OAAc,C8EtV1C,2RAA+B,CAC7B,WAAW,CAtPI,qBAAqB,CAuPpC,OAAO,CAtPE,OAAyB,CAyPlC,weAAU,CACR,KAAK,CAAE,IAAI,CAEb,keAAS,CACP,KAAK,CAAE,IAAI,CCnQjB,IAAK,CACJ,MAAM,CAAE,CAAC,CACT,OAAO,CAAE,CAAC,CACV,MAAM,CAAE,IAAI,CACZ,QAAQ,CAAC,QAAQ,CAGlB,IAAK,CACJ,MAAM,CAAE,CAAC,CACT,OAAO,CAAE,CAAC,CACV,UAAU,CAAE,IAAI,CAChB,SAAS,CAAC,GAAG,CAId,sCAAuC,CACtC,UAAU,CAAC,MAAM,CAGlB,eAAgB,CACf,QAAQ,CAAC,iBAAiB,CAG3B,+FAAwG,CACtG,OAAO,CAAE,CAAC,CAGZ,QAAS,CACR,MAAM,CAAC,CAAC,CACR,WAAW,C/E4Cc,yDAA6D,C+EzCvF,WAAY,CACR,MAAM,CAAE,WAAW,CACnB,gBAAK,CACD,SAAS,CAAE,IAAiB,CAC5B,KAAK,CRJmB,OAAU,CQKlC,OAAO,CAAE,YAAY,CACrB,cAAc,CAAE,GAAG,CAI3B,wDAAM,CACL,WAAW,CAAC,MAAM,CAGnB,eAAgB,CACZ,OAAO,CAAE,YAAY,CAMzB,cAAiB,CACb,gBAAgB,CAAE,eAAe,CAGrC,waAgBwB,CACtB,OAAO,CAAE,CAAC,CACV,OAAO,CAAE,cAAc,CAMvB,UAAU,CAAE,+CAAkD,CAGhE,yPAGc,CACV,aAAa,CAAE,cAAc,CAC/B,qBAAqB,CAAE,cAAc,CACrC,kBAAkB,CAAE,cAAc,CAGpC,SAAU,CACT,MAAM,CAAE,IAAI,CACZ,OAAO,CAAE,QAAQ,CACjB,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,GAAG,CAGjB,0BAAQ,CACP,OAAO,CAAE,OAAO,CACb,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,GAAG,CAGpB,0BAAQ,CACP,OAAO,CAAE,WAAW,CAGrB,0BAAQ,CACP,OAAO,CAAE,SAAS,CAGnB,SAAU,CACR,MAAM,CAAE,CAAC,CAET,yBAAkB,CAChB,MAAM,CAAE,YAAY,CACpB,aAAa,CAAE,CAAC,CAChB,YAAY,CAAE,CAAC,CASnB,EAAG,CACF,cAAc,CAAC,IAAI,CACnB,SAAS,C/EhDgB,IAA+B,C+EiDxD,MAAM,CAAC,MAAM,CACb,QAAS,CACT,SAAS,C/EhDgB,IAAe,C+EiDxC,WAAW,CAAC,GAAG,CACf,cAAc,CAAC,IAAI,CAGpB,EAAG,CACD,SAAS,C/ExDe,IAAI,C+EyD5B,MAAM,CAAE,MAAM,CACd,WAAW,CAAE,MAAM,CAGrB,EAAG,CACF,OAAO,CAAE,KAAK,CACd,SAAS,C/E9DgB,IAA+B,C+E+DxD,WAAW,CAAE,GAAG,CAChB,MAAM,CAAE,MAAM,CACd,WAAW,CAAC,MAAM,CAGnB,EAAG,CACF,WAAW,CAAC,MAAM,CACf,MAAM,CAAE,aAAa,CAGzB,EAAG,CACF,SAAS,C/ExEgB,IAA8B,C+EyEvD,WAAW,CAAE,GAAG,CAChB,UAAU,CAAE,CAAC,CACV,aAAa,CAAE,IAAI,CACtB,WAAW,CAAC,MAAM,CAGnB,EAAG,CACF,SAAS,C/E/EgB,IAA8B,C+EgFvD,MAAM,CAAE,MAAM,CACd,WAAW,CAAC,IAAI,CAChB,WAAW,CAAC,MAAM,CAGnB,qBAAsB,CACrB,MAAM,CAAC,cAAc,CACrB,aAAa,CAAC,IAAI,CAClB,OAAO,CAAC,KAAK,CACb,KAAK,CAAE,OAA2B,CAClC,SAAS,CAAC,IAAI,CACd,WAAW,CAAC,GAAG,CAYhB,0CAA8C,CAC7C,OAAO,CAAC,gBAAgB,CACxB,MAAM,CAAC,iBAAiB,CAezB,aAAc,CACb,UAAU,CAAC,eAAe,CAC1B,kBAAkB,CAAE,eAAe,CACnC,eAAe,CAAE,eAAe,CAGjC,QAAS,CACR,WAAW,CAAC,KAAK,CACjB,YAAY,CAAC,KAAK,CAClB,YAAY,CAAC,eAAmD,CAChE,UAAU,CAAE,IAAI,CAChB,aAAa,CAAE,IAAI,CAGpB,cAAe,CACd,OAAO,CAAE,KAAK,CACd,MAAM,CAAE,IAAI,CACZ,UAAU,CAAE,qBAAmD,CAC/D,QAAQ,CAAE,QAAQ,CAGlB,QAAS,CACT,QAAQ,CAAC,QAAQ,CAIlB,8BAA+B,CAC9B,MAAM,CAAC,YAAY,CACnB,aAAa,CAAC,WAAW,CACzB,OAAO,CAAC,QACT,CAEA,+BAAgC,CAC/B,MAAM,CAAC,CAAC,CACR,OAAO,CAAE,KAAK,CACd,OAAO,CAAE,cAAc,CACvB,UAAU,CAAE,yBAA6D,CACzE,UAAU,CAAE,qBAAwB,CACpC,UAAU,CAAC,KAAK,CAChB,UAAU,CAAC,IAAI,CAGhB,mBAAqB,CACpB,OAAO,CAAE,KAAK,CACd,OAAO,CAAE,KAAK,CACd,aAAa,CAAE,0BAA8D,CAC7E,UAAU,C/EqmBiB,IAAM,C+EpmBjC,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,GAAG,CAChB,KAAK,C/E8dwB,OAAY,C+E7dzC,MAAM,CAAE,aAAa,CACpB,wBAAyB,CAC1B,MAAM,CAAE,WAAW,CACnB,wBAAyB,CACzB,UAAU,CAAC,IAAI,CACd,MAAO,CACR,WAAW,CAAC,GAAG,CACf,UAAU,CAAC,GAAG,CACd,UAAU,CAAC,IAAI,CAGhB,kBAAmB,CACjB,OAAO,CAAE,QAAQ,CACjB,WAAW,CAAE,8BAA8B,ClE6E3C,kBAAwC,CkE5EjB,CAAC,ClE4ExB,qBAAwC,CC9Sb,CAAuB,CD8SlD,aAAwC,CkE5EjB,CAAC,C5EhJxB,kBAAkB,CAAE,kBAAW,CACvB,UAAU,CAAE,kBAAW,C4EmJjC,sBAAuB,CACtB,SAAS,CAAC,IAAI,CAGf,mDAAqD,CACpD,SAAS,CAAE,GAAG,CAGf,6EAAgF,CAC/E,SAAS,CAAE,IAAI,CAOd,wIAA6B,CAC3B,YAAY,CR3RK,OAAa,CQ6R9B,KAAK,CR7RY,OAAa,CQiSlC,kFAAsF,CACrF,YAAY,C/EyViB,OAAc,C+ExV3C,kDAAqD,CACrD,gBAAgB,CAAE,OAA6B,CAC/C,KAAK,C/EgbwB,OAAY,C+E9a1C,8FAAkG,CACjG,YAAY,C/EmViB,OAAc,C+ElV3C,wDAA2D,CAC3D,gBAAgB,CAAE,OAA8B,CAChD,KAAK,C/E8iBsB,IAAM,C+E3iBlC,6BAA8B,CAC7B,YAAY,CAAE,kBAAe,CAC7B,UAAU,CAAC,kBAAe,CAC1B,KAAK,CAAC,kBAA6B,CAGpC,+BAAgC,CAC/B,YAAY,CAAE,kBAAgC,CAC9C,gBAAgB,CAAC,kBAA8B,CAC/C,KAAK,CAAE,kBAAgC,CAGxC,iJACiE,CAChE,aAAa,CAAC,CAAC,CAGhB,KAAM,CACL,UAAU,CAAE,GAAG,CACf,OAAO,CAAE,KAAK,CACd,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,IAAI,CACjB,KAAK,CAAE,OAAyB,CAShC,sCAA4C,CAC3C,QAAQ,CAAC,QAAQ,CACjB,KAAK,CAAC,IAAI,CACV,GAAG,CAAC,IAAI,CACR,SAAS,CAAC,IAAI,CACd,KAAK,CR1TgC,OAAW,CQ6TjD,kBAAqB,CACpB,KAAK,CAAC,IAAI,CACV,IAAI,CAAC,IAAI,CAGV,+BAAgC,CAC/B,aAAa,CAAC,IAAI,CAGnB,8BAA+B,CAC9B,YAAY,CAAC,IAAI,CAGlB,gnBAa4C,CAC3C,gBAAgB,CAAE,+CAAkD,CACpE,iBAAiB,CAAE,SAAS,CAC5B,mBAAmB,CAAE,OAAO,CAC5B,aAAa,CAAC,IAAI,CAGnB,wLAAwD,CACvD,UAAU,CAAE,GAAG,CACf,YAAY,CAAC,cAAc,CAC3B,WAAW,CAAC,CAAC,CAGd,umCAGuE,CACtE,YAAY,CAAC,GAAG,CAMlB,MAAO,CACH,aAAa,CAAE,IAAI,CACnB,UAAU,CAAE,GAAG,CACf,OAAO,CAAE,iBAAiB,CAC1B,KAAK,CAAC,OAAO,CACb,YAAY,CAAC,GAAG,CAChB,iBAAiB,CAAE,GAAG,CACtB,OAAO,CAAC,IAAI,CAEZ,wBAAiB,CACf,WAAW,CAAE,IAAI,CAGnB,uBAAgB,CACd,SAAS,CAAE,IAAI,CAGjB,aAAO,CACH,GAAG,CAAE,GAAG,CACR,KAAK,CAAE,IAAI,CACX,WAAW,CAAE,IAAI,CAIzB,cAAe,CACX,WAAW,CAAC,GAAG,CAGnB,aAAc,CACV,YAAY,CR7aD,OAAW,CQ8atB,KAAK,C/EiTqB,OAAY,C+EhTtC,UAAU,C/E0NgB,OAAgB,C+EzN1C,WAAW,CAAC,IAAI,CAElB,8BAAgB,CACd,KAAK,CRnbM,OAAW,CQub1B,cAAe,CACX,YAAY,C/E6Mc,OAAc,C+E5MxC,KAAK,C/EsSqB,OAAY,C+ErStC,UAAU,C/EqIgB,OAAiB,C+EnI7C,+BAAgB,CACd,KAAK,C/EwMqB,OAAc,C+EpM5C,cAAe,CACX,YAAY,C/E8Ic,OAAc,C+E7IxC,KAAK,C/E4RqB,OAAY,C+E3RtC,UAAU,C/EyLgB,OAAiB,C+EvL7C,+BAAgB,CACd,KAAK,C/EyIqB,OAAc,C+ErI5C,WAAY,CACR,YAAY,C/EuIc,OAAW,C+EtIrC,KAAK,C/EkRqB,OAAY,C+EjRtC,UAAU,C/EmLgB,OAAc,C+EjL1C,4BAAgB,CACd,KAAK,C/EkIqB,OAAW,C+EzHzC,eAAgB,CACf,MAAM,CAAE,cAA6B,CACrC,WAAW,CAAC,cAA6B,CAG1C,YAAa,CACZ,MAAM,CAAE,cAA0B,CAClC,WAAW,CAAC,cAA0B,CAGvC,YAAa,CACZ,MAAM,CAAE,eAA0B,CAClC,WAAW,CAAC,eAA0B,CAGvC,YAAa,CACZ,MAAM,CAAE,eAA0B,CAClC,WAAW,CAAC,eAA0B,CAGvC,uBAAwB,CACtB,QAAQ,CAAE,QAAQ,CAClB,QAAQ,CAAE,MAAM,CAChB,WAAW,CAAE,IAAI,CAGnB,gCAAiC,CAC/B,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,IAAI,CACjB,UAAU,CAAE,MAAM,CAGpB,iCAAkC,CAChC,OAAO,CAAE,KAAK,CACd,KAAK,CAAE,IAAI,CACX,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,IAAI,CACjB,UAAU,CAAE,MAAM,CAGpB,6BAA8B,CAC5B,KAAK,CAAE,CAAC,CAGV,uCAAwC,CACtC,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,CAAC,CAGV,kBAAmB,CACjB,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,UAAU,CAAC,KAAK,CAChB,YAAY,CAAE,IAAI,CAClB,OAAO,CAAC,YAAY,CACpB,aAAa,CAAC,GAAG,CAGnB,kBAAmB,CAClB,KAAK,CAAE,IAAI,CAGZ,yBAA0B,CACxB,QAAQ,CAAE,QAAQ,CAGpB,iDAAkD,CAChD,QAAQ,CAAE,QAAQ,CAClB,MAAM,CAAE,CAAC,CAGX,gCAAiC,CAC/B,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,CAAC,CACT,kBAAkB,CAAE,gBAAgB,CAC5B,UAAU,CAAE,gBAAgB,CAGtC,uCAAwC,CACtC,QAAQ,CAAE,QAAQ,CAClB,MAAM,CAAE,CAAC,CAGX,uCAOC,CANC,IAAK,CACH,mBAAmB,CAAE,MAAM,CAE7B,EAAG,CACD,mBAAmB,CAAE,GAAG,EAI5B,oCAOC,CANC,IAAK,CACH,mBAAmB,CAAE,MAAM,CAE7B,EAAG,CACD,mBAAmB,CAAE,GAAG,EAI5B,kCAOC,CANC,IAAK,CACH,mBAAmB,CAAE,GAAG,CAE1B,EAAG,CACD,mBAAmB,CAAE,MAAM,EAI/B,+BAOC,CANC,IAAK,CACH,mBAAmB,CAAE,MAAM,CAE7B,EAAG,CACD,mBAAmB,CAAE,GAAG,EAI5B,SAAU,CACT,QAAQ,CAAE,QAAQ,CAClB,aAAa,CAAE,IAAI,CACnB,QAAQ,CAAE,MAAM,CAChB,MAAM,CAAE,IAAI,CACZ,UAAU,CRvjB4B,OAAW,CpEwFhD,kBAAkB,CAAE,2CAAO,CACnB,UAAU,CAAE,2CAAO,CUiO3B,kBAAwC,CbgkBnB,GAAG,CahkBxB,qBAAwC,CC9Sb,GAAuB,CD8SlD,aAAwC,CbgkBnB,GAAG,C+E9T1B,aAAc,CACb,KAAK,CAAE,IAAI,CACX,KAAK,CAAE,CAAC,CACR,MAAM,CAAE,IAAI,CACZ,SAAS,CAAE,IAAI,CACf,KAAK,C/EgQsB,IAAM,C+E/PjC,UAAU,CAAE,MAAM,CAClB,gBAAgB,CtE7hBa,OAAK,CsE8hBlC,WAAW,CAAE,IAAI,C5EtehB,kBAAkB,CAAE,oDAAW,CACvB,UAAU,CAAE,oDAAW,C4EyejC,+BAAgC,CAC9B,gBAAgB,CAAE,kRAA4W,CAC9X,gBAAgB,CAAE,kLAA4Q,CAC9R,gBAAgB,CAAE,+KAAyQ,CAC3R,gBAAgB,CAAE,4KAAoQ,CACtR,eAAe,CAAE,SAAS,CAG5B,8BAA+B,CAC7B,iBAAiB,CAAE,uCAAuC,CACvD,cAAc,CAAE,uCAAuC,CACtD,aAAa,CAAE,uCAAuC,CACrD,YAAY,CAAE,uCAAuC,CAClD,SAAS,CAAE,uCAAuC,CAG5D,oBAAqB,CACnB,gBAAgB,CR3nBH,OAAW,CQ8nB1B,sCAAuC,CACrC,gBAAgB,CAAE,kRAA4W,CAC9X,gBAAgB,CAAE,kLAA4Q,CAC9R,gBAAgB,CAAE,+KAAyQ,CAC3R,gBAAgB,CAAE,4KAAoQ,CAGxR,qBAAsB,CACpB,gBAAgB,C/EtDY,OAAc,C+EyD5C,uCAAwC,CACtC,gBAAgB,CAAE,kRAA4W,CAC9X,gBAAgB,CAAE,kLAA4Q,CAC9R,gBAAgB,CAAE,+KAAyQ,CAC3R,gBAAgB,CAAE,4KAAoQ,CAGxR,qBAAsB,CACpB,gBAAgB,C/EZY,OAAc,C+Ee5C,uCAAwC,CACtC,gBAAgB,CAAE,kRAA4W,CAC9X,gBAAgB,CAAE,kLAA4Q,CAC9R,gBAAgB,CAAE,+KAAyQ,CAC3R,gBAAgB,CAAE,4KAAoQ,CAGxR,kBAAmB,CACjB,gBAAgB,C/EzEY,OAAW,C+E4EzC,oCAAqC,CACnC,gBAAgB,CAAE,kRAA4W,CAC9X,gBAAgB,CAAE,kLAA4Q,CAC9R,gBAAgB,CAAE,+KAAyQ,CAC3R,gBAAgB,CAAE,4KAAoQ,CAIxR,uCAAyC,CACxC,UAAU,C/ErFmB,OAAW,C+EwFzC,cAAe,CACd,OAAO,CAAC,CAAC,CACT,MAAM,CAAC,CAAC,CAGT,oBAAqB,CACpB,OAAO,CAAE,EAAE,CACX,OAAO,CAAE,KAAK,CACd,MAAM,CAAE,CAAC,CACT,KAAK,CAAE,IAAI,CAEZ,iBAAkB,CACjB,OAAO,CAAE,MAAM,CACf,KAAK,CAAE,GAAG,CACV,OAAO,CAAE,KAAK,CACd,KAAK,CAAE,IAAI,CACX,UAAU,CAAE,MAAM,CAEnB,6BAA8B,CAC7B,WAAW,CAAE,IAAI,CAElB,gDAAqD,CACpD,WAAW,CAAE,IAAI,CAElB,oCAAyC,CACxC,MAAM,CAAE,MAAM,CACd,KAAK,CAAE,IAAI,CAMZ,SAAS,CACP,aAAa,CAAE,IAAI,CAGrB,qBAAwB,CACvB,SAAS,CAAE,IAAI,CACf,OAAO,CAAE,eAAe,CACxB,OAAO,CAAE,EAAE,CACX,WAAW,CAAE,GAAG,CAChB,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,MAAM,CAGpB,gCAAmC,CAClC,YAAY,CAAC,GAAG,CAChB,WAAW,CAAC,GAAG,CAEhB,qBAAwB,CACvB,OAAO,CAAC,YAAY,CACpB,SAAS,CAAC,IAAI,CACd,WAAW,CAAC,GAAG,CACf,OAAO,CAAE,EAAE,CAGZ,cAAe,CACZ,KAAK,CRlsB+B,OAAW,CQosBhD,WAAW,C/E7pBa,yDAA6D,C+E+pBrF,oBAAO,CACL,KAAK,CR1sBuB,OAAa,CQ2sBzC,YAAY,CAAE,2CAA+C,CAC7D,UAAU,CAAE,GAAG,CACf,gBAAgB,CAAE,CAAC,CAGvB,qBAA0B,CAEtB,gBAAgB,CRltBY,OAAa,CQmtBzC,KAAK,C/EhBqB,OAAa,C+EiB1C,gBAAgB,CAAE,cAAc,CAChC,UAAU,CAAE,cAAc,CAC1B,WAAW,CAAC,IAAI,CAEjB,gCAAqC,CACpC,kBAAkB,CAAE,gBAAc,CAClC,eAAe,CAAE,gBAAc,CAC/B,UAAU,CAAE,gBAAc,CAC1B,gBAAgB,CAAE,cAAc,CAChC,WAAW,CAAE,eAAe,CAC5B,WAAW,CAAE,cAAc,CAE5B,iCAAsC,CACrC,MAAM,CAAC,eAAe,CACtB,UAAU,CAAC,eAAe,CAC1B,kBAAkB,CAAE,eAAe,CACnC,eAAe,CAAE,eAAe,CAEjC,iCAAsC,CACrC,kBAAkB,CAAE,eAAa,CACjC,eAAe,CAAE,eAAa,CAC9B,UAAU,CAAE,eAAa,CACzB,gBAAgB,CAAE,cAAc,CAChC,YAAY,CAAE,eAAe,CAC7B,YAAY,CAAE,cAAc,CAE7B,iCAAsC,CACrC,kBAAkB,CAAE,eAAa,CACjC,eAAe,CAAE,eAAa,CAC9B,UAAU,CAAE,eAAa,CACzB,mBAAmB,CAAE,cAAc,CACnC,UAAU,CAAE,eAAe,CAC3B,UAAU,CAAE,cAAc,CAG3B,gEAAyE,CACxE,aAAa,CAAE,CAAC,CAGjB,+CAAqD,CACpD,OAAO,CAAE,IAAI,CAGd,0CAAgD,CAC/C,OAAO,CAAE,KAAK,CAGf,qBAAwB,CACvB,UAAU,CAAE,iBAAmC,CAGhD,wBAA6B,CAC5B,UAAU,CAAE,IAAI,CAChB,aAAa,CAAE,CAAC,CAGjB,mGAC4D,CAC3D,KAAK,CAAE,IAAI,CAGZ,2GACoE,CACnE,SAAS,CAAE,IAAI,CACf,YAAY,CAAE,CAAC,CACf,aAAa,CAAE,GAAG,CAGnB,0CAAgD,CAC/C,KAAK,CAAE,IAAI,CACX,YAAY,CAAE,IAAI,CAClB,YAAY,CAAE,iBAAmC,CAChD,qBAAwB,CACzB,YAAY,CAAC,IAAI,CAGlB,yBAAgC,CAC/B,YAAY,CAAE,IAAI,CAGnB,+DAA6E,CAC5E,YAAY,CAAE,+BAAoE,CAGnF,wGAAuH,CACtH,YAAY,CAAE,mCAA2F,CACzG,mBAAmB,C/E0BQ,IAAM,C+EvBlC,uBAA0B,CACzB,WAAW,CAAE,KAAK,CAGnB,qBAAwB,CACvB,KAAK,CAAE,KAAK,CACZ,WAAW,CAAE,IAAI,CACjB,WAAW,CAAE,iBAAmC,CAGjD,0BAAiC,CAChC,WAAW,CAAE,IAAI,CAGlB,iEAA+E,CAC9E,YAAY,CAAE,+BAAmE,CAGlF,2GAA0H,CACzH,YAAY,CAAE,mCAAyF,CACvG,kBAAkB,C/EGS,IAAM,C+EAlC,gEAAyE,CACxE,aAAa,CAAE,CAAC,CAGjB,+CAAqD,CACpD,OAAO,CAAE,IAAI,CAGd,0CAAgD,CAC/C,OAAO,CAAE,KAAK,CAGf,qBAAwB,CACvB,UAAU,CAAE,iBAAmC,CAGhD,wBAA6B,CAC5B,UAAU,CAAE,IAAI,CAChB,aAAa,CAAE,CAAC,CAGjB,iEAA+E,CAC9E,gBAAgB,CAAE,OAAyB,CAC3C,mBAAmB,CAAE,WAAW,CAGjC,2GAAgI,CAC/H,YAAY,CAAE,mCAAyF,CAIxG,kBAAmB,CAClB,UAAU,C/EhCiB,IAAM,C+EiCjC,MAAM,CAAC,iBAAmC,CAG3C,iCAAkC,CACjC,iBAAiB,CAAC,cAAc,CAGjC,+BAAkC,CACjC,MAAM,CAAC,iBAAmC,CAC1C,UAAU,CAAC,IAAI,CAKhB,0DAA4D,CAC3D,KAAK,CAAC,KAAK,CAGZ,sFAA4F,CAC3F,YAAY,CAAC,GAAG,CAGjB,wGAA8G,CAC7G,iBAAiB,CAAC,cAAc,CAChC,YAAY,CAAC,GAAG,CAChB,kBAAkB,CAAC,GAAG,CAMvB,iBAAkB,CAChB,SAAS,CAAC,IAAI,CAGhB,sBAAuB,CACrB,OAAO,CAAE,QAAQ,CAClB,8BAA+B,CAC7B,KAAK,CAAC,eAAe,CAIxB,iBAAkB,CAChB,QAAQ,CAAE,QAAQ,CAGpB,gCAAiC,CAC/B,GAAG,CAAE,CAAC,CACN,IAAI,CAAE,IAAI,CACV,UAAU,CAAE,IAAI,CAChB,WAAW,CAAE,IAAI,CAKlB,sCAAgB,CACf,OAAO,CAAE,KAAK,CAGf,yBAAG,CAEF,gBAAgB,CR/5BqB,OAAW,CQg6BhD,KAAK,C/EhOuB,OAAa,C+EkO1C,+BAAO,CACN,iBAAiB,C/ErNW,OAAM,C+E0NnC,yBAAO,CACN,OAAO,CAAE,KAAK,CACd,OAAO,CAAE,GAAG,CACZ,KAAK,CAAE,KAAK,CACZ,KAAK,CAAE,CAAC,CACR,MAAM,CAAE,CAAC,CACT,YAAY,CAAE,WAAW,CACzB,YAAY,CAAE,KAAK,CACnB,YAAY,CAAE,aAAa,CAC3B,iBAAiB,C/EpPW,OAAY,C+EqPxC,UAAU,CAAE,GAAG,CACf,YAAY,CAAE,GAAG,CAIjB,+BAAO,CACN,iBAAiB,CR37BY,OAAa,CQi8B7C,2BAA4B,CAC1B,KAAK,CAAE,IAAI,CAGb,0CAA2C,CACzC,IAAI,CAAE,KAAK,CACX,WAAW,CAAE,IAAI,CAOnB,oCAA8C,CAC7C,UAAU,CAAE,+BAAmE,CAC/E,eAAe,CAAE,+BAAmE,CACpF,kBAAkB,CAAE,+BAAmE,CAMxF,qBAAsB,CACrB,KAAK,CRx9B0B,OAAa,CQ29B7C,IAAK,CACH,WAAW,C/El7Ba,yDAA6D,C+Em7BrF,WAAW,CAAE,8BAA8B,ClEhqB3C,kBAAwC,CkEiqBjB,GAAG,ClEjqB1B,qBAAwC,CC9Sb,GAAuB,CD8SlD,aAAwC,CkEiqBjB,GAAG,C5E73B1B,kBAAkB,CAAE,sHAAW,CACvB,UAAU,CAAE,sHAAW,C4Eu4BjC,eAAgB,CACf,gBAAgB,CAAE,OAAO,CACzB,gBAAgB,CAAE,qCAAqC,CACvD,gBAAgB,CAAE,2DAA2D,CAC7E,gBAAgB,CAAE,wCAAwC,CAC1D,gBAAgB,CAAE,mCAAmC,CACrD,gBAAgB,CAAE,2CAAsC,CACxD,iBAAiB,CAAE,QAAQ,CAC3B,MAAM,CAAE,8GAA8G,CACtH,KAAK,CAAE,KAAK,CACZ,OAAO,CAAE,KAAK,CACd,WAAW,CAAE,IAAI,CACjB,cAAc,CAAE,MAAM,CACtB,MAAM,CAAE,IAAI,CACZ,OAAO,CAAE,KAAK,CACd,MAAM,CAAE,IAAI,CACZ,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,SAAS,CACjB,MAAM,CAAE,OAAO,CAGhB,iBAAoB,CACnB,SAAS,CAAC,IAAI,CAGf,wBAAyB,CACxB,WAAW,CAAE,IAAI,CACjB,OAAO,CAAE,YAAY,CAGtB,mDAAsD,CACrD,MAAM,CAAE,SAAS,CAOlB,aAAc,CACV,YAAY,C/E3RgB,OAAO,C+E4RnC,4BAAmB,CACf,KAAK,C/E9Me,IAAM,C+E+M1B,gBAAgB,C/E9RQ,OAAO,C+E+R/B,YAAY,C/E/RY,OAAO,C+EkSvC,iBAAkB,CACd,YAAY,C/ExSgB,OAAO,C+EySnC,gCAAmB,CACf,KAAK,C/EtNe,IAAM,C+EuN1B,gBAAgB,C/E3SQ,OAAO,C+E4S/B,YAAY,C/E5SY,OAAO,C+E+SvC,gBAAiB,CACb,YAAY,C/E/SgB,OAAO,C+EgTnC,+BAAmB,CACf,KAAK,C/E9Ne,IAAM,C+E+N1B,gBAAgB,C/ElTQ,OAAO,C+EmT/B,YAAY,C/EnTY,OAAO,C+EsTvC,aAAc,CACV,YAAY,CRviCgB,OAAU,CQwiCtC,4BAAmB,CACf,KAAK,C/EtOe,IAAM,C+EuO1B,gBAAgB,CAAE,OAAO,CACzB,YAAY,CAAE,OAAO,CAG7B,YAAa,CACT,YAAY,C/E/Vc,OAAM,C+EgWhC,2BAAmB,CACf,KAAK,C/E9Oe,IAAM,C+E+O1B,gBAAgB,C/ElWM,OAAM,C+EmW5B,YAAY,C/EnWU,OAAM,C+EsWpC,UAAW,CACP,YAAY,CtEhhCc,OAAI,CsEihC9B,yBAAmB,CACf,KAAK,C/EtPe,IAAM,C+EuP1B,gBAAgB,CtEnhCM,OAAI,CsEohC1B,YAAY,CtEphCU,OAAI,CsEuhClC,WAAY,CACR,YAAY,CRrlCK,OAAa,CQslC9B,0BAAmB,CACf,KAAK,C/E9Pe,IAAM,C+E+P1B,gBAAgB,CRxlCH,OAAa,CQylC1B,YAAY,CRzlCC,OAAa,CQ4lClC,aAAc,CACV,YAAY,C/Elec,OAAc,C+EmexC,4BAAmB,CACf,KAAK,C/EtQe,IAAM,C+EuQ1B,gBAAgB,C/EreM,OAAc,C+EsepC,YAAY,C/EteU,OAAc,C+Eye5C,eAAgB,CACZ,YAAY,C/EjWgB,OAAO,C+EkWnC,8BAAmB,CACf,KAAK,C/E9Qe,IAAM,C+E+Q1B,gBAAgB,C/EpWQ,OAAO,C+EqW/B,YAAY,C/ErWY,OAAO,C+EwWvC,cAAe,CACX,YAAY,C/E9VgB,OAAO,C+E+VnC,6BAAmB,CACf,KAAK,C/EtRe,IAAM,C+EuR1B,gBAAgB,C/EjWQ,OAAO,C+EkW/B,YAAY,C/ElWY,OAAO,C+EqWvC,WAAY,CACR,YAAY,CtEvjCc,OAAK,CsEwjC/B,0BAAmB,CACf,KAAK,C/E9Re,IAAM,C+E+R1B,gBAAgB,CtE1jCM,OAAK,CsE2jC3B,YAAY,CtE3jCU,OAAK,CsEgkCnC,wBAA2B,CAC1B,aAAa,CAAC,GAAG,CACjB,kBAAkB,CAAC,GAAG,CACtB,qBAAqB,CAAE,GAAG,CAC1B,aAAa,CAAC,IAAI,CAClB,WAAW,CAAC,IAAI,CAChB,YAAY,CAAC,IAAI,CAOlB,WAAY,CACV,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,UAAU,CAAE,MAAM,CAClB,OAAO,CAAE,KAAK,CACd,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,IAAI,CACjB,aAAa,CAAE,GAAG,CAClB,kBAAkB,CAAE,GAAG,CACvB,qBAAqB,CAAE,GAAG,C5EpiC1B,kBAAkB,CAAE,yDAAO,CACnB,UAAU,CAAE,yDAAO,C4EsiC7B,gDAAmB,CACjB,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,OAAO,CAAE,KAAK,CACd,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,IAAI,CACjB,aAAa,CAAE,GAAG,CAClB,kBAAkB,CAAE,GAAG,CACvB,qBAAqB,CAAE,GAAG,CAE5B,gDAAmB,CACjB,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,OAAO,CAAE,SAAS,CAClB,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,IAAI,CACjB,aAAa,CAAE,GAAG,CAClB,kBAAkB,CAAE,GAAG,CACvB,qBAAqB,CAAE,GAAG,CAE5B,kBAAmB,CACjB,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,OAAO,CAAE,SAAS,CAClB,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,IAAI,CACjB,aAAa,CAAE,GAAG,CAClB,kBAAkB,CAAE,GAAG,CACvB,qBAAqB,CAAE,GAAG,CAQ5B,UAAW,CACT,QAAQ,CAAE,QAAQ,CAClB,IAAI,CAAE,IAAI,CACV,OAAO,CAAE,YAAY,CACrB,OAAO,CAAE,OAAO,CAChB,UAAU,CAAE,gBAAoD,CAChE,aAAa,CAAE,WAAW,CAG5B,YAAa,CACX,WAAW,CAAE,CAAC,CACd,cAAc,CAAE,CAAC,CACjB,YAAY,CAAE,GAAG,CAGnB,SAAU,CACT,UAAU,CAAE,IAAI,CAChB,kBAAkB,CAAE,IAAI,CACxB,SAAS,CAAE,IAAmB,CAQ/B,kCAAmC,CAC/B,aAAa,CAAE,GAAG,CAClB,OAAO,CAAE,GAAG,CACZ,KAAK,CAAE,IAAI,CACX,UAAU,CAAE,kBAAyE,CACrF,MAAM,CAAE,iBAAoB,CAC5B,WAAW,CAAE,aAAa,CAC1B,SAAS,CAAE,IAAI,CACf,UAAU,CAAE,IAAI,C5E7mClB,kBAAkB,CAAE,0BAAO,CACnB,UAAU,CAAE,0BAAO,C4EgnC3B,0DAAwB,CAClB,WAAW,CAAE,IAAI,CAGrB,sDAAoB,CAChB,WAAW,CAAE,MAAM,CAI3B,aAAc,CACV,QAAQ,CAAE,QAAQ,CAClB,OAAO,C/EpYc,GAA0B,C+EsYnD,gCAAiC,CAC/B,OAAO,CAAE,GAAwB,CCpvCjC,62BAA0B,CAAE,KAAK,CAAE,kBAAgB,CACnD,2RAA0B,CAAE,KAAK,CAAE,kBAAqB,CACxD,qRAA0B,CAAE,KAAK,CAAE,kBAAoB,CACvD,6SAA0B,CAAE,KAAK,CAAE,kBAAyB,CAC5D,uSAA0B,CAAE,KAAK,CAAE,kBAAwB,CAC3D,kbAA0B,CAAE,KAAK,CAAE,kBAAsB,CACzD,kTAA0B,CAAE,KAAK,CAAE,kBAAgB,CACnD,qRAA0B,CAAE,KAAK,CAAE,kBAAqB,CACxD,iSAA0B,CAAE,KAAK,CAAE,kBAAuB,CAC1D,+eAA0B,CAAE,KAAK,CAAE,kBAAiB,CACpD,2RAA0B,CAAE,KAAK,CAAE,kBAAuB,CAC1D,qRAA0B,CAAE,KAAK,CAAE,kBAAoB,CACvD,yeAA0B,CAAE,KAAK,CAAE,kBAAe,CAClD,2RAA0B,CAAE,KAAK,CAAE,kBAAsB,CACzD,yQAA0B,CAAE,KAAK,CAAE,kBAAkB,CACrD,iSAA0B,CAAE,KAAK,CAAE,kBAAuB,CAC1D,uSAA0B,CAAE,KAAK,CAAE,kBAAwB,CAC3D,6UAA0B,CAAE,KAAK,CAAE,kBAAkB,CACrD,iSAA0B,CAAE,KAAK,CAAE,kBAAuB,CAC1D,6PAA0B,CAAE,KAAK,CAAE,kBAAgB,CACnD,qRAA0B,CAAE,KAAK,CAAE,kBAAoB,CACvD,yQAA0B,CAAE,KAAK,CAAE,kBAAkB,CACrD,yQAA0B,CAAE,KAAK,CAAE,kBAAkB,CACrD,+QAA0B,CAAE,KAAK,CAAE,kBAAmB,CACtD,mQAA0B,CAAE,KAAK,CAAE,eAAiB,CACpD,+QAA0B,CAAE,KAAK,CAAE,kBAAmB,CACtD,oVAA0B,CAAE,KAAK,CAAE,kBAAyB,CAC5D,iRAA0B,CAAE,KAAK,CAAE,kBAAwB,CAC3D,iUAA0B,CAAE,KAAK,CAAE,kBAAgB,CACnD,iSAA0B,CAAE,KAAK,CAAE,kBAAuB,CAC1D,mTAA0B,CAAE,KAAK,CAAE,kBAA0B,CAE7D,6PAA0B,CAAE,KAAK,CAAE,kBAAgB,CACnD,yQAA0B,CAAE,KAAK,CAAE,iBAAkB,CACrD,yQAA0B,CAAE,KAAK,CAAE,kBAAkB,CAErD,+QAA0B,CAAE,KAAK,CAAE,kBAAyB,CAC5D,+QAA0B,CAAE,KAAK,CAAE,kBAAyB,CAC5D,uSAA0B,CAAE,KAAK,CAAE,kBAAsB,CACzD,6PAA0B,CAAE,KAAK,CAAE,kBAAsB,CACzD,6gBAA0B,CAAE,KAAK,CAAE,kBAAyB,CAC5D,yQAA0B,CAAE,KAAK,CAAE,kBAAwB,CAM3D,uBAA0B,CAAE,gBAAgB,CAAE,kBAAgB,CAC9D,4BAA0B,CAAE,gBAAgB,CAAE,kBAAqB,CACnE,2BAA0B,CAAE,gBAAgB,CAAE,kBAAoB,CAClE,wBAA0B,CAAE,gBAAgB,CAAE,kBAAiB,CAC/D,6BAA0B,CAAE,gBAAgB,CAAE,kBAAsB,CACpE,4BAA0B,CAAE,gBAAgB,CAAE,kBAAsB,CACpE,sBAA0B,CAAE,gBAAgB,CAAE,kBAAe,CAC7D,yBAA0B,CAAE,gBAAgB,CAAE,kBAAkB,CAChE,yBAA0B,CAAE,gBAAgB,CAAE,kBAAkB,CAChE,6BAA0B,CAAE,gBAAgB,CAAE,kBAAsB,CACpE,uBAA0B,CAAE,gBAAgB,CAAE,kBAAgB,CAC9D,2BAA0B,CAAE,gBAAgB,CAAE,kBAAoB,CAClE,yBAA0B,CAAE,gBAAgB,CAAE,kBAAkB,CAChE,yBAA0B,CAAE,gBAAgB,CAAE,kBAAkB,CAChE,0BAA0B,CAAE,gBAAgB,CAAE,kBAAmB,CACjE,wBAA0B,CAAE,gBAAgB,CAAE,eAAiB,CAC/D,uBAA0B,CAAE,gBAAgB,CAAE,kBAAgB,CAC9D,2BAA0B,CAAE,gBAAgB,CAAE,kBAAoB,CAClE,6BAA0B,CAAE,gBAAgB,CAAE,kBAAuB,CACrE,0BAA0B,CAAE,gBAAgB,CAAE,kBAAmB,CACjE,8BAA0B,CAAE,gBAAgB,CAAE,kBAAwB,CACtE,6BAA0B,CAAE,gBAAgB,CAAE,kBAAuB,CACrE,8BAA0B,CAAE,gBAAgB,CAAE,kBAAwB,CACtE,2BAA0B,CAAE,gBAAgB,CAAE,kBAAoB,CC1DpE,sBAAuB,CACrB,uBAAuB,CAAE,IAAI,CAC7B,0BAA0B,CAAE,IAAI,CAChC,mBAAmB,CAAE,SAAS,CAC9B,sBAAsB,CAAE,SAAS,CACjC,QAAQ,CAAC,QAAQ,CApBjB,4BAEC,CAsBD,IAAK,CACH,OAAO,CAAE,CAAC,CACV,GAAG,CAAE,KAAK,CAGZ,EAAG,CACD,OAAO,CAAE,CAAC,CACV,GAAG,CAAC,GAAG,EA5BT,yBAEC,CAmBD,IAAK,CACH,OAAO,CAAE,CAAC,CACV,GAAG,CAAE,KAAK,CAGZ,EAAG,CACD,OAAO,CAAE,CAAC,CACV,GAAG,CAAC,GAAG,EAzBT,wBAEC,CAgBD,IAAK,CACH,OAAO,CAAE,CAAC,CACV,GAAG,CAAE,KAAK,CAGZ,EAAG,CACD,OAAO,CAAE,CAAC,CACV,GAAG,CAAC,GAAG,EAtBT,oBAEC,CAaD,IAAK,CACH,OAAO,CAAE,CAAC,CACV,GAAG,CAAE,KAAK,CAGZ,EAAG,CACD,OAAO,CAAE,CAAC,CACV,GAAG,CAAC,GAAG,EA/BT,gCAEC,CAmCD,EAAG,CACD,IAAI,CxE+BsB,OAAI,CwE7BhC,GAAI,CACF,IAAI,CV1Ca,OAAY,CU4C/B,IAAK,CACH,IAAI,CxEyBsB,OAAI,EwElEhC,6BAEC,CAgCD,EAAG,CACD,IAAI,CxE+BsB,OAAI,CwE7BhC,GAAI,CACF,IAAI,CV1Ca,OAAY,CU4C/B,IAAK,CACH,IAAI,CxEyBsB,OAAI,EwE/DhC,4BAEC,CA6BD,EAAG,CACD,IAAI,CxE+BsB,OAAI,CwE7BhC,GAAI,CACF,IAAI,CV1Ca,OAAY,CU4C/B,IAAK,CACH,IAAI,CxEyBsB,OAAI,EwE5DhC,wBAEC,CA0BD,EAAG,CACD,IAAI,CxE+BsB,OAAI,CwE7BhC,GAAI,CACF,IAAI,CV1Ca,OAAY,CU4C/B,IAAK,CACH,IAAI,CxEyBsB,OAAI,EwEpBlC,2BAA2B,C9E0JzB,iBAAiB,C8EzJE,2BAA6B,C9E0JxC,SAAS,C8E1JE,2BAA6B,C9EqKhD,iCAAiC,CAAE,qCAAgB,CAC3C,yBAAyB,CAAE,qCAAgB,C8EnKnD,sCAAU,C9EsJV,iBAAiB,C8ErJI,iCAAmC,C9EsJhD,SAAS,C8EtJI,iCAAmC,C9EiKxD,iCAAiC,CAAE,qCAAgB,CAC3C,yBAAyB,CAAE,qCAAgB,C8E7JrD,2BAA2B,C9EgJzB,iBAAiB,C8E/IE,2BAA6B,C9EgJxC,SAAS,C8EhJE,2BAA6B,C9E2JhD,iCAAiC,CAAE,qCAAgB,CAC3C,yBAAyB,CAAE,qCAAgB,C8EzJnD,sCAAU,C9E4IV,iBAAiB,C8E3II,iCAAmC,C9E4IhD,SAAS,C8E5II,iCAAmC,C9EuJxD,iCAAiC,CAAE,qCAAgB,CAC3C,yBAAyB,CAAE,qCAAgB,C8ExNnD,yCAEC,CAqED,GAAK,CACH,gBAAgB,CjFsgBU,OAAc,CiFrgBxC,KAAK,CV3CuB,OAAU,EU3BxC,sCAEC,CAkED,GAAK,CACH,gBAAgB,CjFsgBU,OAAc,CiFrgBxC,KAAK,CV3CuB,OAAU,EUxBxC,qCAEC,CA+DD,GAAK,CACH,gBAAgB,CjFsgBU,OAAc,CiFrgBxC,KAAK,CV3CuB,OAAU,EUrBxC,iCAEC,CA4DD,GAAK,CACH,gBAAgB,CjFsgBU,OAAc,CiFrgBxC,KAAK,CV3CuB,OAAU,EU9BxC,+CAEC,CA6ED,GAAK,CACH,gBAAgB,CAAE,OAAuB,CACzC,KAAK,CVnDuB,OAAU,EU3BxC,4CAEC,CA0ED,GAAK,CACH,gBAAgB,CAAE,OAAuB,CACzC,KAAK,CVnDuB,OAAU,EUxBxC,2CAEC,CAuED,GAAK,CACH,gBAAgB,CAAE,OAAuB,CACzC,KAAK,CVnDuB,OAAU,EUrBxC,uCAEC,CAoED,GAAK,CACH,gBAAgB,CAAE,OAAuB,CACzC,KAAK,CVnDuB,OAAU,EU9BxC,yCAEC,CAsFD,GAAK,CACH,gBAAgB,CjF0iBU,OAAc,CiFziBxC,KAAK,CjFmoBqB,OAAY,EiF1tBxC,sCAEC,CAmFD,GAAK,CACH,gBAAgB,CjF0iBU,OAAc,CiFziBxC,KAAK,CjFmoBqB,OAAY,EiFvtBxC,qCAEC,CAgFD,GAAK,CACH,gBAAgB,CjF0iBU,OAAc,CiFziBxC,KAAK,CjFmoBqB,OAAY,EiFptBxC,iCAEC,CA6ED,GAAK,CACH,gBAAgB,CjF0iBU,OAAc,CiFziBxC,KAAK,CjFmoBqB,OAAY,EiF7tBxC,+CAEC,CA8FD,GAAK,CACH,gBAAgB,CAAE,OAAmB,CACrC,KAAK,CjF2nBqB,OAAY,EiF1tBxC,4CAEC,CA2FD,GAAK,CACH,gBAAgB,CAAE,OAAmB,CACrC,KAAK,CjF2nBqB,OAAY,EiFvtBxC,2CAEC,CAwFD,GAAK,CACH,gBAAgB,CAAE,OAAmB,CACrC,KAAK,CjF2nBqB,OAAY,EiFptBxC,uCAEC,CAqFD,GAAK,CACH,gBAAgB,CAAE,OAAmB,CACrC,KAAK,CjF2nBqB,OAAY,EiFrnB1C,4MAAkB,C9EsBhB,kBAAkB,CAAE,gBAAW,CACvB,UAAU,CAAE,gBAAW,C8EnBjC,0OAAwB,C9E0CtB,iBAAiB,CAAE,aAAgB,CAC/B,aAAa,CAAE,aAAgB,CAC3B,SAAS,CAAE,aAAgB,C8ExCrC,qOAAuB,C9EsCrB,iBAAiB,CAAE,cAAgB,CAC/B,aAAa,CAAE,cAAgB,CAC3B,SAAS,CAAE,cAAgB,C+E1JrC,UASC,CARC,WAAW,CAAE,YAAY,CACzB,UAAU,CAAE,MAAM,CAClB,WAAW,CAAE,GAAG,CAChB,GAAG,CAAE,yCAA8C,CACnD,GAAG,CAAE,+PAG4D,CAGnE,cAAe,CACb,WAAW,CAAE,YAAY,CACzB,WAAW,CAAE,GAAG,CCblB,IAAI,CAEF,qBAAqB,CAAE,IAAI,CAC3B,mBAAmB,CAAE,IAAI,CACzB,kBAAkB,CAAE,IAAI,CACxB,gBAAgB,CAAE,IAAI,CACtB,eAAe,CAAE,IAAI,CACrB,WAAW,CAAE,IAAI,CACjB,MAAM,CAAE,OAAO,CAGjB,QAAQ,CACN,QAAQ,CAAE,MAAM,CAIlB,UAAW,CACT,KAAK,CnFuVoC,OAAK,CmFtV9C,WAAW,CAAE,KAAK,CAClB,eAAe,CAAE,IAAI,CACrB,MAAM,CAAE,OAAO,ChF4Gf,kBAAkB,CAAE,oDAAW,CACvB,UAAU,CAAE,oDAAW,CgF1G/B,sBAAO,CACL,KAAK,CnFiUkC,OAAc,CmFhUrD,eAAe,CAAE,IAAI,CAGvB,sBAAO,CACL,KAAK,CnF2UkC,OAAK,CmFtUhD,EAAE,CAEA,UAAU,CAAE,MAAM,CAElB,WAAU,CACR,cAAc,CAAE,SAAS,CAI7B,mBAAmB,CACjB,cAAc,CAAE,UAAU,CAG5B,qBAAqB,CACnB,eAAe,CAAE,YAAY,CAG/B,WAAW,CACT,OAAO,CAAE,YAAY,CAIvB,mBAAoB,CAClB,OAAO,CAAE,IAAI,CACb,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CAGd,yBAA0B,CACxB,gBAAgB,CnFgqBY,OAAY,CmF/pBxC,WAAW,CAAE,iBAAoB,CACjC,aAAa,CAAE,GAAG,ChF+DlB,kBAAkB,CAAE,qBAAW,CACvB,UAAU,CAAE,qBAAW,CgF5DjC,yBAA0B,CACxB,MAAM,CAAE,GAAG,CACX,MAAM,CAAE,qBAAqB,CAC7B,eAAe,CAAE,WAAW,CAC5B,qBAAqB,CAAE,GAAG,CAC1B,gBAAgB,CAAE,OAAmB,CAErC,+BAAO,CACL,gBAAgB,CAAE,OAAmB,CAIzC,0BAA2B,CACzB,KAAK,CAAE,CAAC,CACR,MAAM,CAAE,CAAC,CACT,OAAO,CAAE,IAAI,CAGf,0BAA2B,CACzB,gBAAgB,CAAE,WAAW,CAI/B,WAAW,CACT,UAAU,CZ9DoB,OAAa,CY+D3C,KAAK,CnFooBuB,OAAa,CmFloB3C,gBAAgB,CACd,UAAU,CZlEoB,OAAa,CYmE3C,KAAK,CnFgoBuB,OAAa,CmFjnB3C,wCAAgB,CACd,MAAM,CAAE,IAAI,ChFcZ,kBAAkB,CAAE,oBAAW,CACvB,UAAU,CAAE,oBAAW,CgFNjC,qRAAsB,CACpB,MAAM,CAAE,OAAO,CACf,UAAU,CAAE,GAAG,ChFGf,kBAAkB,CAAE,oBAAW,CACvB,UAAU,CAAE,oBAAW,CgFD/B,ypBAA0B,CACxB,KAAK,CnFogBqB,OAAc,CmFhgB5C,sBAAsB,CACpB,MAAM,CAAE,OAAO,CACf,KAAK,CZrGgC,OAAW,CpE8FhD,kBAAkB,CAAE,oBAAW,CACvB,UAAU,CAAE,oBAAW,CgFS/B,0DAAiB,CACf,KAAK,CAAE,kBAAkB,CAG3B,+BAAU,CACR,aAAa,CAAE,eAAe,CAIlC,2BAA2B,CACzB,MAAM,CAAE,IAAI,CACZ,gBAAgB,CAAE,IAAI,CACtB,WAAW,CAAE,IAAI,CAKjB,UAAU,CACR,KAAK,CnFqMkC,IAA0B,CmFpMjE,cAAc,CAAE,IAAI,CACpB,MAAM,CAAE,OAAO,CAKnB,MAAM,CACJ,WAAW,CAAE,kBAAkB,CAK/B,+BAAe,CACb,gBAAgB,CZvImB,OAAK,CYwIxC,KAAK,CZzI8B,OAAW,CY2I9C,sCAAM,CACJ,gBAAgB,CZ9IU,OAAU,CY+IpC,KAAK,CZhJqB,OAAa,CYiJvC,WAAW,CnFxGS,6CAAiD,CmF6GvE,6CAAgB,CAEd,OAAO,CAAE,gBAAgB,CACzB,YAAY,CAAE,eAAe,CAC7B,KAAK,CZ1JqB,OAAa,CY+JrC,wDAAO,CACL,GAAG,CAAE,IAAI,CAKf,wEAAuC,CACrC,KAAK,C1E9HmB,OAAI,C0EkIlC,0BAA4B,CAC1B,OAAO,CAAE,IAAI,CAIf,0BAA4B,CAC1B,aAAa,CAAE,GAAG,CAOhB,2EAAwB,CACtB,YAAY,CAAE,IAAI,CAItB,gCAAe,CAEb,YAAY,CAAE,GAAG,CACjB,aAAa,CAAE,GAAG,CAGpB,0DAAyC,CACvC,WAAW,CAAE,IAAI,CAKnB,uCAA8B,CAC5B,kBAAkB,CAAE,eAAe,CAGrC,2CAAkC,CAChC,KAAK,CAAE,IAAI,CAIX,2CAAK,CACH,UAAU,CAAE,eAAe,CAQ/B,6CAAyB,CACvB,MAAM,CAAE,KAAK,CAIb,0CAAU,CACR,OAAO,CAAE,KAAK,CAEd,2DAAkB,CAChB,YAAY,CAAE,IAAI,CAGpB,8CAAG,CACD,YAAY,CAAE,GAAG,CAQrB,mHAE6B,CAE3B,YAAY,CAAE,YAAY,CAC1B,aAAa,CAAE,YAAY,CAC3B,eAAe,CAAE,yBAAyB,CAE5C,0EAEc,CAEZ,aAAa,CAAE,eAAe,CAKhC,mBAAO,CACL,gBAAgB,CAAE,kBAAuB,CAM3C,0BAAc,CAEZ,OAAO,CAAE,iBAAsB,CAC/B,gBAAgB,CAAE,gCAAkC,CACpD,cAAc,CAAE,IAAI,CAGtB,wBAAY,CACV,SAAS,CAAE,cAAc,CAG3B,gCAAoB,CAClB,MAAM,CAAE,OAAO,ChFlLnB,kBAAkB,CAAE,oBAAW,CACvB,UAAU,CAAE,oBAAW,CgF2L7B,kCAAsB,CACpB,MAAM,CAAE,OAAO,CAGf,6DAA4B,ChFhMhC,kBAAkB,CAAE,oBAAW,CACvB,UAAU,CAAE,oBAAW,CgF4M7B,iCAAqB,CACnB,OAAO,CAAE,YAAY,CACrB,eAAe,CAAE,yBAAyB,CAE1C,qCAAG,CACD,KAAK,CAAE,IAAI,CACX,UAAU,CAAE,WAAW,CACvB,WAAW,CAAE,iBAAe,CAC5B,YAAY,CAAE,iBAAe,CAK/B,2CAAG,CACD,KAAK,CAAE,IAAI,CAEX,WAAW,CAAE,qBAAqB,CAClC,YAAY,CAAE,qBAAqB,CAIvC,yCAA6B,CAC3B,OAAO,CAAE,YAAY,CACrB,6CAAG,CACD,KAAK,CAAE,IAAI,CAEX,WAAW,CAAE,qBAAqB,CAClC,YAAY,CAAE,qBAAqB,CAIvC,qCAAyB,CACvB,OAAO,CAAE,KAAK,CAGhB,mCAAuB,CACrB,KAAK,CZ/U4B,OAAW,CYiV5C,2DAAuB,CACrB,KAAK,CAAE,IAAI,CACX,OAAO,CAAE,YAAY,CACrB,SAAS,CAAE,IAAI,CAGjB,2DAAuB,CACrB,KAAK,CAAE,IAAI,CACX,OAAO,CAAE,YAAY,CACrB,SAAS,CAAE,IAAI,CAInB,oCAAsB,CACpB,KAAK,C1E1TmB,OAAI,C0E2T5B,UAAU,CAAE,MAAM,CAGpB,qCAAuB,CACrB,QAAQ,CAAE,MAAM,CAChB,aAAa,CAAE,QAAQ,CACvB,WAAW,CAAE,MAAM,CAGrB,+BAAiB,CACf,KAAK,CAAE,IAAI,CAGb,+BAAiB,CACf,KAAK,CAAE,KAAK,CAGd,gCAAkB,CAChB,KAAK,CAAE,KAAK,CAMd,2DAAiB,CACf,YAAY,CAAE,iBAAe,CAG/B,+CAAS,CAEP,OAAO,CAAE,KAAK,CASlB,oBAAgB,CACd,KAAK,CAAE,IAAI,CACX,YAAY,CAAE,KAAK,CAInB,mBAAY,ChF/Sd,kBAAkB,CAAE,iBAAW,CACvB,UAAU,CAAE,iBAAW,CgFmT3B,oBAAI,CACF,OAAO,CAAE,oBAAoB,CAMjC,mDAAkB,CAChB,KAAK,CAAE,IAAI,CAGb,mDAAkB,CAChB,KAAK,CAAE,IAAI,CAGb,yEAA6B,CAC3B,QAAQ,CAAE,MAAM,CAChB,aAAa,CAAE,QAAQ,CACvB,WAAW,CAAE,MAAM,CAOzB,eAAe,CACb,MAAM,CAAE,IAAI,CAEZ,6CAAiC,CAC/B,YAAY,CAAE,IAAI,CAItB,sBAAsB,CACpB,WAAW,CAAE,eAAe,CAC5B,OAAO,CAAE,CAAC,CACV,OAAO,CAAE,IAAI,CACb,MAAM,CAAE,CAAC,CACT,QAAQ,CAAE,MAAM,CAIlB,mBAAmB,CACjB,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,GAAG,CAAE,CAAC,CACN,IAAI,CAAE,CAAC,CACP,OAAO,CAAE,CAAC,CACV,UAAU,CnF0PkB,OAAY,CmFzPxC,OAAO,CAAE,IAAI,CtE1Ib,kBAAwC,CsE2IjB,GAAG,CtE3I1B,qBAAwC,CC9Sb,GAAuB,CD8SlD,aAAwC,CsE2IjB,GAAG,CAE1B,+CAA2B,CACzB,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,MAAM,CAAE,IAAI,CACZ,UAAU,CAAE,MAAM,CAClB,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,CAAC,CACN,IAAI,CAAE,CAAC,CACP,MAAM,CAAE,CAAC,CACT,KAAK,CAAE,CAAC,CAER,iDAAC,CACC,OAAO,CAAE,GAAG,CAMlB,oBAAoB,CAClB,KAAK,CAAE,IAAI,CAEX,gCAAW,CACT,KAAK,CAAE,IAAI,CAOT,0HAAQ,CACN,GAAG,CAAE,IAAI,CACT,OAAO,CAAE,CAAC,CAKd,sDAAQ,CFrZV,OAAO,CAAE,EAAE,CACX,QAAQ,CAAE,QAAQ,CAClB,gBAAgB,CjFsnBY,OAAM,CiFrnBlC,OAAO,CAAE,CAAC,CACV,WAAW,CAAE,WAAkB,C9EI/B,kBAAkB,CAAE,yCAAW,CACvB,UAAU,CAAE,yCAAW,CgF8Y3B,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,GAAG,CACX,GAAG,CAAE,CAAC,CAMZ,uBAAuB,CACrB,MAAM,CAAE,OAAO,CAIjB,QAAQ,CACN,WAAW,CAAE,SAAS,CAGxB,YAAY,CACV,WAAW,CAAE,SAAS,CAItB,yBAAgB,CACd,MAAM,CAAE,OAAO,ChF5ajB,kBAAkB,CAAE,wCAAO,CACnB,UAAU,CAAE,wCAAO,CgFib3B,0BAAgB,CACd,MAAM,CAAE,OAAO,ChFnbjB,kBAAkB,CAAE,uCAAO,CACnB,UAAU,CAAE,uCAAO,CgFybzB,+BAAO,CACL,OAAO,CAAE,OAAO,CAChB,WAAW,CAAE,qBAAqB,CAClC,WAAW,CAAE,IAAI,CACjB,KAAK,CnFuKmB,OAAY,CmFtKpC,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,GAAG,CAMhB,6BAA8B,CAC5B,WAAW,CAAE,SAAS,CAiBxB,qBAAqB,CACnB,UAAU,CAAE,MAAM,CAGpB,oBAAoB,CAClB,KAAK,C1E9iBuB,OAAO,C0EijBrC,wBAAwB,CACtB,KAAK,CnFqJuB,OAAM,CmFlJpC,qBAAqB,CACnB,KAAK,C1EvhBuB,OAAK,C0E0hBnC,mBAAmB,CACjB,KAAK,CZzlBc,OAAa,CY6lBlC,cAAc,CACZ,MAAM,CAAE,gBAAgB,CAMpB,0EAA0B,CACxB,KAAK,CnFsBiB,OAAc,CmFjBtC,sDAAQ,CACN,OAAO,CAAE,iBAAiB,CAC1B,OAAO,CAAE,YAAY,CACrB,MAAM,CAAE,oBAAoB,CAC5B,MAAM,CAAE,uBAAuB,CAC/B,MAAM,CAAE,eAAe,CACvB,KAAK,CZxlB0B,OAAW,CYylB1C,KAAK,CAAE,IAAI,CACX,UAAU,CAAE,qDAAqD,CACjE,cAAc,CAAE,GAAG,CAIvB,oDAAwB,CACtB,UAAU,CAAE,qBAAqB,CAGnC,oDAAwB,CACtB,UAAU,CAAE,iBAAiB,CAG/B,wDAA4B,CAC1B,UAAU,CAAE,iBAAgB,CAG9B,qDAAyB,CACvB,UAAU,CAAE,iBAAe,CAG7B,mDAAuB,CACrB,UAAU,CAAE,iBAAuB,CAGrC,4CAAgB,CACd,YAAY,CAAE,GAAG,CAGnB,mDAAuB,CACrB,WAAW,CAAE,GAAG,CAMtB,mBAAmB,CACjB,UAAU,CAAE,IAAI,CAChB,cAAc,CAAE,IAAI,CAGpB,8BAAU,CACR,WAAW,CnF7lBW,yDAA6D,CmF8lBnF,UAAU,CAAE,mBAAiB,CAC7B,OAAO,CAAE,IAAI,CACb,KAAK,CAAE,IAAI,CACX,aAAa,CAAE,IAAI,CACnB,WAAW,CAAE,0BAA0B,CACvC,QAAQ,CAAE,MAAM,CtEhVlB,kBAAwC,CsEiVf,GAAG,CtEjV5B,qBAAwC,CC9Sb,GAAuB,CD8SlD,aAAwC,CsEiVf,GAAG,CAE1B,qCAAQ,CACN,OAAO,CAAE,EAAE,CACX,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,CAAC,CACN,IAAI,CAAE,CAAC,CACP,YAAY,CAAE,KAAK,CACnB,YAAY,CAAE,WAAW,CACzB,YAAY,CAAE,2CAAyC,CACvD,MAAM,CAAE,SAAS,CAInB,qCAAM,CACJ,aAAa,CAAE,IAAI,CAIrB,+CAAgB,CACd,UAAU,CAAE,kBAAuB,CAGrC,8CAAe,CACb,aAAa,CAAE,IAAI,CAEnB,sEAAuB,CACrB,OAAO,CAAE,YAAY,CACrB,MAAM,CAAE,oBAAoB,CAC5B,MAAM,CAAE,uBAAuB,CAC/B,MAAM,CAAE,eAAe,CACvB,UAAU,CAAE,oBAAoB,CAEhC,6EAAQ,CACN,OAAO,CAAE,iBAAiB,CAG5B,4EAAO,CACL,KAAK,C1ErqBe,OAAO,C0EyqB/B,iDAAE,CACA,OAAO,CAAE,YAAY,CACrB,WAAW,CAAE,IAAI,CACjB,aAAa,CAAE,CAAC,CAGhB,wEAAsB,CACpB,WAAW,CAAE,GAAG,CAMtB,+CAAgB,CACd,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,MAAM,CAKvB,qCAAiB,CACf,aAAa,CAAE,IAAI,CAMvB,eAAe,CACb,KAAK,CZnvBQ,OAAW,CYsvB1B,oBAAoB,CAClB,KAAK,CnFPuB,OAAM,CmFUpC,oBAAoB,CAClB,KAAK,C1EnrBuB,OAAK,C0EsrBnC,mBAAmB,CACjB,KAAK,C1EttBuB,OAAO,C0E0tBrC,iBAAiB,CACf,OAAO,CAAE,IAAI,CACb,KAAK,CZtuByB,OAAa,CYuuB3C,MAAM,CAAE,IAAI,CAGd,0BAA0B,CACxB,KAAK,C1EpsBuB,OAAK,C0EqsBjC,OAAO,CAAE,YAAY,CAGvB,0BAA0B,CACxB,KAAK,C1ExsBuB,OAAI,C0EysBhC,OAAO,CAAE,YAAY,CAGvB,wBAAwB,CACtB,KAAK,C1E5sBuB,OAAK,C0E6sBjC,OAAO,CAAE,YAAY,CAGvB,2BAA2B,CACzB,KAAK,CnFpJuB,OAAc,CmFqJ1C,OAAO,CAAE,YAAY,CAGvB,6BAA6B,CAC3B,KAAK,C1EptBuB,IAAe,C0EqtB3C,OAAO,CAAE,YAAY,CAGvB,2BAA2B,CACzB,KAAK,CnF/QuB,IAAM,CmFgRlC,OAAO,CAAE,YAAY,CAIvB,+CAAS,CACP,WAAW,CAAE,mBAAyB,CACtC,gBAAgB,C1E/uBY,OAAO,C2Ea/B,gBAAY,CAAE,64BAAgC,CA2B9C,eAAe,CAAE,IAAI,CA3BrB,gBAAY,CAAE,qIAAgC,CAA9C,gBAAY,CAAE,wIAAgC,CAE9C,gBAAY,CAAE,gIAAO,CD0uBzB,eAAe,CAAE,SAAS,CAC1B,iBAAiB,CAAE,yBAAyB,CAC5C,cAAc,CAAE,yBAAyB,CACzC,aAAa,CAAE,yBAAyB,CACxC,SAAS,CAAE,yBAAyB,CAWtC,uBAAuB,CACrB,KAAK,C1EtvBuB,OAAO,C0EyvBrC,uBAAuB,CACrB,KAAK,C1EzvBuB,OAAO,C0E4vBrC,uBAAuB,CACrB,KAAK,C1E5vBuB,OAAO,C0E+vBrC,uBAAuB,CACrB,KAAK,C1E/vBuB,OAAO,C0EkwBrC,uBAAuB,CACrB,KAAK,C1ElwBuB,OAAO,C0EqwBrC,uBAAuB,CACrB,KAAK,C1ErwBuB,OAAO,C0EwwBrC,uBAAuB,CACrB,KAAK,C1ExwBuB,OAAO,C0E2wBrC,uBAAuB,CACrB,KAAK,C1E3wBuB,OAAO,C0E8wBrC,uBAAuB,CACrB,KAAK,C1E9wBuB,OAAO,C0EixBrC,uBAAuB,CACrB,KAAK,C1EjxBuB,OAAO,C0EoxBrC,uBAAuB,CACrB,KAAK,C1EpxBuB,OAAO,C0EyxBrC,cAAc,CACZ,YAAY,CAAE,GAAG,CACjB,MAAM,CAAE,SAAS,CACjB,MAAM,CAAE,YAAY,CACpB,MAAM,CAAE,IAAI,CAGd,sBAAsB,CACpB,KAAK,CnFzIuB,OAAM,CmF4IpC,qBAAqB,CACnB,KAAK,CnFxPuB,OAAc,CmF2P5C,sBAAsB,CACpB,KAAK,C1E1zBuB,OAAI,C0E6zBlC,mBAAmB,CACjB,KAAK,C1E9zBuB,OAAI,C0Ei0BlC,kBAAkB,CAChB,KAAK,CnFpQuB,OAAc,CmFuQ5C,kBAAkB,CAChB,KAAK,C1Er0BuB,OAAK,C0Ew0BnC,sBAAsB,CACpB,KAAK,C1Ex2BuB,OAAO,C0E22BrC,sBAAsB,CACpB,KAAK,C1E/0BuB,OAAK,C0Eo1BnC,0BAA0B,CACxB,YAAY,CAAE,kBAAgB,CAC9B,KAAK,C1Ep1BuB,OAAK,C0Eu1BnC,0BAA0B,CACxB,YAAY,CAAE,kBAAkB,CAChC,KAAK,CnF5RuB,OAAc,CmF+R5C,yBAAyB,CACvB,YAAY,CAAE,kBAAe,CAC7B,KAAK,C1E/1BuB,OAAI,C0Ek2BlC,uBAAuB,CACrB,YAAY,CAAE,kBAAiB,CAC/B,KAAK,CnF3LuB,OAAM,CmF8LpC,2BAA2B,CACzB,YAAY,CAAE,kBAAwB,CACtC,KAAK,CZt6Bc,OAAa,CY06BlC,4BAA4B,CAC1B,gBAAgB,CZn5BqB,OAAW,CYo5BhD,KAAK,CnFlauB,IAAM,CmFmalC,WAAW,CAAE,gBAAgB,ChFvzB7B,kBAAkB,CAAE,8BAAW,CACvB,UAAU,CAAE,8BAAW,CgFyzB/B,sDAA2B,CACzB,gBAAgB,C1En3BU,OAAK,C0Es3BjC,sDAA2B,CACzB,gBAAgB,CnF1TU,OAAc,CmF6T1C,qDAA0B,CACxB,gBAAgB,C1E53BU,OAAI,C0E+3BhC,mDAAwB,CACtB,gBAAgB,CnFvNU,OAAM,CmF0NlC,uDAA4B,CAC1B,gBAAgB,CZj8BC,OAAa,CYs8BlC,iBAAiB,CACf,OAAO,CAAE,eAAe,CACxB,cAAc,CAAE,IAAI,CAKpB,mEAAM,CACJ,MAAM,CAAE,MAAM,CAEd,yEAAE,CACA,cAAc,CAAE,UAAU,CAMhC,mBAAmB,CACjB,UAAU,CAAE,WAAW,CACvB,OAAO,CAAE,YAAY,CACrB,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,GAAG,CACX,UAAU,CAAE,iBAAqB,CACjC,aAAa,CAAE,iBAAqB,CACpC,gBAAgB,CAAE,OAAO,CACzB,QAAQ,CAAE,QAAQ,CAClB,SAAS,CAAE,IAAI,CACf,WAAW,CnF74Ba,oDAAiB,CmF+4BzC,8CAA4B,CAC1B,gBAAgB,C1En8BU,OAAO,C0Eo8BjC,YAAY,CZ78BuB,OAAW,CYg9BhD,gDAA8B,CAC5B,gBAAgB,CnF1pBuB,OAAc,CmF2pBrD,YAAY,CZj9BuB,OAAK,CYk9BxC,UAAU,CAAE,sFAMX,CAGH,6CAA2B,CACzB,gBAAgB,CAAE,OAAwB,CAC1C,YAAY,CZ79BuB,OAAK,CY89BxC,UAAU,CAAE,oFAMX,CAGH,4CAA0B,CACxB,YAAY,C1Ej9Bc,OAAO,C0Eo9BnC,gDAA8B,CAC5B,gBAAgB,CnF1YU,OAAc,CmF6Y1C,iDAA+B,CAC7B,gBAAgB,CZnhCL,OAAW,CYshCxB,0CAAwB,CACtB,YAAY,CAAE,MAAM,CACpB,WAAW,CAAE,IAAI,CACjB,YAAY,CAAE,IAAI,CAElB,gDAAO,CACL,OAAO,CAAE,MAAM,CACf,gBAAgB,CnFxZQ,OAAc,CmFyZtC,KAAK,CnF5TmB,OAAa,CmF6TrC,OAAO,CAAE,OAAO,CAChB,QAAQ,CAAE,QAAQ,CAClB,IAAI,CAAE,IAAI,CACV,GAAG,CAAE,IAAI,CACT,WAAW,CnF19BS,yDAA6D,CamRrF,kBAAwC,CsEwsBb,GAAG,CtExsB9B,qBAAwC,CC9Sb,GAAuB,CD8SlD,aAAwC,CsEwsBb,GAAG,CAK5B,yDAAO,CACL,OAAO,CAAE,WAAW,CACpB,gBAAgB,CZ3iCP,OAAW,CY4iCpB,KAAK,CnFvYmB,OAAc,CmFwYtC,OAAO,CAAE,OAAO,CAChB,QAAQ,CAAE,QAAQ,CAClB,IAAI,CAAE,GAAG,CACT,GAAG,CAAE,IAAI,CACT,WAAW,CnFx+BS,yDAA6D,CamRrF,kBAAwC,CsEstBb,GAAG,CtEttB9B,qBAAwC,CC9Sb,GAAuB,CD8SlD,aAAwC,CsEstBb,GAAG,CAOhC,4BAA4B,CAC1B,KAAK,CZhjCc,OAAa,CYmjClC,2BAA2B,CACzB,KAAK,CnF9UuB,OAAM,CmFiVpC,4BAA4B,CAC1B,KAAK,CZlkCQ,OAAW,CYskC1B,cAAc,CACZ,KAAK,CZxiCyB,OAAa,CYyiC3C,gBAAgB,CZriCqB,OAAK,CYsiC1C,WAAW,CnFhgCa,yDAA6D,CmFigCrF,OAAO,CAAE,OAAO,CtE9uBhB,kBAAwC,CsE+uBjB,GAAG,CtE/uB1B,qBAAwC,CC9Sb,GAAuB,CD8SlD,aAAwC,CsE+uBjB,GAAG,ChFj9B1B,kBAAkB,CAAE,0BAAO,CACnB,UAAU,CAAE,0BAAO,CgFu9B3B,eAAQ,CAEN,OAAO,CAAE,IAAkB,CAE3B,8BAAc,CACZ,KAAK,CZvjCqB,OAAU,CYwjCpC,gBAAgB,CZzjCU,OAAa,CY8jC7C,2BAA2B,CACzB,gBAAgB,CZ5jCqB,OAAW,CY+jClD,6BAA6B,CAC3B,kBAAkB,CZhkCmB,OAAW,CYmkClD,8BAA8B,CAC5B,mBAAmB,CZpkCkB,OAAW,CYukClD,4BAA4B,CAC1B,iBAAiB,CZxkCoB,OAAW,CY6kChD,2BAAO,CACL,KAAK,CnFxwBkC,OAAK,CmF4wBhD,gBAAiB,CACf,kBAAkB,CAAE,eAAe,CACnC,eAAe,CAAE,eAAe,CAChC,aAAa,CAAE,eAAe,CAC9B,UAAU,CAAE,eAAe,CAI7B,gBAAgB,CACd,OAAO,CAAE,IAAI,CACb,UAAU,CAAE,KAAK,CACjB,QAAQ,CAAE,QAAQ,CAClB,gBAAgB,CZhmCc,OAAU,CYimCxC,QAAQ,CAAE,MAAM,CtEryBhB,kBAAwC,CsEsyBjB,GAAG,CtEtyB1B,qBAAwC,CC9Sb,GAAuB,CD8SlD,aAAwC,CsEsyBjB,GAAG,CAE1B,+BAAc,CACZ,aAAa,CAAE,CAAC,CAEhB,kCAAE,CACA,SAAS,CAAE,KAAK,CAEhB,wUAAW,CACT,WAAW,CAAE,IAAI,CAMvB,8CAA+B,CAC7B,aAAa,CAAE,CAAC,CAKpB,oBAAqB,CACnB,KAAK,C1E7lCuB,OAAO,C0E8lCnC,WAAW,CAAE,IAAI,CAGnB,mBAAoB,CAClB,KAAK,C1E/lCuB,OAAO,C0EgmCnC,WAAW,CAAE,IAAI,CAGnB,qBAAsB,CACpB,KAAK,CnFhcuB,OAAa,CmFiczC,WAAW,CAAE,IAAI,CAGnB,eAAgB,CACd,KAAK,CnFliBuB,OAAc,CmFqiB5C,eAAgB,CACd,KAAK,CnF3lBuB,OAAc,CmF8lB5C,gBAAiB,CACf,KAAK,C1EpoCuB,OAAO,C0EqoCnC,WAAW,CAAE,IAAI,CAGnB,iBAAkB,CAChB,KAAK,C1EznCuB,OAAO,C0E4nCrC,aAAc,CACZ,KAAK,CnFzduB,OAAY,CmF0dxC,WAAW,CAAE,IAAI,CAGnB,cAAe,CACb,KAAK,CnF3duB,OAAa,CmF4dzC,WAAW,CAAE,IAAI,CAIjB,2GAAiB,CACf,KAAK,CZhqC8B,OAAK,CYiqCxC,MAAM,CAAE,OAAO,CAKnB,gBAAgB,CACd,OAAO,CAAE,KAAK,CAIhB,QAAQ,CACN,aAAa,CAAE,GAAG,CAElB,UAAC,ChFjlCD,kBAAkB,CAAE,oBAAW,CACvB,UAAU,CAAE,oBAAW,CgFklC7B,WAAW,CAAE,KAAK,CAElB,gBAAO,CACL,KAAK,CnF92BgC,OAAK,CmFg3B1C,oBAAG,CACD,YAAY,CZtrCmB,OAAK,CY0rCxC,gBAAO,CACL,eAAe,CAAE,IAAI,CAErB,uBAAM,CACJ,KAAK,CnFx4B8B,OAAc,CmF24BnD,oBAAG,CACD,YAAY,CZ3tCC,OAAa,CYguChC,UAAC,CACC,YAAY,CAAE,GAAG,CAInB,uBAAc,CACZ,MAAM,CAAE,eAAe,CACvB,KAAK,CAAE,KAAK,CAGd,sBAAa,CAGX,OAAO,CAAE,QAAQ,CACjB,WAAW,CAAE,IAAI,CAEjB,yCAAkB,CAChB,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,OAAO,CAAE,YAAY,CACrB,KAAK,CAAE,IAAI,CAKf,4DAA2C,CACzC,OAAO,CAAE,CAAC,CACV,UAAU,CAAE,MAAM,CAGpB,6BAAoB,CAClB,MAAM,CAAE,OAAO,CAGjB,gEAA+C,CAC7C,OAAO,CAAE,IAAI,CAEb,8EAAM,ChF/oCR,kBAAkB,CAAE,mBAAW,CACvB,UAAU,CAAE,mBAAW,CgFmpC/B,wEAAuD,CACrD,OAAO,CAAE,YAAY,CACrB,UAAU,CAAE,IAAI,CAChB,aAAa,CAAE,IAAI,CACnB,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,iBAAe,CACvB,YAAY,CAAE,GAAG,CACjB,eAAe,CAAE,yBAAyB,ChF3pC5C,kBAAkB,CAAE,2BAAW,CACvB,UAAU,CAAE,2BAAW,CgF4pC7B,WAAW,CAAE,YAAY,CAG3B,gCAAuB,CACrB,MAAM,CAAE,OAAO,CAGjB,qBAAY,CACV,SAAS,CAAE,IAAI,CAKf,gCAAc,CACZ,KAAK,CZ5wCqB,OAAa,CYkxC7C,QAAQ,ChFvrCN,kBAAkB,CAAE,0BAAO,CACnB,UAAU,CAAE,0BAAO,CgFyrC3B,eAAM,CACJ,gBAAgB,CZlxCmB,OAAK,CYmxCxC,KAAK,CZvxCuB,OAAa,CY0xC3C,cAAK,CACH,WAAW,CnFjvCW,yDAA6D,CmFuvCrF,4BAAE,CACA,MAAM,CAAE,IAAI,CAEZ,2CAAkB,CAEhB,OAAO,CAAE,KAAK,CAMpB,UAAU,CACR,QAAQ,CAAE,QAAQ,CAClB,MAAM,CAAE,CAAC,CACT,IAAI,CAAE,CAAC,CACP,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,CAAC,CACT,UAAU,CAAE,kBAAgB,CAE5B,YAAC,CACC,WAAW,CnF3wCW,yDAA6D,CmF4wCnF,KAAK,CnF5qBqB,OAAW,CmF8qBrC,kBAAO,CACL,KAAK,CnFh/BgC,OAAK,CmFi/B1C,eAAe,CAAE,IAAI,CAM3B,oBAAoB,CAClB,OAAO,CAAE,KAAK,CAEd,qCAAgB,CACd,YAAY,CAAE,CAAC,CACf,aAAa,CAAE,CAAC,CAKpB,cAAc,CACZ,QAAQ,CAAE,QAAQ,CAClB,MAAM,CAAE,CAAC,CACT,KAAK,CAAE,IAAI,CACX,OAAO,CAAE,OAAO,CAChB,UAAU,CAAE,MAAM,CAIpB,eAAe,CACb,QAAQ,CAAE,QAAQ,CAClB,IAAI,CAAE,CAAC,CACP,MAAM,CAAE,IAAI,CACZ,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,aAAa,CAAE,CAAC,CAIlB,oBAAoB,CAClB,OAAO,CAAE,KAAK,CACd,KAAK,CAAE,IAAI,CAEX,0CAAqB,CACnB,OAAO,CAAE,kBAAkB,CAG7B,0CAAqB,CACnB,OAAO,CAAE,kBAAkB,CAK/B,kBAAkB,CAChB,WAAW,CAAE,OAAO,CACpB,UAAU,CAAE,qBAAqB,CACjC,OAAO,CAAE,cAAc,CAEvB,0CAAuB,CACrB,KAAK,C1El2CqB,OAAO,C0Em2CjC,MAAM,CAAE,aAAa,CACrB,MAAM,CAAE,gBAAgB,CACxB,MAAM,CAAE,QAAQ,CAOpB,uBAOC,CANC,EAAG,CACD,mBAAmB,CAAE,GAAG,CAE1B,IAAK,CACH,mBAAmB,CAAE,SAAS,EAGlC,oBAOC,CANC,EAAG,CACD,mBAAmB,CAAE,GAAG,CAE1B,IAAK,CACH,mBAAmB,CAAE,SAAS,EAGlC,mBAOC,CANC,EAAG,CACD,mBAAmB,CAAE,GAAG,CAE1B,IAAK,CACH,mBAAmB,CAAE,SAAS,EAGlC,eAOC,CANC,EAAG,CACD,mBAAmB,CAAE,GAAG,CAE1B,IAAK,CACH,mBAAmB,CAAE,SAAS,EEv7ClC,WAAW,CACT,UAAU,CAAE,MAAM,CAClB,OAAO,CAAE,CAAC,CAMZ,cAAc,CACZ,QAAQ,CAAE,KAAK,CACf,GAAG,CAAE,CAAC,CACN,IAAI,CAAE,CAAC,CACP,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,GAAG,CD2DP,gBAAY,CAAE,qhBAAgC,CA2B9C,eAAe,CAAE,IAAI,CA3BrB,gBAAY,CAAE,6FAAgC,CAA9C,gBAAY,CAAE,gDAAgC,CAA9C,gBAAY,CAAE,mDAAgC,CAE9C,gBAAY,CAAE,+CAAO,CC1DzB,sBAAS,CDwDL,gBAAY,CAAE,qhBAAgC,CA2B9C,eAAe,CAAE,IAAI,CA3BrB,gBAAY,CAAE,6FAAgC,CAA9C,gBAAY,CAAE,gDAAgC,CAA9C,gBAAY,CAAE,mDAAgC,CAE9C,gBAAY,CAAE,+CAAO,CCtDzB,qBAAQ,CDoDJ,gBAAY,CAAE,qhBAAgC,CA2B9C,eAAe,CAAE,IAAI,CA3BrB,gBAAY,CAAE,6FAAgC,CAA9C,gBAAY,CAAE,gDAAgC,CAA9C,gBAAY,CAAE,mDAAgC,CAE9C,gBAAY,CAAE,+CAAO,CCjD3B,UAAU,CACR,QAAQ,CAAE,QAAQ,CAClB,OAAO,CAAE,IAAI,CACb,gBAAgB,CrFssBY,OAAa,CqFrsBzC,KAAK,CdKgC,OAAW,CcJhD,GAAG,CAAE,CAAC,CACN,MAAM,CAAE,CAAC,CACT,IAAI,CAAE,CAAC,CACP,KAAK,CAAE,CAAC,CACR,WAAW,CAAE,OAAO,CAEpB,wDAA+C,CAC7C,MAAM,CAAE,IAAI,CAGd,2BAAgB,CACd,QAAQ,CAAE,KAAK,CACf,IAAI,CAAE,GAAG,CACT,GAAG,CAAE,GAAG,CACR,UAAU,CAAE,MAAM,CAClB,SAAS,CAAE,KAAK,CAChB,OAAO,CAAE,IAAI,CxE8Sf,cAAwC,CAAE,qBAAM,CAAhD,aAAwC,CAAE,qBAAM,CAAhD,iBAAwC,CAAE,qBAAM,CAAhD,SAAwC,CAAE,qBAAM,CwE1ShD,2BAAgB,CACd,QAAQ,CAAE,QAAQ,CAClB,MAAM,CAAE,CAAC,CACT,KAAK,CAAC,IAAI,CAEV,qDAAyB,CACvB,OAAO,CAAE,MAAM,CAGjB,0CAAc,CACZ,aAAa,CAAE,CAAC,CAMtB,0BAA+B,CAG3B,8BAAkB,CAChB,MAAM,CAAE,QAAQ,CAGlB,0BAAe,CACb,OAAO,CAAE,IAAI,CAGf,iCAAsB,CACpB,WAAW,CAAE,IAAI,EAUrB,sCAA0B,CACxB,aAAa,CAAE,iBAAsB,CAGvC,mBAAO,CACL,UAAU,CAAE,KAAK,CACjB,OAAO,CAAE,aAAa,CAEtB,4CAAwB,CACtB,SAAS,CAAE,IAAI,CACf,WAAW,CrFJS,oDAAiB,CqFKrC,MAAM,CAAE,YAAY,CACpB,aAAa,CAAE,iBAAsB,CACrC,WAAW,CAAE,IAAI,CAIrB,2BAAiB,CACf,aAAa,CAAE,IAAI,CAGrB,kBAAO,CACL,UAAU,CAAE,0BAA6B,CAK3C,2BAAgB,CACd,QAAQ,CAAE,QAAQ,CAClB,OAAO,CAAE,YAAY,CACrB,QAAQ,CAAE,MAAM,CAChB,MAAM,CAAE,YAAY,CACpB,UAAU,CAAE,0BAA0B,CAEtC,kCAAQ,CACN,OAAO,CAAE,OAAO,CAChB,WAAW,CAAE,qBAAqB,CAClC,SAAS,CAAE,IAAI,CACf,KAAK,CrFugBmB,OAAc,CqFtgBtC,QAAQ,CAAE,QAAQ,CAClB,MAAM,CAAE,IAAI,CACZ,KAAK,CAAE,IAAI,CACX,OAAO,CAAE,EAAE,ClFFf,kBAAkB,CAAE,6CAAW,CACvB,UAAU,CAAE,6CAAW,CkFG3B,WAAW,CAAE,kBAAkB,CAC/B,SAAS,CAAE,eAAc,CACzB,OAAO,CAAE,CAAC,CACV,OAAO,CAAE,IAAI,CACb,cAAc,CAAE,MAAM,CACtB,eAAe,CAAE,MAAM,CACvB,WAAW,CAAE,MAAM,CAInB,qCAAG,CACD,YAAY,CrF0MuB,OAAc,CaGvD,cAAwC,CAAE,eAAM,CAAhD,MAAwC,CAAE,eAAM,CwEzM5C,wCAAQ,ClFXZ,wBAAwB,CkFYS,IAAK,ClFX9B,gBAAgB,CkFWS,IAAK,CAChC,SAAS,CAAE,WAAU,CACrB,OAAO,CAAE,CAAC,CAId,qDAAyB,CAErB,YAAK,CAAE,GAAG,CACV,YAAK,CAAE,KAAK,CACZ,YAAK,CrFokBiB,OAAa,CqFlkBrC,OAAO,CAAE,YAAY,CACrB,WAAW,CAAE,GAAG,CxE2LpB,cAAwC,CAAE,gBAAM,CAAhD,MAAwC,CAAE,gBAAM,CV5NhD,kBAAkB,CAAE,iBAAW,CACvB,UAAU,CAAE,iBAAW,CkFqC3B,oFAAgC,CAC9B,MAAM,CAAE,KAAK,CAGf,qFAAiC,CAC/B,MAAM,CAAE,KAAK,CAoBrB,eAAe,CACb,MAAM,CAAE,KAAK,CACb,aAAa,CAAE,iBAAoB,CACnC,QAAQ,CAAE,QAAQ,CAElB,sBAAQ,CACN,OAAO,CAAE,EAAE,CACX,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,QAAQ,CAAE,QAAQ,CAClB,UAAU,CAAE,kCAAoE,CAChF,iBAAiB,CAAE,SAAS,CAC5B,mBAAmB,CAAE,GAAG,CxEiJ1B,cAAwC,CAAE,cAAM,CAAhD,MAAwC,CAAE,cAAM,CwE7IhD,kCAAkB,CxE6IlB,cAAwC,CAAE,oBAAM,CAAhD,aAAwC,CAAE,oBAAM,CAAhD,iBAAwC,CAAE,oBAAM,CAAhD,SAAwC,CAAE,oBAAM,CwEzIhD,oCAAoB,CAClB,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,IAAI,CACX,mBAAmB,CAAE,aAAa,CAElC,sDAAiB,CACf,QAAQ,CAAE,QAAQ,CAClB,UAAU,CAAE,MAAM,CAClB,GAAG,CAAE,CAAC,CACN,IAAI,CAAE,CAAC,CAGT,uDAAkB,CAChB,OAAO,CAAE,GAAG,CAGd,iEAA4B,CAC1B,QAAQ,CAAE,QAAQ,CAClB,IAAI,CAAE,KAAK,CACX,KAAK,CAAE,KAAK,CACZ,MAAM,CAAE,KAAK,CACb,GAAG,CAAE,IAAI,CAET,4FAA0B,CACxB,QAAQ,CAAE,QAAQ,CAClB,WAAW,CAAE,IAAI,CACjB,UAAU,CAAE,IAAI,CAChB,MAAM,CAAE,KAAK,CACb,KAAK,CAAE,KAAK,CACZ,OAAO,CAAE,GAAG,CACZ,OAAO,CAAE,CAAC,CxE2GhB,kBAAwC,CwE1GX,GAAG,CxE0GhC,qBAAwC,CC9Sb,GAAuB,CD8SlD,aAAwC,CwE1GX,GAAG,CAExB,gBAAK,CAAE,kBAAqB,CAG9B,2GAAgB,CACd,UAAU,CAAE,0BAA6B,CAG3C,kGAAO,CACL,OAAO,CAAE,EAAE,CACX,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,iBAAiB,CACxB,MAAM,CAAE,iBAAiB,CxE6FjC,kBAAwC,CwE5FT,GAAG,CxE4FlC,qBAAwC,CC9Sb,GAAuB,CD8SlD,aAAwC,CwE5FT,GAAG,CAExB,iBAAM,CAAE,SAAS,CACjB,mBAAQ,CAAE,OAAO,CACjB,gBAAK,CAAE,mBAAsB,CAQvC,0BAAU,CACR,QAAQ,CAAE,QAAQ,CAClB,UAAU,CAAE,IAAI,CAKlB,8BAAO,CACL,gBAAgB,CAAE,kCAAqC,CAKzD,4BAAO,CACL,gBAAgB,CAAE,gCAAmC,CAKvD,8BAAO,CACL,gBAAgB,CAAE,kCAAqC,CAKzD,kCAAO,CACL,gBAAgB,CAAE,sCAAyC,CAK7D,6BAAO,CACL,gBAAgB,CAAE,iCAAoC,CAKxD,iCAAO,CACL,gBAAgB,CAAE,qCAAwC,CAK9D,iBAAiB,CACf,WAAW,CAAE,IAAI,CACjB,cAAc,CAAE,IAAI,CAEpB,sBAAI,CACF,aAAa,CAAE,CAAC,CAIlB,4EAA4D,ClFhM5D,kBAAkB,CAAE,gCAAW,CACvB,UAAU,CAAE,gCAAW,CkFmM/B,kCAAgB,CACd,OAAO,CAAE,YAAY,CACrB,MAAM,CAAE,iBAAiB,CACzB,OAAO,CAAE,kBAAkB,CAC3B,SAAS,CAAE,KAAK,CAChB,UAAU,CAAE,KAAK,CACjB,QAAQ,CAAE,OAAO,CxEkBnB,kBAAwC,CwEjBf,IAAI,CxEiB7B,qBAAwC,CC9Sb,IAAuB,CD8SlD,aAAwC,CwEjBf,IAAI,ClFjN7B,kBAAkB,CAAE,0BAAO,CACnB,UAAU,CAAE,0BAAO,CkFmNzB,kDAAe,CACb,OAAO,CAAE,CAAC,CAIZ,8DAA2B,CACzB,OAAO,CAAE,CAAC,CACV,KAAK,CAAE,KAAK,CACZ,MAAM,CAAE,iBAAqB,CxEMjC,kBAAwC,CwELb,GAAG,CxEK9B,qBAAwC,CC9Sb,GAAuB,CD8SlD,aAAwC,CwELb,GAAG,ClFvN9B,kBAAkB,CAAE,mDAAW,CACvB,UAAU,CAAE,mDAAW,CU2N/B,cAAwC,CAAE,oBAAM,CAAhD,aAAwC,CAAE,oBAAM,CAAhD,iBAAwC,CAAE,oBAAM,CAAhD,SAAwC,CAAE,oBAAM,CwEF5C,WAAW,CAAE,wBAAwB,CACrC,QAAQ,CAAE,MAAM,CAChB,MAAM,CAAE,OAAO,CACf,OAAO,CAAE,YAAY,CACrB,gBAAgB,CrFiYQ,OAAY,CqFhYpC,UAAU,CAAE,WAAW,CAEvB,oEAAO,CACL,YAAY,CrF8OU,OAAc,CqF5OpC,uFAAkB,CAChB,KAAK,CrF2Oe,OAAc,CqFxOpC,wFAAmB,CxEZzB,cAAwC,CAAE,cAAM,CAAhD,MAAwC,CAAE,cAAM,CwEkB5C,wFAA2B,CACzB,WAAW,CAAE,qBAAqB,CAClC,OAAO,CAAE,OAAO,CAChB,WAAW,CAAE,IAAI,CACjB,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,GAAG,CACR,IAAI,CAAE,GAAG,CACT,MAAM,CAAE,IAAI,CACZ,KAAK,CAAE,IAAI,CACX,KAAK,CrFyXiB,OAAM,CqFxX5B,SAAS,CAAE,IAAI,CAIjB,yFAA0B,CACxB,QAAQ,CAAE,MAAM,CAChB,KAAK,CAAE,KAAK,CACZ,MAAM,CAAE,KAAK,CACb,QAAQ,CAAE,QAAQ,CAGlB,4GAAkB,CAChB,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,CAAC,CACN,IAAI,CAAE,CAAC,CACP,KAAK,CAAE,CAAC,CACR,MAAM,CAAE,IAAI,CACZ,KAAK,Cd1WiB,OAAa,Cc2WnC,UAAU,CAAE,kBAAiB,CAC7B,QAAQ,CAAE,MAAM,CAChB,WAAW,CAAE,iBAAiB,CAC9B,OAAO,CAAE,MAAM,CAEf,oIAAuB,CACrB,WAAW,CAAE,IAAI,CAKvB,iFAAkB,CAChB,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,IAAI,CACjB,UAAU,CAAE,iBAAoB,CAChC,KAAK,Cd1XmB,OAAa,CpEiG3C,kBAAkB,CAAE,mBAAW,CACvB,UAAU,CAAE,mBAAW,CkF4R3B,kFAAmB,ClF7RvB,kBAAkB,CAAE,iBAAW,CACvB,UAAU,CAAE,iBAAW,CU2N/B,cAAwC,CAAE,aAAM,CAAhD,MAAwC,CAAE,aAAM,CwEwEhD,sCAAoB,CAClB,QAAQ,CAAE,QAAQ,CAClB,OAAO,CAAE,YAAY,CACrB,KAAK,CAAE,KAAK,CACZ,MAAM,CAAE,IAAI,CACZ,MAAM,CAAE,IAAI,CACZ,aAAa,CAAE,IAAI,CACnB,gBAAgB,CAAE,WAAW,CAC7B,gBAAgB,CAAE,oEAAuE,CACzF,MAAM,CAAE,OAAO,CACf,UAAU,CAAE,yBAA4B,ClF9S1C,kBAAkB,CAAE,yBAAW,CACvB,UAAU,CAAE,yBAAW,CkF+S7B,WAAW,CAAE,UAAU,CAEvB,4CAAQ,CACN,OAAO,CAAE,GAAG,CACZ,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,KAAK,CACZ,MAAM,CAAE,IAAI,CACZ,IAAI,CAAE,CAAC,CACP,GAAG,CAAE,CAAC,CACN,gBAAgB,CAAE,8DAAiE,ClFzTvF,kBAAkB,CAAE,yBAAW,CACvB,UAAU,CAAE,yBAAW,CkF0T3B,WAAW,CAAE,OAAO,CAGtB,4CAAQ,CACN,UAAU,CAAE,yBAA4B,CAExC,kDAAO,CACL,OAAO,CAAE,CAAC,CAId,+CAAU,CACR,cAAc,CAAE,IAAI,CAIxB,wCAAsB,CACpB,OAAO,CAAE,IAAI,CAKjB,cAAc,CAEZ,QAAQ,CAAE,QAAQ,CAClB,MAAM,CAAE,MAAM,CACd,MAAM,CAAE,KAAK,CACb,KAAK,CAAE,KAAK,CACZ,cAAc,CAAE,IAAI,CAEpB,mCAAoB,CAClB,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,CAAC,CACN,IAAI,CAAE,CAAC,CACP,KAAK,CAAE,CAAC,CACR,MAAM,CAAE,CAAC,CAIX,iCAAkB,CAChB,OAAO,CAAE,GAAG,CAId,oCAAqB,CACnB,OAAO,CAAE,EAAE,CAIb,qCAAsB,CACpB,OAAO,CAAE,EAAE,CAIb,oCAAqB,CACnB,OAAO,CAAE,EAAE,CAEX,sDAAiB,CACf,OAAO,CAAE,IAAI,CAMnB,iBAAiB,CACf,QAAQ,CAAE,QAAQ,CAClB,IAAI,CAAE,CAAC,CACP,GAAG,CAAE,CAAC,CACN,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,cAAc,CAAE,IAAI,CAEpB,qBAAG,CACD,cAAc,CAAE,IAAI,CAGtB,kCAAgB,CACd,OAAO,CAAE,CAAC,CACV,QAAQ,CAAE,QAAQ,CAClB,MAAM,CAAE,CAAC,CACT,KAAK,CAAE,CAAC,CACR,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CAGd,gCAAc,CACZ,OAAO,CAAE,CAAC,CACV,MAAM,CAAE,KAAK,CACb,KAAK,CAAE,IAAI,CAGb,iCAAe,CACb,OAAO,CAAE,CAAC,CACV,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,KAAK,CACV,IAAI,CAAE,IAAI,CACV,MAAM,CAAE,KAAK,CACb,KAAK,CAAE,KAAK,CAKhB,4BAA4B,CAC1B,gBAAgB,CAAE,iCAAoC,CAEtD,2CAAc,CACZ,aAAa,CAAE,GAAG,CAClB,cAAc,CAAE,IAAI,CAItB,+BAAE,CACA,KAAK,CAAE,IAAI,CACX,UAAU,CAAE,IAAI,CAUpB,yBAAyB,CACvB,UAAU,CAAE,IAAI,CAGlB,YAAY,CACV,QAAQ,CAAE,QAAQ,ClFjclB,kBAAkB,CAAE,0BAAO,CACnB,UAAU,CAAE,0BAAO,CkFmc3B,2BAAc,CACZ,YAAY,Cd5hBuB,OAAK,Cc8hB1C,uBAAW,CACT,OAAO,CAAE,KAAK,CACd,UAAU,CAAE,OAA6B,CACzC,UAAU,CAAE,MAAM,CAElB,kCAAU,CACR,SAAS,CAAE,IAAI,CACf,KAAK,CdtiB4B,OAAW,Cc0iBhD,4BAAgB,CACd,UAAU,Cd1iByB,OAAK,Cc2iBxC,KAAK,Cd/iBuB,OAAa,CcgjBzC,OAAO,CAAE,SAAS,CAClB,WAAW,CAAE,IAAI,CAEjB,uDAA4B,CAC1B,UAAU,CAAE,KAAK,CAGnB,+GAA2B,CACzB,WAAW,CAAE,IAAI,CACjB,YAAY,CAAE,KAAK,CAEnB,uHAAG,CACD,WAAW,CAAE,CAAC,CAMpB,wBAAY,CACV,WAAW,CAAE,CAAC,CAMhB,yCAAuB,CACrB,aAAa,CAAE,CAAC,CAOlB,sCAAoB,CAClB,KAAK,CAAE,KAAK,CACZ,MAAM,CAAE,KAAK,CACb,MAAM,CAAE,IAAI,ClFzfd,kBAAkB,CAAE,0BAAO,CACnB,UAAU,CAAE,0BAAO,CkF8f7B,kBAAkB,CAChB,OAAO,CAAE,MAAM,CACf,WAAW,CrFljBa,yDAA6D,CqFmjBrF,gBAAgB,CAAE,OAAyB,CAE3C,uBAAI,CACF,aAAa,CAAE,YAAY,CAG7B,yCAAwB,CACtB,OAAO,CAAE,YAAY,CACrB,WAAW,CAAE,CAAC,CAEd,2CAAE,CACA,OAAO,CAAE,YAAY,CACrB,UAAU,CAAE,oBAAkE,CAC9E,WAAW,CAAE,IAAI,CACjB,UAAU,CAAE,MAAM,CAClB,SAAS,CAAE,IAAI,CACf,YAAY,CAAE,GAAG,CACjB,OAAO,CAAE,eAAe,CACxB,KAAK,CAAE,IAAI,CAOf,iDAAmB,CACf,KAAK,CAAE,IAAI,CAGf,oCAAM,CACJ,UAAU,CAAE,OAAO,CAEnB,2CAAM,CACJ,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,CAAC,CACR,GAAG,CAAE,CAAC,CACN,MAAM,CAAE,YAAY,CACpB,aAAa,CAAE,GAAG,CAItB,qDAAuB,CACrB,KAAK,CdvoBuB,OAAa,Ce5B7C,mBAAmB,CACjB,OAAO,CAAE,CAAC,CACV,QAAQ,CAAE,QAAQ,CAClB,OAAO,CAAE,GAAG,CACZ,QAAQ,CAAE,OAAO,CAEjB,wBAAI,CACF,WAAW,CAAE,4DAA4D,CACzE,cAAc,CAAE,GAAG,CzEiVrB,cAAwC,CAAE,oBAAM,CAAhD,aAAwC,CAAE,oBAAM,CAAhD,iBAAwC,CAAE,oBAAM,CAAhD,SAAwC,CAAE,oBAAM,CyE5UlD,uBAAuB,CACrB,IAAI,CtFuVqC,OAAK,CsFtV9C,SAAS,CAAE,OAAO,CAClB,MAAM,CtFqVmC,OAAK,CsFpV9C,YAAY,CAnBiB,GAAG,CAoBhC,cAAc,CAAE,IAAI,CACpB,eAAe,CAAE,KAAK,CACtB,cAAc,CAAE,CAAC,CACjB,YAAY,CAAE,CAAC,CAGjB,yBAAyB,CACvB,IAAI,CtFotBwB,OAAM,CsFntBlC,SAAS,CAAE,OAAO,CAClB,MAAM,CtFktBsB,OAAM,CsFjtBlC,YAAY,CA9BiB,GAAG,CA+BhC,cAAc,CAAE,IAAI,CACpB,eAAe,CAAE,KAAK,CACtB,cAAc,CAAE,CAAC,CACjB,YAAY,CAAE,CAAC,CAGjB,0BAA0B,CACxB,IAAI,CtFkoBwB,OAAW,CsFjoBvC,SAAS,CAAE,OAAO,CAClB,MAAM,CtFgoBsB,OAAW,CsF/nBvC,YAAY,CAzCiB,GAAG,CA0ChC,cAAc,CAAE,IAAI,CACpB,eAAe,CAAE,KAAK,CACtB,cAAc,CAAE,CAAC,CACjB,YAAY,CAAE,CAAC,CAGjB,sBAAsB,CACpB,IAAI,CfhBiC,OAAW,CeiBhD,YAAY,CAAE,CAAC,CACf,SAAS,CAAE,OAAO,CAClB,MAAM,CfnB+B,OAAW,CeoBhD,YAAY,CArDiB,GAAG,CAsDhC,cAAc,CAAE,IAAI,CACpB,eAAe,CAAE,KAAK,CACtB,cAAc,CAAE,CAAC,CChCnB,yBAIC,CAHC,uBAAwB,CAAC,iBAAiB,CAAE,aAAa,CACzD,GAAI,CAAC,iBAAiB,CAAE,gBAAgB,CACxC,GAAI,CAAC,iBAAiB,CAAE,gBAAgB,EAG1C,iBAIC,CAHC,uBAAwB,CAAC,SAAS,CAAE,aAAa,CACjD,GAAI,CAAC,SAAS,CAAE,gBAAgB,CAChC,GAAI,CAAC,SAAS,CAAE,gBAAgB,EAIlC,mBAAmB,CACjB,SAAS,CA/Bc,MAAgB,CAgCvC,MAAM,CAAE,MAAM,CAKd,mCAAe,CACb,QAAQ,CAAE,QAAQ,CAClB,MAAM,CAAE,QAAQ,CAChB,KAAK,CAAE,IAAI,CACX,MAAM,CA5Ce,KAAY,CA6CjC,SAAS,CA1CY,MAAgB,CA2CrC,UAAU,CA5CW,MAAM,CA6C3B,UAAU,CA9CW,KAAK,CA+C1B,QAAQ,CAAE,IAAI,CACd,OAAO,CAAE,GAAG,CACZ,UAAU,CAAE,mBAAwB,CACpC,UAAU,CAAC,qCAAuC,CAClD,WAAW,CAAE,aAAa,CpFmD5B,0BAA0B,CoFlDM,GAAG,CpFmDlC,yBAAyB,CoFnDM,GAAG,CAE/B,YAAK,CAAE,GAAG,CACV,YAAK,CAAE,KAAK,CACZ,YAAK,ChB9BqB,OAAU,CgBiCtC,0CAAQ,CACN,OAAO,CAAE,EAAE,CACX,QAAQ,CAAE,QAAQ,CAClB,MAAM,CAAE,CAAC,CACT,KAAK,CAAE,CAAC,CACR,YAAY,CAAE,KAAK,CACnB,YAAY,CAAE,aAAc,CAC5B,YAAY,CAAG,2CAA8C,CAC7D,MAAM,CAAE,WAAW,CAGrB,mFAAgB,CACd,MAAM,CAAE,iBAAe,CAEvB,iGAAQ,CACN,YAAY,CAAG,2CAAyC,CAOhE,eAAe,CACb,QAAQ,CAAE,QAAQ,CAClB,OAAO,CAAE,IAAI,CACb,OAAO,CAAE,KAAK,CACd,KAAK,CAAE,IAAI,CACX,UAAU,CAAE,gBAAkB,C1EgQ9B,kBAAwC,C0E/PjB,GAAG,C1E+P1B,qBAAwC,CC9Sb,GAAuB,CD8SlD,aAAwC,C0E/PjB,GAAG,CAE1B,oCAAsB,CACpB,MAAM,CAAE,IAAI,CACZ,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CAGd,mCAAqB,CACnB,GAAG,CAAE,GAAG,CACR,MAAM,CAAE,IAAI,CACZ,UAAU,CAAE,IAAI,CAChB,SAAS,CAAE,IAAI,CACf,OAAO,CAAE,eAAe,CACxB,WAAW,CAAE,IAAI,CAEjB,qCAAC,CACC,MAAM,CAAE,CAAC,CACT,UAAU,CAAE,GAAG,CACf,KAAK,CAAE,CAAC,CACR,MAAM,CAAE,IAAI,CACZ,OAAO,CAAE,CAAC,CACV,KAAK,ChBjF4B,OAAW,CgBkF5C,SAAS,CAAE,QAAQ,CACnB,gBAAgB,CAAE,WAAW,CpFWjC,kBAAkB,CAAE,uBAAW,CACvB,UAAU,CAAE,uBAAW,CoFV3B,MAAM,CAAE,IAAI,CACZ,WAAW,CAAE,GAAG,CAEhB,+NAAY,CACV,SAAS,CAAE,IAAI,CAGjB,+CAAW,CACT,UAAU,CAAE,GAAG,CACf,SAAS,CAAE,IAAI,CACf,YAAY,CAAE,GAAG,CAGnB,wFAAiB,CACf,KAAK,CvF6oBmB,OAAY,CuFxoB1C,oCAAsB,CACpB,GAAG,CAAE,IAAI,CACT,UAAU,CAAE,IAAI,CAChB,KAAK,CAAE,IAAI,CACX,OAAO,CAAE,KAAK,CACd,WAAW,CAAE,KAAK,CAElB,kEAA8B,CAC5B,YAAY,CAAE,IAAI,CAClB,OAAO,CAAE,aAAa,CACtB,QAAQ,CAAE,MAAM,CAEhB,2FAAwB,CACtB,SAAS,CAAE,IAAI,CACf,WAAW,CvF/EO,yDAA6D,CuFgF/E,WAAW,CAAE,MAAM,CAEnB,kGAAM,CACJ,WAAW,CAAE,GAAG,CAGlB,0GAAc,CACZ,MAAM,CAAE,OAAO,CAInB,kFAAgB,CACd,SAAS,CAAE,IAAI,CAEf,qFAAG,CACD,WAAW,CAAE,MAAM,CAIvB,4KACiB,CACf,WAAW,CAAE,MAAM,CAInB,uHAA4B,CAC1B,cAAc,CAAE,CAAC,CACjB,UAAU,CAAE,IAAI,CAGlB,2HAAgC,CAC9B,OAAO,CAAE,YAAY,CACrB,aAAa,CAAE,CAAC,CAKtB,+DAA0B,CACxB,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,CAAC,CACN,KAAK,CAAE,CAAC,CACR,MAAM,CAAE,IAAI,CACZ,OAAO,CAAE,GAAG,CACZ,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,OAAO,CACf,UAAU,CAAE,MAAM,CAClB,WAAW,CAAE,iBAAsB,CAEnC,6FAA6B,CAC3B,aAAa,CAAE,IAAI,CAEnB,uMAAgB,CACd,KAAK,CvFqkBiB,OAAY,CuFjkBtC,iEAAC,CACC,SAAS,CAAE,IAAI,CAInB,gEAA2B,CACzB,QAAQ,CAAE,QAAQ,CAClB,MAAM,CAAE,GAAG,CACX,KAAK,CAAE,gBAAgB,CAGzB,2CAAM,CACJ,WAAW,CAAE,iBAAiB,CAC9B,gBAAgB,CvFigBQ,OAAY,CuFzfxC,qBAAQ,CACN,OAAO,CAAE,GAAG,CACZ,OAAO,CAAE,KAAK,CACd,QAAQ,CAAE,QAAQ,CAClB,IAAI,CAAE,CAAC,CACP,GAAG,CAAE,CAAC,CACN,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,OAAO,CAAE,GAAG,CACZ,UAAU,CAAE,4yHAA0C,CAI1D,OAAO,CACL,KAAK,CAjPiB,MAAM,CAkP5B,MAAM,CAnPgB,MAAM,CAoP5B,QAAQ,CAAE,QAAQ,CAClB,WAAW,CvF9Ka,yDAA6D,CuFiLrF,wBAAgB,CACd,OAAO,CAAE,CAAC,CACV,cAAc,CAAE,IAAI,CACpB,WAAW,CAAE,OAAO,CpF7HtB,kBAAkB,CAAE,sBAAW,CACvB,UAAU,CAAE,sBAAW,CoFyI7B,sCAAiB,CACf,OAAO,CAAE,YAAY,CAGvB,4CAAuB,CpFzDzB,0BAA0B,CoFzMG,EAAE,CpF0MvB,kBAAkB,CoF1MG,EAAE,CpFiN/B,uBAAuB,CoFhNE,GAAI,CpFiNrB,eAAe,CoFjNE,GAAI,CAC7B,2BAA2B,CAAE,IAAI,CACjC,mBAAmB,CAAE,IAAI,CACzB,iCAAiC,CAAE,MAAM,CACzC,yBAAyB,CAAE,MAAM,CACjC,yBAAyB,CAAC,QAAQ,CAClC,iCAAiC,CAAC,QAAQ,CAE1C,sBAAsB,CAAE,MAAM,CAC9B,cAAc,CAAE,MAAM,CA8PtB,2DAA4C,CpF/D5C,0BAA0B,CoFzMG,EAAE,CpF0MvB,kBAAkB,CoF1MG,EAAE,CpFiN/B,uBAAuB,CoFhNE,GAAI,CpFiNrB,eAAe,CoFjNE,GAAI,CAC7B,2BAA2B,CAAE,IAAI,CACjC,mBAAmB,CAAE,IAAI,CACzB,iCAAiC,CAAE,MAAM,CACzC,yBAAyB,CAAE,MAAM,CACjC,yBAAyB,CAAC,QAAQ,CAClC,iCAAiC,CAAC,QAAQ,CAE1C,sBAAsB,CAAE,MAAM,CAC9B,cAAc,CAAE,MAAM,CpFoGtB,kBAAkB,CAAE,0BAAO,CACnB,UAAU,CAAE,0BAAO,CoF+J3B,kBAAU,CACR,QAAQ,CAAE,QAAQ,CAClB,SAAS,CAAE,IAAI,CACf,MAAM,CAAE,IAAI,CACZ,QAAQ,CAAE,MAAM,CAChB,gBAAgB,ChB/PY,OAAU,CgBgQtC,WAAW,CvFvNW,yDAA6D,CuFwNnF,OAAO,CAAE,GAAG,CACZ,WAAW,CAAE,kBAAkB,CAI7B,YAAK,CAAE,GAAG,CACV,YAAK,CAAE,KAAK,CACZ,YAAK,ChBtQ4B,OAAW,C1D0ThD,kBAAwC,C0ElDf,GAAG,C1EkD5B,qBAAwC,CC9Sb,GAAuB,CD8SlD,aAAwC,C0ElDf,GAAG,CpF1K5B,kBAAkB,CAAE,2EAAW,CACvB,UAAU,CAAE,2EAAW,CU2N/B,cAAwC,CAAE,oBAAM,CAAhD,aAAwC,CAAE,oBAAM,CAAhD,iBAAwC,CAAE,oBAAM,CAAhD,SAAwC,CAAE,oBAAM,C0E5C9C,wBAAO,CpFtLT,kBAAkB,CAAE,0BAAO,CACnB,UAAU,CAAE,0BAAO,CUiO3B,cAAwC,C0EzCjB,kCAAmC,C1EyC1D,aAAwC,C0EzCjB,kCAAmC,C1EyC1D,iBAAwC,C0EzCjB,kCAAmC,C1EyC1D,SAAwC,C0EzCjB,kCAAmC,CAEtD,8CAAuB,CACrB,OAAO,CAAE,eAAe,CAI5B,kCAAe,CACb,OAAO,CAAE,WAAW,CACpB,MAAM,CAAE,OAAO,CACf,WAAW,CAAE,iBAAiB,CAC9B,WAAW,CAAE,IAAI,CACjB,WAAW,CAAE,MAAM,CAEnB,uDAAoB,CAClB,MAAM,CAAE,IAAI,CACZ,OAAO,CAAE,YAAY,CACrB,SAAS,CAAE,IAAI,CACf,KAAK,ChBtSmB,OAAa,CgBuSrC,YAAY,CAAE,GAAG,CAGnB,0DAAuB,CACrB,OAAO,CAAE,YAAY,CACrB,UAAU,CAAE,KAAK,CACjB,SAAS,CAAE,GAAG,CACd,YAAY,CAAE,GAAG,CACjB,KAAK,CvFkaiB,OAAM,CuFja5B,MAAM,CAAE,IAAI,CAEZ,gEAAO,CACL,OAAO,CAAE,IAAI,CAIjB,oDAAiB,CACf,SAAS,CAAE,IAAI,CAGjB,2CAAQ,CACN,SAAS,CAAE,IAAI,CACf,OAAO,CAAE,IAAI,CAGf,yDAAsB,CACpB,WAAW,CAAE,GAAG,CAChB,KAAK,ChB/T0B,OAAW,CgBgU1C,KAAK,CAAE,IAAI,CACX,OAAO,CAAE,IAAI,CAIf,kDAAe,CACb,UAAU,CAAE,MAAM,CAKtB,uCAAoB,CAClB,OAAO,CAAE,IAAI,CACb,KAAK,CAAE,OAAyB,CAChC,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,IAAI,CACjB,aAAa,CAAE,GAAG,CAClB,aAAa,CAAE,GAAG,CAElB,iEAAyB,CACvB,MAAM,CAAE,IAAI,CAIhB,4CAAyB,CACvB,IAAI,CAAE,CAAC,CAGT,6CAA0B,CACxB,IAAI,CAAE,CAAC,CACP,UAAU,CAAE,KAAK,CAKnB,kCAAe,CACb,MAAM,CAAE,GAAG,CACX,KAAK,CAAE,IAAI,CACX,QAAQ,CAAE,MAAM,CAChB,MAAM,CAAE,SAAS,CACjB,MAAM,CAAE,YAAY,CACpB,MAAM,CAAE,IAAI,CACZ,OAAO,CAAE,KAAK,CACd,WAAW,CAAE,MAAM,CACnB,OAAO,CAAE,IAAI,CACb,WAAW,CAAE,KAAK,CAId,gBAAK,CAAE,GAAG,CACV,gBAAK,CAAE,MAAM,CACb,gBAAK,ChBnXwB,OAAW,CgBuX5C,uDAAoB,CAClB,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,OAAyB,CAChC,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,IAAI,CACjB,MAAM,CAAE,IAAI,CAEZ,6EAAqB,CACnB,KAAK,CAAE,KAAK,CACZ,KAAK,C9EpXe,OAAO,C8EqX3B,KAAK,CAAE,IAAI,CACX,QAAQ,CAAE,MAAM,CAChB,WAAW,CAAE,MAAM,CACnB,aAAa,CAAE,QAAQ,CACvB,OAAO,CAAE,IAAI,CAGf,uEAAe,CACb,SAAS,CAAE,GAAG,CACd,KAAK,CAAE,IAAI,CACX,cAAc,CAAE,MAAM,CAGxB,iFAAyB,CACvB,QAAQ,CAAE,QAAQ,CAClB,OAAO,CAAE,YAAY,CACrB,KAAK,CAAE,iBAAiB,CACxB,QAAQ,CAAE,MAAM,CAChB,WAAW,CAAE,MAAM,CACnB,aAAa,CAAE,QAAQ,CAS3B,8BAAI,CACF,OAAO,CAAE,CAAC,CAGZ,0CAAc,CACZ,KAAK,ChBpamB,OAAU,CgBqalC,gBAAgB,ChBtaQ,OAAa,CgBuarC,OAAO,CAAE,OAAO,CAOtB,mFAA2E,CpFnV3E,kBAAkB,CAAE,oBAAO,CACnB,UAAU,CAAE,oBAAO,CoFwV3B,wKAA6E,CpFzV7E,kBAAkB,CAAE,uBAAO,CACnB,UAAU,CAAE,uBAAO,CoF0VzB,gBAAgB,ChBpdC,OAAY,CgBqd7B,iZAAgC,CAC9B,gBAAgB,ChBtdD,OAAY,CgB6d7B,wCAAc,CACZ,MAAM,CAAE,kBAAkB,CAG5B,yCAAe,CACb,MAAM,CAAE,kBAAkB,CAG5B,kCAAQ,CACN,KAAK,CAAE,kBAAsB,CAC7B,OAAO,CAAE,uBAAuB,CAKpC,wBAAgB,CACd,QAAQ,CAAE,QAAQ,CAClB,KAAK,CvFoXmB,IAAM,CuFnX9B,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,IAAI,CACjB,UAAU,CAAE,MAAM,CAClB,cAAc,CAAE,IAAI,CACpB,OAAO,CAAE,GAAG,CAId,+DAAgD,CAC9C,OAAO,CAAE,EAAE,CAEX,uEAAI,CACF,QAAQ,CAAE,OAAO,CACjB,qFAAM,CpF7XV,kBAAkB,CAAE,yCAAW,CACvB,UAAU,CAAE,yCAAW,CoFgY3B,2EAAC,CACC,MAAM,ChBheyB,OAAW,CgBie1C,YAAY,CAAE,CAAC,CACf,IAAI,ChBje2B,OAAK,CgBkepC,MAAM,CAAE,OAAO,CAMjB,yFAAM,CACJ,MAAM,CAAE,kBAAkB,CAK9B,2FAAe,CAEb,OAAO,CAAE,EAAE,CAKX,+GAAO,CACL,MAAM,CvF4GgB,OAAc,CuFtGxC,6CAAO,CACL,MAAM,CAAE,kBAAiB,CACzB,IAAI,CAAE,kBAAiB,CAKzB,+CAAO,CACL,MAAM,CAAE,kBAAsB,CAC9B,IAAI,CAAE,kBAAsB,CAMhC,6BAAqB,CACnB,MAAM,CAAE,OAAO,CACf,cAAc,CAAE,KAAK,CpFhbvB,kBAAkB,CAAE,qBAAW,CACvB,UAAU,CAAE,qBAAW,CoFib7B,WAAW,CAAE,GAAG,CAEhB,kCAAI,CpFpbN,kBAAkB,CAAE,qBAAW,CACvB,UAAU,CAAE,qBAAW,CoFub7B,+CAAiB,CACf,MAAM,ChBthB2B,OAAK,CgByhBxC,8CAAgB,CACd,MAAM,ChB3hB2B,OAAW,CgB8hB9C,2CAAe,CACb,OAAO,CAAE,EAAE,CACX,MAAM,CAAE,yCAA2C,CAEnD,+HAAqF,CACnF,MAAM,CvFgGgB,OAAc,CuF5FpC,kLAAiB,CACf,MAAM,CvF2Fc,OAAc,CuFtFxC,8CAAkB,CpF/cpB,kBAAkB,CAAE,sBAAW,CACvB,UAAU,CAAE,sBAAW,CoFgd3B,OAAO,CAAE,GAAG,CACZ,OAAO,CAAE,EAAE,CAIf,qCAA8B,CAC5B,OAAO,CAAE,EAAE,CAEX,sDAAgB,CACd,MAAM,CAAE,mBAAmB,CAG7B,uDAAiB,CACf,MAAM,CAAE,OAAwB,CAIhC,4DAAgB,CACd,MAAM,CAAE,mBAAmB,CAG7B,6DAAiB,CACf,MAAM,CvF8DgB,OAAc,CuFzD1C,wCAAiC,CAC/B,OAAO,CAAE,EAAE,CAEX,yDAAgB,CACd,MAAM,CAAE,mBAAmB,CAG7B,0DAAiB,CACf,MAAM,ChB1mBS,OAAa,CgB8mB5B,+DAAgB,CACd,MAAM,CAAE,mBAAmB,CAG7B,gEAAiB,CACf,MAAM,CvFwCgB,OAAc,CuFnC1C,sCAA+B,CAC7B,OAAO,CAAE,EAAE,CAEX,uDAAgB,CACd,MAAM,ChBpmB2B,OAAW,CgBumB9C,wDAAiB,CACf,MAAM,C9E/lBkB,OAAO,C8EmmB/B,6DAAgB,CACd,MAAM,CvFsBgB,OAAc,CuFhBxC,8JAG0B,CACxB,OAAO,CAAE,EAAE,CAMb,qDAAgB,CACd,MAAM,C9EtmBkB,OAAO,C8E0mB/B,2DAAgB,CACd,MAAM,CvFAgB,OAAc,CuFOxC,0DAAiB,CACf,MAAM,CvFxCkB,OAAc,CuF8CxC,2DAAiB,CACf,MAAM,ChBprBG,OAAW,CgBwrBxB,oCAA4B,CAC1B,MAAM,CAAE,6BAAyC,CAInD,kCAA0B,CACxB,OAAO,CAAE,OAAO,CAChB,SAAS,CAAE,IAAI,CACf,OAAO,CAAE,IAAI,CACb,gBAAgB,ChB9pBmB,OAAK,CgB+pBxC,KAAK,ChBnqBuB,OAAa,C1D6T3C,kBAAwC,C0EuWf,GAAG,C1EvW5B,qBAAwC,CC9Sb,GAAuB,CD8SlD,aAAwC,C0EuWf,GAAG,CpFzkB5B,kBAAkB,CAAE,0BAAO,CACnB,UAAU,CAAE,0BAAO,CoF4kB3B,aAAK,CACH,gBAAgB,C9E1pBU,OAAO,C8E2pBjC,KAAK,CvFyBqB,OAAa,CuFtBzC,aAAK,CACH,gBAAgB,ChB7sBL,OAAW,CgB8sBtB,KAAK,CvFzCqB,OAAc,CuF4C1C,YAAI,CACF,gBAAgB,ChB/qBmB,OAAK,CgBgrBxC,KAAK,C9EzpBqB,OAAO,C8E6pBnC,wCAAgC,CAC9B,MAAM,ChBxrBsB,OAAU,CgByrBtC,IAAI,CvFuBsB,OAAM,CuFpBlC,0CAAkC,CAChC,MAAM,ChB7rBsB,OAAU,CgB8rBtC,IAAI,C9EvpBsB,OAAI,C8EypB9B,cAAc,CAAE,aAAa,CAC7B,kBAAkB,CAAE,EAAE,CACtB,yBAAyB,CAAE,QAAQ,CAIrC,wCAAgC,CAC9B,MAAM,CAAE,SAAgB,CACxB,sBAAsB,CAAE,WAAW,CACnC,WAAW,CAAE,iBAAiB,CAC9B,OAAO,CAAE,GAAG,CACZ,SAAS,CAAE,KAAK,CAChB,WAAW,CAAE,IAAI,CACjB,OAAO,CAAE,IAAI,CACb,gBAAgB,ChB3sBmB,OAAK,CgB4sBxC,KAAK,ChBhtBuB,OAAa,C1D6T3C,kBAAwC,C0EoZf,GAAG,C1EpZ5B,qBAAwC,CC9Sb,GAAuB,CD8SlD,aAAwC,C0EoZf,GAAG,CpFtnB5B,kBAAkB,CAAE,yBAAO,CACnB,UAAU,CAAE,yBAAO,CoF4nB3B,oKAAK,CACH,SAAS,CAAE,IAAI,CAKnB,cAAc,CACZ,SAAS,CAAE,KAAK,CAChB,WAAW,CvFtrBa,yDAA6D,CuFurBrF,OAAO,CAAE,IAAI,CACb,WAAW,CAAE,6BAA6B,CAE1C,gBAAC,CACC,MAAM,CAAE,OAAO,CAGjB,gBAAC,CACC,KAAK,CAAE,IAAI,CACX,cAAc,CAAE,IAAI,CAItB,6BAAc,CACZ,sBAAsB,CAAE,CAAC,CACzB,yBAAyB,CAAE,CAAC,CAC5B,SAAS,CAAE,4BAA4B,CAMvC,sCAAgB,CACd,QAAQ,CAAE,QAAQ,CAClB,6CAAQ,CNhqBZ,OAAO,CAAE,EAAE,CACX,QAAQ,CAAE,QAAQ,CAClB,gBAAgB,CjFsnBY,OAAM,CiFrnBlC,OAAO,CAAE,CAAC,CACV,WAAW,CAAE,YAAkB,C9EI/B,kBAAkB,CAAE,0CAAW,CACvB,UAAU,CAAE,0CAAW,CoFypBzB,KAAK,CAAE,GAAG,CACV,MAAM,CAAE,IAAI,CACZ,IAAI,CAAE,CAAC,CAGT,mDAAc,CACZ,IAAI,CAAE,IAAI,CACV,OAAO,CAAE,CAAC,CAOd,0BAAU,CACR,MAAM,CAAE,WAAW,CACnB,cAAc,CAAE,IAAI,CAGtB,mBAAM,CACJ,OAAO,CAAE,OAAO,CAOtB,wBAAwB,CACtB,KAAK,ChBvxByB,OAAa,CgBwxB3C,OAAO,CAAE,OAAO,CAChB,SAAS,CAAE,IAAI,CpFxrBf,kBAAkB,CAAE,mBAAW,CACvB,UAAU,CAAE,mBAAW,CqF7H/B,yBAAE,CACA,cAAc,CAAE,UAAU,CAI5B,uDAAgC,CAC9B,UAAU,CAAE,KAAK,CAGjB,2EAAmB,CACjB,KAAK,CAAE,IAAI,CACX,yFAAa,CACX,KAAK,CAAE,IAAI,CACX,qGAAW,CACT,KAAK,CAAE,IAAI,CACX,qHAAe,CACb,KAAK,CAAE,iBAAiB,CACxB,8HAAQ,CACN,KAAK,CAAE,IAAI,CACX,UAAU,CAAE,KAAK,CACjB,MAAM,CAAE,QAAQ,CAY5B,gDAAqB,CACnB,YAAY,CAAE,IAAI,CAClB,cAAc,CAAE,MAAM,CACtB,SAAS,CAAE,IAAI,CAIjB,sDAA2B,CACzB,OAAO,CAAE,YAAY,CACrB,WAAW,CAAE,IAAI,CACjB,KAAK,CAAE,kBAAkB,CAEzB,gEAAS,CACP,aAAa,CAAE,GAAG,CAKtB,qDAA0B,CACxB,WAAW,CAAE,kBAAkB,CAC/B,OAAO,CAAE,IAAI,CACb,KAAK,CjBzDM,OAAW,CiB4DxB,wCAAa,CACX,SAAS,CAAE,IAAI,CAEf,qEAA4B,CAC1B,WAAW,CAAE,MAAM,CAEnB,oFAAgB,CACd,aAAa,CAAE,IAAI,CAWvB,4EAAoC,CAClC,OAAO,CAAE,MAAM,CACf,2FAAc,CACZ,OAAO,CAAE,MAAM,CACf,2GAAe,CACb,OAAO,CAAE,MAAM,CAKrB,iEAAwB,CACtB,KAAK,CAAE,IAAI,CACX,gBAAgB,CxFqoBQ,OAAY,CwFpoBpC,UAAU,CAAE,IAAI,CAChB,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,IAAI,CACjB,OAAO,CAAE,OAAO,CAGlB,sEAA6B,CAC3B,cAAc,CAAE,SAAS,CAO3B,qDAAE,CACA,cAAc,CAAE,IAAI,CAEpB,2DAAO,CACL,OAAO,CAAE,eAAe,CAG1B,2EAAuB,CACrB,KAAK,CAAE,WAAW,CASxB,wCAAgB,CACd,QAAQ,CAAE,QAAQ,CAClB,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,KAAK,CAOf,8CAAsB,CACpB,KAAK,CAAE,IAAI,CACX,SAAS,CAAE,IAAI,CAEf,iDAAE,CACA,cAAc,CAAE,UAAU,CAE1B,6GAAmB,CACjB,SAAS,CAAE,IAAI,CAOjB,qEAAmB,CACjB,OAAO,CAAE,IAAI,CACb,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,GAAG,CACX,MAAM,CAAE,OAAO,CAEf,oFAAgB,CACd,MAAM,CAAE,OAAO,CAGjB,4FAAwB,CACtB,KAAK,CAAE,IAAI,CAEX,kGAAO,CACL,IAAI,CAAE,GAAG,CAGb,qGAAiC,CAC/B,KAAK,CAAE,IAAI,CAEX,2GAAO,CACL,OAAO,CAAE,OAAO,CAChB,WAAW,CAAE,qBAAqB,CAClC,UAAU,CAAE,MAAM,CAClB,WAAW,CAAE,IAAI,CACjB,IAAI,CAAE,GAAG,CAMb,wFAAmB,CACjB,OAAO,CAAE,YAAY,CAU7B,kDAA0B,CACxB,SAAS,CAAE,IAAI,CAOjB,4DAAgC,CAC9B,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,KAAK,CACb,QAAQ,CAAE,QAAQ,CAClB,aAAa,CAAE,IAAI,CAGrB,qDAAyB,CACvB,cAAc,CAAE,IAAI,CACpB,aAAa,CAAE,iBAAsB,CAErC,wDAAM,CACJ,WAAW,CAAE,CAAC,CACd,QAAQ,CAAE,OAAO,CACjB,UAAU,CAAE,IAAI,CAChB,WAAW,CAAE,+BAA+B,CrFpFhD,kBAAkB,CAAE,kDAAW,CACvB,UAAU,CAAE,kDAAW,CqFuF3B,2DAAE,CACA,WAAW,CAAE,MAAM,CAIrB,2DAAE,CACA,KAAK,CAAE,KAAK,CACZ,OAAO,CAAE,YAAY,CAGvB,sFAA6B,CAC3B,OAAO,CAAE,MAAM,CACf,KAAK,CAAE,IAAI,CACX,UAAU,CAAE,GAAG,CACf,YAAY,CAAE,IAAI,CAClB,MAAM,CAAE,iBAAsB,CAC9B,WAAW,CAAE,YAAY,C3EoH/B,kBAAwC,C2EnHX,GAAG,C3EmHhC,qBAAwC,CC9Sb,GAAuB,CD8SlD,aAAwC,C2EnHX,GAAG,CrFzGhC,kBAAkB,CAAE,2BAAW,CACvB,UAAU,CAAE,2BAAW,CqF2GzB,4FAAO,CACL,YAAY,CjBnOD,OAAa,CiBuO5B,6KAC6B,CAC3B,OAAO,CAAE,MAAM,CACf,KAAK,CAAE,IAAI,CACX,YAAY,CAAE,IAAI,CAClB,MAAM,CAAE,iBAAsB,CAC9B,WAAW,CAAE,YAAY,C3EqG/B,kBAAwC,C2EpGX,GAAG,C3EoGhC,qBAAwC,CC9Sb,GAAuB,CD8SlD,aAAwC,C2EpGX,GAAG,CrFxHhC,kBAAkB,CAAE,2BAAW,CACvB,UAAU,CAAE,2BAAW,CqF0HzB,yLAAO,CACL,YAAY,CjBlPD,OAAa,CiBsP5B,sFAA6B,CAC3B,KAAK,CAAE,IAAI,CACX,YAAY,CAAE,IAAI,CAClB,MAAM,CAAE,iBAAsB,CAC9B,WAAW,CAAE,YAAY,C3EwF/B,kBAAwC,C2EvFX,GAAG,C3EuFhC,qBAAwC,CC9Sb,GAAuB,CD8SlD,aAAwC,C2EvFX,GAAG,CrFrIhC,kBAAkB,CAAE,2BAAW,CACvB,UAAU,CAAE,2BAAW,CqFuIzB,4FAAO,CACL,YAAY,CjB/PD,OAAa,CiBmQ5B,+DAAQ,CACN,OAAO,CAAE,OAAO,CAChB,WAAW,CAAE,qBAAqB,CAClC,WAAW,CAAE,IAAI,CACjB,QAAQ,CAAE,QAAQ,CAClB,OAAO,CAAE,EAAE,CACX,IAAI,CAAE,KAAK,CACX,GAAG,CAAE,IAAI,CACT,KAAK,CxFmF8B,OAAK,CwFlFxC,OAAO,CAAE,CAAC,CACV,WAAW,CAAE,aAAa,CrFvJhC,kBAAkB,CAAE,kBAAW,CACvB,UAAU,CAAE,kBAAW,CqF0J3B,8DAAO,CACL,WAAW,CAAE,IAAI,CAEjB,qEAAQ,CACN,OAAO,CAAE,CAAC,CACV,IAAI,CAAE,KAAK,CASnB,+BAAI,CACF,OAAO,CAAE,IAAI,CACb,WAAW,CAAE,OAAO,CACpB,SAAS,CAAE,IAAI,CAGjB,2CAAgB,CACd,OAAO,CAAE,IAAI,CACb,eAAe,CAAE,MAAM,CACvB,WAAW,CAAE,MAAM,CACnB,aAAa,CAAE,IAAI,CACnB,UAAU,CAAE,OAAO,CAGrB,oDAAyB,CACvB,KAAK,CAAE,IAAI,CACX,SAAS,CAAE,IAAI,CAGb,yHAAkB,CAChB,SAAS,CAAE,IAAI,CC7TvB,YAAa,CACX,gBAAgB,ClB+Bc,OAAU,CkB9BxC,KAAK,ClB6ByB,OAAa,CkB5B3C,MAAM,CAAE,iBAAqB,CAC7B,WAAW,CzFqEa,yDAA6D,CyFnErF,wBAAO,CACL,YAAY,ClBGK,OAAa,CkBAhC,8CAAmB,CACjB,gBAAgB,CAAE,kBAAqB,CtF+GzC,kBAAkB,CAAE,mCAAO,CACnB,UAAU,CAAE,mCAAO,CsF9GzB,uBAAuB,ClBkBK,OAAa,CkBf3C,0DAAyB,CtF0GzB,kBAAkB,CAAE,mCAAO,CACnB,UAAU,CAAE,mCAAO,CsFzGzB,uBAAuB,ClBaK,OAAa,CkBT3C,oEAA6B,CAC3B,gBAAgB,CAAE,WAAW,CAC7B,MAAM,CAAE,IAAI,CACZ,KAAK,ClBS8B,OAAW,CkBR9C,OAAO,CAAE,IAAI,CtF+Bf,oEAA8B,CAAE,KAAK,CsF3Bd,WAAW,CtF4BF,OAAO,CAAE,CAAC,CAC1C,4EAA8B,CAAE,KAAK,CsF7Bd,WAAW,CtF8BlC,sFAA8B,CAAE,KAAK,CsF9Bd,WAAW,CAGlC,kCAAY,CACV,MAAM,CAAE,IAAI,CACZ,OAAO,CAAE,QAAQ,CAIrB,QAAQ,CACN,UAAU,CAAE,IAAI,CAChB,UAAU,CAAE,KAAK,CACjB,MAAM,CAAE,QAAQ,CAIhB,gCAAa,CACX,KAAK,ClBb8B,OAAW,CpEuBhD,kDAA8B,CAAE,KAAK,CsFTd,WAAW,CtFUF,OAAO,CAAE,CAAC,CAC1C,sDAA8B,CAAE,KAAK,CsFXd,WAAW,CtFYlC,2DAA8B,CAAE,KAAK,CsFZd,WAAW,CAK9B,sHAAY,CACV,KAAK,ClBnB0B,OAAK,CkByB5C,qNAIoB,CAClB,WAAW,CAAE,qBAAqB,CAClC,WAAW,CAAE,IAAI,CACjB,wPAAO,CACL,WAAW,CAAE,OAAO,CACpB,WAAW,CAAE,OAAO,CAOtB,6DAAqB,CACnB,IAAI,CAAE,IAAI,CAKZ,6DAAqB,CACnB,KAAK,CAAE,IAAI,CAKb,uDAAqB,CACnB,IAAI,CAAE,IAAI,CAEZ,wDAAuB,CACrB,KAAK,CAAE,IAAI,CAKb,sDAAS,CACP,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,GAAG,CAER,kFAAa,CACX,KAAK,ClBpE4B,OAAW,CkBuE9C,gFAAY,CACV,KAAK,ClB1EqB,OAAU,CkBmFxC,aAAU,CACR,MAAM,CAAE,IAAI,CACZ,UAAU,CAAE,IAAI,CAChB,MAAM,CAAE,OAAO,CACf,OAAO,CAAE,YAAY,CACrB,KAAK,CAAE,kBAAsB,CAC7B,gBAAgB,CAAE,kBAAgB,CAIpC,kBAAa,CACX,QAAQ,CAAE,QAAQ,CAClB,OAAO,CAAE,KAAK,CACd,MAAM,CAAE,IAAI,CACZ,gBAAgB,CAAE,mBAAiB,CACnC,SAAS,CAAE,IAAI,CACf,KAAK,CAAE,CAAC,CACR,GAAG,CAAE,CAAC,CACN,IAAI,CAAE,CAAC,CACP,QAAQ,CAAE,MAAM,CAChB,WAAW,CAAE,IAAI,CACjB,KAAK,ChF1FqB,OAAO,CgF2FjC,SAAS,CAAE,IAAI,CACf,UAAU,CAAE,IAAI,CtFVlB,kBAAkB,CAAE,iBAAW,CACvB,UAAU,CAAE,iBAAW,CsFgBjC,iBAAiB,CACf,MAAM,CAAE,kBAAuB,CAC/B,MAAM,CAAE,KAAK,CACb,gBAAgB,CAAE,OAAiB,CACnC,UAAU,CAAE,MAAM,CAClB,SAAS,CAAE,IAAI,CACf,WAAW,CAAE,KAAK,CAClB,MAAM,CAAE,MAAM,CACd,KAAK,CzFskBuB,OAAY,CanYxC,kBAAwC,C4ElMjB,IAAI,C5EkM3B,qBAAwC,CC9Sb,IAAuB,CD8SlD,aAAwC,C4ElMjB,IAAI,CtF1B3B,kBAAkB,CAAE,gDAAW,CACvB,UAAU,CAAE,gDAAW,CsF4B/B,uBAAO,CACL,KAAK,ClBpJY,OAAa,CkBqJ9B,YAAY,ClBrJK,OAAa,CkBsJ9B,MAAM,CAAE,aAAa,CACrB,MAAM,CAAE,gBAAgB,CACxB,MAAM,CAAE,QAAQ,CAOlB,kBAAY,CACV,UAAU,CAAE,IAAI,CAKpB,yBAAyB,CACvB,OAAO,CAAE,KAAK,CACd,UAAU,CAAE,IAAI,CCjLlB,QAAQ,CACN,OAAO,CAAE,YAAY,CAErB,iBAAU,CACR,OAAO,CAAE,GAAG,CACZ,KAAK,CnB6B8B,OAAW,CmBzBlD,8BAA8B,CAC5B,QAAQ,CAAE,QAAQ,CAClB,OAAO,CAAE,YAAY,CACrB,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,OAAO,CAAE,GAAG,CACZ,MAAM,CAAE,eAAe,CAGzB,qBAAqB,CACnB,OAAO,CAAE,EAAE,CACX,QAAQ,CAAE,QAAQ,CAClB,IAAI,CAAE,CAAC,CACP,KAAK,CAAE,CAAC,CACR,MAAM,CAAE,IAAI,CACZ,KAAK,CAAE,IAAI,CACX,UAAU,CAAE,GAAG,CACf,UAAU,CAAE,uqJAAgD,CAE9D,oBAAoB,CAClB,OAAO,CAAE,EAAE,CACX,QAAQ,CAAE,QAAQ,CAClB,IAAI,CAAE,CAAC,CACP,KAAK,CAAE,CAAC,CACR,MAAM,CAAE,IAAI,CACZ,KAAK,CAAE,IAAI,CACX,UAAU,CAAE,GAAG,CACf,UAAU,CAAE,moDAA+C,CCjC3D,gCAAG,CACD,WAAW,C3F0FW,oDAAiB,C2FzFvC,cAAc,CAAE,CAAC,CACjB,SAAS,C3FiFa,IAA8B,C2FhFpD,MAAM,CAAE,MAAM,CACd,WAAW,CAAE,MAAM,CAInB,iIAAkB,CAChB,UAAU,CAAE,CAAC,CACb,MAAM,CAAE,UAAU,CAElB,iJAAQ,CACN,MAAM,CAAE,qBAAqB,CAC7B,KAAK,CAAE,IAAI,CAKf,iKAA0B,CACxB,MAAM,CAAE,OAAO,CAGb,iNAAQ,CACN,KAAK,CAAE,kBAAkB,CAI7B,yLAAQ,CACN,OAAO,CAAE,OAAO,CAChB,WAAW,CAAE,qBAAqB,CAClC,UAAU,CAAE,MAAM,CAClB,WAAW,CAAE,IAAI,CACjB,SAAS,CAAE,IAAI,CACf,aAAa,CAAE,IAAI,CACnB,QAAQ,CAAE,QAAQ,CAClB,KAAK,C3F6lBiB,OAAc,C2F5lBpC,GAAG,CAAE,IAAI,CACT,KAAK,CAAE,GAAG,CAOV,iOAAQ,CACN,GAAG,CAAE,IAAI,CACT,KAAK,CAAE,GAAG,CACV,KAAK,CpBlBwB,OAAW,CpEsHhD,iBAAiB,CAAE,aAAgB,CAC/B,aAAa,CAAE,aAAgB,CAC3B,SAAS,CAAE,aAAgB,CwF1FjC,yCAAQ,CACN,UAAU,CAAE,IAAI,CAIpB,+CAAkB,CAChB,SAAS,CAAE,IAAI,CACf,WAAW,C3FEW,yDAA6D,C2FErF,iBAAE,CACA,MAAM,CAAE,YAAY,CACpB,YAAY,CpB3CuB,OAAW,CoB+ChD,oBAAK,CACH,aAAa,CAAE,CAAC,CAEhB,iCAAY,CACV,aAAa,CAAE,CAAC,CAKpB,oCAAqB,CACnB,MAAM,CAAE,CAAC,CAGP,+DAAyB,CACvB,UAAU,CAAE,iBAAqB,CACjC,OAAO,CAAE,EAAE,CACX,OAAO,CAAE,KAAK,CACd,SAAS,CAAE,CAAC,CACZ,QAAQ,CAAE,MAAM,CAChB,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,IAAI,CACT,IAAI,CAAE,IAAI,CACV,KAAK,CAAE,GAAG,CACV,KAAK,CAAE,IAAI,CAIT,uDAAQ,C9EgPhB,iBAAwC,CAAE,gDAAM,CAAhD,iBAAwC,C8E/OV,+CAAwD,C9E+OtF,eAAwC,C8E/OV,+CAAwD,C9E+OtF,oBAAwC,CAAE,mDAAM,CAAhD,oBAAwC,C8E/OV,+CAAwD,C9E+OtF,YAAwC,CAAE,gDAAM,CAAhD,YAAwC,CAAE,mDAAM,CAAhD,YAAwC,C8E/OV,+CAAwD,CAC9E,aAAa,CAAE,CAAC,CAMlB,qDAAQ,C9EwOd,iBAAwC,CAAE,gDAAM,CAAhD,iBAAwC,C8EvOV,+CAA6D,C9EuO3F,eAAwC,C8EvOV,+CAA6D,C9EuO3F,oBAAwC,CAAE,mDAAM,CAAhD,oBAAwC,C8EvOV,+CAA6D,C9EuO3F,YAAwC,CAAE,gDAAM,CAAhD,YAAwC,CAAE,mDAAM,CAAhD,YAAwC,C8EvOV,+CAA6D,CACnF,aAAa,CAAE,CAAC,CAIpB,0CAAM,CACJ,KAAK,CpBzF0B,OAAW,CoB0F1C,SAAS,CAAE,IAAI,CACf,MAAM,CAAE,GAAG,CAIX,kDAAM,CACJ,KAAK,CpBnGiB,OAAa,CoB0GrC,oEAAM,CACJ,KAAK,CpB3GiB,OAAa,CoBwH3C,0FAAmB,CACjB,OAAO,CAAE,WAAW,CAItB,8CAA0B,CACxB,MAAM,CAAE,CAAC,CACT,OAAO,CAAE,KAAK,CAMhB,6IAE8B,CAC5B,KAAK,CAAE,KAAK,CAKd,4CAA2B,CACzB,KAAK,CAAE,gBAAgB,CAOvB,0CAAM,CACJ,OAAO,CAAE,IAAI,CAMnB,oBAAoB,CAClB,QAAQ,CAAE,QAAQ,CAClB,MAAM,CAAE,KAAK,CACb,QAAQ,CAAE,IAAI,CAIhB,wBAAwB,CACtB,KAAK,CAAE,gBAAgB,CAKvB,sCAAsB,CACpB,UAAU,CAAE,OAAO,CAKvB,iBAAkB,CAChB,aAAa,CAAE,IAAI,CAKnB,iCAAgB,CACd,aAAa,CAAE,IAAI,CAMrB,kHAAyE,CACvE,KAAK,CAAE,gBAAgB,CAMzB,+BAAU,CACR,UAAU,CAAE,IAAI,CAChB,aAAa,CAAE,GAAG,CAKpB,kDAA6B,CAC3B,aAAa,CAAE,IAAI,CAOrB,8CAA2B,CACzB,QAAQ,CAAE,OAAO,CACjB,UAAU,CAAE,4BAA+B,CAC3C,eAAe,CAAE,KAAK,CACtB,OAAO,CAAE,IAAI,CACb,aAAa,CAAE,IAAI,CAGrB,qCAAkB,CAChB,KAAK,CAAE,KAAK,CACZ,MAAM,CAAE,KAAK,CACb,MAAM,CAAE,MAAM,CAIhB,mCAAgB,CACd,UAAU,CAAE,IAAI,CAGlB,iCAAc,CACZ,OAAO,CAAE,YAAY,CACrB,KAAK,CAAE,GAAG,CAGZ,uBAAI,CACF,OAAO,CAAE,CAAC,CAGZ,6BAAU,CACR,SAAS,CAAE,IAAI,CC9QnB,aAAa,CACX,MAAM,CAAE,KAAK,CACb,KAAK,CAAE,IAAI,CCFb,SAAU,CACR,UAAU,CAAE,IAAI,CAChB,QAAQ,CAAE,QAAQ,CAGpB,gBAAiB,CACf,GAAG,CAAE,CAAC,CACN,MAAM,CAAE,CAAC,CACT,QAAQ,CAAE,QAAQ,CAClB,OAAO,CAAE,GAAG,CACZ,KAAK,CAAE,GAAG,CAEV,IAAI,CAAE,GAAG,CACT,UAAU,CAAE,IAAI,CT2DZ,gBAAY,CAAE,ihBAAgC,CA2B9C,eAAe,CAAE,IAAI,CA3BrB,gBAAY,CAAE,4FAAgC,CAA9C,gBAAY,CAAE,8CAAgC,CAA9C,gBAAY,CAAE,iDAAgC,CAE9C,gBAAY,CAAE,+CAAO,CSxD3B,YAAe,CACb,aAAa,CAAE,IAAI,CACnB,QAAQ,CAAE,QAAQ,CAGhB,2CAAe,CACb,KAAK,C7FwjBmB,OAAc,C6FrjBxC,2CAAe,CACb,gBAAgB,C7FojBQ,OAAc,C6F/iB5C,sCACqB,CACnB,OAAO,CAAE,GAAG,CACZ,OAAO,CAAE,KAAK,CAGhB,kBAAqB,CACnB,KAAK,CAAE,IAAI,CAGb,sCACqB,CACnB,OAAO,CAAE,GAAG,CACZ,OAAO,CAAE,KAAK,CAGhB,kBAAqB,CACnB,KAAK,CAAE,IAAI,CAGb,4BAAiC,CAC/B,KAAK,CAAE,GAAG,CACV,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,iBAAoB,CAC5B,OAAO,CAAE,GAAG,CACZ,QAAQ,CAAE,QAAQ,CAClB,gBAAgB,CtB3Bc,OAAU,CsB4BxC,SAAS,CAAE,IAAI,C1F8Df,kBAAkB,CAAE,0BAAO,CACnB,UAAU,CAAE,0BAAO,CUiO3B,kBAAwC,CgF9RjB,GAAG,ChF8R1B,qBAAwC,CC9Sb,GAAuB,CD8SlD,aAAwC,CgF9RjB,GAAG,CAG5B,mCAAwC,CACtC,OAAO,CAAE,GAAG,CACZ,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,IAAI,CACT,KAAK,CAAE,IAAI,CACX,OAAO,CAAE,YAAY,CACrB,UAAU,CAAE,qBAAqB,CACjC,WAAW,CAAE,iBAAqB,CAClC,YAAY,CAAE,eAAmB,CACjC,aAAa,CAAE,qBAAqB,CAGtC,kCAAuC,CACrC,OAAO,CAAE,GAAG,CACZ,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,IAAI,CACT,KAAK,CAAE,IAAI,CACX,OAAO,CAAE,YAAY,CACrB,UAAU,CAAE,qBAAqB,CACjC,WAAW,CAAE,iBAAqB,CAClC,YAAY,CAAE,eAAmB,CACjC,aAAa,CAAE,qBAAqB,CAGtC,4BAAiC,CAC/B,KAAK,C7FqoBuB,OAAY,C6FpoBxC,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,WAAW,CAAE,IAAI,CACjB,UAAU,CAAE,MAAM,CAClB,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,GAAG,CACR,IAAI,CAAE,GAAG,CACT,WAAW,CAAE,KAAK,CAClB,gBAAgB,CtBjEqB,OAAW,CsBkEhD,OAAO,CAAE,GAAG,ChFwPZ,kBAAwC,CgFvPjB,GAAG,ChFuP1B,qBAAwC,CC9Sb,GAAuB,CD8SlD,aAAwC,CgFvPjB,GAAG,CAE1B,8BAAI,CACF,cAAc,CAAE,MAAM,CAI1B,8CAAmD,CACjD,KAAK,CAAE,KAAK,CAGd,qDAA0D,CACxD,iBAAiB,CAAE,CAAC,CACpB,kBAAkB,CAAE,GAAG,CACvB,IAAI,CAAE,IAAI,CACV,KAAK,CAAE,IAAI,CAGb,oDAAyD,CACvD,iBAAiB,CAAE,CAAC,CACpB,kBAAkB,CAAE,GAAG,CACvB,IAAI,CAAE,IAAI,CACV,KAAK,CAAE,IAAI,CAIb,eAAgB,CACd,UAAU,CAAE,CAAC,CACb,KAAK,CAAE,OAAO,CAMd,iBAAK,CACH,OAAO,CAAE,IAAI,CAEb,qBAAG,CACD,OAAO,CAAE,IAAI,CAKjB,kCACK,CACH,aAAa,CAAE,CAAC,CAChB,eAAe,CAAE,IAAI,CACrB,WAAW,CAAE,IAAI,CAGnB,kBAAQ,CACN,UAAU,CAAE,GAAG,CAMnB,0BAA2B,CACzB,kBAAmB,CACjB,IAAI,CAAE,IAAI,CAGZ,8BAAmC,CACjC,KAAK,CAAE,iBAAiB,CAG1B,8BAAmC,CACjC,IAAI,CAAE,IAAI,CACV,WAAW,CAAE,CAAC,CACd,GAAG,CAAE,GAAG,CAGV,8BAAmC,CACjC,KAAK,CAAE,KAAK,CAGd,qCAA0C,CACxC,iBAAiB,CAAE,CAAC,CACpB,kBAAkB,CAAE,GAAG,CACvB,IAAI,CAAE,IAAI,CACV,KAAK,CAAE,IAAI,CAGb,oCAAyC,CACvC,iBAAiB,CAAE,CAAC,CACpB,kBAAkB,CAAE,GAAG,CACvB,IAAI,CAAE,IAAI,CACV,KAAK,CAAE,IAAI,EC5Lf,QAAQ,CAEN,OAAO,CAAE,IAAkB,CAE3B,SAAS,CAAE,KAAK,CAEhB,eAAM,CACJ,cAAc,CAAE,IAAI,CAGtB,uBAAc,CACZ,cAAc,CAAE,UAAU,CAC1B,WAAW,C9F8DW,2DAA+D,C8F7DrF,WAAW,CAAE,IAAI,CAGnB,yBAAiB,CACf,WAAW,C9FyDW,2DAA+D,C8FrDvF,YAAG,CjFuUH,kBAAwC,CiFtUf,GAAG,CjFsU5B,qBAAwC,CC9Sb,GAAuB,CD8SlD,aAAwC,CiFtUf,GAAG,CAG5B,WAAE,CACA,KAAK,CvBKuB,OAAa,CuBD3C,cAAK,CACH,KAAK,CvBAuB,OAAa,CuBCzC,WAAW,CAAE,IAAI,CACjB,SAAS,CAAE,IAAI,CAEf,iBAAE,CACA,OAAO,CAAE,KAAK,CACd,cAAc,CAAE,iBAAiB,CAIrC,2BAAkB,CAEhB,UAAU,CAAE,IAAI,CAChB,WAAW,CAAE,IAAI,CAMnB,gCAAe,CACb,OAAO,CAAE,OAAO,CAGlB,kCAAiB,CACf,OAAO,CAAE,WAAW,CAKxB,WAAW,CACT,OAAO,CAAE,OAAO,CAEhB,4BAAgB,CACd,OAAO,CAAE,CAAC,CAGZ,cAAE,CACA,WAAW,CAAE,MAAM,CACnB,YAAY,CAAE,IAAI,C3FlDpB,0CACQ,CACN,OAAO,CAAE,GAAG,CACZ,OAAO,CAAE,KAAK,CAEhB,oBAAQ,CACN,KAAK,CAAE,IAAI,C2FgDb,iBAAK,CACH,UAAU,CAAE,GAAG,CACf,aAAa,CAAE,IAAI,CAGrB,uBAAW,CACT,MAAM,CAAE,CAAC,CAET,wCAAgB,CACd,KAAK,CvBlDqB,OAAU,CuBoDpC,8CAAO,CACL,KAAK,C9F6oBiB,OAAa,C8F1oBrC,iDAAU,CACR,gBAAgB,CvBtDe,OAAK,CuBuDpC,KAAK,CvBxD0B,OAAW,CuByD1C,MAAM,CAAE,WAAW,CAGrB,4CAAG,CACD,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,mBAAmB,CAC3B,aAAa,CAAE,CAAC,CAGlB,0CAAC,CACC,YAAY,CAAE,IAAI,CCpG1B,eAAgB,CACd,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,QAAQ,CAAE,MAAM,CAChB,QAAQ,CAAE,QAAQ,CAClB,GAAG,CAAE,IAAI,CACT,KAAK,CAAE,IAAI,CACX,cAAc,CAAE,IAAI,CAGtB,OAAQ,CACN,IAAI,CAAE,mEAA2B,CACjC,KAAK,C/FktBuB,OAAY,C+FjtBxC,UAAU,CAAE,MAAM,CAClB,WAAW,CAAE,iCAAiC,CAC9C,QAAQ,CAAE,QAAQ,CAClB,OAAO,CAAE,KAAK,CACd,IAAI,CAAE,IAAI,CACV,GAAG,CAAE,IAAI,CACT,KAAK,CAAE,IAAI,C5FsGX,kBAAkB,CAAE,2BAAO,CACnB,UAAU,CAAE,2BAAO,CUiO3B,cAAwC,CAAE,aAAM,CAAhD,aAAwC,CAAE,aAAM,CAAhD,iBAAwC,CAAE,aAAM,CAAhD,SAAwC,CAAE,aAAM,CkFnUhD,4BAAiB,CACf,OAAO,CAAE,EAAE,CACX,WAAW,CAAG,qBAAqB,CACnC,YAAY,CAAE,qBAAqB,CACnC,QAAQ,CAAC,QAAQ,CACjB,MAAM,CAAE,IAAI,CAGd,sBAAgB,CACd,KAAK,CxBHuB,OAAa,CwBIzC,gBAAgB,CAAE,OAA6B,CXqC7C,gBAAY,CAAE,qhBAAgC,CA2B9C,eAAe,CAAE,IAAI,CA3BrB,gBAAY,CAAE,6FAAgC,CAA9C,gBAAY,CAAE,0CAAgC,CAA9C,gBAAY,CAAE,6CAAgC,CAE9C,gBAAY,CAAE,2CAAO,CWpCvB,0DAAiB,CACf,UAAU,CAAI,cAAiC,CAInD,oBAAc,CACZ,gBAAgB,C/FosBU,OAAM,CoFxqB9B,gBAAY,CAAE,qhBAAgC,CA2B9C,eAAe,CAAE,IAAI,CA3BrB,gBAAY,CAAE,6FAAgC,CAA9C,gBAAY,CAAE,0CAAgC,CAA9C,gBAAY,CAAE,6CAAgC,CAE9C,gBAAY,CAAE,2CAAO,CW3BvB,sDAAiB,CACf,UAAU,CAAI,iBAAkC,CAIpD,qBAAe,CACb,gBAAgB,C/FglBU,OAAc,CoF7jBtC,gBAAY,CAAE,qhBAAgC,CA2B9C,eAAe,CAAE,IAAI,CA3BrB,gBAAY,CAAE,6FAAgC,CAA9C,gBAAY,CAAE,0CAAgC,CAA9C,gBAAY,CAAE,6CAAgC,CAE9C,gBAAY,CAAE,2CAAO,CWlBvB,wDAAiB,CACf,UAAU,CAAI,iBAAoC,CAItD,kBAAY,CACV,gBAAgB,CtFSU,OAAI,C2EC5B,gBAAY,CAAE,qhBAAgC,CA2B9C,eAAe,CAAE,IAAI,CA3BrB,gBAAY,CAAE,6FAAgC,CAA9C,gBAAY,CAAE,0CAAgC,CAA9C,gBAAY,CAAE,6CAAgC,CAE9C,gBAAY,CAAE,2CAAO,CWTvB,kDAAiB,CACf,UAAU,CAAI,iBAA2B,CAI7C,mBAAa,CACX,gBAAgB,CtFCU,OAAK,C2EA7B,gBAAY,CAAE,qhBAAgC,CA2B9C,eAAe,CAAE,IAAI,CA3BrB,gBAAY,CAAE,6FAAgC,CAA9C,gBAAY,CAAE,0CAAgC,CAA9C,gBAAY,CAAE,6CAAgC,CAE9C,gBAAY,CAAE,2CAAO,CWAvB,oDAAiB,CACf,UAAU,CAAI,iBAAiC,CAMrD,cAAe,CACb,IAAI,CAAE,CAAC,CAET,aAAc,CACZ,KAAK,CAAE,CAAC,CCrFV,0BAA0B,CACxB,QAAQ,CAAE,QAAQ,CAClB,OAAO,CAAE,CAAC,CACV,MAAM,CAAE,MAAM,CACd,IAAI,CAAE,GAAG,CACT,KAAK,CAAE,IAAI,CACX,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,UAAU,CAAE,IAAI,CAEhB,kDAAuB,CACrB,QAAQ,CAAE,QAAQ,CAClB,OAAO,CAAE,CAAC,CACV,MAAM,CAAE,MAAM,CACd,IAAI,CAAE,CAAC,CACP,KAAK,CAAE,CAAC,CACR,GAAG,CAAE,GAAG,CACR,UAAU,CAAE,KAAK,CACjB,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,IAAI,CACZ,UAAU,CAAE,IAAI,CAEhB,qDAAE,CACA,gBAAgB,ChGytBQ,OAAM,CgGxtB9B,KAAK,CAAE,GAAG,CACV,MAAM,CAAE,GAAG,CACX,KAAK,CAAE,KAAK,CACZ,YAAY,CAAE,cAAc,C7F+FhC,kBAAkB,CAAE,4BAAO,CACnB,UAAU,CAAE,4BAAO,C6F7FvB,iEAAa,C7F+KjB,iBAAiB,C6F9KQ,uEAAsE,C7F+KvF,SAAS,C6F/KQ,uEAAsE,CAG3F,kEAAc,C7F2KlB,iBAAiB,C6F1KQ,kDAAoD,C7F2KrE,SAAS,C6F3KQ,kDAAoD,CAGzE,kEAAc,C7FuKlB,iBAAiB,C6FtKQ,iDAAmD,C7FuKpE,SAAS,C6FvKQ,iDAAmD,CAGxE,kEAAc,C7FmKlB,iBAAiB,C6FlKQ,kDAAoD,C7FmKrE,SAAS,C6FnKQ,kDAAoD,CAGzE,kEAAc,C7F+JlB,iBAAiB,C6F9JQ,iDAAmD,C7F+JpE,SAAS,C6F/JQ,iDAAmD,CAGxE,kEAAc,C7F2JlB,iBAAiB,C6F1JQ,kDAAoD,C7F2JrE,SAAS,C6F3JQ,kDAAoD,CfjD7E,mCAEC,CesDD,EAAE,CACA,MAAM,CAAE,GAAG,CACX,UAAU,CAAE,IAAI,CAElB,GAAG,CACD,MAAM,CAAE,GAAG,CACX,UAAU,CAAE,IAAI,CAElB,GAAG,CACD,MAAM,CAAC,IAAI,CACX,UAAU,CAAE,GAAG,CAEjB,IAAI,CACF,MAAM,CAAE,GAAG,CACX,UAAU,CAAE,IAAI,EfnElB,gCAEC,CemDD,EAAE,CACA,MAAM,CAAE,GAAG,CACX,UAAU,CAAE,IAAI,CAElB,GAAG,CACD,MAAM,CAAE,GAAG,CACX,UAAU,CAAE,IAAI,CAElB,GAAG,CACD,MAAM,CAAC,IAAI,CACX,UAAU,CAAE,GAAG,CAEjB,IAAI,CACF,MAAM,CAAE,GAAG,CACX,UAAU,CAAE,IAAI,EfhElB,+BAEC,CegDD,EAAE,CACA,MAAM,CAAE,GAAG,CACX,UAAU,CAAE,IAAI,CAElB,GAAG,CACD,MAAM,CAAE,GAAG,CACX,UAAU,CAAE,IAAI,CAElB,GAAG,CACD,MAAM,CAAC,IAAI,CACX,UAAU,CAAE,GAAG,CAEjB,IAAI,CACF,MAAM,CAAE,GAAG,CACX,UAAU,CAAE,IAAI,Ef7DlB,2BAEC,Ce6CD,EAAE,CACA,MAAM,CAAE,GAAG,CACX,UAAU,CAAE,IAAI,CAElB,GAAG,CACD,MAAM,CAAE,GAAG,CACX,UAAU,CAAE,IAAI,CAElB,GAAG,CACD,MAAM,CAAC,IAAI,CACX,UAAU,CAAE,GAAG,CAEjB,IAAI,CACF,MAAM,CAAE,GAAG,CACX,UAAU,CAAE,IAAI,ECxEpB,wBAAwB,CACtB,QAAQ,CAAE,KAAK,CACf,SAAS,CAAE,KAAK,CAChB,aAAa,CAAE,GAAG,CAClB,OAAO,CAAE,GAAG,CACZ,UAAU,CAAE,0BAA0B,CAEpC,gBAAK,CAAE,kBAAqB,CAG9B,2BAAE,CACA,MAAM,CAAE,YAAY,CAGtB,2BAAE,CACA,aAAa,CAAE,CAAC,CAEhB,8BAAE,CACA,cAAc,CAAE,SAAS,CAK/B,wBAAwB,CACtB,GAAG,CAAE,IAAI,CACT,IAAI,CAAE,IAAI,CAGZ,uBAAuB,CACrB,MAAM,CAAE,IAAI,CACZ,KAAK,CAAE,IAAI,CC9Bb,QAAS,CACP,mBAAmB,CAAE,MAAM,CAC3B,iBAAiB,CAAE,SAAS,CAC5B,QAAQ,CAAE,QAAQ,CAClB,OAAO,CAAE,YAAY,CACrB,QAAQ,CAAE,MAAM,CAChB,UAAU,CAAE,kBAAkB,CAC9B,MAAM,CAAE,OAAO,CAGjB,cAAe,CACb,UAAU,CAAE,sjDAAsjD,CAClkD,eAAe,CAAE,SAAS,CAC1B,QAAQ,CAAE,QAAQ,CAClB,MAAM,CAAE,IAAI,CACZ,KAAK,CAAE,IAAI,CACX,OAAO,CAAE,EAAE,CACX,MAAM,CAAE,iBAAiB,CACzB,UAAU,CAAE,iBAAiB,CAG/B,oBAAqB,CACnB,OAAO,CAAE,CAAC,CACV,MAAM,CAAE,kBAAkB", +"mappings": "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", "sources": ["../../../sass/pathfinder.scss","file:///C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss","../../../sass/_variables.scss","../../../sass/_bootstrap.scss","../../../sass/bootstrap/_scaffolding.scss","../../../sass/bootstrap/_mixins.scss","../../../sass/bootstrap/_type.scss","../../../sass/bootstrap/_code.scss","../../../sass/bootstrap/_grid.scss","../../../sass/bootstrap/_tables.scss","../../../sass/bootstrap/_forms.scss","../../../sass/_colors.scss","../../../sass/bootstrap/_buttons.scss","../../../sass/bootstrap/_component-animations.scss","../../../sass/bootstrap/_dropdowns.scss","file:///C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/compass-core-1.0.3/stylesheets/compass/_support.scss","file:///C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/compass-core-1.0.3/stylesheets/compass/css3/_border-radius.scss","../../../sass/bootstrap/_button-groups.scss","../../../sass/bootstrap/_input-groups.scss","../../../sass/bootstrap/_navs.scss","../../../sass/bootstrap/_navbar.scss","../../../sass/bootstrap/_breadcrumbs.scss","../../../sass/bootstrap/_pagination.scss","../../../sass/bootstrap/_pager.scss","../../../sass/bootstrap/_labels.scss","../../../sass/bootstrap/_badges.scss","../../../sass/bootstrap/_thumbnails.scss","../../../sass/bootstrap/_alerts.scss","../../../sass/bootstrap/_progress-bars.scss","../../../sass/bootstrap/_media.scss","../../../sass/bootstrap/_list-group.scss","../../../sass/bootstrap/_panels.scss","../../../sass/bootstrap/_wells.scss","../../../sass/bootstrap/_close.scss","../../../sass/bootstrap/_modals.scss","../../../sass/bootstrap/_tooltip.scss","../../../sass/bootstrap/_popovers.scss","../../../sass/bootstrap/_utilities.scss","../../../sass/bootstrap/_responsive-utilities.scss","../../../sass/library/fontawesome/_fontawesome.scss","../../../sass/library/fontawesome/_core.scss","../../../sass/library/fontawesome/_larger.scss","../../../sass/library/fontawesome/_fixed-width.scss","../../../sass/library/fontawesome/_list.scss","../../../sass/library/fontawesome/_variables.scss","../../../sass/library/fontawesome/_bordered-pulled.scss","../../../sass/library/fontawesome/_animated.scss","../../../sass/library/fontawesome/_rotated-flipped.scss","../../../sass/library/fontawesome/_mixins.scss","../../../sass/library/fontawesome/_stacked.scss","../../../sass/library/fontawesome/_icons.scss","../../../sass/library/fontawesome/_screen-reader.scss","../../../sass/library/fontawesome/_regular.scss","../../../sass/library/fontawesome/_solid.scss","../../../sass/library/fontawesome/_brands.scss","../../../sass/library/custom-scrollbar/_mCustomScrollbar.scss","../../../sass/library/data-tables/_dataTables.scss","../../../sass/library/data-tables/_dataTables-buttons.scss","../../../sass/library/data-tables/_dataTables-fontAwesome.scss","../../../sass/library/data-tables/_dataTables-responsive.scss","../../../sass/library/data-tables/_dataTables-select.scss","../../../sass/library/x-editable/_bootstrap-editable.scss","../../../sass/library/pnotify/_pnotify.scss","../../../sass/library/pnotify/_pnotify.nonblock.scss","../../../sass/library/pnotify/_pnotify.custom.scss","../../../sass/library/slidebars/_slidebars.scss","../../../sass/library/easy-pie-chart/_easyPieChart.scss","../../../sass/library/drag-to-select/_dragToSelect.scss","../../../sass/library/select2/_core.scss","../../../sass/library/select2/_single.scss","../../../sass/library/select2/_multiple.scss","../../../sass/library/select2/_dropdown.scss","../../../sass/library/select2/theme/pathfinder/_single.scss","../../../sass/library/select2/theme/pathfinder/_defaults.scss","../../../sass/library/select2/theme/pathfinder/_multiple.scss","../../../sass/library/select2/theme/pathfinder/_layout.scss","file:///C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/compass-core-1.0.3/stylesheets/compass/css3/_appearance.scss","../../../sass/library/blue-imp-gallery/_blueimp-gallery.scss","../../../sass/library/blue-imp-gallery/_bootstrap-image-gallery.scss","../../../sass/library/bootstrap-toggle/_bootstrap-toggle.scss","../../../sass/library/bootstrap-checkbox/_awesome-bootstrap-checkbox.scss","../../../sass/_main.scss","../../../sass/_main-colorpallet.scss","../../../sass/layout/_animation.scss","../../../sass/layout/_fonts.scss","../../../sass/layout/_main.scss","file:///C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/compass-core-1.0.3/stylesheets/compass/css3/_images.scss","../../../sass/layout/_landing.scss","../../../sass/layout/_logo.scss","../../../sass/layout/_map.scss","../../../sass/layout/_system-info.scss","../../../sass/layout/_forms.scss","../../../sass/layout/_images.scss","../../../sass/layout/_dialogs.scss","../../../sass/layout/_log.scss","../../../sass/layout/_timeline.scss","../../../sass/layout/_popover.scss","../../../sass/layout/_ribbon.scss","../../../sass/layout/_loading-bar.scss","../../../sass/layout/_sticky-panel.scss","../../../sass/layout/_youtube.scss"], "names": [], "file": "pathfinder.css" diff --git a/public/js/v1.4.1/app/counter.js b/public/js/v1.4.1/app/counter.js index f54387ca..444538d5 100644 --- a/public/js/v1.4.1/app/counter.js +++ b/public/js/v1.4.1/app/counter.js @@ -2,7 +2,7 @@ define([ 'jquery', 'app/init', 'app/util' -], function($, Init, Util) { +], ($, Init, Util) => { 'use strict'; let config = { @@ -16,7 +16,7 @@ define([ * @param tempDate * @param round */ - let updateDateDiff = function(element, tempDate, round){ + let updateDateDiff = (element, tempDate, round) => { let diff = Util.getTimeDiffParts(tempDate, new Date()); let days = diff.days; let hrs = diff.hours; @@ -65,17 +65,21 @@ define([ /** * destroy all active counter recursive */ - $.fn.destroyTimestampCounter = function(){ + $.fn.destroyTimestampCounter = function(recursive){ return this.each(function(){ - let parentElement = $(this); - parentElement.find('[data-counter="init"]').each(function(){ + let element = $(this); + let counterSelector = '[data-counter="init"]'; + let counterElements = element.filter(counterSelector); + if(recursive){ + counterElements = counterElements.add(element.find(counterSelector)); + } + + counterElements.each(function(){ let element = $(this); let interval = element.data('interval'); if(interval){ clearInterval(interval); - element.removeAttr('data-counter') - .removeData('interval') - .removeClass('stopCounter'); + element.removeAttr('data-counter').removeData('interval').removeClass('stopCounter'); } }); }); @@ -102,18 +106,27 @@ define([ // show element (if invisible) after first update element.css({'visibility': 'initial'}); - let refreshIntervalId = window.setInterval(function(){ + // calc ms until next second + // -> makes sure all counter update in sync no matter when init + let msUntilSecond = 1500 - new Date().getMilliseconds(); + setTimeout(function(){ + let refreshIntervalId = window.setInterval(function(){ - // update element with current time - if( !element.hasClass('stopCounter')){ - updateDateDiff(element, date, round); - }else{ - clearInterval( element.data('interval') ); - } - }, 500); + // update element with current time + if( !element.hasClass('stopCounter')){ + updateDateDiff(element, date, round); + }else{ + clearInterval( element.data('interval') ); + } + }, 500); - element.data('interval', refreshIntervalId); + element.data('interval', refreshIntervalId); + }, msUntilSecond); } }); }; + + return { + updateDateDiff: updateDateDiff + }; }); diff --git a/public/js/v1.4.1/app/datatables.loader.js b/public/js/v1.4.1/app/datatables.loader.js index 82f451bc..79873ffb 100644 --- a/public/js/v1.4.1/app/datatables.loader.js +++ b/public/js/v1.4.1/app/datatables.loader.js @@ -1,11 +1,41 @@ define([ + 'jquery', + 'app/init', 'datatables.net', 'datatables.net-buttons', 'datatables.net-buttons-html', 'datatables.net-responsive', 'datatables.net-select' -], (a, b) => { +], ($, Init) => { 'use strict'; // all Datatables stuff is available... + let initDefaultDatatablesConfig = () => { + + + + $.extend(true, $.fn.dataTable.defaults, { + pageLength: -1, + pagingType: 'simple_numbers', + lengthMenu: [[5, 10, 25, 50, -1], [5, 10, 25, 50, 'All']], + order: [], // no default order because columnDefs is empty + autoWidth: false, + responsive: { + breakpoints: Init.breakpoints, + details: false + }, + columnDefs: [], + data: [] + }); + + // global open event + $(document).on('destroy.dt', '.dataTable ', function(e, settings){ + let table = $(this); + + // remove all active counters in table + table.destroyTimestampCounter(true); + }); + }; + + initDefaultDatatablesConfig(); }); \ No newline at end of file diff --git a/public/js/v1.4.1/app/init.js b/public/js/v1.4.1/app/init.js index d2cb50bc..77ff3329 100644 --- a/public/js/v1.4.1/app/init.js +++ b/public/js/v1.4.1/app/init.js @@ -60,10 +60,12 @@ define(['jquery'], ($) => { gitHubReleases: '/api/github/releases' // ajax URL - get release info from GitHub }, breakpoints: [ - { name: 'desktop', width: Infinity }, - { name: 'tablet', width: 1200 }, - { name: 'fablet', width: 780 }, - { name: 'phone', width: 480 } + { name: 'screen-xl', width: Infinity }, + { name: 'screen-l', width: 1600 }, + { name: 'screen-m', width: 1200 }, + { name: 'screen-d', width: 1000 }, + { name: 'screen-s', width: 780 }, + { name: 'screen-xs', width: 480 } ], animationSpeed: { splashOverlay: 300, // "splash" loading overlay diff --git a/public/js/v1.4.1/app/map/overlay.js b/public/js/v1.4.1/app/map/overlay.js index 7a7be63b..2ce722c6 100644 --- a/public/js/v1.4.1/app/map/overlay.js +++ b/public/js/v1.4.1/app/map/overlay.js @@ -65,7 +65,7 @@ define([ * @param connectionsData */ let addConnectionsOverlay = (connections, connectionsData) => { - let SystemSignatures = require('app/ui/system_signature'); + let SystemSignatures = require('app/ui/module/system_signature_new'); /** * add label to endpoint diff --git a/public/js/v1.4.1/app/map/util.js b/public/js/v1.4.1/app/map/util.js index b5092946..6c39c260 100644 --- a/public/js/v1.4.1/app/map/util.js +++ b/public/js/v1.4.1/app/map/util.js @@ -367,7 +367,7 @@ define([ connection && connectionData.signatures // signature data is required... ){ - let SystemSignatures = require('app/ui/system_signature'); + let SystemSignatures = require('app/ui/module/system_signature_new'); let connectionId = connection.getParameter('connectionId'); let sourceEndpoint = connection.endpoints[0]; @@ -1426,6 +1426,7 @@ define([ /** * add a wormhole tooltip with wh specific data to elements * @param tooltipData + * @param options * @returns {*} */ $.fn.addWormholeInfoTooltip = function(tooltipData, options){ diff --git a/public/js/v1.4.1/app/module_map.js b/public/js/v1.4.1/app/module_map.js index 32687753..734c039d 100644 --- a/public/js/v1.4.1/app/module_map.js +++ b/public/js/v1.4.1/app/module_map.js @@ -5,13 +5,14 @@ define([ 'app/map/map', 'app/map/util', 'sortable', - 'app/ui/system_info', - 'app/ui/system_graph', - 'app/ui/system_signature', - 'app/ui/system_route', - 'app/ui/system_intel', - 'app/ui/system_killboard', - 'app/ui/connection_info', + 'app/ui/module/system_info', + 'app/ui/module/system_graph', + //'app/ui/module/system_signature', + 'app/ui/module/system_signature_new', + 'app/ui/module/system_route', + 'app/ui/module/system_intel', + 'app/ui/module/system_killboard', + 'app/ui/module/connection_info', 'app/counter' ], ( $, @@ -180,11 +181,12 @@ define([ * @param moduleElement * @param Module * @param callback + * @param addSpacer */ let removeModule = (moduleElement, Module, callback, addSpacer) => { if(moduleElement.length > 0){ - if(typeof Module.beforeReDraw === 'function'){ - Module.beforeReDraw(); + if(typeof Module.beforeHide === 'function'){ + Module.beforeHide(moduleElement); } moduleElement.velocity('reverse',{ @@ -336,8 +338,6 @@ define([ } }; - - return new Promise(drawModuleExecutor); }; @@ -539,23 +539,25 @@ define([ let clickY = e.pageY - posY; // check for top-left click - if(clickX <= 8 && clickY <= 8 && clickX >= 0 && clickY >= 0){ + if(clickX <= 9 && clickY <= 9 && clickX >= 0 && clickY >= 0){ // remember height - if(! moduleElement.data('origHeight')){ + if( !moduleElement.data('origHeight') ){ moduleElement.data('origHeight', moduleElement.outerHeight()); } - if(moduleElement.hasClass( config.moduleClosedClass )){ + if(moduleElement.hasClass(config.moduleClosedClass)){ let moduleHeight = moduleElement.data('origHeight'); moduleElement.velocity('finish').velocity({ height: [ moduleHeight + 'px', [ 400, 15 ] ] },{ duration: 400, easing: 'easeOutSine', - complete: function(){ - moduleElement.removeClass( config.moduleClosedClass ); + complete: function(moduleElement){ + moduleElement = $(moduleElement); + moduleElement.removeClass(config.moduleClosedClass); moduleElement.removeData('origHeight'); + moduleElement.css({height: ''}); } }); }else{ @@ -564,8 +566,9 @@ define([ },{ duration: 400, easing: 'easeOutSine', - complete: function(){ - moduleElement.addClass( config.moduleClosedClass ); + complete: function(moduleElement){ + moduleElement = $(moduleElement); + moduleElement.addClass(config.moduleClosedClass); } }); } diff --git a/public/js/v1.4.1/app/page.js b/public/js/v1.4.1/app/page.js index 7caf12fb..223bafaf 100644 --- a/public/js/v1.4.1/app/page.js +++ b/public/js/v1.4.1/app/page.js @@ -70,7 +70,7 @@ define([ dynamicElementWrapperId: 'pf-dialog-wrapper', // class for container element that holds hidden "context menus" // system signature module - systemSignatureModuleClass: 'pf-signature-table-module', // module wrapper (signatures) + systemSignatureModuleClass: 'pf-system-signature-module', // module wrapper (signatures) systemIntelModuleClass: 'pf-system-intel-module', // module wrapper (intel) }; @@ -744,7 +744,7 @@ define([ // global "modal" callback (for all modals) $('body').on('hide.bs.modal', '> .modal', function(e) { let modalElement = $(this); - modalElement.destroyTimestampCounter(); + modalElement.destroyTimestampCounter(true); // destroy all Select2 modalElement.find('.' + Util.config.select2Class) diff --git a/public/js/v1.4.1/app/ui/dialog/map_info.js b/public/js/v1.4.1/app/ui/dialog/map_info.js index 68841b20..dd92dc53 100644 --- a/public/js/v1.4.1/app/ui/dialog/map_info.js +++ b/public/js/v1.4.1/app/ui/dialog/map_info.js @@ -321,10 +321,6 @@ define([ tooltipElements.tooltip(); }); - systemTable.on('destroy.dt', function(){ - $(this).destroyTimestampCounter(); - }); - // prepare data for dataTables let systemsData = []; for(let i = 0; i < mapData.data.systems.length; i++){ @@ -470,11 +466,6 @@ define([ lengthMenu: [[5, 10, 20, 50, -1], [5, 10, 20, 50, 'All']], ordering: true, order: [[ 9, 'desc' ], [ 3, 'asc' ]], - autoWidth: false, - responsive: { - breakpoints: Init.breakpoints, - details: false - }, hover: false, data: systemsData, columnDefs: [], @@ -488,7 +479,7 @@ define([ { title: 'type', width: '25px', - className: ['min-desktop'].join(' '), + className: ['min-screen-l'].join(' '), data: 'type', render: { _: 'type', @@ -506,7 +497,7 @@ define([ },{ title: 'sec', width: '18px', - className: ['text-center', 'min-desktop'].join(' '), + className: ['text-center', 'min-screen-l'].join(' '), searchable: false, data: 'trueSec', render: { @@ -516,7 +507,7 @@ define([ },{ title: '', width: '10px', - className: ['text-center', 'min-desktop'].join(' '), + className: ['text-center', 'min-screen-l'].join(' '), searchable: false, data: 'shattered', render: { @@ -593,7 +584,7 @@ define([ title: 'updated', width: '80px', searchable: false, - className: ['text-right', config.tableCellCounterClass, 'min-desktop'].join(' '), + className: ['text-right', config.tableCellCounterClass, 'min-screen-l'].join(' '), data: 'updated', createdCell: function(cell, cellData, rowData, rowIndex, colIndex){ $(cell).initTimestampCounter(); @@ -863,11 +854,6 @@ define([ lengthMenu: [[5, 10, 20, 50, -1], [5, 10, 20, 50, 'All']], ordering: true, order: [[ 3, 'asc' ]], - autoWidth: false, - responsive: { - breakpoints: Init.breakpoints, - details: false - }, hover: false, data: usersData, language: { @@ -962,7 +948,7 @@ define([ width: 26, orderable: false, searchable: false, - className: [config.tableCellImageClass, config.tableCellImageSmallClass, 'min-desktop'].join(' '), + className: [config.tableCellImageClass, config.tableCellImageSmallClass, 'min-screen-l'].join(' '), data: 'corporation', render: { _: function(data, type, row, meta){ @@ -978,7 +964,7 @@ define([ title: 'corporation', orderable: true, searchable: true, - className: [config.tableCellActionClass, 'min-desktop'].join(' '), + className: [config.tableCellActionClass, 'min-screen-l'].join(' '), data: 'corporation', render: { _: function (data, type, row, meta) { @@ -1041,7 +1027,7 @@ define([ width: 30, orderable: true, searchable: true, - className: ['text-right', 'min-desktop'].join(' '), + className: ['text-right', 'min-screen-l'].join(' '), data: 'role', render: { _: function (data, type, row, meta) { diff --git a/public/js/v1.4.1/app/ui/form_element.js b/public/js/v1.4.1/app/ui/form_element.js index 23345ac5..37d9d2ab 100644 --- a/public/js/v1.4.1/app/ui/form_element.js +++ b/public/js/v1.4.1/app/ui/form_element.js @@ -654,7 +654,7 @@ define([ */ $.fn.initSignatureTypeSelect = function(options, hasOptGroups){ let defaultConfig = { - minimumResultsForSearch: 6, + minimumResultsForSearch: 10, width: '220px', dropdownParent: this.parents('.popover-content') }; diff --git a/public/js/v1.4.1/app/ui/module/connection_info.js b/public/js/v1.4.1/app/ui/module/connection_info.js new file mode 100644 index 00000000..feba0d52 --- /dev/null +++ b/public/js/v1.4.1/app/ui/module/connection_info.js @@ -0,0 +1,1013 @@ +/** + * Connection info module + */ + +define([ + 'jquery', + 'app/init', + 'app/util', + 'app/map/util' +], ($, Init, Util, MapUtil) => { + 'use strict'; + + let config = { + // module info + modulePosition: 1, + moduleName: 'connectionInfo', + moduleHeadClass: 'pf-module-head', // class for module header + moduleHandlerClass: 'pf-module-handler-drag', // class for "drag" handler + + headUserShipClass: 'pf-head-user-ship', // class for "user settings" link + + // connection info module + moduleTypeClass: 'pf-connection-info-module', // class for this module + + // headline toolbar + moduleHeadlineIconClass: 'pf-module-icon-button', // class for toolbar icons in the head + moduleHeadlineIconRefreshClass: 'pf-module-icon-button-refresh', // class for "refresh" icon + moduleHeadlineIconCurrentMassClass: 'pf-module-icon-button-mass', // class for "current ship mass" toggle icon + + connectionInfoPanelClass: 'pf-connection-info-panel', // class for connection info panels + connectionInfoPanelId: 'pf-connection-info-panel-', // id prefix for connection info panels + + // info table + moduleTableClass: 'pf-module-table', // class for module tables + connectionInfoTableLabelSourceClass: 'pf-connection-info-label-source', // class for source label + connectionInfoTableLabelTargetClass: 'pf-connection-info-label-target', // class for target label + connectionInfoTableRowMassLogClass: 'pf-connection-info-row-mass-log', // class for "logged mass" table row + connectionInfoTableRowMassShipClass: 'pf-connection-info-row-mass-ship', // class for "current ship mass" table row + connectionInfoTableCellConnectionClass: 'pf-connection-info-connection', // class for connection "fake" table cell + connectionInfoTableCellMassTotalTooltipClass: 'pf-connection-info-mass-total-tooltip', // class for "mass total tooltip" table cell + connectionInfoTableCellMassTotalClass: 'pf-connection-info-mass-total', // class for "mass total" table cell + connectionInfoTableCellMassLogClass: 'pf-connection-info-mass-log', // class for "mass logged" table cell + connectionInfoTableCellMassShipClass: 'pf-connection-info-mass-ship', // class for "current ship mass" table cell + connectionInfoTableCellMassLeftClass: 'pf-connection-info-mass-left', // class for "mass left" table cell + + // dataTable + connectionInfoTableClass: 'pf-connection-info-table', // class for connection tables + tableCellImageClass: 'pf-table-image-cell', // class for table "image" cells + tableCellCounterClass: 'pf-table-counter-cell', // class for table "counter" cells + + // config + showShip: true // default for "show current ship mass" toggle + }; + + /** + * get module toolbar element + * @returns {*|jQuery|HTMLElement|void} + */ + let getHeadlineToolbar = () => { + let headlineToolbar = $('
', { + class: 'pull-right' + }).append( + $('', { + class: ['fas', 'fa-fw', 'fa-male', + config.showShip ? 'active' : '' , + config.moduleHeadlineIconClass, + config.moduleHeadlineIconCurrentMassClass].join(' '), + title: 'toggle current ship mass' + }).attr('data-html', 'true').attr('data-toggle', 'tooltip'), + $('', { + class: ['fas', 'fa-fw', 'fa-sync', + config.moduleHeadlineIconClass, + config.moduleHeadlineIconRefreshClass].join(' '), + title: 'refresh all' + }).attr('data-html', 'true').attr('data-toggle', 'tooltip') + ); + + headlineToolbar.find('[data-toggle="tooltip"]').tooltip({ + container: 'body' + }); + + return headlineToolbar; + }; + + /** + * get new connection element + * @param mapId + * @param connectionId + * @returns {jQuery} + */ + let getConnectionElement = (mapId, connectionId) => { + let connectionElement = $('
', { + id: getConnectionElementId(connectionId), + class: ['col-xs-12', 'col-sm-4', 'col-lg-3' , config.connectionInfoPanelClass].join(' ') + }).data({ + mapId: mapId, + connectionId: connectionId + }); + + return connectionElement; + }; + + /** + * get info control panel element + * @param mapId + * @returns {void|jQuery|*} + */ + let getInfoPanelControl = (mapId) => { + let connectionElement = getConnectionElement(mapId, 0).append($('
', { + class: 'pf-dynamic-area', + html: ' add connection  ctrl + click' + })); + + return connectionElement; + }; + + /** + * get connection information element + * @param connectionData + * @returns {void|*|jQuery|HTMLElement} + */ + let getInformationElement = (connectionData) => { + + // connection scope ----------------------------------------------------------------------- + let scopeLabel = MapUtil.getScopeInfoForConnection(connectionData.scope, 'label'); + + let element = $('
', { + class: 'pf-dynamic-area' + }).append( + $('
', { + class: ['table', 'table-condensed', 'pf-table-fixed', config.moduleTableClass].join(' ') + }).data('showShip', config.showShip).append( + $('').append( + $('').append( + $('').append( + $('').append( + $('').append( + $('', { + class: config.connectionInfoTableRowMassLogClass + }).append( + $('', { + class: config.connectionInfoTableRowMassShipClass + }).append( + $('').append( + $('
', { + class: ['pf-table-cell-20', 'text-right', Util.config.helpClass, 'pf-pie-chart'].join(' ') + }).attr('data-toggle', 'tooltip').attr('data-percent', '-100').easyPieChart({ + barColor: (percent) => { + let color = '#e28a0d'; + if((percent * -1) >= 100){ + color = '#a52521'; + } + return color; + }, + overrideOptions: 'signed', + trackColor: '#5cb85c', + size: 14, + scaleColor: false, + lineWidth: 2, + lineCap: 'butt', + animate: false + }), + $('', { + class: ['text-right'].join(' ') + }).attr('colspan', 2).append( + $('', { + class: 'pf-link', + html: connectionData.sourceAlias + '  ' + }).on('click', function(){ + Util.getMapModule().getActiveMap().triggerMenuEvent('SelectSystem', {systemId: connectionData.source }); + }), + $('', { + class: [config.connectionInfoTableLabelSourceClass].join(' ') + }), + $('', { + class: 'fas fa-fw fa-angle-double-right' + }), + $('', { + class: [config.connectionInfoTableLabelTargetClass].join(' ') + }), + $('', { + class: 'pf-link', + html: '  ' + connectionData.targetAlias + }).on('click', function(){ + Util.getMapModule().getActiveMap().triggerMenuEvent('SelectSystem', {systemId: connectionData.target }); + }) + ) + ) + ), + $('
', { + class: ['text-right', Util.config.helpClass, config.connectionInfoTableCellMassTotalTooltipClass].join(' '), + html: '' + }), + $('', { + text: scopeLabel.charAt(0).toUpperCase() + scopeLabel.slice(1) + }), + $('', { + class: ['text-right', config.connectionInfoTableCellConnectionClass].join(' ') + }).append( + $('
', { + class: MapUtil.getConnectionFakeClassesByTypes(connectionData.type).join(' ') + }) + ) + ), + $('
', { + class: ['text-right', Util.config.helpClass].join(' '), + html: '', + title: 'initial mass. From signature table' + }).attr('data-toggle', 'tooltip'), + $('', { + text: 'Total mass' + }), + $('', { + class: ['text-right', 'txt-color', config.connectionInfoTableCellMassTotalClass].join(' ') + }) + ), + $('
', { + class: ['text-right', Util.config.helpClass].join(' '), + title: 'recorded total jump mass' + }).attr('data-toggle', 'tooltip').append( + $('', { + class: [ + 'fas', 'fa-fw', 'fa-question-circle' + ].join(' ') + }), + $('', { + class: [ + 'fas', 'fa-fw', 'fa-adjust', + 'txt-color', 'txt-color-warning', + 'hidden' + ].join(' ') + }), + $('', { + class: [ + 'far', 'fa-fw', 'fa-circle', + 'txt-color', 'txt-color-danger', + 'hidden' + ].join(' ') + }) + ), + $('', { + text: 'Logged mass' + }), + $('', { + class: ['text-right', config.connectionInfoTableCellMassLogClass].join(' ') + }) + ), + $('
', { + class: ['text-right', Util.config.helpClass].join(' '), + title: 'current ship mass' + }).attr('data-toggle', 'tooltip').append( + $('', { + class: ['fas', 'fa-fw', 'fa-question-circle'].join(' ') + }), + $('', { + class: [ + 'fas', 'fa-fw', 'fa-exclamation-triangle', + 'txt-color', 'txt-color-danger', + 'hidden' + ].join(' ') + }) + ), + $('', { + class: ['pf-table-cell-ellipses-auto'].join(' '), + text: 'Ship mass' + }), + $('', { + class: ['text-right', 'txt-color', config.connectionInfoTableCellMassShipClass].join(' ') + }) + ), + $('
', { + class: ['text-right', Util.config.helpClass].join(' '), + html: '', + title: 'max. mass left' + }).attr('data-toggle', 'tooltip'), + $('', { + text: 'Mass left' + }), + $('', { + class: ['text-right', 'txt-color', config.connectionInfoTableCellMassLeftClass].join(' ') + }) + ) + ) + ).on('pf:updateInfoTable', function(e, data){ + // update information table ------------------------------------------------------- + let tableElement = $(this); + let connectionData = tableElement.data('connectionData'); + if(connectionData){ + if(connectionData.scope === 'wh'){ + // update signature information ------------------------------------------- + let sourceLabelElement = tableElement.find('.' + config.connectionInfoTableLabelSourceClass); + let targetLabelElement = tableElement.find('.' + config.connectionInfoTableLabelTargetClass); + + // get related jsPlumb connection + let connection = $().getConnectionById(data.mapId, data.connectionId); + let signatureTypeNames = MapUtil.getConnectionDataFromSignatures(connection, connectionData); + + let sourceLabel = signatureTypeNames.sourceLabels; + let targetLabel = signatureTypeNames.targetLabels; + sourceLabelElement.html(MapUtil.getEndpointOverlayContent(sourceLabel)); + targetLabelElement.html(MapUtil.getEndpointOverlayContent(targetLabel)); + + // remove K162 + sourceLabel = sourceLabel.diff(['K162']); + targetLabel = targetLabel.diff(['K162']); + + // get static wormhole data by endpoint Labels + let wormholeName = ''; + let wormholeData = null; + if(sourceLabel.length === 1 && targetLabel.length === 0){ + wormholeName = sourceLabel[0]; + }else if(sourceLabel.length === 0 && targetLabel.length === 1){ + wormholeName = targetLabel[0]; + } + + if( + wormholeName && + Init.wormholes.hasOwnProperty(wormholeName) + ){ + wormholeData = Object.assign({}, Init.wormholes[wormholeName]); + wormholeData.class = Util.getSecurityClassForSystem(wormholeData.security); + + // init wormhole tooltip ---------------------------------------------- + let massTotalTooltipCell = tableElement.find('.' + config.connectionInfoTableCellMassTotalTooltipClass); + massTotalTooltipCell.addWormholeInfoTooltip(wormholeData); + } + + // all required data is set -> re-calculate rows + tableElement.data('wormholeData', wormholeData); + tableElement.trigger('pf:calcInfoTable'); + } + + } + }).on('pf:calcInfoTable', function(e){ + // re-calculate information table from .data() cell values ------------------------ + let tableElement = $(this); + let connectionData = tableElement.data('connectionData'); + let massChartCell = tableElement.find('[data-percent]'); + + let wormholeData = tableElement.data('wormholeData'); + let shipData = null; + let shipName = ''; + let showShip = Boolean(tableElement.data('showShip')); + let massLogRow = tableElement.find('.' + config.connectionInfoTableRowMassLogClass); + let massShipRow = tableElement.find('.' + config.connectionInfoTableRowMassShipClass); + + // icons + let massLogTooltipIcon = massLogRow.find('i.fa-question-circle'); + let massLogStage2Icon = massLogRow.find('i.fa-adjust'); + let massLogStage3Icon = massLogRow.find('i.fa-circle'); + + let massShipTooltipIcon = massShipRow.find('i.fa-question-circle'); + let massShipWarningIcon = massShipRow.find('i.fa-exclamation-triangle'); + + // table cells + let connectionCell = tableElement.find('.' + config.connectionInfoTableCellConnectionClass); + let massTotalCell = tableElement.find('.' + config.connectionInfoTableCellMassTotalClass); + let massLogCell = tableElement.find('.' + config.connectionInfoTableCellMassLogClass); + let massShipCell = tableElement.find('.' + config.connectionInfoTableCellMassShipClass); + let massLeftCell = tableElement.find('.' + config.connectionInfoTableCellMassLeftClass); + let massTotal = null; // initial connection mass + let massReduction = 0; // default reduction (e.g. reduced, crit) in percent + let massLog = massLogCell.data('mass'); // recorded mass + let massLogTotal = massLog; // recorded mass + current ship + let massIndividual = null; // mass mass per jump + let massShip = 0; // current ship + let massIndividualError = false; + + // get wormhole data from signature binding --------------------------------------- + if(wormholeData){ + massTotal = parseInt(wormholeData.massTotal); + massIndividual = parseInt(wormholeData.massIndividual); + } + + // get connection type (show fake connection div) --------------------------------- + connectionCell.find('div').removeClass().addClass(MapUtil.getConnectionFakeClassesByTypes(connectionData.type).join(' ')); + + // get wormhole status ------------------------------------------------------------ + if(connectionData.type.indexOf('wh_critical') !== -1){ + massReduction = 90; + massLogTooltipIcon.toggleClass('hidden', true); + massLogStage2Icon.toggleClass('hidden', true); + massLogStage3Icon.toggleClass('hidden', false); + massLogStage3Icon.parent().attr('title', 'stage 3 (critical)').tooltip('fixTitle'); + }else if(connectionData.type.indexOf('wh_reduced') !== -1){ + massReduction = 50; + massLogTooltipIcon.toggleClass('hidden', true); + massLogStage2Icon.toggleClass('hidden', false); + massLogStage3Icon.toggleClass('hidden', true); + massLogStage3Icon.parent().attr('title', 'stage 2 (reduced)').tooltip('fixTitle'); + }else{ + massLogTooltipIcon.toggleClass('hidden', false); + massLogStage2Icon.toggleClass('hidden', true); + massLogStage3Icon.toggleClass('hidden', true); + massLogStage3Icon.parent().attr('title', 'recorded total jump mass').tooltip('fixTitle'); + } + + if(massReduction){ + let massLogReduction = massTotal / 100 * massReduction; + if(massLogReduction > massLog){ + massLog = massLogTotal = massLogReduction; + } + } + + // get current ship data ---------------------------------------------------------- + massShipCell.parent().toggle(showShip); + if(showShip){ + shipData = $('.' + config.headUserShipClass).data('shipData'); + if(shipData){ + if(shipData.mass){ + massShip = parseInt(shipData.mass); + + // check individual mass jump + if(massIndividual){ + massIndividualError = massShip > massIndividual; + } + } + if(shipData.typeId && shipData.typeName){ + shipName = shipData.typeName; + } + } + } + + // update ship mass and "individual mass" cells ---------------------------------- + massShipTooltipIcon.toggleClass('hidden', massIndividualError); + massShipWarningIcon.toggleClass('hidden', !massIndividualError); + let shipMassTooltip = 'current ship mass ' + (shipName ? '"' + shipName + '"' : ''); + if(massIndividualError){ + shipMassTooltip = '"' + shipName + '" exceeds max jump mass for this connection: ' + Util.formatMassValue(massIndividual); + }else{ + // current ship mass check is OK -> add to massLogTotal + massLogTotal += massShip; + } + massShipTooltipIcon.parent().attr('title', shipMassTooltip).tooltip('fixTitle'); + + // current ship mass -------------------------------------------------------------- + massShipCell.html( function(){ + let cell = $(this); + let value = ' '; + let error = false; + let textLineThrough = false; + if(massShip > 0){ + value += Util.formatMassValue(massShip); + if(massIndividualError){ + error = textLineThrough = true; + value = '  ' + value; + }else{ + value = '-' + value; + } + }else{ + error = true; + value = 'undefined'; + } + + // change cell style + cell.toggleClass('txt-color-red', error) + .toggleClass('txt-color-warning', !error) + .toggleClass('pf-font-line-through', textLineThrough); + + return value; + }); + + // calculate mass left ------------------------------------------------------------ + let massLeft = massTotal - massLogTotal; + massLeft = (massLeft < 0) ? 0 : massLeft; + let massPercentLog = (massTotal > 0) ? Math.floor((100 / massTotal) * massLogTotal) : 0; + + // update easyPieChart and tooltip ------------------------------------------------ + let massPercentLeft = (100 - massPercentLog <= 0) ? 0 : '< ' + (100 - massPercentLog); + massChartCell.data('easyPieChart').enableAnimation().update(massPercentLog * -1); + massChartCell.attr('title', massPercentLeft + '% mass left').tooltip('fixTitle'); + + // update mass cells -------------------------------------------------------------- + massTotalCell.html(massTotal > 0 ? Util.formatMassValue(massTotal) : 'undefined') + .toggleClass('txt-color-red', massTotal <= 0); + massLogCell.html('- ' + Util.formatMassValue(massLog)); + massLeftCell.html( + massLeft > 0 ? + '~ ' + Util.formatMassValue(massLeft) : + (massLeft === 0 && massTotal) ? + 'will collapse' : 'undefined') + .toggleClass('txt-color-red', massLeft <= 0) + .toggleClass('txt-color-success', massLeft > 0); + }) + ); + + element.find('[data-toggle="tooltip"]').tooltip({ + container: 'body' + }); + + return element; + }; + + /** + * get HTML id by connectionId + * @param connectionId + * @returns {string} + */ + let getConnectionElementId = (connectionId) => { + return config.connectionInfoPanelId + connectionId; + }; + + /** + * get all visible connection panel elements + * @param moduleElement + * @returns {*|T|{}} + */ + let getConnectionElements = (moduleElement) => { + return moduleElement.find('.' + config.connectionInfoPanelClass).not('#' + getConnectionElementId(0)); + }; + + /** + * request connection log data + * @param requestData + * @param context + * @param callback + */ + let requestConnectionLogData = (requestData, context, callback) => { + // show loading animation + for(let connectionId of requestData.connectionIds){ + context.moduleElement.find('#' + getConnectionElementId(connectionId) + ' table').showLoadingAnimation(); + } + + $.ajax({ + type: 'POST', + url: Init.path.getMapConnectionData, + data: requestData, + dataType: 'json', + context: context + }).done(function(connectionsData){ + // enrich connectionData with "logs" data (if available) and other "missing" data + for(let i = 0; i < this.connectionsData.length; i++){ + for(let connectionData of connectionsData) { + if(this.connectionsData[i].id === connectionData.id){ + // copy some missing data + this.connectionsData[i].created = connectionData.created; + // check for mass logs and copy data + if(connectionData.logs && connectionData.logs.length){ + this.connectionsData[i].logs = connectionData.logs; + } + // check for signatures and copy data + if(connectionData.signatures && connectionData.signatures.length){ + this.connectionsData[i].signatures = connectionData.signatures; + } + break; + } + } + } + + callback(this.moduleElement, this.connectionsData); + }).always(function(){ + // hide loading animation + for(let contextData of this.connectionsData){ + context.moduleElement.find('#' + getConnectionElementId(contextData.id) + ' table').hideLoadingAnimation(); + } + }); + }; + + /** + * @see requestConnectionLogData + * @param moduleElement + * @param mapId + * @param connectionsData + */ + let getConnectionsLogData = (moduleElement, mapId, connectionsData) => { + let connectionIds = []; + for(let connectionData of connectionsData) { + connectionIds.push(connectionData.id); + } + + let requestData = { + mapId: mapId, + connectionIds: connectionIds, + addData : ['signatures', 'logs'], + // filterData : ['logs'] // do not exclude connections with NO "logs" -> sig data will be used as well + }; + + let contextData = { + moduleElement: moduleElement, + connectionsData: connectionsData + }; + + requestConnectionLogData(requestData, contextData, addConnectionsData); + }; + + /** + * replace/insert dataTables log data + * @param moduleElement + * @param connectionsData + */ + let addConnectionsData = (moduleElement, connectionsData) => { + + let getRowIndexesByData = (dataTable, colName, value) => { + return dataTable.rows().eq(0).filter((rowIdx) => { + return (dataTable.cell(rowIdx, colName + ':name' ).data() === value); + }); + }; + + for(let connectionData of connectionsData) { + // find related dom element for current connection + let connectionElement = moduleElement.find('#' + getConnectionElementId(connectionData.id)); + if(connectionElement.length){ + // attach connectionData to connection information for later use ------------------ + let connectionInfoElement = connectionElement.find('.' + config.moduleTableClass); + connectionInfoElement.data('connectionData', connectionData); + + // update dataTable --------------------------------------------------------------- + let dataTable = connectionElement.find('.dataTable').dataTable().api(); + + if(connectionData.logs && connectionData.logs.length > 0){ + for(let i = 0; i < connectionData.logs.length; i++){ + let rowData = connectionData.logs[i]; + let row = null; + let animationStatus = null; + let indexes = getRowIndexesByData(dataTable, 'index', rowData.id); + if(indexes.length === 0){ + // row not found -> add new row + row = dataTable.row.add( rowData ); + animationStatus = 'added'; + } + /* else{ + // we DON´t expect changes -> no row update) + // update row with FIRST index + //row = dataTable.row( parseInt(indexes[0]) ); + // update row data + //row.data(connectionData.logs[i]); + //animationStatus = 'changed'; + } */ + + if( + animationStatus !== null && + row.length > 0 + ){ + row.nodes().to$().data('animationStatus', animationStatus); + } + } + }else{ + // clear table or leave empty + dataTable.clear(); + } + + // redraw dataTable + dataTable.draw(false); + } + } + }; + + /** + * + * @param moduleElement + * @param mapId + * @param connectionData + */ + let updateConnectionPanel = (moduleElement, mapId, connectionData) => { + let rowElement = moduleElement.find('.row'); + let connectionElement = rowElement.find('#' + getConnectionElementId(connectionData.id)); + + if( !connectionElement.length ){ + connectionElement = getConnectionElement(mapId, connectionData.id); + connectionElement.append(getInformationElement(connectionData)); + + let table = $('', { + class: ['compact', 'stripe', 'order-column', 'row-border', 'nowrap', config.connectionInfoTableClass].join(' ') + }).append(''); + connectionElement.append(table); + + // init empty table + let logTable = table.DataTable({ + pageLength: 8, + paging: true, + pagingType: 'simple', + lengthChange: false, + ordering: true, + order: [[ 4, 'desc' ]], + info: true, + searching: false, + hover: false, + autoWidth: false, + // rowId: 'systemTo', + language: { + emptyTable: 'No jumps recorded', + info: '_START_ to _END_ of _MAX_', + infoEmpty: '' + }, + columnDefs: [ + { + targets: 0, + name: 'index', + title: '', + orderable: false, + searchable: false, + width: 20, + class: 'text-center', + data: 'id' + },{ + targets: 1, + title: '', + width: 26, + orderable: false, + className: [Util.config.helpDefaultClass, 'text-center', config.tableCellImageClass].join(' '), + data: 'ship', + render: { + _: function(data, type, row){ + let value = data.typeId; + if(type === 'display'){ + value = ''; + } + return value; + } + }, + createdCell: function(cell, cellData, rowData, rowIndex, colIndex){ + $(cell).find('img').tooltip(); + } + },{ + targets: 2, + title: '', + width: 26, + orderable: false, + className: [Util.config.helpDefaultClass, 'text-center', config.tableCellImageClass].join(' '), + data: 'created.character', + render: { + _: function(data, type, row){ + let value = data.name; + if(type === 'display'){ + value = ''; + } + return value; + } + }, + createdCell: function(cell, cellData, rowData, rowIndex, colIndex){ + $(cell).find('img').tooltip(); + } + },{ + targets: 3, + title: 'mass', + className: ['text-right'].join(' ') , + data: 'ship.mass', + render: { + _: function(data, type, row){ + let value = data; + if(type === 'display'){ + value = Util.formatMassValue(value); + } + return value; + } + } + },{ + targets: 4, + title: 'log', + width: 55, + className: ['text-right', config.tableCellCounterClass].join(' '), + data: 'created.created', + createdCell: function(cell, cellData, rowData, rowIndex, colIndex){ + $(cell).initTimestampCounter('d'); + } + } + ], + drawCallback: function(settings){ + let animationRows = this.api().rows().nodes().to$().filter(function(a,b ) { + return ( + $(this).data('animationStatus') || + $(this).data('animationTimer') + ); + }); + + for(let i = 0; i < animationRows.length; i++){ + $(animationRows[i]).pulseBackgroundColor($(animationRows[i]).data('animationStatus')); + $(animationRows[i]).removeData('animationStatus'); + } + + }, + footerCallback: function ( row, data, start, end, display ) { + + let api = this.api(); + let sumColumnIndexes = [3]; + + // column data for "sum" columns over this page + let pageTotalColumns = api + .columns( sumColumnIndexes, { page: 'all'} ) + .data(); + + // sum columns for "total" sum + pageTotalColumns.each((colData, index) => { + pageTotalColumns[index] = colData.reduce((a, b) => { + return parseInt(a) + parseInt(b); + }, 0); + }); + + $(sumColumnIndexes).each((index, value) => { + $( api.column( value ).footer() ).text( Util.formatMassValue(pageTotalColumns[index]) ); + + // save mass for further reCalculation of "info" table + connectionElement.find('.' + config.connectionInfoTableCellMassLogClass).data('mass', pageTotalColumns[index]); + }); + + // calculate "info" table ----------------------------------------------------- + connectionElement.find('.' + config.moduleTableClass).trigger('pf:updateInfoTable', connectionElement.data()); + } + }); + + // find position to insert + connectionElement.insertBefore(rowElement.find('#' + getConnectionElementId(0))); + + logTable.on('order.dt search.dt', function(){ + let pageInfo = logTable.page.info(); + logTable.column(0, {search:'applied', order:'applied'}).nodes().each((cell, i) => { + let content = (pageInfo.recordsTotal - i) + '.  '; + $(cell).html(content); + }); + }); + } + }; + + /** + * remove connection Panel from moduleElement + * @param connectionElement + */ + let removeConnectionPanel = (connectionElement) => { + connectionElement = $(connectionElement); + if(connectionElement.length){ + // destroy dataTable (and remove table from DOM) + let logTable = connectionElement.find('.' + config.connectionInfoTableClass); + logTable.dataTable().api().destroy(true); + // remove belonging connectionElement + connectionElement.remove(); + } + }; + + /** + * get connections from ModuleElement + * -> validate with current map data + * @param moduleElement + * @param mapId + * @returns {{connectionsDataUpdate: Array, connectionsDataRemove: Array}} + */ + let getConnectionsDataFromModule = (moduleElement, mapId) => { + let activeMap = Util.getMapModule().getActiveMap(); + let mapData = activeMap.getMapDataFromClient({forceData: true}); + let connectionsData = { + connectionsDataUpdate: [], + connectionsDataRemove: [], + }; + + if(mapData !== false){ + getConnectionElements(moduleElement).each((i, connectionElement) => { + let removeConnectionPanel = true; + let connectionData = {id: $(connectionElement).data('connectionId') }; + + let connection = $().getConnectionById(mapId, connectionData.id); + if(connection){ + let connectionDataTemp = MapUtil.getDataByConnection(connection); + if(connectionDataTemp.id > 0){ + // connection still on map - OK + removeConnectionPanel = false; + connectionData = connectionDataTemp; + } + } + + if(removeConnectionPanel){ + connectionsData.connectionsDataRemove.push(connectionData); + }else{ + connectionsData.connectionsDataUpdate.push(connectionData); + } + }); + } + + return connectionsData; + }; + + /** + * update/init multiple connection panels at once + * @param moduleElement + * @param mapId + * @param connectionsDataUpdate + * @param connectionsDataRemove + */ + let updateConnectionPanels = (moduleElement, mapId, connectionsDataUpdate, connectionsDataRemove) => { + for(let connectionData of connectionsDataRemove){ + let connectionElement = moduleElement.find('#' + getConnectionElementId(connectionData.id)); + removeConnectionPanel(connectionElement); + } + + for(let connectionData of connectionsDataUpdate){ + updateConnectionPanel(moduleElement, mapId, connectionData); + } + + // request connectionsLogData for each updated connection + if(connectionsDataUpdate.length){ + getConnectionsLogData(moduleElement, mapId, connectionsDataUpdate); + } + + // remove module if no connection panel left + // --> all connection deselected on map + let connectionElements = getConnectionElements(moduleElement); + if(connectionElements.length === 0){ + MapUtil.getTabContentElementByMapElement(moduleElement).trigger('pf:removeConnectionModules'); + } + + // hide "control" panel when multiple connection + moduleElement.find('#' + getConnectionElementId(0)).toggle(connectionElements.length < 2); + }; + + /** + * set module observer + * @param moduleElement + * @param mapId + */ + let setModuleObserver = (moduleElement, mapId) => { + $(document).off('pf:updateConnectionInfoModule').on('pf:updateConnectionInfoModule', function(e, data){ + updateConnectionPanels( + moduleElement, + data.mapId, + MapUtil.getDataByConnections(data.connectionsUpdate), + MapUtil.getDataByConnections(data.connectionsRemove) + ); + }); + + $(document).off('pf:activeShip').on('pf:activeShip', function(e){ + moduleElement.find('.' + config.connectionInfoPanelClass).each((i, connectionElement) => { + $(connectionElement).find('.' + config.moduleTableClass).each((i, tableElement) => { + $(tableElement).trigger('pf:calcInfoTable'); + }); + }); + }); + + // init toggle active ship ---------------------------------------------------------------- + moduleElement.find('.' + config.moduleHeadlineIconCurrentMassClass).on('click', function(e){ + let currentMassIcon = $(this).toggleClass('active'); + moduleElement.find('.' + config.connectionInfoPanelClass).each((i, connectionElement) => { + $(connectionElement).find('.' + config.moduleTableClass).each((i, tableElement) => { + $(tableElement).data('showShip', currentMassIcon.hasClass('active')).trigger('pf:calcInfoTable'); + }); + }); + }); + + // init refresh connections --------------------------------------------------------------- + moduleElement.find('.' + config.moduleHeadlineIconRefreshClass).on('click', function(e){ + refreshConnectionPanels(moduleElement, mapId); + }); + }; + + /** + * refresh all connection panels in a module + * @param moduleElement + * @param mapId + */ + let refreshConnectionPanels = (moduleElement, mapId) => { + let connectionsData = getConnectionsDataFromModule(moduleElement, mapId); + updateConnectionPanels(moduleElement, mapId, connectionsData.connectionsDataUpdate, connectionsData.connectionsDataRemove); + }; + + /** + * before module destroy callback + * @param moduleElement + */ + let beforeDestroy = (moduleElement) => { + getConnectionElements(moduleElement).each((i, connectionElement) => { + removeConnectionPanel(connectionElement); + }); + }; + + /** + * init callback + * @param moduleElement + * @param mapId + * @param connectionData + */ + let initModule = (moduleElement, mapId, connectionData) => { + setModuleObserver(moduleElement, mapId); + }; + + /** + * get module element + * @param parentElement + * @param mapId + * @param connections + * @returns {*|jQuery|HTMLElement} + */ + let getModule = (parentElement, mapId, connections) => { + let moduleElement = $('
').append( + $('
', { + class: config.moduleHeadClass + }).append( + $('
', { + class: config.moduleHandlerClass + }), + $('
', { + text: 'Connection' + }), + getHeadlineToolbar() + ) + ); + + let rowElement = $('
', { + class: 'row' + }); + + moduleElement.append(rowElement); + + rowElement.append(getInfoPanelControl(mapId)); + + updateConnectionPanels(moduleElement, mapId, MapUtil.getDataByConnections(connections), []); + + return moduleElement; + }; + + return { + config: config, + getModule: getModule, + initModule: initModule, + beforeDestroy: beforeDestroy + }; +}); \ No newline at end of file diff --git a/public/js/v1.4.1/app/ui/module/system_graph.js b/public/js/v1.4.1/app/ui/module/system_graph.js new file mode 100644 index 00000000..c18bb203 --- /dev/null +++ b/public/js/v1.4.1/app/ui/module/system_graph.js @@ -0,0 +1,248 @@ +/** + * System graph module + */ + +define([ + 'jquery', + 'app/init', + 'app/util', + 'morris' +], ($, Init, Util, Morris) => { + 'use strict'; + + let config = { + // module info + modulePosition: 3, + moduleName: 'systemGraph', + moduleHeadClass: 'pf-module-head', // class for module header + moduleHandlerClass: 'pf-module-handler-drag', // class for "drag" handler + + // system graph module + moduleTypeClass: 'pf-system-graph-module', // class for this module + systemGraphClass: 'pf-system-graph', // class for each graph + + // system graph labels + systemGraphs: { + jumps: { + headline: 'Jumps', + units: 'jumps', + ykeys: ['y'], + labels: ['jumps'], + lineColors: ['#375959'], + pointFillColors: ['#477372'] + }, + shipKills: { + headline: 'Ship/POD Kills', + units: 'kills', + ykeys: ['y', 'z'], + labels: ['Ship kills', 'POD kills'], + lineColors: ['#375959', '#477372'], + pointFillColors: ['#477372', '#568a89'] + }, + factionKills: { + headline: 'NPC Kills', + units: 'kills', + ykeys: ['y'], + labels: ['kills'], + lineColors: ['#375959'], + pointFillColors: ['#477372'] + } + } + }; + + /** + * get info for a given graph key + * @param graphKey + * @param option + * @returns {string} + */ + let getInfoForGraph = function(graphKey, option){ + let info = ''; + if(config.systemGraphs.hasOwnProperty(graphKey)){ + info = config.systemGraphs[graphKey][option]; + } + + return info; + }; + + /** + * init Morris Graph + * @param graphElement + * @param graphKey + * @param graphData + * @param eventLine + */ + let initGraph = function(graphElement, graphKey, graphData, eventLine){ + if(graphData.length > 0){ + let labelYFormat = function(y){ + return Math.round(y); + }; + + let graphConfig = { + element: graphElement, + data: graphData, + xkey: 'x', + ykeys: getInfoForGraph(graphKey, 'ykeys'), + labels: getInfoForGraph(graphKey, 'labels'), + parseTime: false, + ymin: 0, + yLabelFormat: labelYFormat, + padding: 10, + hideHover: true, + pointSize: 3, + lineColors: getInfoForGraph(graphKey, 'lineColors'), + pointFillColors: getInfoForGraph(graphKey, 'pointFillColors'), + pointStrokeColors: ['#141413'], + lineWidth: 2, + grid: true, + gridStrokeWidth: 0.3, + gridTextSize: 9, + gridTextFamily: 'Oxygen Bold', + gridTextColor: '#63676a', + behaveLikeLine: false, + goals: [], + goalLineColors: ['#5cb85c'], + smooth: true, + fillOpacity: 0.2, + resize: true, + redraw: true, + eventStrokeWidth: 2, + eventLineColors: ['#5CB85C'] + }; + + if(eventLine >= 0){ + graphConfig.events = [eventLine]; + } + + Morris.Area(graphConfig); + } + }; + + /** + * request graphs data + * @param requestData + * @param context + * @param callback + */ + let requestGraphData = (requestData, context, callback) => { + // show loading animation + context.moduleElement.find('.' + config.systemGraphClass).showLoadingAnimation(); + + $.ajax({ + type: 'POST', + url: Init.path.getSystemGraphData, + data: requestData, + dataType: 'json', + context: context + }).done(function(systemGraphsData){ + callback(this, systemGraphsData); + }).fail(function( jqXHR, status, error) { + let reason = status + ' ' + error; + Util.showNotify({title: jqXHR.status + ': System graph data', text: reason, type: 'warning'}); + $(document).setProgramStatus('problem'); + this.moduleElement.hide(); + }).always(function(){ + // hide loading animation + context.moduleElement.find('.' + config.systemGraphClass).hideLoadingAnimation(); + }); + }; + + /** + * update graph elements with data + * @param context + * @param systemGraphsData + */ + let addGraphData = (context, systemGraphsData) => { + + // calculate time offset until system created ----------------------------------------------------------------- + let serverData = Util.getServerTime(); + let timestampNow = Math.floor(serverData.getTime() / 1000); + let timeSinceUpdate = timestampNow - context.systemData.updated.updated; + + let timeInHours = Math.floor(timeSinceUpdate / 3600); + let timeInMinutes = Math.floor((timeSinceUpdate % 3600) / 60); + let timeInMinutesPercent = ( timeInMinutes / 60 ).toFixed(2); + let eventLine = timeInHours + timeInMinutesPercent; + + // graph is from right to left -> convert event line + eventLine = 23 - eventLine; + + // update graph data ------------------------------------------------------------------------------------------ + for (let [systemId, graphsData] of Object.entries(systemGraphsData)){ + for (let [graphKey, graphData] of Object.entries(graphsData)){ + let graphElement = context.moduleElement.find('[data-graph="' + graphKey + '"]'); + initGraph(graphElement, graphKey, graphData, eventLine); + } + } + }; + + /** + * @see requestGraphData + * @param moduleElement + * @param mapId + * @param systemData + */ + let updateGraphPanel = (moduleElement, mapId, systemData) => { + let requestData = { + systemIds: [systemData.systemId] + }; + + let contextData = { + moduleElement: moduleElement, + systemData: systemData + }; + + requestGraphData(requestData, contextData, addGraphData); + }; + + /** + * get module element + * @param parentElement + * @param mapId + * @param systemData + * @returns {*} + */ + let getModule = (parentElement, mapId, systemData) => { + // graph data is available for k-space systems + let moduleElement = null; + if(systemData.type.id === 2){ + moduleElement = $('
'); + let rowElement = $('
', { + class: 'row' + }); + + for (let [graphKey, graphConfig] of Object.entries(config.systemGraphs)){ + rowElement.append( + $('
', { + class: ['col-xs-12', 'col-sm-6', 'col-md-4'].join(' ') + }).append( + $('
', { + class: config.moduleHeadClass + }).append( + $('
', { + class: config.moduleHandlerClass + }), + $('
', { + text: getInfoForGraph(graphKey, 'headline') + }) + ), + $('
', { + class: config.systemGraphClass + }).attr('data-graph', graphKey) + ) + ); + } + moduleElement.append(rowElement); + + updateGraphPanel(moduleElement, mapId, systemData); + } + + return moduleElement; + }; + + return { + config: config, + getModule: getModule + }; + +}); diff --git a/public/js/v1.4.1/app/ui/module/system_info.js b/public/js/v1.4.1/app/ui/module/system_info.js new file mode 100644 index 00000000..8fc98496 --- /dev/null +++ b/public/js/v1.4.1/app/ui/module/system_info.js @@ -0,0 +1,419 @@ +/** + * System info module + */ + +define([ + 'jquery', + 'app/init', + 'app/util', + 'app/render', + 'app/map/util' +], ($, Init, Util, Render, MapUtil) => { + 'use strict'; + + let config = { + // module info + modulePosition: 2, + moduleName: 'systemInfo', + + // system info module + moduleTypeClass: 'pf-system-info-module', // class for this module + + // breadcrumb + constellationLinkClass: 'pf-system-info-constellation', // class for "constellation" name + regionLinkClass: 'pf-system-info-region', // class for "region" name + typeLinkClass: 'pf-system-info-type', // class for "type" name + + // info table + systemInfoTableClass: 'pf-module-table', // class for system info table + systemInfoNameClass: 'pf-system-info-name', // class for "name" information element + systemInfoEffectClass: 'pf-system-info-effect', // class for "effect" information element + systemInfoPlanetsClass: 'pf-system-info-planets', // class for "planets" information element + systemInfoStatusLabelClass: 'pf-system-info-status-label', // class for "status" information element + systemInfoStatusAttributeName: 'data-status', // attribute name for status label + systemInfoWormholeClass: 'pf-system-info-wormhole-', // class prefix for static wormhole element + + // description field + descriptionArea: 'pf-system-info-description-area', // class for "description" area + addDescriptionButtonClass: 'pf-system-info-description-button', // class for "add description" button + moduleElementToolbarClass: 'pf-table-tools', // class for "module toolbar" element + tableToolsActionClass: 'pf-table-tools-action', // class for "edit" action + + descriptionTextareaElementClass: 'pf-system-info-description', // class for "description" textarea element (xEditable) + descriptionTextareaCharCounter: 'pf-form-field-char-count', // class for "character counter" element for form field + + // fonts + fontTriglivianClass: 'pf-triglivian' // class for "Triglivian" names (e.g. Abyssal systems) + }; + + // disable Module update temporary (in case e.g. textarea is currently active) + let disableModuleUpdate = false; + + // animation speed values + let animationSpeedToolbarAction = 200; + + // max character length for system description + let maxDescriptionLength = 512; + + /** + * shows the tool action element by animation + * @param toolsActionElement + */ + let showToolsActionElement = (toolsActionElement) => { + toolsActionElement.velocity('stop').velocity({ + opacity: 1, + height: '100%' + },{ + duration: animationSpeedToolbarAction, + display: 'block', + visibility: 'visible' + }); + }; + + /** + * hides the tool action element by animation + * @param toolsActionElement + */ + let hideToolsActionElement = (toolsActionElement) => { + toolsActionElement.velocity('stop').velocity('reverse', { + display: 'none', + visibility: 'hidden' + }); + }; + + /** + * update trigger function for this module + * compare data and update module + * @param moduleElement + * @param systemData + */ + let updateModule = (moduleElement, systemData) => { + let systemId = moduleElement.data('id'); + + if(systemId === systemData.id){ + // update system status ----------------------------------------------------------------------------------- + let systemStatusLabelElement = moduleElement.find('.' + config.systemInfoStatusLabelClass); + let systemStatusId = parseInt( systemStatusLabelElement.attr( config.systemInfoStatusAttributeName ) ); + + if(systemStatusId !== systemData.status.id){ + // status changed + let currentStatusClass = Util.getStatusInfoForSystem(systemStatusId, 'class'); + let newStatusClass = Util.getStatusInfoForSystem(systemData.status.id, 'class'); + let newStatusLabel = Util.getStatusInfoForSystem(systemData.status.id, 'label'); + systemStatusLabelElement.removeClass(currentStatusClass).addClass(newStatusClass).text(newStatusLabel); + + // set new status attribute + systemStatusLabelElement.attr( config.systemInfoStatusAttributeName, systemData.status.id); + } + + // update description textarea ---------------------------------------------------------------------------- + let descriptionTextareaElement = moduleElement.find('.' + config.descriptionTextareaElementClass); + let description = descriptionTextareaElement.editable('getValue', true); + + if( + !disableModuleUpdate && // don´t update if field is active + description !== systemData.description + ){ + // description changed + let descriptionButton = moduleElement.find('.' + config.addDescriptionButtonClass); + + // set new value + descriptionTextareaElement.editable('setValue', systemData.description); + + let actionElement = descriptionButton.siblings('.' + config.tableToolsActionClass); + + if(systemData.description.length === 0){ + // show/activate description field + // show button if value is empty + descriptionButton.show(); + hideToolsActionElement(actionElement); + }else{ + // hide/disable description field + // hide tool button + descriptionButton.hide(); + showToolsActionElement(actionElement); + } + } + + // created/updated tooltip -------------------------------------------------------------------------------- + let nameRowElement = moduleElement.find('.' + config.systemInfoNameClass); + + let tooltipData = { + created: systemData.created, + updated: systemData.updated + }; + + nameRowElement.addCharacterInfoTooltip( tooltipData ); + } + + moduleElement.find('.' + config.descriptionArea).hideLoadingAnimation(); + }; + + /** + * get module element + * @param parentElement + * @param mapId + * @param systemData + */ + let getModule = (parentElement, mapId, systemData) => { + let moduleElement = $('
'); + + // store systemId -> module can be updated with the correct data + moduleElement.data('id', systemData.id); + + // system "static" wh data + let staticsData = []; + if( + systemData.statics && + systemData.statics.length > 0 + ){ + for(let wormholeName of systemData.statics){ + let wormholeData = Object.assign({}, Init.wormholes[wormholeName]); + wormholeData.class = Util.getSecurityClassForSystem(wormholeData.security); + staticsData.push(wormholeData); + } + } + + let effectName = MapUtil.getEffectInfoForSystem(systemData.effect, 'name'); + let effectClass = MapUtil.getEffectInfoForSystem(systemData.effect, 'class'); + + // systemInfo template config + let moduleConfig = { + name: 'modules/system_info', + position: moduleElement, + link: 'append', + functions: { + after: function(conf){ + let tempModuleElement = conf.position; + + // lock "description" field until first update + tempModuleElement.find('.' + config.descriptionArea).showLoadingAnimation(); + + // "add description" button + let descriptionButton = tempModuleElement.find('.' + config.addDescriptionButtonClass); + + // description textarea element + let descriptionTextareaElement = tempModuleElement.find('.' + config.descriptionTextareaElementClass); + + // init description textarea + descriptionTextareaElement.editable({ + url: Init.path.saveSystem, + dataType: 'json', + pk: systemData.id, + type: 'textarea', + mode: 'inline', + emptytext: '', + onblur: 'cancel', + showbuttons: true, + value: '', // value is set by trigger function updateModule() + rows: 5, + name: 'description', + inputclass: config.descriptionTextareaElementClass, + tpl: '', + params: function(params){ + params.mapData = { + id: mapId + }; + + params.systemData = {}; + params.systemData.id = params.pk; + params.systemData[params.name] = params.value; + + // clear unnecessary data + delete params.pk; + delete params.name; + delete params.value; + + return params; + }, + validate: function(value){ + if(value.length > 0 && $.trim(value).length === 0) { + return {newValue: ''}; + } + }, + success: function(response, newValue){ + Util.showNotify({title: 'System updated', text: 'Name: ' + response.name, type: 'success'}); + }, + error: function(jqXHR, newValue){ + let reason = ''; + let status = ''; + if(jqXHR.name){ + // save error new sig (mass save) + reason = jqXHR.name; + status = 'Error'; + }else{ + reason = jqXHR.responseJSON.text; + status = jqXHR.status; + } + + Util.showNotify({title: status + ': save system information', text: reason, type: 'warning'}); + $(document).setProgramStatus('problem'); + return reason; + } + }); + + // on xEditable open ------------------------------------------------------------------------------ + descriptionTextareaElement.on('shown', function(e, editable){ + let textarea = editable.input.$input; + + // disable module update until description field is open + disableModuleUpdate = true; + + // create character counter + let charCounter = $('', { + class: [config.descriptionTextareaCharCounter, 'txt-color', 'text-right'].join(' ') + }); + textarea.parent().next().append(charCounter); + + // update character counter + Util.updateCounter(textarea, charCounter, maxDescriptionLength); + + textarea.on('keyup', function(){ + Util.updateCounter($(this), charCounter, maxDescriptionLength); + }); + }); + + // on xEditable close ----------------------------------------------------------------------------- + descriptionTextareaElement.on('hidden', function(e){ + let value = $(this).editable('getValue', true); + if(value.length === 0){ + // show button if value is empty + hideToolsActionElement(descriptionButton.siblings('.' + config.tableToolsActionClass)); + descriptionButton.show(); + } + + // enable module update + disableModuleUpdate = false; + }); + + // enable xEditable field on Button click --------------------------------------------------------- + descriptionButton.on('click', function(e){ + e.stopPropagation(); + let descriptionButton = $(this); + + // hide tool buttons + descriptionButton.hide(); + + // show field *before* showing the element + descriptionTextareaElement.editable('show'); + + showToolsActionElement(descriptionButton.siblings('.' + config.tableToolsActionClass)); + }); + + // init tooltips ---------------------------------------------------------------------------------- + let tooltipElements = tempModuleElement.find('[data-toggle="tooltip"]'); + tooltipElements.tooltip(); + + // init system effect popover --------------------------------------------------------------------- + $(moduleElement).find('.' + config.systemInfoEffectClass).addSystemEffectTooltip(systemData.security, systemData.effect); + + // init planets popover --------------------------------------------------------------------------- + $(moduleElement).find('.' + config.systemInfoPlanetsClass).addSystemPlanetsTooltip(systemData.planets); + + // init static wormhole information --------------------------------------------------------------- + for(let staticData of staticsData){ + let staticRowElement = tempModuleElement.find('.' + config.systemInfoWormholeClass + staticData.name); + staticRowElement.addWormholeInfoTooltip(staticData); + } + + // constellation popover -------------------------------------------------------------------------- + tempModuleElement.find('a.popup-ajax').popover({ + html: true, + trigger: 'hover', + placement: 'top', + delay: 200, + container: 'body', + content: function(){ + return details_in_popup(this); + } + }); + + function details_in_popup(popoverElement){ + popoverElement = $(popoverElement); + let popover = popoverElement.data('bs.popover'); + + $.ajax({ + url: popoverElement.data('url'), + success: function(data){ + let systemEffectTable = Util.getSystemsInfoTable( data.systemsData ); + popover.options.content = systemEffectTable; + // reopen popover (new content size) + popover.show(); + } + }); + return 'Loading...'; + } + + } + } + }; + + let moduleData = { + system: systemData, + static: staticsData, + tableClass: config.systemInfoTableClass, + nameInfoClass: config.systemInfoNameClass, + effectInfoClass: config.systemInfoEffectClass, + planetsInfoClass: config.systemInfoPlanetsClass, + wormholePrefixClass: config.systemInfoWormholeClass, + statusInfoClass: config.systemInfoStatusLabelClass, + + systemTypeName: MapUtil.getSystemTypeInfo(systemData.type.id, 'name'), + systemIsWormhole: MapUtil.getSystemTypeInfo(systemData.type.id, 'name') === 'w-space', + systemStatusId: systemData.status.id, + systemStatusClass: Util.getStatusInfoForSystem(systemData.status.id, 'class'), + systemStatusLabel: Util.getStatusInfoForSystem(systemData.status.id, 'label'), + securityClass: Util.getSecurityClassForSystem( systemData.security ), + trueSec: systemData.trueSec.toFixed(1), + trueSecClass: Util.getTrueSecClassForSystem( systemData.trueSec ), + effectName: effectName, + effectClass: effectClass, + moduleToolbarClass: config.moduleElementToolbarClass, + descriptionButtonClass: config.addDescriptionButtonClass, + tableToolsActionClass: config.tableToolsActionClass, + descriptionTextareaClass: config.descriptionTextareaElementClass, + systemNameClass: () => { + return (val, render) => { + return render(val) === 'A' ? config.fontTriglivianClass : ''; + }; + }, + formatUrl: () => { + return (val, render) => render(val).replace(/ /g, '_'); + }, + planetCount: systemData.planets ? systemData.planets.length : 0, + + shatteredClass: Util.getSecurityClassForSystem('SH'), + + ajaxConstellationInfoUrl: Init.path.getConstellationData, + + systemConstellationLinkClass: config.constellationLinkClass, + systemRegionLinkClass: config.regionLinkClass, + systemTypeLinkClass: config.typeLinkClass + + }; + + Render.showModule(moduleConfig, moduleData); + + return moduleElement; + }; + + /** + * efore module destroy callback + * @param moduleElement + */ + let beforeDestroy = (moduleElement) => { + // remove xEditable description textarea + let descriptionTextareaElement = moduleElement.find('.' + config.descriptionTextareaElementClass); + descriptionTextareaElement.editable('destroy'); + }; + + return { + config: config, + getModule: getModule, + updateModule: updateModule, + beforeDestroy: beforeDestroy + }; +}); + + + diff --git a/public/js/v1.4.1/app/ui/module/system_intel.js b/public/js/v1.4.1/app/ui/module/system_intel.js new file mode 100644 index 00000000..1b557f7a --- /dev/null +++ b/public/js/v1.4.1/app/ui/module/system_intel.js @@ -0,0 +1,841 @@ +/** + * System intel module + */ + +define([ + 'jquery', + 'app/init', + 'app/util', + 'bootbox' +], ($, Init, Util, bootbox) => { + 'use strict'; + + let config = { + // module info + modulePosition: 1, + moduleName: 'systemIntel', + moduleHeadClass: 'pf-module-head', // class for module header + moduleHandlerClass: 'pf-module-handler-drag', // class for "drag" handler + + // system info module + moduleTypeClass: 'pf-system-intel-module', // class for this module + + // headline toolbar + moduleHeadlineIconClass: 'pf-module-icon-button', // class for toolbar icons in the head + moduleHeadlineIconAddClass: 'pf-module-icon-button-add', // class for "add structure" icon + moduleHeadlineIconReaderClass: 'pf-module-icon-button-reader', // class for "dScan reader" icon + moduleHeadlineIconRefreshClass: 'pf-module-icon-button-refresh', // class for "refresh" icon + + // system intel module + systemStructuresTableClass: 'pf-system-structure-table', // class for route tables + + // structure dialog + structureDialogId: 'pf-structure-dialog', // id for "structure" dialog + statusSelectId: 'pf-structure-dialog-status-select', // id for "status" select + typeSelectId: 'pf-structure-dialog-type-select', // id for "type" select + corporationSelectId: 'pf-structure-dialog-corporation-select', // id for "corporation" select + descriptionTextareaId: 'pf-structure-dialog-description-textarea', // id for "description" textarea + descriptionTextareaCharCounter: 'pf-form-field-char-count', // class for "character counter" element for form field + + // dataTable + tableRowIdPrefix: 'pf-structure-row_', // id prefix for table rows + tableCellImageClass: 'pf-table-image-smaller-cell', // class for table "image" cells + tableCellCounterClass: 'pf-table-counter-cell', // class for table "counter" cells + tableCellEllipsisClass: 'pf-table-cell-ellipses-auto', // class for table "ellipsis" cells + dataTableActionCellClass: 'pf-table-action-cell' // class for "action" cells + }; + + let maxDescriptionLength = 512; + + /** + * get status icon for structure + * @param statusData + * @returns {string} + */ + let getStatusData = (statusData) => { + return ''; + }; + + /** + * get
DOM id by id + * @param tableApi + * @param id + * @returns {*} + */ + let getRowId = (tableApi, id) => { + return tableApi.rows().ids().toArray().find(rowId => rowId === config.tableRowIdPrefix + id); + }; + + /** + * callback -> add structure rows from responseData + * @param context + * @param responseData + */ + let callbackAddStructureRows = (context, responseData) => { + let systemData = Util.getObjVal(responseData, 'system'); + callbackUpdateStructureRows(context, systemData); + }; + + /** + * callback -> add structure rows from systemData + * @param context + * @param systemData + */ + let callbackUpdateStructureRows = (context, systemData) => { + let touchedRows = []; + let hadData = context.tableApi.rows().any(); + let notificationCounter = { + added: 0, + changed: 0, + deleted: 0 + }; + + if(systemData){ + let corporations = Util.getObjVal(systemData, 'structures'); + if(corporations) { + for (let [corporationId, corporationData] of Object.entries(corporations)){ + if(corporationData.structures && corporationData.structures.length){ + for(let structureData of corporationData.structures){ + let rowId = getRowId(context.tableApi, structureData.id); + + // add corporation data + structureData.corporation = { + id: corporationData.id, + name: corporationData.name + }; + + if(rowId){ + // update row + let api = context.tableApi.row('#' + rowId); + let rowData = api.data(); + + // check for update + if(rowData.updated.updated !== structureData.updated.updated){ + // row data changed -> update + api.data(structureData); + api.nodes().to$().data('animationStatus', 'changed').destroyTimestampCounter(); + notificationCounter.changed++; + } + + touchedRows.push(api.id()); + }else{ + // insert new row + let api = context.tableApi.row.add(structureData); + api.nodes().to$().data('animationStatus', 'added'); + notificationCounter.added++; + + touchedRows.push(api.id()); + } + } + } + } + } + } + + if(context.removeMissing){ + let api = context.tableApi.rows((idx, data, node) => !touchedRows.includes(node.id)); + notificationCounter.deleted += api.ids().count(); + api.remove(); + } + + context.tableApi.draw(); + + // show notification ------------------------------------------------------------------------------------------ + let notification = ''; + notification += notificationCounter.added > 0 ? notificationCounter.added + ' added
' : ''; + notification += notificationCounter.changed > 0 ? notificationCounter.changed + ' changed
' : ''; + notification += notificationCounter.deleted > 0 ? notificationCounter.deleted + ' deleted
' : ''; + + if(hadData && notification.length){ + Util.showNotify({title: 'Structures updated', text: notification, type: 'success'}); + } + }; + + /** + * callback -> delete structure rows + * @param context + * @param responseData + */ + let callbackDeleteStructures = (context, responseData) => { + let structureIds = Util.getObjVal(responseData, 'deletedStructureIds'); + let deletedCounter = 0; + if(structureIds && structureIds.length){ + for(let structureId of structureIds){ + let rowId = getRowId(context.tableApi, structureId); + if(rowId){ + context.tableApi.row('#' + rowId).remove(); + deletedCounter++; + } + } + } + + if(deletedCounter){ + context.tableApi.draw(); + Util.showNotify({title: 'Structure deleted', text: deletedCounter + ' deleted', type: 'success'}); + } + }; + + /** + * send ajax request + * @param url + * @param requestData + * @param context + * @param callback + */ + let sendRequest = (url, requestData, context, callback) => { + context.moduleElement.showLoadingAnimation(); + + $.ajax({ + url: url, + type: 'POST', + dataType: 'json', + data: requestData, + context: context + }).done(function(data){ + callback(this, data); + }).fail(function( jqXHR, status, error) { + let reason = status + ' ' + error; + Util.showNotify({title: jqXHR.status + ': System intel data', text: reason, type: 'warning'}); + $(document).setProgramStatus('problem'); + }).always(function(){ + // hide loading animation + this.moduleElement.hideLoadingAnimation(); + }); + }; + + /** + * requests system data + * @param requestData + * @param context + * @param callback + */ + let getStructureData = (requestData, context, callback) => { + sendRequest(Init.path.getSystemData, requestData, context, callback); + }; + + /** + * save structure data + * @param requestData + * @param context + * @param callback + */ + let saveStructureData = (requestData, context, callback) => { + sendRequest(Init.path.saveStructureData, requestData, context, callback); + }; + + /** + * delete structure + * @param requestData + * @param context + * @param callback + */ + let deleteStructure = (requestData, context, callback) => { + sendRequest(Init.path.deleteStructureData, requestData, context, callback); + }; + + /** + * show structure dialog + * @param moduleElement + * @param tableApi + * @param systemId + * @param structureData + */ + let showStructureDialog = (moduleElement, tableApi, systemId, structureData) => { + let structureStatusData = Util.getObjVal(Init, 'structureStatus'); + let structureTypeData = Util.getObjVal(Init, 'structureStatus'); + + let statusData = Object.keys(structureStatusData).map((k) => { + let data = structureStatusData[k]; + data.selected = data.id === Util.getObjVal(structureData, 'status.id'); + return data; + }); + + let data = { + id: config.structureDialogId, + structureData: structureData, + structureStatus: statusData, + statusSelectId: config.statusSelectId, + typeSelectId: config.typeSelectId, + corporationSelectId: config.corporationSelectId, + descriptionTextareaId: config.descriptionTextareaId, + descriptionTextareaCharCounter: config.descriptionTextareaCharCounter, + maxDescriptionLength: maxDescriptionLength + }; + + requirejs(['text!templates/dialog/structure.html', 'mustache'], (template, Mustache) => { + let content = Mustache.render(template, data); + + let structureDialog = bootbox.dialog({ + title: 'Structure', + message: content, + show: false, + buttons: { + close: { + label: 'cancel', + className: 'btn-default' + }, + success: { + label: ' save', + className: 'btn-success', + callback: function (){ + let form = this.find('form'); + + // validate form + form.validator('validate'); + + // check whether the form is valid + let formValid = form.isValidForm(); + + if(formValid){ + // get form data + let formData = form.getFormValues(); + formData.id = Util.getObjVal(structureData, 'id') | 0; + formData.structureId = Util.getObjVal(formData, 'structureId') | 0; + formData.corporationId = Util.getObjVal(formData, 'corporationId') | 0; + formData.systemId = systemId | 0; + + saveStructureData({ + structures: [formData] + }, { + moduleElement: moduleElement, + tableApi: tableApi + }, callbackUpdateStructureRows); + }else{ + return false; + } + } + } + } + }); + + structureDialog.on('show.bs.modal', function(e) { + let modalContent = $('#' + config.structureDialogId); + + // init type select live search + let selectElementType = modalContent.find('#' + config.typeSelectId); + selectElementType.initUniverseTypeSelect({ + categoryIds: [65], + maxSelectionLength: 1, + selected: [Util.getObjVal(structureData, 'structure.id')] + }); + + // init corporation select live search + let selectElementCorporation = modalContent.find('#' + config.corporationSelectId); + selectElementCorporation.initUniverseSearch({ + categoryNames: ['corporation'], + maxSelectionLength: 1 + }); + + // init status select2 + modalContent.find('#' + config.statusSelectId).initStatusSelect({ + data: statusData + }); + + // init character counter + let textarea = modalContent.find('#' + config.descriptionTextareaId); + let charCounter = modalContent.find('.' + config.descriptionTextareaCharCounter); + Util.updateCounter(textarea, charCounter, maxDescriptionLength); + + textarea.on('keyup', function(){ + Util.updateCounter($(this), charCounter, maxDescriptionLength); + }); + + // set form validator (after select2 init finish) + modalContent.find('form').initFormValidation(); + }); + + // show dialog + structureDialog.modal('show'); + }); + }; + + /** + * show D-Scan reader dialog + * @param moduleElement + * @param tableApi + * @param systemData + */ + let showDscanReaderDialog = (moduleElement, tableApi, systemData) => { + requirejs(['text!templates/dialog/dscan_reader.html', 'mustache'], (template, Mustache) => { + let structureDialog = bootbox.dialog({ + title: 'D-Scan reader', + message: Mustache.render(template, {}), + show: true, + buttons: { + close: { + label: 'cancel', + className: 'btn-default' + }, + success: { + label: ' update intel', + className: 'btn-success', + callback: function (){ + let form = this.find('form'); + let formData = form.getFormValues(); + + updateStructureTableByClipboard(systemData, formData.clipboard, { + moduleElement: moduleElement, + tableApi: tableApi + }); + } + } + } + }); + + // dialog shown event + structureDialog.on('shown.bs.modal', function(e) { + // set focus on textarea + structureDialog.find('textarea').focus(); + }); + }); + }; + + /** + * get module element + * @param parentElement + * @param mapId + * @param systemData + * @returns {jQuery} + */ + let getModule = (parentElement, mapId, systemData) => { + let corporationId = Util.getCurrentUserInfo('corporationId'); + + let moduleElement = $('
').append( + $('
', { + class: config.moduleHeadClass + }).append( + $('
', { + class: config.moduleHandlerClass + }), + $('
', { + class: 'pull-right' + }).append( + $('', { + class: ['fas', 'fa-fw', 'fa-plus', config.moduleHeadlineIconClass, config.moduleHeadlineIconAddClass].join(' '), + title: 'add' + }).attr('data-html', 'true').attr('data-toggle', 'tooltip'), + $('', { + class: ['fas', 'fa-fw', 'fa-paste', config.moduleHeadlineIconClass, config.moduleHeadlineIconReaderClass].join(' '), + title: 'D-Scan reader' + }).attr('data-html', 'true').attr('data-toggle', 'tooltip'), + $('', { + class: ['fas', 'fa-fw', 'fa-sync', config.moduleHeadlineIconClass, config.moduleHeadlineIconRefreshClass].join(' '), + title: 'refresh all' + }).attr('data-html', 'true').attr('data-toggle', 'tooltip') + ), + $('
', { + text: 'Intel' + }) + ) + ); + + let table = $('
', { + class: ['compact', 'stripe', 'order-column', 'row-border', 'pf-table-fixed', config.systemStructuresTableClass].join(' ') + }); + moduleElement.append(table); + + let structureTable = table.DataTable({ + paging: false, + lengthChange: false, + ordering: true, + order: [[ 10, 'desc' ], [ 0, 'asc' ]], + info: false, + searching: false, + hover: false, + autoWidth: false, + rowId: rowData => config.tableRowIdPrefix + rowData.id, + language: { + emptyTable: 'No structures recorded', + info: '_START_ to _END_ of _MAX_', + infoEmpty: '' + }, + rowGroup: { + enable: true, + dataSrc: 'systemId' + }, + columnDefs: [ + { + targets: 0, + title: '', + width: 2, + class: 'text-center', + data: 'status', + render: { + display: data => getStatusData(data), + sort: data => data.id + }, + createdCell: function(cell, cellData, rowData, rowIndex, colIndex){ + $(cell).find('i').tooltip(); + } + },{ + targets: 1, + title: '', + width: 26, + orderable: false, + className: [config.tableCellImageClass, 'text-center'].join(' '), + data: 'structure.id', + defaultContent: '', + render: { + _: function(data, type, row, meta){ + let value = data; + if(type === 'display' && value){ + value = ''; + } + return value; + } + } + },{ + targets: 2, + title: 'type', + width: 30, + className: [config.tableCellEllipsisClass].join(' '), + data: 'structure.name', + defaultContent: '', + },{ + targets: 3, + title: 'name', + width: 60, + className: [config.tableCellEllipsisClass].join(' '), + data: 'name' + },{ + targets: 4, + title: '', + width: 26, + orderable: false, + className: [config.tableCellImageClass, 'text-center'].join(' '), + data: 'owner.id', + defaultContent: '', + render: { + _: function(data, type, row, meta){ + let value = data; + if(type === 'display' && value){ + value = ''; + value += ''; + value += ''; + } + return value; + } + } + },{ + targets: 5, + title: 'owner', + width: 50, + className: [config.tableCellEllipsisClass].join(' '), + data: 'owner.name', + defaultContent: '', + },{ + targets: 6, + title: 'note', + className: [config.tableCellEllipsisClass].join(' '), + data: 'description' + },{ + targets: 7, + title: 'updated', + width: 60, + className: ['text-right', config.tableCellCounterClass].join(' '), + data: 'updated.updated' + },{ + targets: 8, + title: '', + orderable: false, + width: 10, + class: ['text-center', config.dataTableActionCellClass, config.moduleHeadlineIconClass].join(' '), + data: null, + render: { + display: data => { + let icon = ''; + if(data.corporation.id !== corporationId){ + icon = ''; + } + return icon; + } + }, + createdCell: function(cell, cellData, rowData, rowIndex, colIndex){ + let tableApi = this.api(); + + if($(cell).is(':empty')){ + $(cell).removeClass(config.dataTableActionCellClass + ' ' + config.moduleHeadlineIconClass); + }else{ + $(cell).on('click', function(e) { + // get current row data (important!) + // -> "rowData" param is not current state, values are "on createCell()" state + rowData = tableApi.row( $(cell).parents('tr')).data(); + showStructureDialog(moduleElement, tableApi, systemData.systemId, rowData); + }); + } + } + },{ + targets: 9, + title: '', + orderable: false, + width: 10, + class: ['text-center', config.dataTableActionCellClass].join(' '), + data: null, + render: { + display: data => { + let icon = ''; + if(data.corporation.id !== corporationId){ + icon = ''; + } + return icon; + } + }, + createdCell: function(cell, cellData, rowData, rowIndex, colIndex){ + let tableApi = this.api(); + + if($(cell).find('.fa-ban').length){ + $(cell).removeClass(config.dataTableActionCellClass + ' ' + config.moduleHeadlineIconClass); + $(cell).find('i').tooltip(); + }else{ + let confirmationSettings = { + container: 'body', + placement: 'left', + btnCancelClass: 'btn btn-sm btn-default', + btnCancelLabel: 'cancel', + btnCancelIcon: 'fas fa-fw fa-ban', + title: 'delete structure', + btnOkClass: 'btn btn-sm btn-danger', + btnOkLabel: 'delete', + btnOkIcon: 'fas fa-fw fa-times', + onConfirm : function(e, target){ + // get current row data (important!) + // -> "rowData" param is not current state, values are "on createCell()" state + rowData = tableApi.row( $(cell).parents('tr')).data(); + + // let deleteRowElement = $(cell).parents('tr'); + // tableApi.rows(deleteRowElement).remove().draw(); + deleteStructure({ + id: rowData.id + },{ + moduleElement: moduleElement, + tableApi: tableApi + }, callbackDeleteStructures); + } + }; + + // init confirmation dialog + $(cell).confirmation(confirmationSettings); + } + } + },{ + targets: 10, + name: 'corporation', + data: 'corporation', + visible: false, + render: { + sort: function(data){ + return data.name; + } + } + } + ], + drawCallback: function (settings){ + let tableApi = this.api(); + let columnCount = tableApi.columns(':visible').count(); + let rows = tableApi.rows( {page:'current'} ).nodes(); + let last= null; + + tableApi.column('corporation:name', {page:'current'} ).data().each( function ( group, i ) { + if ( !last || last.id !== group.id ) { + $(rows).eq(i).before( + '' + + '' + + '' + + '' + + '' + ); + last = group; + } + }); + + rows.to$().find('.' + config.tableCellCounterClass + ':not([data-counter])').initTimestampCounter('d'); + + let animationRows = rows.to$().filter(function() { + return ( + $(this).data('animationStatus') || + $(this).data('animationTimer') + ); + }); + + for(let i = 0; i < animationRows.length; i++){ + let animationRow = $(animationRows[i]); + animationRow.pulseBackgroundColor(animationRow.data('animationStatus')); + animationRow.removeData('animationStatus'); + } + }, + initComplete: function(settings){ + // table data is load in updateModule() method + // -> no need to trigger additional ajax call here for data + // -> in case table update failed -> each if this initComplete() function finished before table updata + // e.g. return now promise in getModule() function + } + }); + + // init tooltips for this module + let tooltipElements = moduleElement.find('[data-toggle="tooltip"]'); + tooltipElements.tooltip({ + container: 'body' + }); + + moduleElement.showLoadingAnimation(); + + return moduleElement; + }; + + /** + * get universe typeIds for given categoryIds + * @param categoryIds + * @returns {Array} + */ + let getUniverseTypeIdsByCategoryIds = (categoryIds) => { + let typeIds = []; + let mapIds = type => type.id; + for(let categoryId of categoryIds){ + let categoryData = Util.getObjVal(Init, 'universeCategories.' + categoryId); + if(categoryData && categoryData.groups){ + for(let groupData of categoryData.groups){ + if(groupData && groupData.types){ + typeIds = typeIds.concat(groupData.types.map(mapIds)); + } + } + } + } + + return typeIds; + }; + + /** + * parse a copy&paste string from ingame dScan windows + * @param systemData + * @param clipboard + * @returns {Array} + */ + let parseDscanString = (systemData, clipboard) => { + let dScanData = []; + let structureTypeIds = getUniverseTypeIdsByCategoryIds([65]); + + if(clipboard.length){ + let dScanRows = clipboard.split(/\r\n|\r|\n/g); + + for(let rowData of dScanRows){ + rowData = rowData.split(/\t/g); + + if(rowData.length === 4){ + rowData[0] = parseInt(rowData[0]); + // valid dScan result + if(structureTypeIds.indexOf( rowData[0] ) !== -1){ + dScanData.push({ + structureId: rowData[0], + name: rowData[1], + systemId: systemData.systemId + }); + } + } + } + } + + return dScanData; + }; + + /** + * parse clipboard data for structures and update table + * @param systemData + * @param clipboard + * @param context + */ + let updateStructureTableByClipboard = (systemData, clipboard, context) => { + let structureData = parseDscanString(systemData, clipboard); + if(structureData.length){ + saveStructureData({ + structures: structureData + }, context, callbackUpdateStructureRows); + } + }; + + /** + * update trigger function for this module + * compare data and update module + * @param moduleElement + * @param systemData + */ + let updateModule = (moduleElement, systemData) => { + + // update structure table data + let structureTableElement = moduleElement.find('.' + config.systemStructuresTableClass); + let tableApi = structureTableElement.DataTable(); + + let context = { + tableApi: tableApi, + removeMissing: true + }; + + callbackUpdateStructureRows(context, systemData); + + moduleElement.hideLoadingAnimation(); + }; + + /** + * init intel module + * @param moduleElement + * @param mapId + * @param systemData + */ + let initModule = (moduleElement, mapId, systemData) => { + + let structureTableElement = moduleElement.find('.' + config.systemStructuresTableClass); + let tableApi = structureTableElement.DataTable(); + + // init structure dialog -------------------------------------------------------------------------------------- + moduleElement.find('.' + config.moduleHeadlineIconAddClass).on('click', function(e){ + showStructureDialog(moduleElement, tableApi, systemData.systemId); + }); + + // init structure dialog -------------------------------------------------------------------------------------- + moduleElement.find('.' + config.moduleHeadlineIconReaderClass).on('click', function(e){ + showDscanReaderDialog(moduleElement, tableApi, systemData); + }); + + // init refresh button ---------------------------------------------------------------------------------------- + moduleElement.find('.' + config.moduleHeadlineIconRefreshClass).on('click', function(e){ + getStructureData({ + mapId: mapId, + systemId: systemData.id + },{ + moduleElement: moduleElement, + tableApi: tableApi, + removeMissing: true + }, callbackAddStructureRows); + }); + + // init listener for global "past" dScan into this page ------------------------------------------------------- + moduleElement.on('pf:updateIntelModuleByClipboard', function(e, clipboard){ + updateStructureTableByClipboard(systemData, clipboard, { + moduleElement: moduleElement, + tableApi: tableApi + }); + }); + }; + + /** + * before module destroy callback + * @param moduleElement + */ + let beforeDestroy = moduleElement => { + // Destroying the data tables throws + // -> safety remove all dataTables + let structureTableElement = moduleElement.find('.' + config.systemStructuresTableClass); + let tableApi = structureTableElement.DataTable(); + tableApi.destroy(); + }; + + return { + config: config, + getModule: getModule, + initModule: initModule, + updateModule: updateModule, + beforeDestroy: beforeDestroy + }; + +}); \ No newline at end of file diff --git a/public/js/v1.4.1/app/ui/module/system_killboard.js b/public/js/v1.4.1/app/ui/module/system_killboard.js new file mode 100644 index 00000000..6b2198f0 --- /dev/null +++ b/public/js/v1.4.1/app/ui/module/system_killboard.js @@ -0,0 +1,407 @@ +/** + * System killboard module + */ + +define([ + 'jquery', + 'app/init', + 'app/util', + 'morris' +], ($, Init, Util, Morris) => { + 'use strict'; + + let config = { + // module info + modulePosition: 2, + moduleName: 'systemKillboard', + moduleHeadClass: 'pf-module-head', // class for module header + moduleHandlerClass: 'pf-module-handler-drag', // class for "drag" handler + + // headline toolbar + moduleHeadlineIconClass: 'pf-module-icon-button', // class for toolbar icons in the head + + // system killboard module + moduleTypeClass: 'pf-system-killboard-module', // class for this module + systemKillboardGraphKillsClass: 'pf-system-killboard-graph-kills', // class for system kill graph + + // system killboard list + systemKillboardListClass: 'pf-system-killboard-list', // class for a list with kill entries + systemKillboardListEntryClass: 'pf-system-killboard-list-entry', // class for a list entry + systemKillboardListImgShip: 'pf-system-killboard-img-ship', // class for all ship images + systemKillboardListImgChar: 'pf-system-killboard-img-char', // class for all character logos + systemKillboardListImgAlly: 'pf-system-killboard-img-ally', // class for all alliance logos + systemKillboardListImgCorp: 'pf-system-killboard-img-corp' // class for all corp logos + }; + + let cache = { + systemKillsGraphData: {} // data for system kills info graph + }; + + /** + * + * @param text + * @param options + * @returns {jQuery} + */ + let getLabel = (text, options) => { + let label = $('', { + class: ['label', options.type, options.align].join(' ') + }).text( text ); + + return label; + }; + + /** + * show killMails + * @param moduleElement + * @param killboardData + */ + let showKillmails = (moduleElement, killboardData) => { + + // show number of killMails + let killMailCounterMax = 20; + let killMailCounter = 0; + + // change order (show right to left) + killboardData.tableData.reverse(); + + let data = { + tableData: killboardData.tableData, + systemKillboardListClass: config.systemKillboardListClass, + systemKillboardListEntryClass: config.systemKillboardListEntryClass, + systemKillboardListImgShip: config.systemKillboardListImgShip, + systemKillboardListImgChar: config.systemKillboardListImgChar, + systemKillboardListImgAlly: config.systemKillboardListImgAlly, + systemKillboardListImgCorp: config.systemKillboardListImgCorp, + zKillboardUrl: 'https://zkillboard.com', + ccpImageServerUrl: Init.url.ccpImageServer, + + dateFormat: () => { + return (val, render) => { + let killDate = Util.convertDateToUTC(new Date(render(val))); + return Util.convertDateToString(killDate); + }; + }, + iskFormat: () => { + return (val, render) => { + return Util.formatPrice(render(val)); + }; + }, + checkRender : () => { + return (val, render) => { + if(killMailCounter < killMailCounterMax){ + return render(val); + } + }; + }, + increaseCount : () => { + return (val, render) => { + killMailCounter++; + }; + } + }; + + requirejs(['text!templates/modules/killboard.html', 'mustache'], function(template, Mustache) { + let content = Mustache.render(template, data); + + moduleElement.append(content); + + // animate kill li-elements + $('.' + config.systemKillboardListEntryClass).velocity('transition.expandIn', { + stagger: 50, + complete: function(){ + // init tooltips + moduleElement.find('[title]').tooltip({ + container: 'body' + }); + + } + }); + }); + }; + + /** + * updates the system info graph + * @param systemData + */ + $.fn.updateSystemInfoGraphs = function(systemData){ + let moduleElement = $(this); + + let killboardGraphElement = $('
', { + class: config.systemKillboardGraphKillsClass + }); + + moduleElement.append(killboardGraphElement); + + let showHours = 24; + let maxKillmailCount = 200; // limited by API + + let labelOptions = { + align: 'center-block' + }; + let label = ''; + + // private function draws a "system kills" graph + let drawGraph = function(data){ + let tableData = data.tableData; + + // change order (show right to left) + tableData.reverse(); + + if(data.count === 0){ + labelOptions.type = 'label-success'; + label = getLabel( 'No kills found within the last 24h', labelOptions ); + killboardGraphElement.append( label ); + + minifyKillboardGraphElement(killboardGraphElement); + return; + } + + let labelYFormat = function(y){ + return Math.round(y); + }; + + // draw chart + Morris.Bar({ + element: killboardGraphElement, + resize: true, + redraw: true, + grid: true, + gridStrokeWidth: 0.3, + gridTextSize: 9, + gridTextColor: '#63676a', + gridTextFamily: 'Oxygen Bold', + hideHover: true, + data: tableData, + xkey: 'label', + ykeys: ['kills'], + labels: ['Kills'], + yLabelFormat: labelYFormat, + xLabelMargin: 10, + padding: 10, + parseTime: false, + barOpacity: 0.8, + barRadius: [2, 2, 0, 0], + barSizeRatio: 0.5, + barGap: 3, + barColors: function (row, series, type) { + if (type === 'bar') { + // highlight last row -> recent kills found + if(this.xmax === row.x){ + return '#c2760c'; + } + } + + return '#375959'; + } + }); + + // show hint for recent kills + if(tableData[tableData.length - 1].kills > 0){ + labelOptions.type = 'label-warning'; + label = getLabel( tableData[tableData.length - 1].kills + ' kills within the last hour', labelOptions ); + killboardGraphElement.prepend( label ); + } + }; + + // get recent KB stats (last 24h)) + let localDate = new Date(); + + // cache result for 5min + let cacheKey = systemData.systemId + '_' + localDate.getHours() + '_' + ( Math.ceil( localDate.getMinutes() / 5 ) * 5); + + if(cache.systemKillsGraphData.hasOwnProperty(cacheKey) ){ + // cached results + + drawGraph( cache.systemKillsGraphData[cacheKey] ); + + // show killmail information + showKillmails(moduleElement, cache.systemKillsGraphData[cacheKey]); + }else{ + + // chart data + let chartData = []; + + for(let i = 0; i < showHours; i++){ + let tempData = { + label: i + 'h', + kills: 0 + }; + + chartData.push(tempData); + } + + // get kills within the last 24h + let timeFrameInSeconds = 60 * 60 * 24; + + // get current server time + let serverDate= Util.getServerTime(); + + // if system is w-space system -> add link modifier + let wSpaceLinkModifier = ''; + if(systemData.type.id === 1){ + wSpaceLinkModifier = 'w-space/'; + } + + let url = Init.url.zKillboard + '/'; + url += 'no-items/' + wSpaceLinkModifier + 'no-attackers/solarSystemID/' + systemData.systemId + '/pastSeconds/' + timeFrameInSeconds + '/'; + + killboardGraphElement.showLoadingAnimation(); + + $.ajax({ + url: url, + type: 'GET', + dataType: 'json' + }).done(function(kbData) { + + // the API wont return more than 200KMs ! - remember last bar block with complete KM information + let lastCompleteDiffHourData = 0; + + // loop kills and count kills by hour + for (let i = 0; i < kbData.length; i++) { + let killmailData = kbData[i]; + let killDate = Util.convertDateToUTC(new Date(killmailData.killmail_time)); + + // get time diff + let timeDiffMin = Math.round(( serverDate - killDate ) / 1000 / 60); + let timeDiffHour = Math.floor(timeDiffMin / 60); + + // update chart data + if (chartData[timeDiffHour]) { + chartData[timeDiffHour].kills++; + + // add kill mail data + if (chartData[timeDiffHour].killmails === undefined) { + chartData[timeDiffHour].killmails = []; + } + chartData[timeDiffHour].killmails.push(killmailData); + + if (timeDiffHour > lastCompleteDiffHourData) { + lastCompleteDiffHourData = timeDiffHour; + } + } + + } + + // remove empty chart Data + if (kbData.length >= maxKillmailCount) { + chartData = chartData.splice(0, lastCompleteDiffHourData + 1); + } + + // fill cache + cache.systemKillsGraphData[cacheKey] = {}; + cache.systemKillsGraphData[cacheKey].tableData = chartData; + cache.systemKillsGraphData[cacheKey].count = kbData.length; + + // draw table + drawGraph(cache.systemKillsGraphData[cacheKey]); + + // show killmail information + showKillmails(moduleElement, cache.systemKillsGraphData[cacheKey]); + + killboardGraphElement.hideLoadingAnimation(); + }).fail(function(e){ + + labelOptions.type = 'label-danger'; + label = getLabel( 'zKillboard is not responding', labelOptions ); + killboardGraphElement.prepend( label ); + + killboardGraphElement.hideLoadingAnimation(); + + minifyKillboardGraphElement(killboardGraphElement); + + Util.showNotify({title: e.status + ': Get system kills', text: 'Loading failed', type: 'error'}); + }); + } + + + + // init tooltips + let tooltipElements = moduleElement.find('[data-toggle="tooltip"]'); + tooltipElements.tooltip({ + container: 'body' + }); + + }; + + /** + * minify the killboard graph element e.g. if no kills where found, or on error + * @param killboardGraphElement + */ + let minifyKillboardGraphElement = (killboardGraphElement) => { + killboardGraphElement.velocity({ + height: '20px', + marginBottom: '0px' + },{ + duration: Init.animationSpeed.mapModule + }); + }; + + /** + * get module toolbar element + * @param systemData + * @returns {*|jQuery|HTMLElement|void} + */ + let getHeadlineToolbar = (systemData) => { + let headlineToolbar = $('
', { + class: 'pull-right' + }).append( + $('', { + class: ['fas', 'fa-fw', 'fa-external-link-alt ', config.moduleHeadlineIconClass].join(' '), + title: 'zkillboard.com' + }).on('click', function(e){ + window.open( + '//zkillboard.com/system/' + systemData.systemId, + '_blank' + ); + }).attr('data-toggle', 'tooltip') + ); + + headlineToolbar.find('[data-toggle="tooltip"]').tooltip({ + container: 'body' + }); + + return headlineToolbar; + }; + + /** + * before module "show" callback + * @param moduleElement + * @param systemData + */ + let beforeShow = (moduleElement, systemData) => { + // update graph + moduleElement.updateSystemInfoGraphs(systemData); + }; + + /** + * get module element + * @param parentElement + * @param mapId + * @param systemData + * @returns {jQuery} + */ + let getModule = (parentElement, mapId, systemData) => { + let moduleElement = $('
').append( + $('
', { + class: config.moduleHeadClass + }).append( + $('
', { + class: config.moduleHandlerClass + }), + $('
', { + text: 'Killboard' + }), + getHeadlineToolbar(systemData) + ) + ); + + return moduleElement; + }; + + return { + config: config, + getModule: getModule, + beforeShow: beforeShow + }; +}); \ No newline at end of file diff --git a/public/js/v1.4.1/app/ui/module/system_route.js b/public/js/v1.4.1/app/ui/module/system_route.js new file mode 100644 index 00000000..2feb6979 --- /dev/null +++ b/public/js/v1.4.1/app/ui/module/system_route.js @@ -0,0 +1,1367 @@ +/** + * System route module + */ + +define([ + 'jquery', + 'app/init', + 'app/util', + 'bootbox', + 'app/map/util' +], ($, Init, Util, bootbox, MapUtil) => { + 'use strict'; + + let config = { + // module info + modulePosition: 1, + moduleName: 'systemRoute', + moduleHeadClass: 'pf-module-head', // class for module header + moduleHandlerClass: 'pf-module-handler-drag', // class for "drag" handler + + // system route module + moduleTypeClass: 'pf-system-route-module', // class for this module + + // headline toolbar + moduleHeadlineIconClass: 'pf-module-icon-button', // class for toolbar icons in the head + moduleHeadlineIconSearchClass: 'pf-module-icon-button-search', // class for "search" icon + moduleHeadlineIconSettingsClass: 'pf-module-icon-button-settings', // class for "settings" icon + moduleHeadlineIconRefreshClass: 'pf-module-icon-button-refresh', // class for "refresh" icon + + systemSecurityClassPrefix: 'pf-system-security-', // prefix class for system security level (color) + + // dialog + routeSettingsDialogId: 'pf-route-settings-dialog', // id for route "settings" dialog + routeDialogId: 'pf-route-dialog', // id for route "search" dialog + systemDialogSelectClass: 'pf-system-dialog-select', // class for system select Element + systemInfoRoutesTableClass: 'pf-system-route-table', // class for route tables + mapSelectId: 'pf-route-dialog-map-select', // id for "map" select + + dataTableActionCellClass: 'pf-table-action-cell', // class for "action" cells + dataTableRouteCellClass: 'pf-table-route-cell', // class for "route" cells + dataTableJumpCellClass: 'pf-table-jump-cell', // class for "route jump" cells + + rallyClass: 'pf-rally', // class for "rally point" style + + routeCacheTTL: 5 // route cache timer (client) in seconds + }; + + // cache for system routes + let cache = { + systemRoutes: {}, // jump information between solar systems + mapConnections: {} // connection data read from UI + }; + + /** + * set cache data + * @param cacheType + * @param cacheKey + * @param data + */ + let setCacheData = (cacheType, cacheKey, data) => { + cache[cacheType][cacheKey] = { + data: data, + updated: Util.getServerTime().getTime() / 1000 + }; + }; + + /** + * get cache data + * @param cacheType + * @param cacheKey + * @returns {*} + */ + let getCacheData = (cacheType, cacheKey) => { + let cachedData = null; + let currentTimestamp = Util.getServerTime().getTime(); + + if( + cache[cacheType].hasOwnProperty(cacheKey) && + Math.round( + ( currentTimestamp - (new Date( cache[cacheType][cacheKey].updated * 1000).getTime())) / 1000 + ) <= config.routeCacheTTL + ){ + cachedData = cache[cacheType][cacheKey].data; + } + + return cachedData; + }; + + let getRouteDataCacheKey = (mapIds, sourceName, targetName) => { + return [mapIds.join('_'), sourceName.toLowerCase(), targetName.toLowerCase()].join('###'); + }; + + /** + * get a unique cache key name for "source"/"target"-name + * @param sourceName + * @param targetName + * @returns {*} + */ + let getConnectionDataCacheKey = (sourceName, targetName) => { + let key = false; + if(sourceName && targetName){ + // names can be "undefined" in case system is currently on drag/drop + key = [sourceName.toLowerCase(), targetName.toLowerCase()].sort().join('###'); + } + return key; + }; + + /** + * callback function, adds new row to a dataTable with jump information for a route + * @param context + * @param routesData + */ + let callbackAddRouteRows = (context, routesData) => { + if(routesData.length > 0){ + for(let routeData of routesData){ + // format routeData + let rowData = formatRouteData(routeData); + if(rowData.route){ + // update route cache + let cacheKey = getRouteDataCacheKey(rowData.mapIds, routeData.systemFromData.name, routeData.systemToData.name); + setCacheData('systemRoutes', cacheKey, rowData); + + addRow(context, rowData); + } + } + + // redraw dataTable + context.dataTable.draw(); + } + }; + + /** + * add a new dataTable row to the routes table + * @param context + * @param rowData + * @returns {*} + */ + let addRow = (context, rowData) => { + let dataTable = context.dataTable; + let rowElement = null; + let row = null; + let animationStatus = 'changed'; + + // search for an existing row (e.g. on mass "table refresh" [all routes]) + // get rowIndex where column 1 (equals to "systemToData.name") matches rowData.systemToData.name + let indexes = dataTable.rows().eq(0).filter((rowIdx) => { + return (dataTable.cell(rowIdx, 1).data().name === rowData.systemToData.name); + }); + + if(indexes.length > 0){ + // update row with FIRST index + // -> systemFrom should be unique! + row = dataTable.row( parseInt(indexes[0]) ); + // update row data + row.data(rowData); + }else{ + // no existing route found -> add new row + row = dataTable.row.add( rowData ); + + animationStatus = 'added'; + } + + if(row.length > 0){ + rowElement = row.nodes().to$(); + rowElement.data('animationStatus', animationStatus); + + rowElement.initTooltips({ + container: 'body' + }); + } + + return rowElement; + }; + + /** + * requests route data from eveCentral API and execute callback + * @param requestData + * @param context + * @param callback + */ + let getRouteData = (requestData, context, callback) => { + context.moduleElement.showLoadingAnimation(); + + $.ajax({ + url: Init.path.searchRoute, + type: 'POST', + dataType: 'json', + data: requestData, + context: context + }).done(function(routesData){ + this.moduleElement.hideLoadingAnimation(); + + // execute callback + callback(this, routesData.routesData); + }); + }; + + /** + * update complete routes table (refresh all) + * @param moduleElement + * @param dataTable + */ + let updateRoutesTable = (moduleElement, dataTable) => { + let context = { + moduleElement: moduleElement, + dataTable: dataTable + }; + let routeData = []; + + dataTable.rows().every( function() { + routeData.push( getRouteRequestDataFromRowData( this.data() )); + }); + + getRouteData({routeData: routeData}, context, callbackAddRouteRows); + }; + + /** + * format rowData for route search/update request + * @param {Object} rowData + * @returns {Object} + */ + let getRouteRequestDataFromRowData = (rowData) => { + return { + mapIds: (rowData.hasOwnProperty('mapIds')) ? rowData.mapIds : [], + systemFromData: (rowData.hasOwnProperty('systemFromData')) ? rowData.systemFromData : {}, + systemToData: (rowData.hasOwnProperty('systemToData')) ? rowData.systemToData : {}, + skipSearch: (rowData.hasOwnProperty('skipSearch')) ? rowData.skipSearch | 0 : 0, + stargates: (rowData.hasOwnProperty('stargates')) ? rowData.stargates | 0 : 1, + jumpbridges: (rowData.hasOwnProperty('jumpbridges')) ? rowData.jumpbridges | 0 : 1, + wormholes: (rowData.hasOwnProperty('wormholes')) ? rowData.wormholes | 0 : 1, + wormholesReduced: (rowData.hasOwnProperty('wormholesReduced')) ? rowData.wormholesReduced | 0 : 1, + wormholesCritical: (rowData.hasOwnProperty('wormholesCritical')) ? rowData.wormholesCritical | 0 : 1, + wormholesFrigate: (rowData.hasOwnProperty('wormholesFrigate')) ? rowData.wormholesFrigate | 0 : 1, + wormholesEOL: (rowData.hasOwnProperty('wormholesEOL')) ? rowData.wormholesEOL | 0 : 1, + connections: (rowData.hasOwnProperty('connections')) ? rowData.connections.value | 0 : 0, + flag: (rowData.hasOwnProperty('flag')) ? rowData.flag.value : 'shortest' + }; + }; + + /** + * show route dialog. User can search for systems and jump-info for each system is added to a data table + * @param dialogData + */ + let showFindRouteDialog = (dialogData) => { + + let mapSelectOptions = []; + let currentMapData = Util.getCurrentMapData(); + if(currentMapData !== false){ + for(let i = 0; i < currentMapData.length; i++){ + mapSelectOptions.push({ + id: currentMapData[i].config.id, + name: currentMapData[i].config.name, + selected: (dialogData.mapId === currentMapData[i].config.id) + }); + } + } + let data = { + id: config.routeDialogId, + selectClass: config.systemDialogSelectClass, + mapSelectId: config.mapSelectId, + systemFromData: dialogData.systemFromData, + systemToData: dialogData.systemToData, + mapSelectOptions: mapSelectOptions + }; + + requirejs(['text!templates/dialog/route.html', 'mustache'], (template, Mustache) => { + + let content = Mustache.render(template, data); + + let findRouteDialog = bootbox.dialog({ + title: 'Route finder', + message: content, + show: false, + buttons: { + close: { + label: 'cancel', + className: 'btn-default' + }, + success: { + label: ' search route', + className: 'btn-primary', + callback: function () { + // add new route to route table + + // get form Values + let form = $('#' + config.routeDialogId).find('form'); + + let routeDialogData = $(form).getFormValues(); + + // validate form + form.validator('validate'); + + // check whether the form is valid + let formValid = form.isValidForm(); + + if(formValid === false){ + // don't close dialog + return false; + } + + // get all system data from select2 + let systemSelectData = form.find('.' + config.systemDialogSelectClass).select2('data'); + + if( + systemSelectData && + systemSelectData.length === 1 + ){ + let context = { + moduleElement: dialogData.moduleElement, + dataTable: dialogData.dataTable + }; + + let requestData = { + routeData: [{ + mapIds: routeDialogData.mapIds, + systemFromData: dialogData.systemFromData, + systemToData: { + systemId: parseInt(systemSelectData[0].id), + name: systemSelectData[0].text + }, + stargates: routeDialogData.hasOwnProperty('stargates') ? parseInt(routeDialogData.stargates) : 0, + jumpbridges: routeDialogData.hasOwnProperty('jumpbridges') ? parseInt(routeDialogData.jumpbridges) : 0, + wormholes: routeDialogData.hasOwnProperty('wormholes') ? parseInt(routeDialogData.wormholes) : 0, + wormholesReduced: routeDialogData.hasOwnProperty('wormholesReduced') ? parseInt(routeDialogData.wormholesReduced) : 0, + wormholesCritical: routeDialogData.hasOwnProperty('wormholesCritical') ? parseInt(routeDialogData.wormholesCritical) : 0, + wormholesFrigate: routeDialogData.hasOwnProperty('wormholesFrigate') ? parseInt(routeDialogData.wormholesFrigate) : 0, + wormholesEOL: routeDialogData.hasOwnProperty('wormholesEOL') ? parseInt(routeDialogData.wormholesEOL) : 0 + }] + }; + + getRouteData(requestData, context, callbackAddRouteRows); + } + } + } + } + }); + + findRouteDialog.on('show.bs.modal', function(e) { + findRouteDialog.initTooltips(); + + // init some dialog/form observer + setDialogObserver( $(this) ); + + // init map select ---------------------------------------------------------------- + let mapSelect = $(this).find('#' + config.mapSelectId); + mapSelect.initMapSelect(); + }); + + + findRouteDialog.on('shown.bs.modal', function(e) { + + // init system select live search ------------------------------------------------ + // -> add some delay until modal transition has finished + let systemTargetSelect = $(this).find('.' + config.systemDialogSelectClass); + systemTargetSelect.delay(240).initSystemSelect({key: 'id'}); + }); + + // show dialog + findRouteDialog.modal('show'); + }); + }; + + /** + * draw route table + * @param mapId + * @param moduleElement + * @param systemFromData + * @param routesTable + * @param systemsToData + */ + let drawRouteTable = (mapId, moduleElement, systemFromData, routesTable, systemsToData) => { + let requestRouteData = []; + + // Skip some routes from search + // -> this should help to throttle requests (heavy CPU load for route calculation) + let defaultRoutesCount = Init.routeSearch.defaultCount; + let rowElements = []; + + for(let systemToData of systemsToData){ + if(systemFromData.name !== systemToData.name){ + // check for cached rowData + let cacheKey = getRouteDataCacheKey([mapId], systemFromData.name, systemToData.name); + let rowData = getCacheData('systemRoutes', cacheKey); + if(rowData){ + // route data is cached (client side) + let context = { + dataTable: routesTable + }; + + rowElements.push( addRow(context, rowData) ); + }else{ + // get route data -> ajax + let searchData = { + mapIds: [mapId], + systemFromData: systemFromData, + systemToData: systemToData, + skipSearch: requestRouteData.length >= defaultRoutesCount + }; + + requestRouteData.push( getRouteRequestDataFromRowData( searchData )); + } + } + } + + // rows added from cache -> redraw() table + if(rowElements.length){ + routesTable.draw(); + } + + // check if routes data is not cached and is requested + if(requestRouteData.length > 0){ + let contextData = { + moduleElement: moduleElement, + dataTable: routesTable + }; + + let requestData = { + routeData: requestRouteData + }; + + getRouteData(requestData, contextData, callbackAddRouteRows); + } + }; + + /** + * show route settings dialog + * @param dialogData + * @param moduleElement + * @param systemFromData + * @param routesTable + */ + let showSettingsDialog = (dialogData, moduleElement, systemFromData, routesTable) => { + + let promiseStore = MapUtil.getLocaleData('map', dialogData.mapId); + promiseStore.then(dataStore => { + // selected systems (if already stored) + let systemSelectOptions = []; + if( + dataStore && + dataStore.routes + ){ + systemSelectOptions = dataStore.routes; + } + + // max count of "default" target systems + let maxSelectionLength = Init.routeSearch.maxDefaultCount; + + let data = { + id: config.routeSettingsDialogId, + selectClass: config.systemDialogSelectClass, + systemSelectOptions: systemSelectOptions, + maxSelectionLength: maxSelectionLength + }; + + requirejs(['text!templates/dialog/route_settings.html', 'mustache'], (template, Mustache) => { + let content = Mustache.render(template, data); + + let settingsDialog = bootbox.dialog({ + title: 'Route settings', + message: content, + show: false, + buttons: { + close: { + label: 'cancel', + className: 'btn-default' + }, + success: { + label: ' save', + className: 'btn-success', + callback: function () { + let form = this.find('form'); + // get all system data from select2 + let systemSelectData = form.find('.' + config.systemDialogSelectClass).select2('data'); + let systemsTo = []; + + if( systemSelectData.length > 0 ){ + systemsTo = formSystemSelectData(systemSelectData); + MapUtil.storeLocalData('map', dialogData.mapId, 'routes', systemsTo); + }else{ + MapUtil.deleteLocalData('map', dialogData.mapId, 'routes'); + } + + Util.showNotify({title: 'Route settings stored', type: 'success'}); + + // (re) draw table + drawRouteTable(dialogData.mapId, moduleElement, systemFromData, routesTable, systemsTo); + } + } + } + }); + + settingsDialog.on('shown.bs.modal', function(e) { + + // init default system select ----------------------------------------------------- + // -> add some delay until modal transition has finished + let systemTargetSelect = $(this).find('.' + config.systemDialogSelectClass); + systemTargetSelect.delay(240).initSystemSelect({key: 'id', maxSelectionLength: maxSelectionLength}); + }); + + // show dialog + settingsDialog.modal('show'); + }); + }); + }; + + /** + * format select2 system data + * @param {Array} data + * @returns {Array} + */ + let formSystemSelectData = (data) => { + let formattedData = []; + for(let i = 0; i < data.length; i++){ + let tmpData = data[i]; + + formattedData.push({ + systemId: parseInt(tmpData.id), + name: tmpData.text + }); + } + + return formattedData; + }; + + /** + * set event observer for route finder dialog + * @param routeDialog + */ + let setDialogObserver = (routeDialog) => { + let wormholeCheckbox = routeDialog.find('input[type="checkbox"][name="wormholes"]'); + let wormholeReducedCheckbox = routeDialog.find('input[type="checkbox"][name="wormholesReduced"]'); + let wormholeCriticalCheckbox = routeDialog.find('input[type="checkbox"][name="wormholesCritical"]'); + let wormholeFrigateCheckbox = routeDialog.find('input[type="checkbox"][name="wormholesFrigate"]'); + let wormholeEolCheckbox = routeDialog.find('input[type="checkbox"][name="wormholesEOL"]'); + + // store current "checked" state for each box --------------------------------------------- + let storeCheckboxStatus = function(){ + wormholeReducedCheckbox.data('selectState', wormholeReducedCheckbox.prop('checked')); + wormholeCriticalCheckbox.data('selectState', wormholeCriticalCheckbox.prop('checked')); + wormholeFrigateCheckbox.data('selectState', wormholeFrigateCheckbox.prop('checked')); + wormholeEolCheckbox.data('selectState', wormholeEolCheckbox.prop('checked')); + }; + + // on wormhole checkbox change ------------------------------------------------------------ + let onWormholeCheckboxChange = function(){ + + if( $(this).is(':checked') ){ + wormholeReducedCheckbox.prop('disabled', false); + wormholeCriticalCheckbox.prop('disabled', false); + wormholeFrigateCheckbox.prop('disabled', false); + wormholeEolCheckbox.prop('disabled', false); + + wormholeReducedCheckbox.prop('checked', wormholeReducedCheckbox.data('selectState')); + wormholeCriticalCheckbox.prop('checked', wormholeCriticalCheckbox.data('selectState')); + wormholeFrigateCheckbox.prop('checked', wormholeFrigateCheckbox.data('selectState')); + wormholeEolCheckbox.prop('checked', wormholeEolCheckbox.data('selectState')); + }else{ + storeCheckboxStatus(); + + wormholeReducedCheckbox.prop('checked', false); + wormholeReducedCheckbox.prop('disabled', true); + wormholeCriticalCheckbox.prop('checked', false); + wormholeCriticalCheckbox.prop('disabled', true); + wormholeFrigateCheckbox.prop('checked', false); + wormholeFrigateCheckbox.prop('disabled', true); + wormholeEolCheckbox.prop('checked', false); + wormholeEolCheckbox.prop('disabled', true); + } + }.bind(wormholeCheckbox); + + wormholeCheckbox.on('change', onWormholeCheckboxChange); + + // initial checkbox check + storeCheckboxStatus(); + onWormholeCheckboxChange(); + }; + + /** + * get a connectionsData object that holds all connections for given mapIds (used as cache for route search) + * @param mapIds + * @returns {{}} + */ + let getConnectionsDataFromMaps = (mapIds) => { + let connectionsData = {}; + for(let mapId of mapIds) { + let map = MapUtil.getMapInstance(mapId); + if(map){ + let cacheKey = 'map_' + mapId; + let mapConnectionsData = getCacheData('mapConnections', cacheKey); + + if(!mapConnectionsData){ + mapConnectionsData = {}; + let connections = map.getAllConnections(); + if(connections.length){ + let connectionsData = MapUtil.getDataByConnections(connections); + for(let connectionData of connectionsData){ + let connectionDataCacheKey = getConnectionDataCacheKey(connectionData.sourceName, connectionData.targetName); + + // skip double connections between same systems + if( !mapConnectionsData.hasOwnProperty(connectionDataCacheKey) ){ + mapConnectionsData[connectionDataCacheKey] = { + map: { + id: mapId + }, + connection: { + id: connectionData.id, + type: connectionData.type, + scope: connectionData.scope + }, + source: { + id: connectionData.source, + name: connectionData.sourceName, + alias: connectionData.sourceAlias + }, + target: { + id: connectionData.target, + name: connectionData.targetName, + alias: connectionData.targetAlias + } + }; + } + } + } + + // update cache + setCacheData('mapConnections', cacheKey, mapConnectionsData); + } + + if(connectionsData !== null){ + connectionsData = Object.assign({}, mapConnectionsData, connectionsData); + } + } + } + + return connectionsData; + }; + + /** + * search for a specific connection by "source"/"target"-name inside connectionsData cache + * @param connectionsData + * @param sourceName + * @param targetName + * @returns {{}} + */ + let findConnectionsData = (connectionsData, sourceName, targetName) => { + let connectionDataCacheKey = getConnectionDataCacheKey(sourceName, targetName); + return connectionsData.hasOwnProperty(connectionDataCacheKey) ? + connectionsData[connectionDataCacheKey] : {}; + }; + + /** + * get stargate connection data (default connection type in case connection was not found on a map) + * @param sourceRouteNodeData + * @param targetRouteNodeData + * @returns {{connection: {id: number, type: string[], scope: string}, source: {id: number, name, alias}, target: {id: number, name, alias}}} + */ + let getStargateConnectionData = (sourceRouteNodeData, targetRouteNodeData) => { + return { + connection: { + id: 0, + type: ['stargate'], + scope: 'stargate' + }, + source: { + id: 0, + name: sourceRouteNodeData.system, + alias: sourceRouteNodeData.system + }, + target: { + id: 0, + name: targetRouteNodeData.system, + alias: targetRouteNodeData.system + } + }; + }; + + /** + * get fake connection Element + * @param connectionData + * @returns {string} + */ + let getFakeConnectionElement = (connectionData) => { + let mapId = Util.getObjVal(connectionData, 'map.id') | 0; + let connectionId = Util.getObjVal(connectionData, 'connection.id') | 0; + let scope = Util.getObjVal(connectionData, 'connection.scope'); + let classes = MapUtil.getConnectionFakeClassesByTypes(connectionData.connection.type); + let disabled = !mapId || !connectionId; + + let connectionElement = '
'; + return connectionElement; + }; + + /** + * format route data from API request into dataTable row format + * @param routeData + * @returns {{}} + */ + let formatRouteData = (routeData) => { + + /** + * get status icon for route + * @param status + * @returns {string} + */ + let getStatusIcon= (status) => { + let color = 'txt-color-danger'; + let title = 'route not found'; + switch(status){ + case 1: + color = 'txt-color-success'; + title = 'route exists'; + break; + case 2: + color = 'txt-color-warning'; + title = 'not search performed'; + break; + } + + return ''; + }; + + // route status: + // 0: not found + // 1: round (OK) + // 2: not searched + let routeStatus = routeData.skipSearch ? 2 : 0; + + // button class for flag (e.g. "secure" routes) + let flagButtonClass = routeData.flag === 'secure' ? 'txt-color-success' : ''; + + let connectionButton = ''; + let flagButton = ''; + let reloadButton = ''; + let searchButton = ''; + let deleteButton = ''; + + // default row data (e.g. no route found) + let tableRowData = { + systemFromData: routeData.systemFromData, + systemToData: routeData.systemToData, + jumps: { + value: 9999, // for sorting + formatted: '' + }, + avgTrueSec: { + value: '', + formatted: '' + }, + route: { + value: routeStatus === 2 ? 'search now' : 'not found', + data: routeData.route + }, + stargates: routeData.stargates, + jumpbridges: routeData.jumpbridges, + wormholes: routeData.wormholes, + wormholesReduced: routeData.wormholesReduced, + wormholesCritical: routeData.wormholesCritical, + wormholesFrigate: routeData.wormholesFrigate, + wormholesEOL: routeData.wormholesEOL, + connections: { + value: 0, + button: connectionButton + }, + flag: { + value: routeData.flag, + button: flagButton + }, + reload: { + button: routeData.skipSearch ? searchButton : reloadButton + }, + clear: { + button: deleteButton + }, + maps: routeData.maps, + mapIds: routeData.mapIds //map data (mapIds is "redundant") + }; + + if( + routeData.routePossible === true && + routeData.route.length > 0 + ){ + // route data available + routeStatus = 1; + + // add route Data + let routeJumpElements = []; + let avgSecTemp = 0; + + let connectionsData = getConnectionsDataFromMaps(routeData.mapIds); + let prevRouteNodeData = null; + // loop all systems on this route + for(let i = 0; i < routeData.route.length; i++){ + let routeNodeData = routeData.route[i]; + let systemName = routeNodeData.system; + + // fake connection elements between systems ----------------------------------------------------------- + if(prevRouteNodeData){ + let connectionData = findConnectionsData(connectionsData, prevRouteNodeData.system, systemName); + if(!connectionData.hasOwnProperty('connection')){ + connectionData = getStargateConnectionData(prevRouteNodeData, routeNodeData); + } + let connectionElement = getFakeConnectionElement(connectionData); + + routeJumpElements.push( connectionElement ); + } + + // system elements ------------------------------------------------------------------------------------ + let systemSec = Number(routeNodeData.security).toFixed(1).toString(); + let tempSystemSec = systemSec; + + if(tempSystemSec <= 0){ + tempSystemSec = '0-0'; + } + + let systemSecClass = config.systemSecurityClassPrefix + tempSystemSec.replace('.', '-'); + + // check for wormhole + let icon = 'fas fa-square'; + if( /^J\d+$/.test(systemName) ){ + icon = 'far fa-dot-circle'; + } + + let system = ''; + routeJumpElements.push( system ); + + // "source" system is not relevant for average security + if(i > 0){ + avgSecTemp += Number(routeNodeData.security); + } + + prevRouteNodeData = routeNodeData; + } + + let avgSec = ( avgSecTemp / (routeData.route.length - 1)).toFixed(2); + let avgSecForClass = Number(avgSec).toFixed(1); + + if(avgSecForClass <= 0){ + avgSecForClass = '0.0'; + } + + let avgSecClass = config.systemSecurityClassPrefix + avgSecForClass.toString().replace('.', '-'); + + tableRowData.jumps = { + value: routeData.routeJumps, + formatted: routeData.routeJumps + }; + + tableRowData.avgTrueSec = { + value: avgSec, + formatted: '' + avgSec + '' + }; + + tableRowData.route.value = routeJumpElements.join(' '); + } + + // route status data ---------------------------------------------------------------------- + tableRowData.status = { + value: routeStatus, + formatted: getStatusIcon(routeStatus) + }; + + return tableRowData; + }; + + /** + * get module element + * @param parentElement + * @param mapId + * @param systemData + * @returns {jQuery} + */ + let getModule = (parentElement, mapId, systemData) => { + let moduleElement = $('
').append( + $('
', { + class: config.moduleHeadClass + }).append( + $('
', { + class: config.moduleHandlerClass + }), + $('
', { + class: 'pull-right' + }).append( + $('', { + class: ['fas', 'fa-fw', 'fa-sliders-h', config.moduleHeadlineIconClass, config.moduleHeadlineIconSettingsClass].join(' '), + title: 'settings' + }).attr('data-html', 'true').attr('data-toggle', 'tooltip'), + $('', { + class: ['fas', 'fa-fw', 'fa-search', config.moduleHeadlineIconClass, config.moduleHeadlineIconSearchClass].join(' '), + title: 'find route' + }).attr('data-html', 'true').attr('data-toggle', 'tooltip'), + $('', { + class: ['fas', 'fa-fw', 'fa-sync', config.moduleHeadlineIconClass, config.moduleHeadlineIconRefreshClass].join(' '), + title: 'refresh all' + }).attr('data-html', 'true').attr('data-toggle', 'tooltip') + ), + $('
', { + text: 'Routes' + }) + ) + ); + + // save systemFromData to module (data never changes during module lifetime) + // -> we need this later in updateModule() + let systemFromData = { + systemId: systemData.systemId, + name: systemData.name, + }; + + moduleElement.data('systemFromData', systemFromData); + + let table = $('
' + + '' + + '' + group.name + '
', { + class: ['compact', 'stripe', 'order-column', 'row-border', config.systemInfoRoutesTableClass].join(' ') + }); + moduleElement.append(table); + + // init empty table + let routesTable = table.dataTable( { + paging: false, + ordering: true, + order: [[ 2, 'asc' ], [ 0, 'asc' ]], + info: false, + searching: false, + hover: false, + autoWidth: false, + rowId: 'systemTo', + language: { + emptyTable: 'No routes added' + }, + columnDefs: [ + { + targets: 0, + orderable: true, + title: '', + width: 2, + class: ['text-center'].join(' '), + data: 'status', + render: { + _: 'formatted', + sort: 'value' + } + },{ + targets: 1, + orderable: true, + title: 'system   ', + class: Util.config.popoverTriggerClass, + data: 'systemToData', + render: { + _: 'name', + sort: 'name' + }, + createdCell: function(cell, cellData, rowData, rowIndex, colIndex) { + // init context menu + $(cell).initSystemPopover({ + systemToData: rowData.systemToData + }); + + $(cell).toggleClass(config.rallyClass, cellData.hasOwnProperty('rally')); + } + },{ + targets: 2, + orderable: true, + title: '  ', + width: 16, + class: 'text-right', + data: 'jumps', + render: { + _: 'formatted', + sort: 'value' + } + },{ + targets: 3, + orderable: true, + title: 'Ø  ', + width: 14, + class: 'text-right', + data: 'avgTrueSec', + render: { + _: 'formatted', + sort: 'value' + } + },{ + targets: 4, + orderable: false, + title: 'route', + class: [config.dataTableRouteCellClass].join(' '), + data: 'route', + render: { + _: 'value' + } + },{ + targets: 5, + title: '', + orderable: false, + searchable: false, + width: 10, + class: ['text-center', config.dataTableActionCellClass].join(' '), + data: 'connections', + render: { + _: 'button' + }, + createdCell: function(cell, cellData, rowData, rowIndex, colIndex) { + let tempTableApi = this.api(); + + $(cell).on('click', function(e) { + let routeCellElement = tempTableApi.cell( rowIndex, 4 ).nodes().to$(); + + if(routeCellElement.hasClass(config.dataTableJumpCellClass)){ + routeCellElement.toggleClass(config.dataTableJumpCellClass, false); + $(this).find('i').toggleClass('txt-color-orange', false); + }else{ + routeCellElement.toggleClass(config.dataTableJumpCellClass, true); + $(this).find('i').toggleClass('txt-color-orange', true); + } + }); + } + },{ + targets: 6, + title: '', + orderable: false, + searchable: false, + width: 10, + class: ['text-center', config.dataTableActionCellClass].join(' '), + data: 'flag', + render: { + _: 'button' + }, + createdCell: function(cell, cellData, rowData, rowIndex, colIndex) { + let tempTableApi = this.api(); + + $(cell).on('click', function(e) { + // get current row data (important!) + // -> "rowData" param is not current state, values are "on createCell()" state + rowData = tempTableApi.row( $(cell).parents('tr')).data(); + let routeData = getRouteRequestDataFromRowData( rowData ); + + // overwrite some params + routeData.skipSearch = 0; + routeData.flag = routeData.flag === 'shortest' ? 'secure' : 'shortest'; // toggle + + let context = { + moduleElement: moduleElement, + dataTable: tempTableApi + }; + + let requestData = { + routeData: [routeData] + }; + + getRouteData(requestData, context, callbackAddRouteRows); + }); + } + },{ + targets: 7, + title: '', + orderable: false, + searchable: false, + width: 10, + class: ['text-center', config.dataTableActionCellClass].join(' '), + data: 'reload', + render: { + _: 'button' + }, + createdCell: function(cell, cellData, rowData, rowIndex, colIndex){ + let tempTableApi = this.api(); + + $(cell).on('click', function(e) { + // get current row data (important!) + // -> "rowData" param is not current state, values are "on createCell()" state + rowData = tempTableApi.row( $(cell).parents('tr')).data(); + let routeData = getRouteRequestDataFromRowData( rowData ); + + // overwrite some params + routeData.skipSearch = 0; + + let context = { + moduleElement: moduleElement, + dataTable: tempTableApi + }; + + let requestData = { + routeData: [routeData] + }; + + getRouteData(requestData, context, callbackAddRouteRows); + }); + } + },{ + targets: 8, + title: '', + orderable: false, + searchable: false, + width: 10, + class: ['text-center', config.dataTableActionCellClass].join(' '), + data: 'clear', + render: { + _: 'button' + }, + createdCell: function(cell, cellData, rowData, rowIndex, colIndex){ + let tempTableElement = this; + + let confirmationSettings = { + container: 'body', + placement: 'left', + btnCancelClass: 'btn btn-sm btn-default', + btnCancelLabel: 'cancel', + btnCancelIcon: 'fas fa-fw fa-ban', + title: 'delete route', + btnOkClass: 'btn btn-sm btn-danger', + btnOkLabel: 'delete', + btnOkIcon: 'fas fa-fw fa-times', + onConfirm : function(e, target){ + let deleteRowElement = $(cell).parents('tr'); + tempTableElement.api().rows(deleteRowElement).remove().draw(); + } + }; + + // init confirmation dialog + $(cell).confirmation(confirmationSettings); + } + } + ], + drawCallback: function(settings){ + + let animationRows = this.api().rows().nodes().to$().filter(function() { + return ( + $(this).data('animationStatus') || + $(this).data('animationTimer') + ); + }); + + for(let i = 0; i < animationRows.length; i++){ + let animationRow = $(animationRows[i]); + animationRow.pulseBackgroundColor(animationRow.data('animationStatus')); + animationRow.removeData('animationStatus'); + } + }, + initComplete: function(settings, json){ + // click on "fake connection" ------------------------------------------------------------------------- + $(this).on('click', '.pf-fake-connection', function(){ + let fakeConnectionElement = $(this); + let mapId = fakeConnectionElement.attr('data-mapId'); + let connectionId = fakeConnectionElement.attr('data-connectionId'); + let connection = $().getConnectionById(mapId, connectionId); + + if(connection){ + let map = connection._jsPlumb.instance; + MapUtil.showConnectionInfo(map, [connection]); + } + }); + }, + data: [] // will be added dynamic + }); + + // init tooltips for this module + let tooltipElements = moduleElement.find('[data-toggle="tooltip"]'); + tooltipElements.tooltip({ + container: 'body' + }); + + return moduleElement; + }; + + + /** + * init system popover (e.g. for setWaypoints) + * @param options + */ + $.fn.initSystemPopover = function(options){ + let elements = $(this); + let eventNamespace = 'hideSystemPopup'; + let systemToData = options.systemToData; + + requirejs(['text!templates/tooltip/system_popover.html', 'mustache'], function (template, Mustache) { + let data = { + systemToData: systemToData + }; + + let content = Mustache.render(template, data); + + elements.each(function() { + let element = $(this); + // destroy "popover" and remove "click" event for animation + element.popover('destroy').off(); + + // init popover and add specific class to it (for styling) + element.popover({ + html: true, + title: systemToData.name, + trigger: 'manual', + placement: 'top', + container: 'body', + content: content + }).data('bs.popover').tip().addClass('pf-popover'); + }); + + // set popup "close" observer + elements.initPopoverClose(eventNamespace); + + // set "open" trigger on "right click" + // -> this is not supported by the "trigger" param in .popover(); + // -> therefore we need to set it up manually + elements.on('contextmenu', function(e){ + e.preventDefault(); + $(this).popover('show'); + }); + + // set link observer "on shown" event + elements.on('shown.bs.popover', function () { + let popoverRoot = $(this); + + popoverRoot.data('bs.popover').tip().find('a').on('click', function(){ + // hint: "data" attributes should be in lower case! + let systemData = { + systemId: $(this).data('systemid'), + name: $(this).data('name') + }; + Util.setDestination(systemData, 'set_destination'); + + // close popover + popoverRoot.popover('hide'); + }); + }); + }); + }; + + /** + * get data from all Rally Point systems + * @param mapId + * @returns {Array} + */ + let getRallySystemsData = (mapId) => { + let systemsRallyData = []; + let map = MapUtil.getMapInstance(mapId); + if(map){ + let mapContainer = $(map.getContainer()); + let systems = mapContainer.find('.pf-system-info-rally'); + + for(let system of systems){ + system = $(system); + systemsRallyData.push({ + systemId: system.data('systemId'), + name: system.data('name'), + rally: 1 + }); + } + } + + return systemsRallyData; + }; + + /** + * update trigger function for this module + * @param moduleElement + * @param data + */ + let updateModule = (moduleElement, data) => { + let routesTableElement = moduleElement.find('.' + config.systemInfoRoutesTableClass); + let routesTable = routesTableElement.DataTable(); + + switch(data.task){ + case 'showFindRouteDialog': + let dialogData = { + moduleElement: moduleElement, + mapId: data.mapId, + systemFromData: moduleElement.data('systemFromData'), + systemToData: data.systemToData, + dataTable: routesTable + }; + + showFindRouteDialog(dialogData); + break; + case 'findRoute': + drawRouteTable(data.mapId, moduleElement, moduleElement.data('systemFromData'), routesTable, [data.systemToData]); + break; + } + }; + + /** + * init route module + * -> request route path fore "default" trade hub systems + * @param moduleElement + * @param mapId + * @param systemData + */ + let initModule = (moduleElement, mapId, systemData) => { + + let systemFromData = { + systemId: systemData.systemId, + name: systemData.name + }; + + let routesTableElement = moduleElement.find('.' + config.systemInfoRoutesTableClass); + let routesTable = routesTableElement.DataTable(); + + // init refresh routes -------------------------------------------------------------------- + moduleElement.find('.' + config.moduleHeadlineIconRefreshClass).on('click', function(e){ + updateRoutesTable(moduleElement, routesTable); + }); + + // init search routes dialog -------------------------------------------------------------- + moduleElement.find('.' + config.moduleHeadlineIconSearchClass).on('click', function(e){ + let maxRouteSearchLimit = this.Init.routeSearch.limit; + + if(routesTable.rows().count() >= maxRouteSearchLimit){ + // max routes limit reached -> show warning + Util.showNotify({title: 'Route limit reached', text: 'Search is limited by ' + maxRouteSearchLimit, type: 'warning'}); + }else{ + let dialogData = { + moduleElement: moduleElement, + mapId: mapId, + systemFromData: systemFromData, + dataTable: routesTable + }; + + showFindRouteDialog(dialogData); + } + }.bind({ + Init: Init + })); + + // init settings dialog ------------------------------------------------------------------- + moduleElement.find('.' + config.moduleHeadlineIconSettingsClass).on('click', function(e){ + let dialogData = { + mapId: mapId + }; + + showSettingsDialog(dialogData, moduleElement, systemFromData, routesTable); + }); + + // fill routesTable with data ------------------------------------------------------------- + let promiseStore = MapUtil.getLocaleData('map', mapId); + promiseStore.then(function(dataStore) { + // selected systems (if already stored) + let systemsTo = [{ + systemId: 30000142, + name: 'Jita' + }]; + + if( + dataStore && + dataStore.routes + ){ + systemsTo = dataStore.routes; + } + + // add "Rally Point" systems to table + let systemsToData = getRallySystemsData(mapId); + systemsToData.push(...systemsTo); + + drawRouteTable(mapId, moduleElement, systemFromData, routesTable, systemsToData); + }); + + }; + + return { + config: config, + getModule: getModule, + initModule: initModule, + updateModule: updateModule + }; + +}); \ No newline at end of file diff --git a/public/js/v1.4.1/app/ui/module/system_signature.js b/public/js/v1.4.1/app/ui/module/system_signature.js new file mode 100644 index 00000000..aae66ae9 --- /dev/null +++ b/public/js/v1.4.1/app/ui/module/system_signature.js @@ -0,0 +1,2512 @@ +/** + * System signature module + */ + +define([ + 'jquery', + 'app/init', + 'app/util', + 'mustache', + 'bootbox', + 'app/map/map', + 'app/map/util', + 'app/ui/form_element' +], ($, Init, Util, Mustache, bootbox, Map, MapUtil, FormElement) => { + 'use strict'; + + let config = { + // module info + modulePosition: 4, + moduleName: 'systemSignature', + moduleHeadClass: 'pf-module-head', // class for module header + moduleHandlerClass: 'pf-module-handler-drag', // class for "drag" handler + + moduleClass: 'pf-module', // class for each module + + // system signature module + moduleTypeClass: 'pf-system-signature-module', // module wrapper + + // headline toolbar + moduleHeadlineIconClass: 'pf-module-icon-button', // class for toolbar icons in the head + moduleHeadlineIconAddClass: 'pf-module-icon-button-add', // class for "add signature" icon + moduleHeadlineIconReaderClass: 'pf-module-icon-button-reader', // class for "signature reader" icon + moduleHeadlineIconLazyClass: 'pf-module-icon-button-lazy', // class for "lazy delete" toggle icon + + // tables + tableToolsActionClass: 'pf-table-tools-action', // class for table toolbar action + + // signature progress bar + signatureScannedProgressBarClass: 'pf-system-progress-scanned', // class for signature progress bar + + // table toolbar + sigTableClearButtonClass: 'pf-sig-table-clear-button', // class for "clear" signatures button + + // signature table + sigTableClass: 'pf-sig-table', // Table class for all Signature Tables + sigTablePrimaryClass: 'pf-sig-table-primary', // class for primary sig table + sigTableSecondaryClass: 'pf-sig-table-secondary', // class for secondary sig table + sigTableEditSigNameInput: 'pf-sig-table-edit-name-input', // class for editable fields (input) + sigTableEditSigGroupSelect: 'pf-sig-table-edit-group-select', // class for editable fields (sig group) + sigTableEditSigTypeSelect: 'pf-sig-table-edit-type-select', // class for editable fields (sig type) + sigTableEditSigConnectionSelect: 'pf-sig-table-edit-connection-select', // class for editable fields (sig connection) + sigTableEditSigDescriptionTextarea: 'pf-sig-table-edit-desc-text', // class for editable fields (sig description) + sigTableCreatedCellClass: 'pf-sig-table-created', // class for "created" cells + sigTableUpdatedCellClass: 'pf-sig-table-updated', // class for "updated" cells + + sigTableConnectionClass: 'pf-table-connection-cell', // class for "connection" cells + sigTableCounterClass: 'pf-table-counter-cell', // class for "counter" cells + sigTableActionCellClass: 'pf-table-action-cell', // class for "action" cells + + // xEditable + editableDescriptionInputClass: 'pf-editable-description', // class for "description" textarea + editableUnknownInputClass: 'pf-editable-unknown', // class for input fields (e.g. checkboxes) with "unknown" status + + signatureGroupsLabels: Util.getSignatureGroupInfo('label'), + signatureGroupsNames: Util.getSignatureGroupInfo('name') + }; + + // lock Signature Table update temporary (until. some requests/animations) are finished + let disableTableUpdate = true; + + // disable "copy&paste" from clipboard (until request finished) + let disableCopyFromClipboard = false; + + // cache for dataTable object6 + let dataTableInstances = {}; + + // empty signatureData object -> for "add row" table + let emptySignatureData = { + id: 0, + name: '', + groupId: 0, + typeId: 0, + description: '', + created: { + created: null + }, + updated: { + updated: null + } + }; + + let fullSignatureOptions = { + action: 'delete', + actionClass: ['fa-times', 'txt-color', 'txt-color-redDarker'].join(' ') + }; + + // empty signatureData row Options + let emptySignatureOptions = { + action: 'add', + actionClass: ['fa-plus'].join(' ') + }; + + let sigNameCache = {}; // cache signature names + + let validSignatureNames = [ // allowed signature type/names + 'Cosmic Anomaly', + 'Cosmic Signature', + 'Kosmische Anomalie', + 'Kosmische Signatur', + 'Anomalie cosmique', + 'Signature cosmique', + 'Космическая аномалия', // == "Cosmic Anomaly" + 'Источники сигналов' // == "Cosmic Signature" + ]; + + // some static signature data + let signatureGroupsLabels = Util.getSignatureGroupInfo('label'); + let signatureGroupsNames = Util.getSignatureGroupInfo('name'); + + /** + * get module toolbar element + * @returns {jQuery} + */ + let getHeadlineToolbar = () => { + let headlineToolbar = $('
', { + class: 'pull-right' + }).append( + $('', { + class: 'progress-label-right', + text: '0%' + }), + $('', { + class: ['fas', 'fa-fw', 'fa-plus', + config.moduleHeadlineIconClass, + config.moduleHeadlineIconAddClass].join(' '), + title: 'add' + }).attr('data-toggle', 'tooltip'), + $('', { + class: ['fas', 'fa-fw', 'fa-paste', + config.moduleHeadlineIconClass, + config.moduleHeadlineIconReaderClass].join(' '), + title: 'signature reader' + }).attr('data-toggle', 'tooltip'), + $('', { + class: ['fas', 'fa-fw', 'fa-exchange-alt', + config.moduleHeadlineIconClass, + config.moduleHeadlineIconLazyClass].join(' '), + title: 'lazy \'delete\' signatures' + }).attr('data-toggle', 'tooltip') + ); + + headlineToolbar.find('[data-toggle="tooltip"]').tooltip({ + container: 'body' + }); + + return headlineToolbar; + }; + + /** + * check whether a dataTable API instance exists in the global cache + * args: 1. mapId, 2. systemId, 3, tableType (primary/secondary) string + * @param args + * @returns {boolean} + */ + let checkDataTableInstance = (...args) => { + let obj = dataTableInstances; + for(let arg of args){ + if ( !obj || !obj.hasOwnProperty(arg) ){ + return false; + } + obj = obj[arg]; + } + return true; + }; + + /** + * stores a dataTableApi instance to global cache ( overwrites existing) + * @param mapId + * @param systemId + * @param tableType + * @param instance + */ + let setDataTableInstance = (mapId, systemId, tableType, instance) => { + let tmpObj = { + [mapId]: { + [systemId]: { + [tableType]: instance + } + } + }; + + $.extend(true, dataTableInstances, tmpObj); + }; + + /** + * get a dataTableApi instance from global cache + * @param mapId + * @param systemId + * @param tableType + * @returns {*} + */ + let getDataTableInstance = (mapId, systemId, tableType) => { + let instance = null; + if( checkDataTableInstance(mapId, systemId, tableType) ){ + instance = dataTableInstances[mapId][systemId][tableType]; + } + return instance; + }; + + /** + * get dataTable instance from "moduleElement" (DOM node) + * @param moduleElement + * @param tableType + * @returns {*} + */ + let getDataTableInstanceByModuleElement = (moduleElement, tableType) => { + return getDataTableInstance(moduleElement.data('mapId'), moduleElement.data('systemId'), tableType); + }; + + /** + * delete a dataTableApi instance from global cache + * -> see checkDataTableInstance() for parameter order + * @param args + */ + let deleteDataTableInstance = (...args) => { + // check if instance exists + if( checkDataTableInstance.apply(null, args) ){ + + // callback for "leaf" delete callback + let deleteCallback = (dataTableApi) => { + dataTableApi.destroy(); + }; + + // recursive delete from dataTableInstances Object cache + let deepDelete = (target, obj, callback) => { + if(target.length > 1){ + // remove first target param for next recursive call + let currentTarget = target.shift(); + + deepDelete(target, obj[currentTarget], callback); + + // delete "parent" key when current key became empty + if( !Object.keys( obj[currentTarget] ).length ){ + delete obj[currentTarget]; + } + }else{ + // check for callback function + if( typeof callback === 'function' ){ + callback(obj[target]); + } + + delete obj[target]; + } + }; + + deepDelete(args, dataTableInstances, deleteCallback); + } + }; + + /** + * collect all data of all editable fields in a signature table + * @param tableApi + * @returns {Array} + */ + let getTableData = tableApi => { + let tableData = []; + + if(tableApi){ + tableApi.rows().eq(0).each(function(idx){ + let row = tableApi.row(idx); + // default row data + let defaultRowData = row.data(); + let rowElement = row.nodes().to$(); + + if(defaultRowData.id > 0){ + // get all editable fields per row + let editableFields = rowElement.find('.editable'); + + if(editableFields.length > 0){ + let values = $(editableFields).editable('getValue'); + + if(values.name){ + // convert to lower for better compare options + values.name = values.name.toLowerCase(); + + // add pk for this row + values.id = defaultRowData.id; + + // add updated for this row + values.updated = defaultRowData.updated; + + // add row index + values.index = idx; + + tableData.push( values ); + } + } + } + }); + } + + return tableData; + }; + + /** + * updates a single cell with new data (e.g. "updated" cell) + * @param tableApi + * @param rowElement + * @param cellIndex + * @param data + */ + let updateSignatureCell = (tableApi, rowElement, cellIndex, data) => { + let rowIndex = tableApi.row(rowElement).index(); + let updateCell = tableApi.cell( rowIndex, cellIndex ); + let updateCellElement = updateCell.nodes().to$(); + + if(cellIndex === 7){ + // clear existing counter interval + clearInterval( updateCellElement.data('interval') ); + } + + // set new value + updateCell.data(data).draw(); + + if(cellIndex === 7){ + updateCellElement.initTimestampCounter(); + } + }; + + /** + * update trigger function for this module + * compare data and update module + * @param moduleElement + * @param systemData + */ + let updateModule = (moduleElement, systemData) => { + + if(systemData.signatures){ + updateSignatureTable(moduleElement, systemData.signatures, true); + } + + moduleElement.hideLoadingAnimation(); + }; + + /** + * Updates a signature table, changes all signatures where name matches + * add all new signatures as a row + * @param moduleElement + * @param signatureDataOrig + * @param deleteOutdatedSignatures -> set to "true" if signatures should be deleted that are not included in "signatureData" + */ + let updateSignatureTable = (moduleElement, signatureDataOrig, deleteOutdatedSignatures) => { + // check if table update is allowed + if(disableTableUpdate === true){ + return; + } + + // clone signature array because of further manipulation + let signatureData = $.extend([], signatureDataOrig); + + // disable update until function is ready; + lockSignatureTable(); + + // get signature table API + let signatureTableApi = getDataTableInstanceByModuleElement(moduleElement, 'primary'); + + // get current system data + let currentSystemData = Util.getCurrentSystemData(); + + let tableData = getTableData(signatureTableApi); + + let notificationCounter = { + added: 0, + changed: 0, + deleted: 0 + }; + + for(let i = 0; i < signatureData.length; i++){ + for(let j = 0; j < tableData.length; j++){ + if(signatureData[i].id === tableData[j].id){ + + // check if row was updated + if(signatureData[i].updated.updated > tableData[j].updated.updated){ + // row element to remove + let currentRowElement = signatureTableApi.row(tableData[j].index).nodes().to$(); + + // hide open editable fields on the row before removing them + currentRowElement.find('.editable').editable('destroy'); + + // remove "old" row + signatureTableApi.row(currentRowElement).remove().draw(); + + // and add "new" row + let changedRowElement = addSignatureRow(signatureTableApi, currentSystemData.systemData, signatureData[i], false); + + if(changedRowElement){ + // highlight + changedRowElement.pulseBackgroundColor('changed'); + notificationCounter.changed++; + } + } + + // remove signature data -> all left signatures will be added + signatureData.splice(i, 1); + i--; + + // remove signature data -> all left signatures will be deleted + tableData.splice(j, 1); + j--; + + break; + } + } + } + + // delete signatures ------------------------------------------------------------------------------------------ + if(deleteOutdatedSignatures === true){ + + // callback function after row deleted + let toggleTableRowCallback = function(tempRowElement){ + // hide open editable fields on the row before removing them + tempRowElement.find('.editable').editable('destroy'); + + // delete signature row + signatureTableApi.row(tempRowElement).remove().draw(); + }; + + for(let l = 0; l < tableData.length; l++){ + let rowElement = signatureTableApi.row(tableData[l].index).nodes().to$(); + rowElement.toggleTableRow(toggleTableRowCallback); + notificationCounter.deleted++; + } + } + + // add new signatures ----------------------------------------------------------------------------------------- + for(let k = 0; k < signatureData.length; k++){ + // and add "new" row + let newRowElement = addSignatureRow(signatureTableApi, currentSystemData.systemData, signatureData[k], false); + + if(newRowElement){ + // highlight + newRowElement.pulseBackgroundColor('added'); + notificationCounter.added++; + } + } + + // show notification ------------------------------------------------------------------------------------------ + if( + notificationCounter.added > 0 || + notificationCounter.changed > 0 || + notificationCounter.deleted > 0 + ){ + // update signature bar + moduleElement.updateScannedSignaturesBar({showNotice: true}); + + let notification = notificationCounter.added + ' added
'; + notification += notificationCounter.changed + ' updated
'; + notification += notificationCounter.deleted + ' deleted
'; + Util.showNotify({title: 'Signatures updated', text: notification, type: 'success'}); + + // wait until add/remove animations are finished before enable table for auto update again + unlockSignatureTable(false); + }else{ + // enable table for next update + unlockSignatureTable(true); + } + }; + + /** + * lock system signature table for + */ + let lockSignatureTable = () => { + disableTableUpdate = true; + }; + + /** + * unlock system signature table from been locked + * -> make table "update-able" again + * @param instant + */ + let unlockSignatureTable = instant =>{ + if(disableTableUpdate === true){ + if(instant === true){ + disableTableUpdate = false; + }else{ + // wait until add/remove animations are finished before enable table for auto update again + setTimeout(function(){ disableTableUpdate = false; }, 2000); + } + } + }; + + /** + * update Progressbar for all scanned signatures in a system + * @param options + */ + $.fn.updateScannedSignaturesBar = function(options){ + let moduleElement = $(this); + let signatureTableApi = getDataTableInstanceByModuleElement(moduleElement, 'primary'); + + // get progress bar + let progressBarWrapper = moduleElement.find('.' + config.signatureScannedProgressBarClass); + let progressBar = $(progressBarWrapper).find('.progress-bar'); + let progressBarLabel = moduleElement.find('.progress-label-right'); + + let tableData = getTableData(signatureTableApi); + + let sigCount = 0; + let percent = 0; + let sigIncompleteCount = 0; + let progressBarType = 'progress-bar-danger'; + + if(tableData){ + sigCount = tableData.length; + + // check for signatures without "groupId" -> these are un scanned signatures + + for(let i = 0; i < tableData.length; i++){ + let groupId = parseInt(tableData[i].groupId); + if(groupId === 0){ + sigIncompleteCount++; + } + } + + if(sigCount > 0){ + percent = 100 - Math.round( 100 / sigCount * sigIncompleteCount ); + } + + if(percent < 30){ + progressBarType = 'progress-bar-danger' ; + }else if(percent < 100){ + progressBarType = 'progress-bar-warning'; + }else{ + progressBarType = 'progress-bar-success'; + } + } + + setTimeout( + function() { + progressBarLabel.text(percent + '%'); + progressBar.removeClass().addClass('progress-bar').addClass(progressBarType); + progressBar.attr('aria-valuenow', percent); + progressBar.css({width: percent + '%'}); + + let notification = (sigCount - sigIncompleteCount) + ' / ' + sigCount + ' (' + percent + '%) signatures scanned'; + + // show notifications + if(options.showNotice !== false){ + if(percent < 100){ + Util.showNotify({title: 'Unscanned signatures', text: notification, type: 'info'}); + }else{ + Util.showNotify({title: 'System is scanned', text: notification, type: 'success'}); + } + } + }, 100); + }; + + /** + * open "signature reader" dialog for signature table + * @param systemData + */ + $.fn.showSignatureReaderDialog = function(systemData){ + let moduleElement = $(this); + + requirejs(['text!templates/dialog/signature_reader.html', 'mustache'], (template, Mustache) => { + let signatureReaderDialog = bootbox.dialog({ + title: 'Signature reader', + message: Mustache.render(template, {}), + buttons: { + close: { + label: 'cancel', + className: 'btn-default' + }, + success: { + label: ' update signatures', + className: 'btn-success', + callback: function () { + let form = this.find('form'); + let formData = form.getFormValues(); + let signatureOptions = { + deleteOld: (formData.deleteOld) ? 1 : 0 + }; + moduleElement.updateSignatureTableByClipboard(systemData, formData.clipboard, signatureOptions); + } + } + } + }); + + // dialog shown event + signatureReaderDialog.on('shown.bs.modal', function(e) { + signatureReaderDialog.initTooltips(); + + // set focus on sig-input textarea + signatureReaderDialog.find('textarea').focus(); + }); + }); + }; + + /** + * updates the signature table with all signatures pasted into the "signature reader" dialog + * -> Hint: copy&paste signature data (without any open dialog) will add signatures as well + * @param systemData + * @param clipboard data stream + * @param options + */ + $.fn.updateSignatureTableByClipboard = function(systemData, clipboard, options){ + let moduleElement = $(this); + + let saveSignatureData = function(signatureData){ + // lock update function until request is finished + lockSignatureTable(); + + // lock copy during request (prevent spamming (ctrl + c ) + disableCopyFromClipboard = true; + + let requestData = { + signatures: signatureData, + deleteOld: (options.deleteOld) ? 1 : 0, + systemId: parseInt(systemData.id) + }; + + $.ajax({ + type: 'POST', + url: Init.path.saveSignatureData, + data: requestData, + dataType: 'json', + context: { + moduleElement: moduleElement + } + }).done(function(responseData){ + // unlock table for update + unlockSignatureTable(true); + // updates table with new/updated signature information + updateSignatureTable(this.moduleElement, responseData.signatures, false); + }).fail(function( jqXHR, status, error) { + let reason = status + ' ' + error; + Util.showNotify({title: jqXHR.status + ': Update signatures', text: reason, type: 'warning'}); + $(document).setProgramStatus('problem'); + }).always(function() { + unlockSignatureTable(true); + disableCopyFromClipboard = false; + }); + }; + + // check if copy&paste is enabled + if( !disableCopyFromClipboard ){ + // parse input stream + let signatureData = parseSignatureString(systemData, clipboard); + if(signatureData.length > 0){ + // valid signature data parsed + + // check if signatures will be added to a system where character is currently in + // if user is not in any system -> id === undefined -> no "confirmation required + let currentLocationData = Util.getCurrentLocationData(); + if( + currentLocationData.id && + currentLocationData.id !== systemData.id + ){ + + let systemNameStr = (systemData.name === systemData.alias) ? '"' + systemData.name + '"' : '"' + systemData.alias + '" (' + systemData.name + ')'; + systemNameStr = '' + systemNameStr + ''; + + let msg = ''; + msg += 'Update signatures in ' + systemNameStr + ' ? This not your current location, "' + currentLocationData.name + '" !'; + bootbox.confirm(msg, function(result) { + if(result){ + saveSignatureData(signatureData); + } + }); + }else{ + // current system selected -> no "confirmation" required + saveSignatureData(signatureData); + } + } + } + }; + + /** + * parses a copy&paste string from ingame scanning window + * @param systemData + * @param clipboard + * @returns {Array} + */ + let parseSignatureString = (systemData, clipboard) => { + let signatureData = []; + + if(clipboard.length){ + let signatureRows = clipboard.split(/\r\n|\r|\n/g); + let signatureGroupOptions = config.signatureGroupsNames; + let invalidSignatures = 0; + + for(let i = 0; i < signatureRows.length; i++){ + let rowData = signatureRows[i].split(/\t/g); + if(rowData.length === 6){ + // check if sig Type = anomaly or combat site + if(validSignatureNames.indexOf( rowData[1] ) !== -1){ + + let sigGroup = $.trim(rowData[2]).toLowerCase(); + let sigDescription = $.trim(rowData[3]); + let sigGroupId = 0; + let typeId = 0; + + // get groupId by groupName + for (let prop in signatureGroupOptions) { + if(signatureGroupOptions.hasOwnProperty(prop)){ + let reg = new RegExp(signatureGroupOptions[prop], 'i'); + if (reg.test(sigGroup)) { + sigGroupId = parseInt( prop ); + break; + } + } + } + + // wormhole type cant be extracted from signature string -> skip function call + if(sigGroupId !== 5){ + // try to get "typeId" by description string + typeId = Util.getSignatureTypeIdByName( systemData, sigGroupId, sigDescription ); + + // set signature name as "description" if signature matching failed + sigDescription = (typeId === 0) ? sigDescription : ''; + }else{ + sigDescription = ''; + } + + // map array values to signature Object + let signatureObj = { + systemId: systemData.id, + name: $.trim( rowData[0] ).toLowerCase(), + groupId: sigGroupId, + typeId: typeId, + description: sigDescription + }; + + signatureData.push(signatureObj); + }else{ + invalidSignatures++; + } + } + } + + if(invalidSignatures > 0){ + let notification = invalidSignatures + ' / ' + signatureRows.length + ' signatures invalid'; + Util.showNotify({title: 'Invalid signature(s)', text: notification, type: 'warning'}); + } + } + + return signatureData; + }; + + /** + * format signature data array into dataTable structure + * @param systemData + * @param signatureData + * @param options + * @returns {Array} + */ + let formatSignatureData = (systemData, signatureData, options) => { + let formattedData = []; + + // security check + if( + systemData && + systemData.id && + systemData.id > 0 + ){ + let systemTypeId = systemData.type.id; + + // areaId is required as a key for signature names + // if areaId is 0, no signature data is available for this system + let areaId = Util.getAreaIdBySecurity(systemData.security); + + for(let i = 0; i < signatureData.length; i++){ + let data = signatureData[i]; + + let tempData = {}; + + // set id --------------------------------------------------------------------------------------------- + let sigId = 0; + if(data.id > 0){ + sigId = data.id; + } + tempData.id = sigId; + + // set status ----------------------------------------------------------------------------------------- + let statusClass = ''; + if(data.updated.character !== undefined){ + statusClass = Util.getStatusInfoForCharacter(data.updated.character, 'class'); + } + let status = ''; + + tempData.status = { + status: status, + status_sort: statusClass + }; + + // set name ------------------------------------------------------------------------------------------- + let sigName = ' 0){ + sigName += 'data-pk="' + data.id + '" '; + } + sigName += '>' + data.name + ''; + + tempData.name = { + render: sigName, + name: data.name + }; + + // set group id --------------------------------------------------------------------------------------- + let sigGroup = ' 0){ + sigGroup += 'data-pk="' + data.id + '" '; + } + sigGroup += 'data-systemTypeId="' + systemTypeId + '" '; + sigGroup += 'data-areaId="' + areaId + '" '; + sigGroup += 'data-value="' + data.groupId + '" '; + sigGroup += '>'; + + tempData.group = { + group: sigGroup, + sort: config.signatureGroupsLabels[data.groupId] || '', + filter: config.signatureGroupsLabels[data.groupId] ||'' + }; + + // set type id ---------------------------------------------------------------------------------------- + let sigType = ' 0){ + sigType += 'data-pk="' + data.id + '" '; + } + + // set disabled if sig type is not selected + if(data.groupId < 1){ + sigType += 'data-disabled="1" '; + } + + sigType += 'data-systemTypeId="' + systemTypeId + '" '; + sigType += 'data-areaId="' + areaId + '" '; + sigType += 'data-groupId="' + data.groupId + '" '; + sigType += 'data-value="' + data.typeId + '" '; + sigType += '>'; + + tempData.type = sigType; + + // set connection (to target system) ------------------------------------------------------------------ + let sigConnection = ' 0){ + sigConnection += 'data-pk="' + data.id + '" '; + } + + // set disabled if group is not wormhole + if(data.groupId !== 5){ + sigConnection += 'data-disabled="1" '; + } + + if(data.connection){ + sigConnection += 'data-value="' + data.connection.id + '" '; + } + sigConnection += '>'; + + tempData.connection = { + render: sigConnection, + connection: data.connection + }; + + // set description ------------------------------------------------------------------------------------ + let sigDescription = ' 0){ + sigDescription += 'data-pk="' + data.id + '" '; + } + sigDescription += '>' + data.description + ''; + + tempData.description = sigDescription; + + // set created ---------------------------------------------------------------------------------------- + tempData.created = data.created; + + // set updated ---------------------------------------------------------------------------------------- + tempData.updated = data.updated; + + // info icon ------------------------------------------------------------------------------------------ + let infoButton = ''; + if(data.id > 0){ + infoButton = ''; + } + tempData.info = infoButton; + + // action icon ---------------------------------------------------------------------------------------- + + let actionButton = ''; + tempData.action = { + action: options.action, + button: actionButton + }; + + formattedData.push(tempData); + + } + + } + + return formattedData; + }; + + /** + * get all rows of a table + * @param tableApi + * @returns {*} + */ + let getRows = tableApi => { + let rows = tableApi.rows(); + return rows; + }; + + /** + * get all selected rows of a table + * @param tableApi + * @returns {*} + */ + let getSelectedRows = tableApi => { + let selectedRows = tableApi.rows('.selected'); + return selectedRows; + }; + + /** + * check the "delete signature" button. show/hide the button if a signature is selected + * @param tableApi + */ + let checkDeleteSignaturesButton = tableApi => { + let selectedRows = getSelectedRows(tableApi); + let selectedRowCount = selectedRows.data().length; + let clearButton = tableApi.button('tableTools', 'delete:name').node(); + + if(selectedRowCount > 0){ + let allRows = getRows(tableApi); + let rowCount = allRows.data().length; + + let countText = selectedRowCount; + if(selectedRowCount >= rowCount){ + countText = 'all'; + } + clearButton.find('i+span').text(countText); + + // update clear signatures button text + clearButton.velocity('stop'); + + if( clearButton.is(':hidden') ){ + // show button + clearButton.velocity('transition.expandIn', { + duration: 100 + }); + }else{ + // highlight button + clearButton.velocity('callout.pulse', { + duration: 200 + }); + } + }else{ + // hide button + clearButton.velocity('transition.expandOut', { + duration: 100 + }); + } + }; + + /** + * draw signature table toolbar (add signature button, scan progress bar + * @param moduleElement + * @param mapId + * @param systemData + */ + let drawSignatureTableNew = (moduleElement, mapId, systemData) => { + // add toolbar action for table ------------------------------------------------------------------------------- + let tableToolbarAction = $('
', { + class: config.tableToolsActionClass + }); + + // create "empty table for new signature + let table = $('
', { + class: ['stripe', 'row-border', 'compact', 'nowrap', config.sigTableClass, config.sigTableSecondaryClass].join(' ') + }); + + tableToolbarAction.append(table); + + moduleElement.find('.' + config.moduleHeadClass).after(tableToolbarAction); + + let signatureData = formatSignatureData(systemData, [emptySignatureData], emptySignatureOptions); + let signatureTable = table.dataTable( { + data: signatureData, + paging: false, + info: false, + searching: false, + tabIndex: -1 + } ); + let signatureTableApi = signatureTable.api(); + + setDataTableInstance(mapId, systemData.id, 'secondary', signatureTableApi); + + table.makeEditable(signatureTableApi, systemData); + }; + + /** + * Update/set tooltip for an element + * @param element + * @param title + */ + let updateTooltip = (element, title) => { + $(element).attr('data-container', 'body').attr('title', title.toUpperCase()).tooltip('fixTitle') + .tooltip('setContent'); + }; + + /** + * helper function - jump to "next" editable field on save + * @param field + * @param selector + * @returns {*|jQuery|HTMLElement} + */ + let getNextEditableField = (field, selector) => { + let nextEditableField = null; + if(selector){ + // search specific sibling + nextEditableField = $(field).closest('td').nextAll(selector).find('.editable'); + }else{ + // get next sibling + nextEditableField = $(field).closest('td').next().find('.editable'); + } + + return $(nextEditableField); + }; + + /** + * helper function - get the next editable field in next table column + * @param fields + */ + let openNextEditDialogOnSave = fields => { + fields.on('save', function(e, params){ + let currentField = $(this); + let nextField = getNextEditableField(currentField); + nextField.editable('show'); + + setTimeout(() => { + // update scanning progressbar if sig "type" has changed AND + // the current field is in the "primary" table (not the "add" new sig row) + if( + $(e.target).hasClass(config.sigTableEditSigGroupSelect) && + $(e.target).parents('.' + config.sigTableClass).hasClass(config.sigTablePrimaryClass) + ){ + currentField.parents('.' + config.moduleClass).updateScannedSignaturesBar({showNotice: true}); + } + }, 200); + }); + }; + + /** + * make a table or row editable + * @param tableApi + * @param systemData + */ + $.fn.makeEditable = function(tableApi, systemData){ + // table element OR row element + let tableElement = $(this); + + // find editable fields + let sigNameFields = tableElement.find('.' + config.sigTableEditSigNameInput); + let sigGroupFields = tableElement.find('.' + config.sigTableEditSigGroupSelect); + let sigTypeFields = tableElement.find('.' + config.sigTableEditSigTypeSelect); + let sigDescriptionFields = tableElement.find('.' + config.sigTableEditSigDescriptionTextarea); + let sigConnectionFields = tableElement.find('.' + config.sigTableEditSigConnectionSelect); + + /** + * add map/system specific data for each editable field in the sig-table + * @param params + * @returns {*} + */ + let modifyFieldParamsOnSend = params => { + params.systemId = systemData.id; + return params; + }; + + // set global xEditable options for all table fields + $.extend($.fn.editable.defaults, { + url: Init.path.saveSignatureData, + dataType: 'json', + mode: 'popup', + container: 'body', + error: function(jqXHR, newValue){ + let reason = ''; + let status = ''; + if(jqXHR.name){ + // save error new sig (mass save) + reason = jqXHR.name; + status = 'Error'; + }else{ + reason = jqXHR.responseJSON.text; + status = jqXHR.status; + } + + Util.showNotify({title: status + ': save signature', text: reason, type: 'error'}); + $(document).setProgramStatus('problem'); + return reason; + } + }); + + + // Input sig name --------------------------------------------------------------------------------------------- + sigNameFields.editable({ + type: 'text', + title: 'signature id', + name: 'name', + emptytext: '? ? ?', + display: function(value) { + // change display value to first 3 letters + $(this).text($.trim( value.substr(0, 3) ).toLowerCase()); + }, + validate: function(value) { + if($.trim(value).length < 3) { + return 'Id is less than min of "3"'; + }else if($.trim(value).length > 10){ + return 'Id is more than max of "10"'; + } + }, + params: modifyFieldParamsOnSend, + success: function(response, newValue){ + if(response){ + let signatureNameField = $(this); + let columnElement = signatureNameField.parents('td'); + let rowElement = signatureNameField.parents('tr'); + let newRowData = response.signatures[0]; + + // update column tooltip + updateTooltip(columnElement, newValue); + + // update "updated" cell + updateSignatureCell(tableApi, rowElement, 7, newRowData.updated); + } + } + }); + + + // Select sig group (master) ---------------------------------------------------------------------------------- + sigGroupFields.editable({ + type: 'select', + title: 'group', + name: 'groupId', + emptytext: 'unknown', + onblur: 'submit', + showbuttons: false, + prepend: [{value: '0', text: ''}], + params: modifyFieldParamsOnSend, + source: function(){ + let signatureGroupField = $(this); + let systemTypeId = parseInt( signatureGroupField.attr('data-systemTypeId') ); + + // get all available Signature Types + let availableTypes = config.signatureGroupsLabels; + + return availableTypes; + }, + success: function(response, newValue){ + let signatureGroupField = $(this); + let rowElement = signatureGroupField.parents('tr'); + newValue = parseInt(newValue); + + if(response){ + let newRowData = response.signatures[0]; + + // update "updated" cell + updateSignatureCell(tableApi, rowElement, 7, newRowData.updated); + } + + // find related "type" select (same row) and change options + let signatureTypeField = getNextEditableField(signatureGroupField); + + let systemTypeId = parseInt( signatureGroupField.attr('data-systemTypeId') ); + let areaId = parseInt( signatureGroupField.attr('data-areaid') ); + + let newSelectOptions = getAllSignatureNames(systemData, systemTypeId, areaId, newValue); + signatureTypeField.editable('option', 'source', newSelectOptions); + + if( + newValue > 0 && + newSelectOptions.length > 0 + ){ + signatureTypeField.editable('enable'); + }else{ + signatureTypeField.editable('disable'); + } + + signatureTypeField.editable('setValue', null); + + // find "connection" select (same row) and change "enabled" flag + let signatureConnectionField = getNextEditableField(signatureGroupField, '.' + config.sigTableConnectionClass); + if(newValue === 5){ + // wormhole + signatureConnectionField.editable('enable'); + }else{ + checkConnectionConflicts(); + signatureConnectionField.editable('disable'); + } + + signatureConnectionField.editable('setValue', null); + } + }); + + + // Select sig type (slave: depends on sig type) --------------------------------------------------------------- + sigTypeFields.on('init', function(e, editable) { + // check if there are initial options available + let options = editable.input.options.source.bind(e.target)(); + if(options.length <= 0){ + editable.disable(); + } + }); + + sigTypeFields.editable({ + type: 'select', + title: 'type', + name: 'typeId', + emptytext: 'unknown', + onblur: 'submit', + showbuttons: false, + params: modifyFieldParamsOnSend, + display: function(value, sourceData){ + let selected = $.fn.editableutils.itemsByValue(value, sourceData); + if(selected.length && selected[0].text.length){ + $(this).html(FormElement.formatSignatureTypeSelectionData({text: selected[0].text})); + }else{ + $(this).empty(); + } + }, + source: function(){ + let signatureTypeField = $(this); + + let systemTypeId = parseInt( signatureTypeField.attr('data-systemTypeId') ); + let areaId = parseInt( signatureTypeField.attr('data-areaid') ); + let groupId = parseInt( signatureTypeField.attr('data-groupId') ); + let availableSigs = getAllSignatureNames(systemData, systemTypeId, areaId, groupId); + + return availableSigs; + }, + success: function(response, newValue){ + let signatureTypeField = $(this); + let rowElement = signatureTypeField.parents('tr'); + + if(response){ + let newRowData = response.signatures[0]; + // update "updated" cell + updateSignatureCell(tableApi, rowElement, 7, newRowData.updated); + }else{ + // "add new" signature -> set "+" focus for keyboard control + setTimeout(() => { + rowElement.find('.pf-table-action-cell')[0].focus(); + }, 50); + } + } + }); + + // Textarea sig description ----------------------------------------------------------------------------------- + sigDescriptionFields.editable({ + type: 'textarea', + title: 'description', + name: 'description', + emptytext: '', + onblur: 'submit', + mode: 'inline', + showbuttons: false, + inputclass: config.editableDescriptionInputClass, + params: modifyFieldParamsOnSend, + success: function(response, newValue){ + if(response){ + let signatureDescriptionField = $(this); + let rowElement = signatureDescriptionField.parents('tr'); + let newRowData = response.signatures[0]; + + // update "updated" cell + updateSignatureCell(tableApi, rowElement, 7, newRowData.updated); + } + } + }); + + // Select connection (target system) -------------------------------------------------------------------------- + let initCount = 0; + sigConnectionFields.on('init', function(e, editable) { + if(++initCount >= sigConnectionFields.length){ + checkConnectionConflicts(); + } + }); + + sigConnectionFields.editable({ + type: 'select', + title: 'system', + name: 'connectionId', + emptytext: 'unknown', + onblur: 'submit', + showbuttons: false, + prepend: [{value: '0', text: ''}], + params: modifyFieldParamsOnSend, + display: function(value, sourceData) { + let selected = $.fn.editableutils.itemsByValue(value, sourceData); + if(selected.length && selected[0].text.length){ + let errorIcon = ' '; + $(this).html(FormElement.formatSignatureConnectionSelectionData({text: selected[0].text})).prepend(errorIcon); + }else{ + $(this).empty() ; + } + }, + source: function(a,b){ + let activeMap = Util.getMapModule().getActiveMap(); + let mapId = activeMap.data('id'); + + let availableConnections = getSignatureConnectionOptions(mapId, systemData); + + return availableConnections; + }, + success: function(response, newValue){ + let signatureConnectionField = $(this); + let rowElement = signatureConnectionField.parents('tr'); + + if(response){ + let newRowData = response.signatures[0]; + + // update "updated" cell + updateSignatureCell(tableApi, rowElement, 7, newRowData.updated); + }else{ + // "add new" signature -> set "+" focus for keyboard control + setTimeout(() => { + rowElement.find('.pf-table-action-cell')[0].focus(); + }, 50); + } + } + }); + + sigGroupFields.on('shown', function(e, editable){ + let inputField = editable.input.$input; + inputField.addClass('pf-select2').initSignatureGroupSelect(); + }); + + sigTypeFields.on('shown', function(e, editable){ + // destroy possible open popovers (e.g. wormhole types) + $(this).destroyPopover(true); + + let inputField = editable.input.$input; + let hasOptGroups = inputField.has('optgroup').length > 0; + inputField.addClass('pf-select2').initSignatureTypeSelect({}, hasOptGroups); + }); + + sigConnectionFields.on('shown', function(e, editable){ + let inputField = editable.input.$input; + inputField.addClass('pf-select2').initSignatureConnectionSelect(); + }); + + sigDescriptionFields.on('shown', function(e, editable){ + // enlarge the tools-action container because the tables gets bigger + tableElement.parents('.' + config.tableToolsActionClass).css( 'height', '+=35px' ); + }); + + sigDescriptionFields.on('hidden', function(e, editable){ + // enlarge the tools-action container because the tables gets bigger + tableElement.parents('.' + config.tableToolsActionClass).css( 'height', '-=35px' ); + }); + + sigConnectionFields.on('save', function(e, editable){ + checkConnectionConflicts(); + }); + + $().add(sigNameFields).add(sigGroupFields).add(sigTypeFields) + .add(sigDescriptionFields).add(sigConnectionFields).on('hidden', function(e, editable) { + // re-focus element on close (keyboard navigation) + this.focus(); + }); + + // open next field dialog ------------------------------------------------------------------------------------- + openNextEditDialogOnSave(sigNameFields); + openNextEditDialogOnSave(sigGroupFields); + }; + + /** + * get all connection select options + * @param mapId + * @param systemData + * @returns {Array} + */ + let getSignatureConnectionOptions = (mapId, systemData) => { + let map = Map.getMapInstance( mapId ); + let systemId = MapUtil.getSystemId(mapId, systemData.id); + let systemConnections = MapUtil.searchConnectionsBySystems(map, [systemId], 'wh'); + let newSelectOptions = []; + let connectionOptions = []; + + for(let i = 0; i < systemConnections.length; i++){ + let connectionData = MapUtil.getDataByConnection(systemConnections[i]); + + // connectionId is required (must be stored) + if(connectionData.id){ + // check whether "source" or "target" system is relevant for this connection + // -> hint "source" === 'target' --> loop + if(systemData.id !== connectionData.target){ + let targetSystemData = MapUtil.getSystemData(mapId, connectionData.target); + if(targetSystemData){ + // take target... + connectionOptions.push({ + value: connectionData.id, + text: connectionData.targetAlias + ' - ' + targetSystemData.security + }); + } + }else if(systemData.id !== connectionData.source){ + let sourceSystemData = MapUtil.getSystemData(mapId, connectionData.source); + if(sourceSystemData){ + // take source... + connectionOptions.push({ + value: connectionData.id, + text: connectionData.sourceAlias + ' - ' + sourceSystemData.security + }); + } + } + } + } + + if(connectionOptions.length > 0){ + newSelectOptions.push({ text: 'System', children: connectionOptions}); + } + + return newSelectOptions; + }; + + /** + * check connectionIds for conflicts (multiple signatures -> same connection) + * -> show "conflict" icon next to select + */ + let checkConnectionConflicts = () => { + setTimeout(() => { + let connectionSelects = $('.' + config.sigTableConnectionClass + ' .editable'); + let connectionIds = []; + let duplicateConnectionIds = []; + let groupedSelects = []; + + connectionSelects.each(function(){ + let select = $(this); + let value = parseInt(select.editable('getValue', true) )|| 0; + + if( + connectionIds.indexOf(value) > -1 && + duplicateConnectionIds.indexOf(value) === -1 + ){ + // duplicate found + duplicateConnectionIds.push(value); + } + + if(groupedSelects[value] !== undefined){ + groupedSelects[value].push(select[0]); + }else{ + groupedSelects[value] = [select[0]]; + } + + connectionIds.push(value); + }); + + // update "conflict" icon next to select label for connectionIds + connectionSelects.each(function(){ + let select = $(this); + let value = parseInt(select.editable('getValue', true) )|| 0; + let conflictIcon = select.find('.fa-exclamation-triangle'); + if( + duplicateConnectionIds.indexOf(value) > -1 && + groupedSelects[value].indexOf(select[0]) > -1 + ){ + conflictIcon.removeClass('hide'); + }else{ + conflictIcon.addClass('hide'); + } + }); + }, 200); + }; + + /** + * get all signature types that can exist for a given system + * -> result is partially cached + * @param systemData + * @param systemTypeId + * @param areaId + * @param groupId + * @returns {Array} + */ + let getAllSignatureNames = (systemData, systemTypeId, areaId, groupId) => { + let newSelectOptions = []; + let cacheKey = [systemTypeId, areaId, groupId].join('_'); + let newSelectOptionsCount = 0; + + // check for cached signature names + if(sigNameCache.hasOwnProperty( cacheKey )){ + // cached signatures do not include static WHs! + // -> ".slice(0)" creates copy + newSelectOptions = sigNameCache[cacheKey].slice(0); + newSelectOptionsCount = getOptionsCount('children', newSelectOptions); + }else{ + // get new Options ---------- + // get all possible "static" signature names by the selected groupId + let tempSelectOptions = Util.getAllSignatureNames(systemTypeId, areaId, groupId); + + // format options into array with objects advantages: keep order, add more options (whs), use optgroup + if(tempSelectOptions){ + let fixSelectOptions = []; + for (let key in tempSelectOptions) { + if ( + key > 0 && + tempSelectOptions.hasOwnProperty(key) + ) { + newSelectOptionsCount++; + fixSelectOptions.push({value: parseInt(key), text: tempSelectOptions[key]}); + } + } + + if(newSelectOptionsCount > 0){ + if(groupId === 5){ + // "wormhole" selected => multiple available + newSelectOptions.push({ text: 'Wandering', children: fixSelectOptions}); + }else{ + newSelectOptions = fixSelectOptions; + } + } + } + + // wormhole (cached signatures) + if( groupId === 5 ){ + + // add possible frigate holes + let frigateHoles = getFrigateHolesBySystem(areaId); + let frigateWHData = []; + for(let frigKey in frigateHoles){ + if ( + frigKey > 0 && + frigateHoles.hasOwnProperty(frigKey) + ) { + newSelectOptionsCount++; + frigateWHData.push( {value: newSelectOptionsCount, text: frigateHoles[frigKey]} ); + } + } + + if(frigateWHData.length > 0){ + newSelectOptions.push({ text: 'Frigate', children: frigateWHData}); + } + + // add possible incoming holes + let incomingWHData = []; + for(let incomingKey in Init.incomingWormholes){ + if ( + incomingKey > 0 && + Init.incomingWormholes.hasOwnProperty(incomingKey) + ) { + newSelectOptionsCount++; + incomingWHData.push( {value: newSelectOptionsCount, text: Init.incomingWormholes[incomingKey]} ); + } + } + + if(incomingWHData.length > 0){ + newSelectOptions.push({ text: 'Incoming', children: incomingWHData}); + } + }else{ + // groups without "children" (optgroup) should be sorted by "value" + // this is completely optional and not necessary! + newSelectOptions = newSelectOptions.sortBy('text'); + } + + // update cache (clone array) -> further manipulation to this array, should not be cached + sigNameCache[cacheKey] = newSelectOptions.slice(0); + } + + // static wormholes (DO NOT CACHE) (not all C2 WHs have the same statics,... + if( groupId === 5 ){ + // add static WH(s) for this system + if(systemData.statics){ + let staticWHData = []; + for(let wormholeName of systemData.statics){ + let wormholeData = Object.assign({}, Init.wormholes[wormholeName]); + let staticWHName = wormholeData.name + ' - ' + wormholeData.security; + + newSelectOptionsCount++; + staticWHData.push( {value: newSelectOptionsCount, text: staticWHName} ); + } + + if(staticWHData.length > 0){ + newSelectOptions.unshift({ text: 'Static', children: staticWHData}); + } + } + } + + // if selectOptions available -> add "empty" option as well + if(newSelectOptionsCount > 0){ + newSelectOptions.unshift({ value: '0', text: ''}); + } + + return newSelectOptions; + }; + + /** + * get all signature types that can exist for a system (jQuery obj) + * @param systemElement + * @param groupId + * @returns {Array} + */ + let getAllSignatureNamesBySystem = (systemElement, groupId) => { + let systemTypeId = systemElement.data('typeId'); + let areaId = Util.getAreaIdBySecurity(systemElement.data('security')); + let systemData = {statics: systemElement.data('statics')}; + return getAllSignatureNames(systemData, systemTypeId, areaId, groupId); + }; + + /** + * sum up all options in nested (or not nested) object of objects + * -> e.g. + * { + * first: { + * count = [4, 2, 1] + * test = { ... } + * }, + * second: { + * count = [12, 13] + * test = { ... } + * } + * } + * -> getOptionsCount('count', obj) => 5; + * @param key + * @param obj + * @returns {number} + */ + let getOptionsCount = (key, obj) => { + let sum = 0; + for(let entry of obj){ + if(entry.hasOwnProperty(key)){ + sum += entry[key].length; + }else{ + sum++; + } + } + return sum; + }; + + /** + * get possible frig holes that could spawn in a system + * filtered by "systemTypeId" + * @param systemTypeId + * @returns {{}} + */ + let getFrigateHolesBySystem = systemTypeId => { + let signatureNames = {}; + + if(Init.frigateWormholes[systemTypeId]){ + signatureNames = Init.frigateWormholes[systemTypeId]; + } + + return signatureNames; + }; + + /** + * deletes signature rows from signature table + * @param tableApi + * @param rows + */ + let deleteSignatures = (tableApi, rows) => { + let deletedSignatures = 0; + + let moduleElement = $('.' + config.moduleTypeClass); + let data = rows.data(); + let rowElements = rows.nodes().to$(); + let signatureCount = data.length; + + let signatureIds = []; + for(let i = 0; i < data.length; i++){ + signatureIds.push(data[i].id); + } + + let requestData = { + signatureIds: signatureIds + }; + + // animation callback function + let removeCallback = function(rowElement){ + // delete signature row + tableApi.row(rowElement).remove().draw(); + + deletedSignatures++; + + if(deletedSignatures === signatureCount){ + // all animations finished + + // update signature bar + moduleElement.updateScannedSignaturesBar({showNotice: false}); + + // update connection conflicts + checkConnectionConflicts(); + + Util.showNotify({title: 'Signature deleted', text: signatureCount + ' deleted', type: 'success'}); + } + }; + + $.ajax({ + type: 'POST', + url: Init.path.deleteSignatureData, + data: requestData, + dataType: 'json' + }).done(function(data){ + + for(let j = 0; j < rowElements.length; j++){ + // removeRow + $(rowElements[j]).toggleTableRow(removeCallback); + } + + }).fail(function( jqXHR, status, error) { + let reason = status + ' ' + error; + Util.showNotify({title: jqXHR.status + ': Delete signature', text: reason, type: 'warning'}); + $(document).setProgramStatus('problem'); + }); + }; + + /** + * adds a new row to signature Table + * @param signatureTableApi + * @param systemData + * @param signatureData + * @param animate + * @returns {*} + */ + let addSignatureRow = (signatureTableApi, systemData, signatureData, animate) => { + let newRowElement = null; + if(signatureTableApi){ + let newSignatureData = formatSignatureData(systemData, [signatureData], fullSignatureOptions); + let newRowNode = signatureTableApi.row.add(newSignatureData.shift()).draw().nodes(); + newRowElement = newRowNode.to$(); + + if(animate === true){ + newRowElement.hide(); + newRowElement.toggleTableRow(newRowElement => { + // make new row editable + newRowElement.makeEditable(signatureTableApi, systemData); + + // update scan progress bar + newRowElement.parents('.' + config.moduleClass).updateScannedSignaturesBar({showNotice: true}); + }); + }else{ + newRowElement.makeEditable(signatureTableApi, systemData); + } + } + + return newRowElement; + }; + + /** + * show/hides a table tag + * @param callback + */ + $.fn.toggleTableRow = function(callback){ + let rowElement = $(this); + let cellElements = rowElement.children('td'); + let duration = 100; + + // wrap each
into a container (for better animation performance) + // slideUp new wrapper divs + if(rowElement.is(':visible')){ + // hide row + + // stop sig counter by adding a stopClass to each , remove padding + cellElements.addClass('stopCounter') + .velocity({ + paddingTop: 0, + paddingBottom: 0 + },{ + duration: duration + }).wrapInner('
') + .children() + .css({ + 'willChange': 'height' + }).velocity('slideUp', { + duration: duration, + complete: function(animationElements){ + // remove wrapper + $(animationElements).children().unwrap(); + + if(callback !== undefined){ + callback(rowElement); + } + } + }); + }else{ + // show row + + // remove padding on "hidden" cells for smother animation + cellElements.css({ + 'padding-top': 0, + 'padding-bottom': 0, + 'willChange': 'padding-top, padding-top, height' + }); + + // add hidden wrapper for ea + cellElements.wrapInner($('
').hide()); + + // show row for padding animation + rowElement.show(); + + cellElements.velocity({ + paddingTop: '4px', + paddingBottom: '4px' + },{ + duration: duration, + queue: false, + complete: function(){ + // animate
wrapper + cellElements.children() + .css({ + 'willChange': 'height' + }).velocity('slideDown', { + duration: duration, + complete: function(animationElements){ + // remove wrapper + for(let i = 0; i < animationElements.length; i++){ + let currentWrapper = $(animationElements[i]); + if(currentWrapper.children().length > 0){ + currentWrapper.children().unwrap(); + }else{ + currentWrapper.parent().html( currentWrapper.html() ); + } + } + + if(callback !== undefined){ + callback(rowElement); + } + } + }); + } + }); + } + }; + + + /** + * get unique column data from column object for select filter options + * @param column + * @returns {{}} + */ + /* currently not needed but could be helpful one day + let getColumnTableDataForFilter = column => { + // get all available options from column + let source = {}; + column.data().unique().sort((a,b) => { + // sort alphabetically + let valA = a.filter.toLowerCase(); + let valB = b.filter.toLowerCase(); + + if(valA < valB) return -1; + if(valA > valB) return 1; + return 0; + }).each(callData => { + if(callData.filter){ + source[callData.filter] = callData.filter; + } + }); + + // add empty option + source[0] = ''; + + return source; + };*/ + + let searchGroupColumn = (tableApi, newValue, sourceOptions) => { + let column = tableApi.column('group:name'); + let pattern = ''; + + if(newValue.length <= sourceOptions.length){ + // all options selected + "prepend" option + pattern = newValue.map(val => val !== '0' ? $.fn.dataTable.util.escapeRegex(val) : '^$').join('|'); + } + column.search(pattern, true, false).draw(); + }; + + /** + * init table filter button "group" column + * @param tableApi + */ + let initGroupFilterButton = tableApi => { + let characterId = Util.getCurrentCharacterId(); + + let promiseStore = MapUtil.getLocaleData('character', Util.getCurrentCharacterId()); + promiseStore.then(data => { + let filterButton = tableApi.button('tableTools', 'filterGroup:name').node(); + let prependOptions = [{value: '0', text: 'unknown'}]; + let sourceOptions = []; + let selectedValues = []; + + // format group filter options + let groups = Object.assign({}, config.signatureGroupsLabels); + for(let [value, label] of Object.entries(groups)){ + if(label.length){ + sourceOptions.push({value: label, text: label}); + } + } + + if(data && data.filterSignatureGroups && data.filterSignatureGroups.length){ + // select local stored values + selectedValues = data.filterSignatureGroups; + }else{ + // no default group filter options -> show all + selectedValues = sourceOptions.map(option => option.text); + selectedValues.unshift('0'); + } + + filterButton.editable({ + mode: 'popup', + type: 'checklist', + showbuttons: false, + onblur: 'submit', + highlight: false, + title: 'filter groups', + value: selectedValues, + prepend: prependOptions, + source: sourceOptions, + inputclass: config.editableUnknownInputClass, + display: function(value, sourceData){ + // update filter button label + let html = 'group'; + let allSelected = value.length >= (sourceOptions.length + prependOptions.length); + if( !allSelected ){ + html += ' (' + value.length + ')'; + } + $(this).toggleClass('active', !allSelected).html(html); + } + }); + + filterButton.on('save', {tableApi: tableApi, sourceOptions: sourceOptions}, function(e, params){ + // store values local -> IndexDB + MapUtil.storeLocaleCharacterData('filterSignatureGroups', params.newValue); + + searchGroupColumn(e.data.tableApi, params.newValue, e.data.sourceOptions); + }); + + // set initial search string -> even if table ist currently empty + searchGroupColumn(tableApi, selectedValues, sourceOptions); + }); + }; + + /** + * draw empty signature table + * @param moduleElement + * @param mapId + * @param systemData + */ + let drawSignatureTable = (moduleElement, mapId, systemData) => { + + let table = $('', { + class: ['display', 'compact', 'nowrap', config.sigTableClass, config.sigTablePrimaryClass].join(' ') + }); + + moduleElement.append(table); + + let dataTableOptions = { + tabIndex: -1, + dom: '<"row"<"col-xs-3"l><"col-xs-5"B><"col-xs-4"f>>' + + '<"row"<"col-xs-12"tr>>' + + '<"row"<"col-xs-5"i><"col-xs-7"p>>', + buttons: { + name: 'tableTools', + buttons: [ + { + name: 'filterGroup', + className: config.moduleHeadlineIconClass, + text: '' // set by js (xEditable) + }, + { + name: 'selectAll', + className: config.moduleHeadlineIconClass, + text: 'select all', + action: function(e, tableApi, node, conf){ + let allRows = getRows(tableApi); + let selectedRows = getSelectedRows(tableApi); + let allRowElements = allRows.nodes().to$(); + + if(allRows.data().length === selectedRows.data().length){ + allRowElements.removeClass('selected'); + }else{ + allRowElements.addClass('selected'); + } + + // check delete button + checkDeleteSignaturesButton(tableApi); + } + }, + { + name: 'delete', + className: [config.moduleHeadlineIconClass, config.sigTableClearButtonClass].join(' '), + text: 'delete (0)', + action: function(e, tableApi, node, conf){ + let selectedRows = getSelectedRows(tableApi); + bootbox.confirm('Delete ' + selectedRows.data().length + ' signature?', function(result){ + if(result){ + deleteSignatures(tableApi, selectedRows); + } + }); + } + } + ] + }, + initComplete: function (settings, json){ + let tableApi = this.api(); + initGroupFilterButton(tableApi); + } + }; + + // create signature table and store the jquery object global for this module + let signatureTable = table.dataTable(dataTableOptions); + let signatureTableApi = signatureTable.api(); + setDataTableInstance(mapId, systemData.id, 'primary', signatureTableApi); + }; + + /** + * setup dataTable options for all signatureTables + * @param systemData + */ + let initSignatureDataTable = systemData => { + + $.extend( true, $.fn.dataTable.defaults, { + pageLength: -1, + lengthMenu: [[5, 10, 25, 50, -1], [5, 10, 25, 50, 'All']], + order: [1, 'asc'], + autoWidth: false, + responsive: { + details: false + }, + language: { + emptyTable: 'No signatures added', + zeroRecords: 'No signatures found', + lengthMenu: 'Show _MENU_ signatures', + info: 'Showing _START_ to _END_ of _TOTAL_ signatures' + }, + columnDefs: [ + { + targets: 0, + name: 'status', + orderable: true, + searchable: false, + title: '', + width: 2, + class: ['text-center', 'min-tablet-l'].join(' '), + data: 'status', + type: 'html', + render: { + _: 'status', + sort: 'status_sort' + } + },{ + targets: 1, + name: 'id', + orderable: true, + searchable: true, + title: 'id', + type: 'html', + width: 15, + data: 'name', + render: { + _: 'render' + }, + createdCell: function(cell, cellData, rowData, rowIndex, colIndex){ + // update column tooltip + updateTooltip(cell, cellData.name); + } + },{ + targets: 2, + name: 'group', + orderable: true, + searchable: true, + title: 'group', + type: 'html', + width: 40, + data: 'group', + render: { + _: 'group', + sort: 'sort', + filter: 'filter' + } + },{ + targets: 3, + name: 'type', + orderable: false, + searchable: false, + title: 'type', + type: 'html', + width: 180, + data: 'type' + },{ + targets: 4, + name: 'description', + orderable: false, + searchable: false, + title: 'description', + type: 'html', + data: 'description' + },{ + targets: 5, + name: 'connection', + orderable: false, + searchable: false, + className: [config.sigTableConnectionClass].join(' '), + title: 'leads to', + type: 'html', + width: 70, + data: 'connection', + render: { + _: 'render' + } + },{ + targets: 6, + name: 'created', + title: 'created', + width: 90, + searchable: false, + className: ['text-right', config.sigTableCounterClass, config.sigTableCreatedCellClass, 'min-tablet-l'].join(' '), + data: 'created', + render: { + _: 'created', + sort: 'created' + }, + createdCell: function(cell, cellData, rowData, rowIndex, colIndex){ + $(cell).initTimestampCounter(); + } + },{ + targets: 7, + name: 'updated', + title: 'updated', + width: 90, + searchable: false, + className: ['text-right', config.sigTableCounterClass, config.sigTableUpdatedCellClass, 'min-tablet-l'].join(' '), + data: 'updated', + render: { + _: 'updated', + sort: 'updated' + }, + createdCell: function(cell, cellData, rowData, rowIndex, colIndex){ + $(cell).initTimestampCounter(); + + // highlight cell + let diff = Math.floor((new Date()).getTime()) - cellData.updated * 1000; + + // age > 1 day + if( diff > 86400000){ + $(cell).addClass('txt-color txt-color-warning'); + } + } + },{ + targets: 8, + name: 'info', + title: '', + orderable: false, + searchable: false, + width: 10, + class: ['text-center', Util.config.helpClass].join(' '), + data: 'info', + createdCell: function(cell, cellData, rowData, rowIndex, colIndex){ + if(rowData.id > 0){ + let tooltipData = { + created: rowData.created, + updated: rowData.updated + }; + + $(cell).addCharacterInfoTooltip( tooltipData ); + } + } + },{ + targets: 9, + name: 'action', + title: '', + orderable: false, + searchable: false, + width: 10, + class: ['text-center', config.sigTableActionCellClass].join(' '), + data: 'action', + render: { + _: 'button', + sort: 'action' + }, + createdCell: function(cell, cellData, rowData, rowIndex, colIndex){ + let tempTableElement = this; + let rowElement = $(cell).parents('tr'); + + $(cell).attr('tabindex', 0).on('keydown', function(e){ + e.stopPropagation(); + if(e.which === 13){ + $(this).trigger('click'); + } + }); + + switch(cellData.action){ + case 'add': + // add new signature ------------------------------------------------------------------ + $(cell).on('click', function(e) { + e.stopPropagation(); + e.preventDefault(); + + // submit all fields within a table row + let formFields = rowElement.find('.editable'); + + // get the current "primary table" for insert row on ajax callback + // -> important: in case of long response, target table might have changed... + let moduleElement = $(e.target).parents('.' + config.moduleClass); + let primaryTable = moduleElement.find('.' + config.sigTablePrimaryClass); + let secondaryTable = moduleElement.find('.' + config.sigTableSecondaryClass); + + // the "hide" makes sure to take care about open editable fields (e.g. description) + // otherwise, changes would not be submitted in this field (not necessary) + formFields.editable('hide'); + + // submit all xEditable fields + formFields.editable('submit', { + url: Init.path.saveSignatureData, + ajaxOptions: { + dataType: 'json', //assuming json response + beforeSend: function( xhr, settings ){ + lockSignatureTable(); + }, + context: { + primaryTable: primaryTable, + secondaryTable: secondaryTable + } + }, + data: { + systemId: systemData.id, // additional data to submit + pk: 0 // new data no primary key + }, + error: $.fn.editable.defaults.error, // user default xEditable error function + success: function (data, editableConfig) { + let context = editableConfig.ajaxOptions.context; + let primaryTableApi = context.primaryTable.DataTable(); + let secondaryTableApi = context.secondaryTable.DataTable(); + + unlockSignatureTable(false); + + let newRowElement = addSignatureRow(primaryTableApi, systemData, data.signatures[0], true); + + if(newRowElement){ + // highlight + newRowElement.pulseBackgroundColor('added'); + + // prepare "add signature" table for new entry -> reset ------------------- + let signatureData = formatSignatureData(systemData, [emptySignatureData], emptySignatureOptions); + let newAddRowElement = secondaryTableApi.clear().row.add(signatureData.shift()).draw().nodes(); + + newAddRowElement.to$().makeEditable(secondaryTableApi, systemData); + + Util.showNotify({ + title: 'Signature added', + text: 'Name: ' + data.name, + type: 'success' + }); + } + } + }); + }); + break; + case 'delete': + // delete signature ------------------------------------------------------------------- + let confirmationSettings = { + container: 'body', + placement: 'left', + btnCancelClass: 'btn btn-sm btn-default', + btnCancelLabel: 'cancel', + btnCancelIcon: 'fas fa-fw fa-ban', + title: 'delete signature', + btnOkClass: 'btn btn-sm btn-danger', + btnOkLabel: 'delete', + btnOkIcon: 'fas fa-fw fa-times', + onConfirm: function(e, target){ + // top scroll to top + e.preventDefault(); + + let tableApi = tempTableElement.DataTable(); + + let deleteRowElement = $(target).parents('tr'); + let row = tableApi.rows(deleteRowElement); + deleteSignatures(tableApi, row); + } + }; + + // init confirmation dialog + $(cell).confirmation(confirmationSettings); + + break; + } + + } + } + ] + }); + }; + + /** + * open xEditable input field in "new Signature" table + * @param moduleElement + */ + let focusNewSignatureEditableField = moduleElement => { + let secondaryTable = moduleElement.find('.' + config.sigTableSecondaryClass); + secondaryTable.find('.' + config.sigTableEditSigNameInput).editable('show'); + }; + + /** + * set module observer and look for relevant signature data to update + * @param moduleElement + * @param systemData + */ + let setModuleObserver = (moduleElement, systemData) => { + let primaryTable = moduleElement.find('.' + config.sigTablePrimaryClass); + let primaryTableApi = getDataTableInstanceByModuleElement(moduleElement, 'primary'); + + // add signature toggle --------------------------------------------------------------------------------------- + let toggleAddSignature = (show = 'auto') => { + let button = moduleElement.find('.' + config.moduleHeadlineIconAddClass); + let toolsElement = moduleElement.find('.' + config.tableToolsActionClass); + button.toggleClass('active', show === 'auto' ? undefined : show); + + if(toolsElement.is(':visible') && (!show || show === 'auto')){ + // hide container + toolsElement.velocity('stop').velocity({ + opacity: [0, 1], + height: [0, '70px'] + },{ + duration: 150, + display: 'none' + }); + }else if(!toolsElement.is(':visible') && (show || show === 'auto')){ + // show container + toolsElement.velocity('stop').velocity({ + opacity: [1, 0], + height: ['70px', 0] + },{ + duration: 150, + display: 'block', + complete: function(){ + focusNewSignatureEditableField(moduleElement); + } + }); + }else if(toolsElement.is(':visible') && show){ + // still visible -> no animation + focusNewSignatureEditableField(moduleElement); + } + }; + + moduleElement.find('.' + config.moduleHeadlineIconAddClass).on('click', function(e){ + toggleAddSignature('auto'); + }); + + moduleElement.on('pf:showSystemSignatureModuleAddNew', function(e){ + toggleAddSignature(true); + }); + + // signature reader dialog ------------------------------------------------------------------------------------ + moduleElement.find('.' + config.moduleHeadlineIconReaderClass).on('click', function(e) { + moduleElement.showSignatureReaderDialog(systemData); + }); + + // "lazy update" toggle --------------------------------------------------------------------------------------- + moduleElement.find('.' + config.moduleHeadlineIconLazyClass).on('click', function(e) { + let button = $(this); + button.toggleClass('active'); + }); + + // set multi row select --------------------------------------------------------------------------------------- + primaryTable.on('click', 'tr', {tableApi: primaryTableApi}, function(e){ + if(e.ctrlKey) { + $(this).toggleClass('selected'); + + // check delete button + checkDeleteSignaturesButton(e.data.tableApi); + } + }); + + // draw event for signature table ----------------------------------------------------------------------------- + primaryTableApi.on('draw.dt', function(e, settings){ + // check delete button + let tableApi = $(this).dataTable().api(); + checkDeleteSignaturesButton(tableApi); + }); + + // destroy dataTables event ----------------------------------------------------------------------------------- + primaryTable.on('destroy.dt', function(){ + $(this).destroyTimestampCounter(); + }); + primaryTableApi.on('destroy.dt', function(){ + $(this).destroyTimestampCounter(); + }); + + // event listener for global "paste" signatures into the page ------------------------------------------------- + moduleElement.on('pf:updateSystemSignatureModuleByClipboard', function(e, clipboard){ + // check "lazy update" toggle button + let signatureOptions = { + deleteOld: moduleElement.find('.' + config.moduleHeadlineIconLazyClass).hasClass('active') ? 1 : 0 + }; + + $(this).updateSignatureTableByClipboard(systemData, clipboard, signatureOptions); + }); + + // signature cell - "type" popover ---------------------------------------------------------------------------- + moduleElement.find('.' + config.sigTableClass).hoverIntent({ + over: function(e){ + let staticWormholeElement = $(this); + let wormholeName = staticWormholeElement.attr('data-name'); + let wormholeData = Util.getObjVal(Init, 'wormholes.' + wormholeName); + if(wormholeData){ + staticWormholeElement.addWormholeInfoTooltip(wormholeData, { + trigger: 'manual', + placement: 'top', + show: true + }); + } + }, + out: function(e){ + $(this).destroyPopover(); + }, + selector: '.editable-click:not(.editable-open) span[class^="pf-system-sec-"]' + }); + }; + + /** + * init callback + * @param moduleElement + * @param mapId + * @param systemData + */ + let initModule = (moduleElement, mapId, systemData) => { + unlockSignatureTable(true); + }; + + /** + * get module element + * @param parentElement + * @param mapId + * @param systemData + * @returns {*|jQuery|HTMLElement} + */ + let getModule = function(parentElement, mapId, systemData){ + let moduleElement = $('
').append( + $('
', { + class: config.moduleHeadClass + }).append( + $('
', { + class: config.moduleHandlerClass + }), + $('
', { + text: 'Signatures' + }), + getHeadlineToolbar() + ) + ); + + // scanned signatures progress bar ---------------------------------------------------------------------------- + requirejs(['text!templates/form/progress.html', 'mustache'], (template, Mustache) => { + let data = { + label: true, + wrapperClass: config.signatureScannedProgressBarClass, + class: ['progress-bar-success'].join(' '), + percent: 0 + }; + + let content = Mustache.render(template, data); + + moduleElement.find('.' + config.moduleHeadClass).append(content); + }); + + + + moduleElement.data('mapId', mapId); + moduleElement.data('systemId', systemData.id); + + moduleElement.showLoadingAnimation(); + + // init dataTables + initSignatureDataTable(systemData); + + // draw "new signature" add table + drawSignatureTableNew(moduleElement, mapId, systemData); + + // draw signature table + drawSignatureTable(moduleElement, mapId, systemData); + + // set module observer + setModuleObserver(moduleElement, systemData); + + return moduleElement; + }; + + /** + * before module hide callback + */ + let beforeHide = () => { + // disable update + lockSignatureTable(); + }; + + /** + * before module destroy callback + */ + let beforeDestroy = (moduleElement) => { + // Destroying the data tables throws + // -> safety remove all dataTables + let mapId = moduleElement.data('mapId'); + let systemId = moduleElement.data('systemId'); + deleteDataTableInstance(mapId, systemId, 'primary'); + deleteDataTableInstance(mapId, systemId, 'secondary'); + }; + + return { + config: config, + getModule: getModule, + initModule: initModule, + updateModule: updateModule, + beforeHide: beforeHide, + beforeDestroy: beforeDestroy, + getAllSignatureNamesBySystem: getAllSignatureNamesBySystem + }; + +}); diff --git a/public/js/v1.4.1/app/ui/module/system_signature_new.js b/public/js/v1.4.1/app/ui/module/system_signature_new.js new file mode 100644 index 00000000..ef192dd4 --- /dev/null +++ b/public/js/v1.4.1/app/ui/module/system_signature_new.js @@ -0,0 +1,2461 @@ +/** + * System signature module + */ + +define([ + 'jquery', + 'app/init', + 'app/util', + 'bootbox', + 'app/counter', + 'app/map/map', + 'app/map/util', + 'app/ui/form_element' +], ($, Init, Util, bootbox, Counter, Map, MapUtil, FormElement) => { + 'use strict'; + + let config = { + // module info + modulePosition: 4, + moduleName: 'systemSignature', + moduleHeadClass: 'pf-module-head', // class for module header + moduleHandlerClass: 'pf-module-handler-drag', // class for "drag" handler + + // system signature module + moduleTypeClass: 'pf-system-signature-module', // class for this module + + // headline toolbar + moduleHeadlineIconClass: 'pf-module-icon-button', // class for toolbar icons in the head + moduleHeadlineIconAddClass: 'pf-module-icon-button-add', // class for "add signature" icon + moduleHeadlineIconReaderClass: 'pf-module-icon-button-reader', // class for "signature reader" icon + moduleHeadlineIconLazyClass: 'pf-module-icon-button-lazy', // class for "lazy delete" toggle icon + moduleHeadlineProgressBarClass: 'pf-system-progress-scanned', // class for signature progress bar + + // tables + tableToolsActionClass: 'pf-table-tools-action', // class for "new signature" table (hidden) + + // table toolbar + sigTableClearButtonClass: 'pf-sig-table-clear-button', // class for "clear" signatures button + + // signature table + sigTableId: 'pf-sig-table-', // Table id prefix + sigTableClass: 'pf-sig-table', // Table class for all Signature Tables + sigTablePrimaryClass: 'pf-sig-table-primary', // class for primary sig table + sigTableSecondaryClass: 'pf-sig-table-secondary', // class for secondary sig table + sigTableRowIdPrefix: 'pf-sig-row_', // id prefix for table rows + + sigTableEditSigNameInput: 'pf-sig-table-edit-name-input', // class for editable fields (sig name) + + tableCellConnectionClass: 'pf-table-connection-cell', // class for "connection" cells + tableCellFocusClass: 'pf-table-focus-cell', // class for "tab-able" cells. enable focus() + tableCellCounterClass: 'pf-table-counter-cell', // class for "counter" cells + tableCellActionClass: 'pf-table-action-cell', // class for "action" cells + + // xEditable + editableNameInputClass: 'pf-editable-name', // class for "name" input + editableDescriptionInputClass: 'pf-editable-description', // class for "description" textarea + editableUnknownInputClass: 'pf-editable-unknown', // class for input fields (e.g. checkboxes) with "unknown" status + + signatureGroupsLabels: Util.getSignatureGroupOptions('label'), + signatureGroupsNames: Util.getSignatureGroupOptions('name') + }; + + let lockedTables = {}; // locked tables (e.g. disable cops&paste, disable table update) + + let sigNameCache = {}; // cache signature names + + let validSignatureNames = [ // allowed signature type/names + 'Cosmic Anomaly', + 'Cosmic Signature', + 'Kosmische Anomalie', + 'Kosmische Signatur', + 'Anomalie cosmique', + 'Signature cosmique', + 'Космическая аномалия', // == "Cosmic Anomaly" + 'Источники сигналов' // == "Cosmic Signature" + ]; + + let emptySignatureData = { + id: 0, + name: '', + groupId: 0, + typeId: 0 + }; + + let editableDefaults = { // xEditable default options for signature fields + url: Init.path.saveSignatureData, + dataType: 'json', + container: 'body', + highlight: false, // i use a custom implementation. xEditable uses inline styles for bg color animation -> does not work properly on datatables "sort" cols + error: function(jqXHR, newValue){ + let reason = ''; + let status = 'Error'; + if(jqXHR.statusText){ + reason = jqXHR.statusText; + }else if(jqXHR.name){ + // validation error new sig (new row data save function) + reason = jqXHR.name; + // re-open "name" fields (its a collection of fields but we need "id" field) + jqXHR.name.field.$element.editable('show'); + }else{ + reason = jqXHR.responseJSON.text; + status = jqXHR.status; + } + + Util.showNotify({title: status + ': save signature', text: reason, type: 'error'}); + $(document).setProgramStatus('problem'); + return reason; + } + }; + + /** + * get custom "metaData" from dataTables API + * @param tableApi + * @returns {*} + */ + let getTableMetaData = tableApi => { + let data = null; + if(tableApi){ + data = tableApi.init().pfMeta; + } + return data; + }; + + /** + * lock signature tableApi and lockType + * @param tableApi + * @param lockType + */ + let lockTable = (tableApi, lockType = 'update') => { + let metaData = getTableMetaData(tableApi); + if(metaData.systemId){ + if( !lockedTables.hasOwnProperty(metaData.systemId) ){ + lockedTables[metaData.systemId] = {}; + } + lockedTables[metaData.systemId][lockType] = true; + }else{ + console.warn('metaData.systemId required in lockTable()', metaData.systemId); + } + }; + + /** + * check whether a signature tableApi is locked by lockType + * @param tableApi + * @param lockType + * @returns {boolean} + */ + let isLockedTable = (tableApi, lockType = 'update') => { + let locked = false; + if(tableApi){ + let metaData = getTableMetaData(tableApi); + if(metaData.systemId){ + if( + lockedTables.hasOwnProperty(metaData.systemId) && + lockedTables[metaData.systemId].hasOwnProperty(lockType) + ){ + locked = true; + } + }else{ + console.warn('metaData.systemId required in isLockedTable()', metaData.systemId); + } + } + + return locked; + }; + + /** + * unlock signature tableApi and lockType + * @param tableApi + * @param lockType + */ + let unlockTable = (tableApi, lockType = 'update') => { + if(tableApi){ + let metaData = getTableMetaData(tableApi); + if(isLockedTable(tableApi, lockType)){ + delete lockedTables[metaData.systemId][lockType]; + } + if( + lockedTables.hasOwnProperty(metaData.systemId) && + !Object.getOwnPropertyNames(lockedTables[metaData.systemId]).length + ){ + delete lockedTables[metaData.systemId]; + } + } + }; + + /** + * get dataTable id + * @param mapId + * @param systemId + * @param tableType + * @returns {string} + */ + let getTableId = (mapId, systemId, tableType) => config.sigTableId + [mapId, systemId, tableType].join('-'); + + /** + * get a dataTableApi instance from global cache + * @param mapId + * @param systemId + * @param tableType + * @returns {*} + */ + let getDataTableInstance = (mapId, systemId, tableType) => { + let instance = null; + let table = $.fn.dataTable.tables({ visible: false, api: true }).table('#' + getTableId(mapId, systemId, tableType)); + if(table.node()){ + instance = table; + } + return instance; + }; + + /** + * Update/set tooltip for an element + * @param element + * @param title + */ + let updateTooltip = (element, title) => { + $(element).attr('data-container', 'body') + .attr('title', title.toUpperCase()) + .tooltip('fixTitle').tooltip('setContent'); + }; + + /** + * sum up all options in nested (or not nested) object of objects + * -> e.g. + * { + * first: { + * count = [4, 2, 1] + * test = { ... } + * }, + * second: { + * count = [12, 13] + * test = { ... } + * } + * } + * -> getOptionsCount('count', obj) => 5; + * @param key + * @param obj + * @returns {number} + */ + let getOptionsCount = (key, obj) => { + let sum = 0; + for(let entry of obj){ + if(entry.hasOwnProperty(key)){ + sum += entry[key].length; + }else{ + sum++; + } + } + return sum; + }; + + /** + * get possible frig holes that could spawn in a system + * filtered by "systemTypeId" + * @param systemTypeId + * @returns {{}} + */ + let getFrigateHolesBySystem = systemTypeId => { + let signatureNames = {}; + if(Init.frigateWormholes[systemTypeId]){ + signatureNames = Init.frigateWormholes[systemTypeId]; + } + return signatureNames; + }; + + /** + * get all signature types that can exist for a given system + * -> result is partially cached + * @param systemData + * @param systemTypeId + * @param areaId + * @param groupId + * @returns {Array} + */ + let getAllSignatureNames = (systemData, systemTypeId, areaId, groupId) => { + systemTypeId = parseInt(systemTypeId || 0); + areaId = parseInt(areaId || 0); + groupId = parseInt(groupId || 0); + let newSelectOptions = []; + let newSelectOptionsCount = 0; + + if(!systemTypeId || !areaId || !groupId){ + return newSelectOptions; + } + + let cacheKey = [systemTypeId, areaId, groupId].join('_'); + + // check for cached signature names + if(sigNameCache.hasOwnProperty( cacheKey )){ + // cached signatures do not include static WHs! + // -> ".slice(0)" creates copy + newSelectOptions = sigNameCache[cacheKey].slice(0); + newSelectOptionsCount = getOptionsCount('children', newSelectOptions); + }else{ + // get new Options ---------- + // get all possible "static" signature names by the selected groupId + let tempSelectOptions = Util.getAllSignatureNames(systemTypeId, areaId, groupId); + + // format options into array with objects advantages: keep order, add more options (whs), use optgroup + if(tempSelectOptions){ + let fixSelectOptions = []; + for(let key in tempSelectOptions){ + if ( + key > 0 && + tempSelectOptions.hasOwnProperty(key) + ){ + newSelectOptionsCount++; + fixSelectOptions.push({value: newSelectOptionsCount, text: tempSelectOptions[key]}); + } + } + + if(newSelectOptionsCount > 0){ + if(groupId === 5){ + // "wormhole" selected => multiple available + newSelectOptions.push({ text: 'Wandering', children: fixSelectOptions}); + }else{ + newSelectOptions = fixSelectOptions; + } + } + } + + // wormhole (cached signatures) + if( groupId === 5 ){ + + // add possible frigate holes + let frigateHoles = getFrigateHolesBySystem(areaId); + let frigateWHData = []; + for(let frigKey in frigateHoles){ + if ( + frigKey > 0 && + frigateHoles.hasOwnProperty(frigKey) + ){ + newSelectOptionsCount++; + frigateWHData.push( {value: newSelectOptionsCount, text: frigateHoles[frigKey]} ); + } + } + + if(frigateWHData.length > 0){ + newSelectOptions.push({ text: 'Frigate', children: frigateWHData}); + } + + // add possible incoming holes + let incomingWHData = []; + for(let incomingKey in Init.incomingWormholes){ + if ( + incomingKey > 0 && + Init.incomingWormholes.hasOwnProperty(incomingKey) + ){ + newSelectOptionsCount++; + incomingWHData.push( {value: newSelectOptionsCount, text: Init.incomingWormholes[incomingKey]} ); + } + } + + if(incomingWHData.length > 0){ + newSelectOptions.push({ text: 'Incoming', children: incomingWHData}); + } + }else{ + // groups without "children" (optgroup) should be sorted by "value" + // this is completely optional and not necessary! + newSelectOptions = newSelectOptions.sortBy('text'); + } + + // update cache (clone array) -> further manipulation to this array, should not be cached + sigNameCache[cacheKey] = newSelectOptions.slice(0); + } + + // static wormholes (DO NOT CACHE) (not all C2 WHs have the same statics,... + if( groupId === 5 ){ + // add static WH(s) for this system + if(systemData.statics){ + let staticWHData = []; + for(let wormholeName of systemData.statics){ + let wormholeData = Object.assign({}, Init.wormholes[wormholeName]); + let staticWHName = wormholeData.name + ' - ' + wormholeData.security; + + newSelectOptionsCount++; + staticWHData.push( {value: newSelectOptionsCount, text: staticWHName} ); + } + + if(staticWHData.length > 0){ + newSelectOptions.unshift({ text: 'Static', children: staticWHData}); + } + } + } + + return newSelectOptions; + }; + + /** + * get all signature types that can exist for a system (jQuery obj) + * @param systemElement + * @param groupId + * @returns {Array} + */ + let getAllSignatureNamesBySystem = (systemElement, groupId) => { + let systemTypeId = systemElement.data('typeId'); + let areaId = Util.getAreaIdBySecurity(systemElement.data('security')); + let systemData = {statics: systemElement.data('statics')}; + return getAllSignatureNames(systemData, systemTypeId, areaId, groupId); + }; + + /** + * get all connection select options + * @param mapId + * @param systemData + * @returns {Array} + */ + let getSignatureConnectionOptions = (mapId, systemData) => { + let map = Map.getMapInstance( mapId ); + let systemId = MapUtil.getSystemId(mapId, systemData.id); + let systemConnections = MapUtil.searchConnectionsBySystems(map, [systemId], 'wh'); + let newSelectOptions = []; + let connectionOptions = []; + + for(let systemConnection of systemConnections){ + let connectionData = MapUtil.getDataByConnection(systemConnection); + + // connectionId is required (must be stored) + if(connectionData.id){ + // check whether "source" or "target" system is relevant for this connection + // -> hint "source" === 'target' --> loop + if(systemData.id !== connectionData.target){ + let targetSystemData = MapUtil.getSystemData(mapId, connectionData.target); + if(targetSystemData){ + // take target... + connectionOptions.push({ + value: connectionData.id, + text: connectionData.targetAlias + ' - ' + targetSystemData.security + }); + } + }else if(systemData.id !== connectionData.source){ + let sourceSystemData = MapUtil.getSystemData(mapId, connectionData.source); + if(sourceSystemData){ + // take source... + connectionOptions.push({ + value: connectionData.id, + text: connectionData.sourceAlias + ' - ' + sourceSystemData.security + }); + } + } + } + } + + if(connectionOptions.length > 0){ + newSelectOptions.push({ text: 'System', children: connectionOptions}); + } + + return newSelectOptions; + }; + + /** + * show/hides a table
rowElement + * @param rowElement + */ + let toggleTableRow = rowElement => { + + let toggleTableRowExecutor = (resolve, reject) => { + let cellElements = rowElement.children('td'); + let duration = 350; + // wrap each +
into a container (for better animation performance) + // slideUp new wrapper divs + if(rowElement.is(':visible')){ + // hide row + + // stop sig counter by adding a stopClass to each , remove padding + cellElements.addClass('stopCounter') + .velocity({ + paddingTop: [0, '4px'], + paddingBottom: [0, '4px'], + opacity: [0, 1] + },{ + duration: duration, + easing: 'linear' + }).wrapInner('
') + .children() + .css({ + 'willChange': 'height' + }).velocity('slideUp', { + duration: duration, + easing: 'linear', + complete: function(animationElements){ + // remove wrapper + $(animationElements).children().unwrap(); + + resolve({ + action: 'rowHidden', + row: rowElement + }); + } + }); + }else{ + // show row + + // remove padding on "hidden" cells for smother animation + cellElements.css({ + 'padding-top': 0, + 'padding-bottom': 0, + 'willChange': 'padding-top, padding-top, height' + }); + + // add hidden wrapper for ea + cellElements.wrapInner($('
').hide()); + + // show row for padding animation + rowElement.show(); + + cellElements.velocity({ + paddingTop: ['4px', 0], + paddingBottom: ['4px', 0] + },{ + duration: duration, + queue: false, + complete: function(){ + // animate
wrapper + cellElements.children() + .css({ + 'willChange': 'height' + }).velocity('slideDown', { + duration: duration, + complete: function(animationElements){ + // remove wrapper + for(let i = 0; i < animationElements.length; i++){ + let currentWrapper = $(animationElements[i]); + if(currentWrapper.children().length > 0){ + currentWrapper.children().unwrap(); + }else{ + currentWrapper.parent().html( currentWrapper.html() ); + } + } + + resolve({ + action: 'rowShown', + row: rowElement + }); + } + }); + } + }); + } + }; + + return new Promise(toggleTableRowExecutor); + }; + + /** + * update scanned signatures progress bar + * @param tableApi + * @param options + */ + let updateScannedSignaturesBar = (tableApi, options) => { + let tableElement = tableApi.table().node(); + let moduleElement = $(tableElement).parents('.' + config.moduleTypeClass); + let progressBar = moduleElement.find('.progress-bar'); + let progressBarLabel = moduleElement.find('.progress-label-right'); + + let percent = 0; + let progressBarType = ''; + let columnGroupData = tableApi.column('group:name').data(); + let sigCount = columnGroupData.length; + let sigIncompleteCount = columnGroupData.filter((value, index) => !value).length; + + if(sigCount){ + percent = 100 - Math.round( 100 / sigCount * sigIncompleteCount ); + } + + if(percent < 30){ + progressBarType = 'progress-bar-danger' ; + }else if(percent < 100){ + progressBarType = 'progress-bar-warning'; + }else{ + progressBarType = 'progress-bar-success'; + } + + progressBarLabel.text(percent + '%'); + progressBar.removeClass().addClass('progress-bar').addClass(progressBarType); + progressBar.attr('aria-valuenow', percent); + progressBar.css({width: percent + '%'}); + + // show notifications + if(options.showNotice !== false){ + let notification = (sigCount - sigIncompleteCount) + ' / ' + sigCount + ' (' + percent + '%) signatures scanned'; + + if(percent < 100){ + Util.showNotify({title: 'Unscanned signatures', text: notification, type: 'info'}); + }else{ + Util.showNotify({title: 'System is scanned', text: notification, type: 'success'}); + } + } + }; + + /** + * open "signature reader" dialog for signature table + * @param systemData + */ + $.fn.showSignatureReaderDialog = function(systemData){ + let moduleElement = $(this); + + requirejs(['text!templates/dialog/signature_reader.html', 'mustache'], (template, Mustache) => { + let signatureReaderDialog = bootbox.dialog({ + title: 'Signature reader', + message: Mustache.render(template, {}), + buttons: { + close: { + label: 'cancel', + className: 'btn-default' + }, + success: { + label: ' update signatures', + className: 'btn-success', + callback: function (){ + let form = this.find('form'); + let formData = form.getFormValues(); + let signatureOptions = { + deleteOld: (formData.deleteOld) ? 1 : 0 + }; + updateSignatureTableByClipboard(moduleElement, systemData, formData.clipboard, signatureOptions); + } + } + } + }); + + // dialog shown event + signatureReaderDialog.on('shown.bs.modal', function(e){ + signatureReaderDialog.initTooltips(); + + // set focus on sig-input textarea + signatureReaderDialog.find('textarea').focus(); + }); + }); + }; + + /** + * parses a copy&paste string from ingame scanning window + * @param systemData + * @param clipboard + * @returns {Array} + */ + let parseSignatureString = (systemData, clipboard) => { + let signatureData = []; + + if(clipboard.length){ + let signatureRows = clipboard.split(/\r\n|\r|\n/g); + let signatureGroupOptions = config.signatureGroupsNames; + let invalidSignatures = 0; + + for(let i = 0; i < signatureRows.length; i++){ + let rowData = signatureRows[i].split(/\t/g); + if(rowData.length === 6){ + // check if sig Type = anomaly or combat site + if(validSignatureNames.indexOf( rowData[1] ) !== -1){ + + let sigGroup = $.trim(rowData[2]).toLowerCase(); + let sigDescription = $.trim(rowData[3]); + let sigGroupId = 0; + let typeId = 0; + + // get groupId by groupName + for(let groupOption of signatureGroupOptions){ + let reg = new RegExp(groupOption.text, 'i'); + if(reg.test(sigGroup)){ + sigGroupId = groupOption.value; + break; + } + } + + // wormhole type cant be extracted from signature string -> skip function call + if(sigGroupId !== 5){ + // try to get "typeId" by description string + typeId = Util.getSignatureTypeIdByName(systemData, sigGroupId, sigDescription); + + // set signature name as "description" if signature matching failed + sigDescription = (typeId === 0) ? sigDescription : ''; + }else{ + sigDescription = ''; + } + + // map array values to signature Object + let signatureObj = { + systemId: systemData.id, + name: $.trim( rowData[0] ).toLowerCase(), + groupId: sigGroupId, + typeId: typeId, + description: sigDescription + }; + + signatureData.push(signatureObj); + }else{ + invalidSignatures++; + } + } + } + + if(invalidSignatures > 0){ + let notification = invalidSignatures + ' / ' + signatureRows.length + ' signatures invalid'; + Util.showNotify({title: 'Invalid signature(s)', text: notification, type: 'warning'}); + } + } + + return signatureData; + }; + + /** + * updates the signature table with all signatures pasted into the "signature reader" dialog + * -> Hint: copy&paste signature data (without any open dialog) will add signatures as well + * @param tableApi + * @param systemData + * @param clipboard data stream + * @param options + */ + let updateSignatureTableByClipboard = (tableApi, systemData, clipboard, options) => { + if(isLockedTable(tableApi, 'clipboard')) return; + + let saveSignatureData = signatureData => { + // lock update function until request is finished + lockTable(tableApi); + + // lock copy during request (prevent spamming (ctrl + c ) + lockTable(tableApi, 'clipboard'); + + let requestData = { + signatures: signatureData, + deleteOld: (options.deleteOld) ? 1 : 0, + systemId: parseInt(systemData.id) + }; + + $.ajax({ + type: 'POST', + url: Init.path.saveSignatureData, + data: requestData, + dataType: 'json', + context: { + tableApi: tableApi + } + }).done(function(responseData){ + // unlock table for update + unlockTable(this.tableApi); + // updates table with new/updated signature information + updateSignatureTable(this.tableApi, responseData.signatures, false); + }).fail(function( jqXHR, status, error){ + let reason = status + ' ' + error; + Util.showNotify({title: jqXHR.status + ': Update signatures', text: reason, type: 'warning'}); + $(document).setProgramStatus('problem'); + }).always(function(){ + unlockTable(this.tableApi); + unlockTable(this.tableApi, 'clipboard'); + }); + }; + + // parse input stream + let signatureData = parseSignatureString(systemData, clipboard); + if(signatureData.length > 0){ + // valid signature data parsed + + // check if signatures will be added to a system where character is currently in + // if user is not in any system -> id === undefined -> no "confirmation required + let currentLocationData = Util.getCurrentLocationData(); + if( + currentLocationData.id && + currentLocationData.id !== systemData.id + ){ + + let systemNameStr = (systemData.name === systemData.alias) ? '"' + systemData.name + '"' : '"' + systemData.alias + '" (' + systemData.name + ')'; + systemNameStr = '' + systemNameStr + ''; + + let msg = 'Update signatures in ' + systemNameStr + ' ? This not your current location, "' + currentLocationData.name + '" !'; + bootbox.confirm(msg, function(result){ + if(result){ + saveSignatureData(signatureData); + } + }); + }else{ + // current system selected -> no "confirmation" required + saveSignatureData(signatureData); + } + } + }; + + /** + * deletes signature rows from signature table + * @param tableApi + * @param rows + */ + let deleteSignatures = (tableApi, rows) => { + // get unique id array from rows -> in case there are 2 rows with same id -> you never know + let signatureIds = [...new Set(rows.data().toArray().map(rowData => rowData.id))]; + + let requestData = { + signatureIds: signatureIds + }; + + $.ajax({ + type: 'POST', + url: Init.path.deleteSignatureData, + data: requestData, + dataType: 'json', + context: { + tableApi: tableApi + } + }).done(function(responseData){ + // promises for all delete rows + let promisesToggleRow = []; + // get deleted rows -> match with response data + let rows = this.tableApi.rows((idx, rowData, node) => responseData.deletedSignatureIds.includes(rowData.id)); + // toggle hide animation for rows one by one... + rows.every(function(rowIdx, tableLoop, rowLoop){ + let row = this; + let rowElement = row.nodes().to$(); + + rowElement.pulseBackgroundColor('deleted'); + + promisesToggleRow.push(toggleTableRow(rowElement)); + }); + + // ... all hide animations done ... + Promise.all(promisesToggleRow).then(payloads => { + // ... get deleted (hide animation done) and delete them + this.tableApi.rows(payloads.map(payload => payload.row)).remove().draw(); + + // update signature bar + updateScannedSignaturesBar(this.tableApi, {showNotice: false}); + + // update connection conflicts + checkConnectionConflicts(); + + let notificationOptions = { + type: 'success' + }; + if(payloads.length === 1){ + notificationOptions.title = 'Signature deleted'; + }else{ + notificationOptions.title = payloads.length + ' Signatures deleted '; + } + Util.showNotify(notificationOptions); + }); + }).fail(function( jqXHR, status, error){ + let reason = status + ' ' + error; + Util.showNotify({title: jqXHR.status + ': Delete signature', text: reason, type: 'warning'}); + $(document).setProgramStatus('problem'); + }); + }; + + /** + * updates a single cell with new data (e.g. "updated" cell) + * @param tableApi + * @param rowIndex + * @param columnSelector + * @param data + */ + let updateSignatureCell = (tableApi, rowIndex, columnSelector, data) => { + tableApi.cell(rowIndex, columnSelector).data(data); + }; + + /** + * check connectionIds for conflicts (multiple signatures -> same connection) + * -> show "conflict" icon next to select + */ + let checkConnectionConflicts = () => { + setTimeout(() => { + let connectionSelects = $('.' + config.tableCellConnectionClass + '.editable'); + let connectionIds = []; + let duplicateConnectionIds = []; + let groupedSelects = []; + + connectionSelects.each(function(){ + let select = $(this); + let value = parseInt(select.editable('getValue', true) )|| 0; + + if( + connectionIds.indexOf(value) > -1 && + duplicateConnectionIds.indexOf(value) === -1 + ){ + // duplicate found + duplicateConnectionIds.push(value); + } + + if(groupedSelects[value] !== undefined){ + groupedSelects[value].push(select[0]); + }else{ + groupedSelects[value] = [select[0]]; + } + + connectionIds.push(value); + }); + + // update "conflict" icon next to select label for connectionIds + connectionSelects.each(function(){ + let select = $(this); + let value = parseInt(select.editable('getValue', true) )|| 0; + let conflictIcon = select.find('.fa-exclamation-triangle'); + if( + duplicateConnectionIds.indexOf(value) > -1 && + groupedSelects[value].indexOf(select[0]) > -1 + ){ + conflictIcon.removeClass('hide'); + }else{ + conflictIcon.addClass('hide'); + } + }); + }, 200); + }; + + /** + * get group label by groupId + * @param groupId + * @returns {string} + */ + let getGroupLabelById = (groupId) => { + let options = config.signatureGroupsLabels.filter(option => option.value === groupId); + return options.length ? options[0].text : ''; + }; + + /** + * helper function - get cell by columnSelector from same row as cell + * @param tableApi + * @param cell + * @param columnSelector + * @returns {*} + */ + let getNeighboringCell = (tableApi, cell, columnSelector) => { + return tableApi.cell(tableApi.row(cell).index(), columnSelector); + }; + + /** + * get next cell by columnSelector + * @param tableApi + * @param cell + * @param columnSelectors + * @returns {*} + */ + let searchNextCell = (tableApi, cell, columnSelectors) => { + if(columnSelectors.length){ + // copy selectors -> .shift() modifies the orig array, important! + columnSelectors = columnSelectors.slice(0); + let nextCell = getNeighboringCell(tableApi, cell, columnSelectors.shift()); + let nextCellElement = nextCell.nodes().to$(); + if( nextCellElement.data('editable') ){ + // cell is xEditable field -> skip "disabled" OR check value + let nextCellValue = nextCellElement.editable('getValue', true); + if( + [0, null].includes(nextCellValue) && + !nextCellElement.data('editable').options.disabled + ){ + // xEditable value is empty + return nextCell; + }else{ + // search next cell + return searchNextCell(tableApi, cell, columnSelectors); + } + }else if( nextCell.index().column === tableApi.column(-1).index() ){ + // NO xEditable cell BUT last column (=> action cell) -> OK + return nextCell; + }else{ + console.error('No cell found for activation!'); + } + }else{ + // return origin cell + return tableApi.cell(cell); + } + }; + + /** + * make cell active -> focus() + show xEditable + * @param cell + */ + let activateCell = (cell) => { + let cellElement = cell.nodes().to$(); + // NO xEditable + cellElement.focus(); + + if( cellElement.data('editable') ){ + // cell is xEditable field -> show xEditable form + cellElement.editable('show'); + } + }; + + /** + * search neighboring cell (same row) and set "active" -> show editable + * @param tableApi + * @param cell + * @param columnSelectors + */ + let activateNextCell = (tableApi, cell, columnSelectors) => { + let nextCell = searchNextCell(tableApi, cell, columnSelectors); + activateCell(nextCell); + let test; + }; + + /** + * helper function - set 'save' observer for xEditable cell + * -> show "neighboring" xEditable field + * @param tableApi + * @param cell + * @param columnSelectorsAjax - used for Ajax save (edit signature) + * @param columnSelectorsDry - used for dry save (new signature) + */ + let editableOnSave = (tableApi, cell, columnSelectorsAjax = [], columnSelectorsDry = []) => { + $(cell).on('save', function(e, params){ + if(params.response){ + // send by Ajax + activateNextCell(tableApi, cell, columnSelectorsAjax); + }else{ + // dry save - no request + activateNextCell(tableApi, cell, columnSelectorsDry); + } + }); + }; + + /** + * helper function - set 'hidden' observer for xEditable cell + * -> set focus() on xEditable field + * @param tableApi + * @param cell + */ + let editableOnHidden = (tableApi, cell) => { + $(cell).on('hidden', function(e, reason){ + // re-focus element on close (keyboard navigation) + // 'save' event handles default focus (e.g. open new xEditable) + // 'hide' handles all the rest (experimental) + if(reason !== 'save'){ + this.focus(); + } + }); + }; + + /** + * helper function - set 'shown' observer for xEditable type cell + * -> enable Select2 for xEditable form + * @param cell + */ + let editableGroupOnShown = cell => { + $(cell).on('shown', function(e, editable){ + let inputField = editable.input.$input; + inputField.addClass('pf-select2').initSignatureGroupSelect(); + }); + }; + + /** + * helper function - set 'save' observer for xEditable group cell + * -> update scanned signature bar + * @param tableApi + * @param cell + */ + let editableGroupOnSave = (tableApi, cell) => { + $(cell).on('save', function(e, params){ + if(params.response){ + // send by Ajax + updateScannedSignaturesBar(tableApi, {showNotice: true}); + } + }); + }; + + /** + * helper function - set 'init' observer for xEditable type cell + * -> disable xEditable field if no options available + * @param cell + */ + let editableTypeOnInit = cell => { + $(cell).on('init', function(e, editable){ + if(!editable.options.source().length){ + editableDisable($(this)); + } + }); + }; + + /** + * helper function - set 'shown' observer for xEditable type cell + * -> enable Select2 for xEditable form + * @param cell + */ + let editableTypeOnShown = cell => { + $(cell).on('shown', function(e, editable){ + // destroy possible open popovers (e.g. wormhole types) + $(this).destroyPopover(true); + + let inputField = editable.input.$input; + let hasOptGroups = inputField.has('optgroup').length > 0; + inputField.addClass('pf-select2').initSignatureTypeSelect({}, hasOptGroups); + }); + }; + + /** + * helper function - set 'shown' observer for xEditable description cell + * -> change height for "new signature" table wrapper + * @param cell + */ + let editableDescriptionOnShown = cell => { + $(cell).on('shown', function(e, editable){ + $(this).parents('.' + config.tableToolsActionClass).css( 'height', '+=35px' ); + }); + }; + + /** + * helper function - set 'hidden' observer for xEditable description cell + * -> change height for "new signature" table wrapper + * @param cell + */ + let editableDescriptionOnHidden = cell => { + $(cell).on('hidden', function(e, editable){ + $(this).parents('.' + config.tableToolsActionClass).css( 'height', '-=35px' ); + }); + }; + + /** + * helper function - set 'init' observer for xEditable connection cell + * -> set focus() on xEditable field + * @param cell + */ + let editableConnectionOnInit = cell => { + $(cell).on('init', function(e, editable){ + if(editable.value > 0){ + // empty connection selects ON INIT don´t make a difference for conflicts + checkConnectionConflicts(); + } + }); + }; + + /** + * helper function - set 'shown' observer for xEditable connection cell + * -> enable Select2 for xEditable form + * @param cell + */ + let editableConnectionOnShown = cell => { + $(cell).on('shown', function(e, editable){ + let inputField = editable.input.$input; + inputField.addClass('pf-select2').initSignatureConnectionSelect(); + }); + }; + + /** + * helper function - set 'save' observer for xEditable connection cell + * -> check connection conflicts + * @param cell + */ + let editableConnectionOnSave = cell => { + $(cell).on('save', function(e, params){ + checkConnectionConflicts(); + }); + }; + + /** + * enable xEditable element + * @param element + */ + let editableEnable = element => { + element.editable('enable'); + // (re)-enable focus on element by tabbing, xEditable removes "tabindex" on 'disable' + element.attr('tabindex', 0); + }; + + /** + * disable xEditable element + * @param element + */ + let editableDisable = element => { + element.editable('disable'); + // xEditable sets 'tabindex = -1' + }; + + /** + * get dataTables default options for signature tables + * @param mapId + * @param systemData + * @returns {{}} + */ + let getSignatureDataTableDefaults = (mapId, systemData) => { + + /** + * add map/system specific data for each editable field in the sig-table + * @param params + * @returns {*} + */ + let modifyFieldParamsOnSend = params => { + params.systemId = systemData.id; + return params; + }; + + let dataTableDefaults = { + pfMeta: { + 'mapId': mapId, + 'systemId': systemData.id + }, + order: [1, 'asc'], + rowId: rowData => config.sigTableRowIdPrefix + rowData.id, + language: { + emptyTable: 'No signatures added', + info: 'Showing _START_ to _END_ of _TOTAL_ signatures', + infoEmpty: 'Showing 0 to 0 of 0 signatures', + infoFiltered: '( from _MAX_ total)', + lengthMenu: 'Show _MENU_', + zeroRecords: 'No signatures recorded' + }, + columnDefs: [ + { + targets: 0, + name: 'status', + orderable: true, + searchable: false, + title: '', + width: 2, + class: ['text-center'].join(' '), + data: 'updated', + type: 'html', + render: { + _: (cellData, type, rowData, meta) => { + let value = ''; + if(cellData && cellData.character){ + value = Util.getStatusInfoForCharacter(cellData.character, 'class'); + } + + if(type === 'display'){ + value = ''; + } + return value; + } + } + },{ + targets: 1, + name: 'id', + orderable: true, + searchable: true, + title: 'id', + type: 'string', + width: 15, + class: [config.tableCellFocusClass, config.sigTableEditSigNameInput].join(' '), + data: 'name', + createdCell: function(cell, cellData, rowData, rowIndex, colIndex){ + let tableApi = this.api(); + + updateTooltip(cell, cellData); + + editableOnSave(tableApi, cell, [], ['group:name', 'type:name', 'action:name']); + editableOnHidden(tableApi, cell); + + $(cell).editable($.extend({ + mode: 'popup', + type: 'text', + title: 'signature id', + name: 'name', + pk: rowData.id || null, + emptytext: '? ? ?', + value: cellData, + inputclass: config.editableNameInputClass, + display: function(value){ + // change display value to first 3 letters + $(this).text($.trim( value.substr(0, 3) ).toLowerCase()); + }, + validate: function(value){ + let msg = false; + if($.trim(value).length < 3){ + msg = 'Id is less than min of "3"'; + }else if($.trim(value).length > 10){ + msg = 'Id is more than max of "10"'; + } + + if(msg){ + return {newValue: value, msg: msg, field: this}; + } + }, + params: modifyFieldParamsOnSend, + success: function(response, newValue){ + tableApi.cell(cell).data(newValue); + + $(this).pulseBackgroundColor('changed'); + updateTooltip(cell, newValue); + + if(response){ + let newRowData = response.signatures[0]; + updateSignatureCell(tableApi, rowIndex, 'status:name', newRowData.updated); + updateSignatureCell(tableApi, rowIndex, 'updated:name', newRowData.updated.updated); + } + tableApi.draw(); + } + }, editableDefaults)); + } + },{ + targets: 2, + name: 'group', + orderable: true, + searchable: true, + title: 'group', + type: 'string', // required for sort/filter because initial data type is numeric + width: 40, + class: [config.tableCellFocusClass].join(' '), + data: 'groupId', + render: { + sort: getGroupLabelById, + filter: getGroupLabelById + }, + createdCell: function(cell, cellData, rowData, rowIndex, colIndex){ + let tableApi = this.api(); + + editableOnSave(tableApi, cell, ['type:name'], ['type:name', 'action:name']); + editableOnHidden(tableApi, cell); + editableGroupOnShown(cell); + editableGroupOnSave(tableApi, cell); + + $(cell).editable($.extend({ + mode: 'popup', + type: 'select', + title: 'group', + name: 'groupId', + pk: rowData.id || null, + emptytext: 'unknown', + onblur: 'submit', + showbuttons: false, + value: cellData, + prepend: [{value: 0, text: ''}], + params: modifyFieldParamsOnSend, + source: config.signatureGroupsLabels, + display: function(value, sourceData){ + let selected = $.fn.editableutils.itemsByValue(value, sourceData); + if(selected.length && selected[0].value > 0){ + $(this).html(selected[0].text); + }else{ + $(this).empty(); + } + }, + validate: function(value){ + // convert string to int -> important for further processing + // -> on submit record (new signature) validate() is called and no error should be returned + // value should already be integer + if( !Number.isInteger(value) ){ + return {newValue: parseInt(value) || 0, msg: null}; + } + }, + success: function(response, newValue){ + tableApi.cell(cell).data(newValue); + + $(this).pulseBackgroundColor('changed'); + + if(response){ + let newRowData = response.signatures[0]; + updateSignatureCell(tableApi, rowIndex, 'status:name', newRowData.updated); + updateSignatureCell(tableApi, rowIndex, 'updated:name', newRowData.updated.updated); + } + tableApi.draw(); + + // find related "type" select (same row) and change options + let signatureTypeCell = getNeighboringCell(tableApi, cell, 'type:name'); + let signatureTypeField = signatureTypeCell.nodes().to$(); + + let typeOptions = getAllSignatureNames( + systemData, + systemData.type.id, + Util.getAreaIdBySecurity(systemData.security), + newValue + ); + signatureTypeField.editable('option', 'source', typeOptions); + + if( + newValue > 0 && + typeOptions.length > 0 + ){ + editableEnable(signatureTypeField); + }else{ + editableDisable(signatureTypeField); + } + signatureTypeCell.data(0); + signatureTypeField.editable('setValue', 0); + + + // find "connection" select (same row) and change "enabled" flag + let signatureConnectionCell = getNeighboringCell(tableApi, cell, 'connection:name'); + let signatureConnectionField = signatureConnectionCell.nodes().to$(); + + if(newValue === 5){ + // wormhole + editableEnable(signatureConnectionField); + }else{ + checkConnectionConflicts(); + editableDisable(signatureConnectionField); + } + signatureConnectionCell.data(0); + signatureConnectionField.editable('setValue', 0); + } + }, editableDefaults)); + } + },{ + targets: 3, + name: 'type', + orderable: false, + searchable: false, + title: 'type', + type: 'string', // required for sort/filter because initial data type is numeric + width: 180, + class: [config.tableCellFocusClass].join(' '), + data: 'typeId', + createdCell: function(cell, cellData, rowData, rowIndex, colIndex){ + let tableApi = this.api(); + + editableOnSave(tableApi, cell, ['connection:name'], ['action:name']); + editableOnHidden(tableApi, cell); + editableTypeOnInit(cell); + editableTypeOnShown(cell); + + $(cell).editable($.extend({ + mode: 'popup', + type: 'select', + title: 'type', + name: 'typeId', + pk: rowData.id || null, + emptytext: 'unknown', + onblur: 'submit', + showbuttons: false, + disabled: rowData.groupId <= 0, // initial disabled if groupId not set + value: cellData, + prepend: [{value: 0, text: ''}], + params: modifyFieldParamsOnSend, + source: function(){ + // get current row data (important!) + // -> "rowData" param is not current state, values are "on createCell()" state + let rowData = tableApi.row($(cell).parents('tr')).data(); + + let typeOptions = getAllSignatureNames( + systemData, + systemData.type.id, + Util.getAreaIdBySecurity(systemData.security), + rowData.groupId + ); + return typeOptions; + }, + display: function(value, sourceData){ + let selected = $.fn.editableutils.itemsByValue(value, sourceData); + if(selected.length && selected[0].value > 0){ + $(this).html(FormElement.formatSignatureTypeSelectionData({text: selected[0].text})); + }else{ + $(this).empty(); + } + }, + validate: function(value){ + // convert string to int -> important for further processing + // -> on submit record (new signature) validate() is called and no error should be returned + // value should already be integer + if( !Number.isInteger(value) ){ + return {newValue: parseInt(value) || 0, msg: null}; + } + }, + success: function(response, newValue){ + tableApi.cell(cell).data(newValue); + + $(this).pulseBackgroundColor('changed'); + + if(response){ + let newRowData = response.signatures[0]; + updateSignatureCell(tableApi, rowIndex, 'status:name', newRowData.updated); + updateSignatureCell(tableApi, rowIndex, 'updated:name', newRowData.updated.updated); + } + tableApi.draw(); + } + }, editableDefaults)); + } + },{ + targets: 4, + name: 'description', + orderable: false, + searchable: false, + title: 'description', + class: [config.tableCellFocusClass, config.tableCellActionClass].join(' '), + type: 'html', + data: 'description', + defaultContent: '', + createdCell: function(cell, cellData, rowData, rowIndex, colIndex){ + let tableApi = this.api(); + + editableOnSave(tableApi, cell, [], ['action:name']); + editableOnHidden(tableApi, cell); + editableDescriptionOnShown(cell); + editableDescriptionOnHidden(cell); + + $(cell).editable($.extend({ + mode: 'inline', + type: 'textarea', + title: 'description', + name: 'description', + pk: rowData.id || null, + emptytext: '', + onblur: 'submit', + showbuttons: false, + inputclass: config.editableDescriptionInputClass, + emptyclass: config.moduleHeadlineIconClass, + params: modifyFieldParamsOnSend, + success: function(response, newValue){ + tableApi.cell(cell).data(newValue); + + $(this).pulseBackgroundColor('changed'); + + if(response){ + let newRowData = response.signatures[0]; + updateSignatureCell(tableApi, rowIndex, 'status:name', newRowData.updated); + updateSignatureCell(tableApi, rowIndex, 'updated:name', newRowData.updated.updated); + } + tableApi.draw(); + } + }, editableDefaults)); + } + },{ + targets: 5, + name: 'connection', + orderable: false, + searchable: false, + title: 'leads to', + type: 'string', // required for sort/filter because initial data type is numeric + className: [config.tableCellFocusClass, config.tableCellConnectionClass].join(' '), + width: 80, + data: 'connection.id', + defaultContent: 0, + createdCell: function(cell, cellData, rowData, rowIndex, colIndex){ + let tableApi = this.api(); + + editableOnSave(tableApi, cell, [], ['action:name']); + editableOnHidden(tableApi, cell); + editableConnectionOnInit(cell); + editableConnectionOnShown(cell); + editableConnectionOnSave(cell); + + $(cell).editable($.extend({ + mode: 'popup', + type: 'select', + title: 'system', + name: 'connectionId', + pk: rowData.id || null, + emptytext: 'unknown', + onblur: 'submit', + showbuttons: false, + disabled: rowData.groupId !== 5, // initial disabled if NON wh + value: cellData, + prepend: [{value: 0, text: ''}], + params: modifyFieldParamsOnSend, + source: function(){ + let activeMap = Util.getMapModule().getActiveMap(); + let mapId = activeMap.data('id'); + let connectionOptions = getSignatureConnectionOptions(mapId, systemData); + return connectionOptions; + }, + display: function(value, sourceData){ + let selected = $.fn.editableutils.itemsByValue(value, sourceData); + if(selected.length && selected[0].value > 0){ + let errorIcon = ' '; + $(this).html(FormElement.formatSignatureConnectionSelectionData({text: selected[0].text})).prepend(errorIcon); + }else{ + $(this).empty() ; + } + }, + validate: function(value, b, c){ + // convert string to int -> important for further processing + // -> on submit record (new signature) validate() is called and no error should be returned + // value should already be integer + if( !Number.isInteger(value) ){ + return {newValue: parseInt(value) || 0, msg: null}; + } + }, + success: function(response, newValue){ + tableApi.cell(cell).data(newValue); + + $(this).pulseBackgroundColor('changed'); + + if(response){ + let newRowData = response.signatures[0]; + updateSignatureCell(tableApi, rowIndex, 'status:name', newRowData.updated); + updateSignatureCell(tableApi, rowIndex, 'updated:name', newRowData.updated.updated); + } + tableApi.draw(); + } + }, editableDefaults)); + } + },{ + targets: 6, + name: 'created', + title: 'created', + searchable: false, + width: 80, + className: ['text-right', config.tableCellCounterClass, 'min-screen-d'].join(' '), + data: 'created.created', + defaultContent: '' + },{ + targets: 7, + name: 'updated', + title: 'updated', + searchable: false, + width: 80, + className: ['text-right', config.tableCellCounterClass, 'min-screen-d'].join(' '), + data: 'updated.updated', + defaultContent: '', + createdCell: function(cell, cellData, rowData, rowIndex, colIndex){ + // highlight cell + let diff = Math.floor((new Date()).getTime()) - cellData * 1000; + + // age > 1 day + if( diff > 86400000){ + $(cell).addClass('txt-color txt-color-warning'); + } + } + },{ + targets: 8, + name: 'info', + title: '', + orderable: false, + searchable: false, + width: 10, + class: ['text-center', Util.config.helpClass , Util.config.popoverTriggerClass].join(' '), + data: 'created.created', + defaultContent: '', + render: { + display: (cellData, type, rowData, meta) => { + if(cellData){ + return ''; + } + } + } + },{ + targets: 9, + name: 'action', + title: '', + orderable: false, + searchable: false, + width: 10, + class: ['text-center', config.tableCellFocusClass, config.tableCellActionClass].join(' '), + data: null, + render: { + display: (cellData, type, rowData, meta) => { + let val = ''; + if(rowData.id){ + val = ''; + } + return val; + } + }, + createdCell: function(cell, cellData, rowData, rowIndex, colIndex){ + let tableApi = this.api(); + + if(rowData.id){ + // delete signature ----------------------------------------------------------------------- + let confirmationSettings = { + container: 'body', + placement: 'left', + btnCancelClass: 'btn btn-sm btn-default', + btnCancelLabel: 'cancel', + btnCancelIcon: 'fas fa-fw fa-ban', + title: 'delete signature', + btnOkClass: 'btn btn-sm btn-danger', + btnOkLabel: 'delete', + btnOkIcon: 'fas fa-fw fa-times', + onConfirm: function(e, target){ + // top scroll to top + e.preventDefault(); + + let deleteRowElement = $(target).parents('tr'); + let row = tableApi.rows(deleteRowElement); + deleteSignatures(tableApi, row); + } + }; + + $(cell).confirmation(confirmationSettings); + }else{ + // add new signature ---------------------------------------------------------------------- + $(cell).on('click', {tableApi: tableApi, rowIndex: rowIndex}, function(e){ + e.stopPropagation(); + e.preventDefault(); + + let secondaryTableApi = e.data.tableApi; + let metaData = getTableMetaData(secondaryTableApi); + let primaryTableApi = getDataTableInstance(metaData.mapId, metaData.systemId, 'primary'); + + let formFields = secondaryTableApi.row(e.data.rowIndex).nodes().to$().find('.editable'); + + // the "hide" makes sure to take care about open editable fields (e.g. description) + // otherwise, changes would not be submitted in this field (not necessary) + formFields.editable('hide'); + + // submit all xEditable fields + formFields.editable('submit', { + url: Init.path.saveSignatureData, + ajaxOptions: { + dataType: 'json', //assuming json response + beforeSend: function(xhr, settings){ + lockTable(primaryTableApi); + }, + context: { + primaryTableApi: primaryTableApi, + secondaryTableApi: secondaryTableApi, + } + }, + data: { + systemId: metaData.systemId, // additional data to submit + pk: 0 // new data no primary key + }, + error: editableDefaults.error, // user default xEditable error function + success: function(data, editableConfig){ + let context = editableConfig.ajaxOptions.context; + let primaryTableApi = context.primaryTableApi; + let secondaryTableApi = context.secondaryTableApi; + + unlockTable(primaryTableApi); + + let signatureData = data.signatures[0]; + let row = addSignatureRow(primaryTableApi, signatureData); + if(row){ + primaryTableApi.draw(); + // highlight + row.nodes().to$().pulseBackgroundColor('added'); + + // prepare "add signature" table for new entry -> reset ------------------- + secondaryTableApi.clear().row.add($.extend(true, {}, emptySignatureData)).draw(); + + Util.showNotify({ + title: 'Signature added', + text: 'Name: ' + signatureData.name, + type: 'success' + }); + + // update signature bar + updateScannedSignaturesBar(primaryTableApi, {showNotice: true}); + } + } + }); + }); + } + } + } + ], + createdRow: function(row, data, dataIndex){ + // enable tabbing for interactive cells + let focusCells = $(row).find('.' + config.tableCellFocusClass + ':not(.editable-disabled)').attr('tabindex', 0); + // enable "return" key -> click() + focusCells.on('keydown', function(e){ + e.stopPropagation(); + if(e.which === 13){ + $(this).trigger('click'); + } + }); + } + }; + + return dataTableDefaults; + }; + + /** + * draw signature table toolbar (add signature button, scan progress bar + * @param moduleElement + * @param mapId + * @param systemData + */ + let drawSignatureTableNew = (moduleElement, mapId, systemData) => { + let secondaryTableContainer = $('
', { + class: config.tableToolsActionClass + }); + + // create "empty table for new signature + let table = $('', { + id: getTableId(mapId, systemData.id, 'secondary'), + class: ['stripe', 'row-border', 'compact', 'nowrap', config.sigTableClass, config.sigTableSecondaryClass].join(' ') + }); + + secondaryTableContainer.append(table); + + moduleElement.find('.' + config.moduleHeadClass).after(secondaryTableContainer); + + let dataTableOptions = { + paging: false, + info: false, + searching: false, + tabIndex: -1, + data: [$.extend(true, {}, emptySignatureData)] + }; + + $.extend(true, dataTableOptions, getSignatureDataTableDefaults(mapId, systemData)); + + let tableApi = table.DataTable(dataTableOptions); + + // "Responsive" dataTables plugin did not load automatic (because table is invisible onInit) + // -> manually start "Responsive" extension -> see default dataTable setting for config e.g. breakpoints + new $.fn.dataTable.Responsive(tableApi); + }; + + /** + * filter table "group" column + * @param tableApi + * @param newValue + * @param sourceOptions + */ + let searchGroupColumn = (tableApi, newValue, sourceOptions) => { + let column = tableApi.column('group:name'); + let pattern = ''; + + if(newValue.length <= sourceOptions.length){ + // all options selected + "prepend" option + let selected = $.fn.editableutils.itemsByValue(newValue, sourceOptions); + + pattern = selected.map(option => option.value !== 0 ? $.fn.dataTable.util.escapeRegex(option.text) : '^$').join('|'); + } + column.search(pattern, true, false).draw(); + }; + + /** + * init table filter button "group" column + * @param tableApi + */ + let initGroupFilterButton = tableApi => { + let characterId = Util.getCurrentCharacterId(); + + let promiseStore = MapUtil.getLocaleData('character', Util.getCurrentCharacterId()); + promiseStore.then(data => { + let filterButton = tableApi.button('tableTools', 'filterGroup:name').node(); + let prependOptions = [{value: 0, text: 'unknown'}]; + let sourceOptions = config.signatureGroupsLabels; + let selectedValues = []; + + if(data && data.filterSignatureGroups && data.filterSignatureGroups.length){ + // select local stored values + selectedValues = data.filterSignatureGroups; + }else{ + // no default group filter options -> show all + selectedValues = sourceOptions.map(option => option.value); + selectedValues.unshift(0); + } + + filterButton.editable({ + mode: 'popup', + container: 'body', + type: 'checklist', + showbuttons: false, + onblur: 'submit', + highlight: false, + title: 'filter groups', + value: selectedValues, + prepend: prependOptions, + source: sourceOptions, + inputclass: config.editableUnknownInputClass, + display: function(value, sourceData){ + // update filter button label + let html = 'group'; + let allSelected = value.length >= sourceData.length; + if( !allSelected ){ + html += ' (' + value.length + ')'; + } + $(this).toggleClass('active', !allSelected).html(html); + }, + validate: function(value){ + // convert string to int -> important for further processing + return {newValue: value.map(num => parseInt(num)), msg: null}; + } + }); + + let allOptions = prependOptions.concat(sourceOptions); + + filterButton.on('save', {tableApi: tableApi, sourceOptions: allOptions}, function(e, params){ + // store values local -> IndexDB + MapUtil.storeLocaleCharacterData('filterSignatureGroups', params.newValue); + + searchGroupColumn(e.data.tableApi, params.newValue, e.data.sourceOptions); + }); + + // set initial search string -> even if table ist currently empty + searchGroupColumn(tableApi, selectedValues, allOptions); + }); + }; + + /** + * draw empty signature table + * @param moduleElement + * @param mapId + * @param systemData + */ + let drawSignatureTable = (moduleElement, mapId, systemData) => { + let table = $('
', { + id: getTableId(mapId, systemData.id, 'primary'), + class: ['display', 'compact', 'nowrap', config.sigTableClass, config.sigTablePrimaryClass].join(' ') + }); + + moduleElement.append(table); + + let dataTableOptions = { + tabIndex: -1, + dom: '<"row"<"col-xs-3"l><"col-xs-5"B><"col-xs-4"f>>' + + '<"row"<"col-xs-12"tr>>' + + '<"row"<"col-xs-5"i><"col-xs-7"p>>', + buttons: { + name: 'tableTools', + buttons: [ + { + name: 'filterGroup', + className: config.moduleHeadlineIconClass, + text: '' // set by js (xEditable) + }, + { + name: 'selectAll', + className: config.moduleHeadlineIconClass, + text: 'select all', + action: function(e, tableApi, node, conf){ + let allRows = tableApi.rows(); + let selectedRows = getSelectedRows(tableApi); + let allRowElements = allRows.nodes().to$(); + + if(allRows.data().length === selectedRows.data().length){ + allRowElements.removeClass('selected'); + }else{ + allRowElements.addClass('selected'); + } + + // check delete button + checkDeleteSignaturesButton(tableApi); + } + }, + { + name: 'delete', + className: [config.moduleHeadlineIconClass, config.sigTableClearButtonClass].join(' '), + text: 'delete (0)', + action: function(e, tableApi, node, conf){ + let selectedRows = getSelectedRows(tableApi); + bootbox.confirm('Delete ' + selectedRows.data().length + ' signature?', function(result){ + if(result){ + deleteSignatures(tableApi, selectedRows); + } + }); + } + } + ] + }, + initComplete: function (settings, json){ + let tableApi = this.api(); + + initGroupFilterButton(tableApi); + + // init update counter for timestamp columns + // mark as init + this.attr('data-counter', 'init'); + let refreshIntervalId = window.setInterval(() => { + tableApi.cells(null, ['created:name', 'updated:name']).every(function(rowIndex, colIndex, tableLoopCount, cellLoopCount){ + let cell = this; + let node = cell.node(); + let data = cell.data(); + if(data && Number.isInteger(data) && !node.classList.contains('stopCounter')){ + // timestamp expected int > 0 + let date = new Date(data * 1000); + Counter.updateDateDiff( cell.nodes().to$(), date); + } + }); + }, 500); + this.data('interval', refreshIntervalId); + } + }; + + $.extend(true, dataTableOptions, getSignatureDataTableDefaults(mapId, systemData)); + + let tableApi = table.DataTable(dataTableOptions); + + // "Responsive" dataTables plugin did not load automatic (because table is invisible onInit) + // -> manually start "Responsive" extension -> see default dataTable setting for config e.g. breakpoints + new $.fn.dataTable.Responsive(tableApi); + + // lock table until module is fully rendered + lockTable(tableApi); + }; + + /** + * open xEditable input field in "new Signature" table + * @param moduleElement + */ + let focusNewSignatureEditableField = moduleElement => { + moduleElement.find('.' + config.sigTableSecondaryClass) + .find('td.' + config.sigTableEditSigNameInput).editable('show'); + }; + + /** + * get all selected rows of a table + * @param tableApi + * @returns {*} + */ + let getSelectedRows = tableApi => { + return tableApi.rows('.selected'); + }; + + /** + * check the "delete signature" button. show/hide the button if a signature is selected + * @param tableApi + */ + let checkDeleteSignaturesButton = tableApi => { + let selectedRows = getSelectedRows(tableApi); + let selectedRowCount = selectedRows.data().length; + let clearButton = tableApi.button('tableTools', 'delete:name').node(); + + if(selectedRowCount > 0){ + let allRows = tableApi.rows(); + let rowCount = allRows.data().length; + + let countText = selectedRowCount; + if(selectedRowCount >= rowCount){ + countText = 'all'; + } + clearButton.find('i+span').text(countText); + + // update clear signatures button text + clearButton.velocity('stop'); + + if( clearButton.is(':hidden') ){ + // show button + clearButton.velocity('transition.expandIn', { + duration: 100 + }); + }else{ + // highlight button + clearButton.velocity('callout.pulse', { + duration: 200 + }); + } + }else{ + // hide button + clearButton.velocity('transition.expandOut', { + duration: 100 + }); + } + }; + + /** + * set module observer and look for relevant signature data to update + * @param moduleElement + * @param mapId + * @param systemData + */ + let setModuleObserver = (moduleElement, mapId, systemData) => { + let primaryTable = moduleElement.find('.' + config.sigTablePrimaryClass); + let primaryTableApi = getDataTableInstance(mapId, systemData.id, 'primary'); + + // add signature toggle --------------------------------------------------------------------------------------- + let toggleAddSignature = (show = 'auto') => { + let button = moduleElement.find('.' + config.moduleHeadlineIconAddClass); + let toolsElement = moduleElement.find('.' + config.tableToolsActionClass); + button.toggleClass('active', show === 'auto' ? undefined : show); + + if(toolsElement.is(':visible') && (!show || show === 'auto')){ + // hide container + toolsElement.velocity('stop').velocity({ + opacity: [0, 1], + height: [0, '70px'] + },{ + duration: 150, + display: 'none' + }); + }else if(!toolsElement.is(':visible') && (show || show === 'auto')){ + // show container + toolsElement.velocity('stop').velocity({ + opacity: [1, 0], + height: ['70px', 0] + },{ + duration: 150, + display: 'block', + complete: function(){ + focusNewSignatureEditableField(moduleElement); + } + }); + }else if(toolsElement.is(':visible') && show){ + // still visible -> no animation + focusNewSignatureEditableField(moduleElement); + } + }; + + moduleElement.find('.' + config.moduleHeadlineIconAddClass).on('click', function(e){ + toggleAddSignature('auto'); + }); + + moduleElement.on('pf:showSystemSignatureModuleAddNew', function(e){ + toggleAddSignature(true); + }); + + // signature reader dialog ------------------------------------------------------------------------------------ + moduleElement.find('.' + config.moduleHeadlineIconReaderClass).on('click', function(e){ + moduleElement.showSignatureReaderDialog(systemData); + }); + + // "lazy update" toggle --------------------------------------------------------------------------------------- + moduleElement.find('.' + config.moduleHeadlineIconLazyClass).on('click', function(e){ + let button = $(this); + button.toggleClass('active'); + }); + + // set multi row select --------------------------------------------------------------------------------------- + primaryTable.on('mousedown', 'td', {tableApi: primaryTableApi}, function(e){ + if(e.ctrlKey){ + e.preventDefault(); + e.stopPropagation(); + // xEditable field should not open -> on 'click' + // -> therefore disable "pointer-events" on "td" for some ms -> 'click' event is not triggered + $(this).css('pointer-events', 'none'); + $(e.target.parentNode).toggleClass('selected'); + + // check delete button + checkDeleteSignaturesButton(e.data.tableApi); + + setTimeout(() => { + $(this).css('pointer-events', 'auto'); + }, 250); + } + }); + + // draw event for signature table ----------------------------------------------------------------------------- + primaryTableApi.on('draw.dt', function(e, settings){ + // check delete button + let tableApi = $(this).dataTable().api(); + checkDeleteSignaturesButton(tableApi); + }); + + // event listener for global "paste" signatures into the page ------------------------------------------------- + moduleElement.on('pf:updateSystemSignatureModuleByClipboard', {tableApi: primaryTableApi}, function(e, clipboard){ + let signatureOptions = { + deleteOld: moduleElement.find('.' + config.moduleHeadlineIconLazyClass).hasClass('active') ? 1 : 0 + }; + updateSignatureTableByClipboard(e.data.tableApi, systemData, clipboard, signatureOptions); + }); + + // signature column - "type" popover -------------------------------------------------------------------------- + moduleElement.find('.' + config.sigTableClass).hoverIntent({ + over: function(e){ + let staticWormholeElement = $(this); + let wormholeName = staticWormholeElement.attr('data-name'); + let wormholeData = Util.getObjVal(Init, 'wormholes.' + wormholeName); + if(wormholeData){ + staticWormholeElement.addWormholeInfoTooltip(wormholeData, { + trigger: 'manual', + placement: 'top', + show: true + }); + } + }, + out: function(e){ + $(this).destroyPopover(); + }, + selector: '.editable-click:not(.editable-open) span[class^="pf-system-sec-"]' + }); + + // signature column - "info" popover -------------------------------------------------------------------------- + moduleElement.find('.' + config.sigTablePrimaryClass).hoverIntent({ + over: function(e){ + let cellElement = $(this); + let rowData = primaryTableApi.row(cellElement.parents('tr')).data(); + cellElement.addCharacterInfoTooltip(rowData, { + trigger: 'manual', + placement: 'top', + show: true + }); + }, + out: function(e){ + $(this).destroyPopover(); + }, + selector: 'td.' + Util.config.helpClass + }); + }; + + /** + * add new row to signature table + * @param tableApi + * @param signatureData + * @returns {*} + */ + let addSignatureRow = (tableApi, signatureData) => { + let row = null; + if(tableApi){ + row = tableApi.row.add(signatureData); + } + return row; + }; + + /** + * update signature table with new signatures + * -> add/update/delete rows + * @param tableApi + * @param signaturesDataOrig + * @param deleteOutdatedSignatures + */ + let updateSignatureTable = (tableApi, signaturesDataOrig, deleteOutdatedSignatures = false) => { + if(isLockedTable(tableApi)) return; + + // disable tableApi until update finished; + lockTable(tableApi); + + // clone signature array because of further manipulation + let signaturesData = $.extend([], signaturesDataOrig); + + let rowIdsExist = []; + + let promisesAdded = []; + let promisesChanged = []; + let promisesDeleted = []; + + let allRows = tableApi.rows(); + let updateEmptyTable = !allRows.any(); + + let rowUpdate = function(rowIndex, colIndex, tableLoopCount, cellLoopCount){ + let cell = this; + let node = cell.nodes().to$(); + if(node.data('editable')){ + // xEditable is active -> should always be active! + // set new value even if no change -> e.g. render selected Ids as text labels + let oldValue = node.editable('getValue', true); + node.editable('setValue', cell.data()); + + if(oldValue !== cell.data()){ + // highlight cell on data change + node.pulseBackgroundColor('changed'); + } + }else if(node.hasClass(config.tableCellCounterClass)){ + // "updated" timestamp always changed + node.pulseBackgroundColor('changed'); + } + }; + + // update signatures ------------------------------------------------------------------------------------------ + allRows.every(function(rowIdx, tableLoop, rowLoop){ + let row = this; + let rowData = row.data(); + let rowElement = row.nodes().to$(); + + for(let i = 0; i < signaturesData.length; i++){ + if(signaturesData[i].id === rowData.id){ + let rowId = row.id(true); + + // check if row was updated + if(signaturesData[i].updated.updated > rowData.updated.updated){ + // set new row data -> draw() is executed after all changes made + row.data(signaturesData[i]); + + // bind new signature dataTable data() -> to xEditable inputs + row.cells(row.id(true), ['id:name', 'group:name', 'type:name', 'description:name', 'connection:name', 'updated:name']) + .every(rowUpdate); + + promisesChanged.push(new Promise((resolve, reject) => { + resolve({action: 'changed', rowId: rowId}); + })); + } + + rowIdsExist.push(rowId); + + // remove signature data -> all left signatures will be added + signaturesData.splice(i, 1); + i--; + } + } + }); + + // delete signatures ------------------------------------------------------------------------------------------ + if(deleteOutdatedSignatures){ + let rows = tableApi.rows((rowIdx, rowData, node) => !rowIdsExist.includes('#' + config.sigTableRowIdPrefix + rowData.id)); + rows.every(function(rowIdx, tableLoop, rowLoop){ + let row = this; + let rowId = row.id(true); + let rowElement = row.nodes().to$(); + + // hide open editable fields on the row before removing them + rowElement.find('.editable').editable('destroy'); + + // destroy possible open popovers (e.g. wormhole types, update popover) + rowElement.destroyPopover(true); + + rowElement.pulseBackgroundColor('deleted'); + + promisesDeleted.push(new Promise((resolve, reject) => { + toggleTableRow(rowElement).then(payload => resolve({action: 'deleted', rowIdx: rowId})); + })); + }).remove(); + } + + // add new signatures ----------------------------------------------------------------------------------------- + for(let signatureData of signaturesData){ + let row = addSignatureRow(tableApi, signatureData); + let rowId = row.id(true); + let rowElement = row.nodes().to$(); + rowElement.pulseBackgroundColor('added'); + + promisesAdded.push(new Promise((resolve, reject) => { + resolve({action: 'added', rowId: rowId}); + })); + } + + // done ------------------------------------------------------------------------------------------------------- + Promise.all(promisesAdded.concat(promisesChanged, promisesDeleted)).then(payloads => { + if(payloads.length){ + // table data changed -> draw() table changes + tableApi.draw(); + + if(!updateEmptyTable){ + // no notifications if table was empty just progressbar notification is needed + // sum payloads by "action" + let notificationCounter = payloads.reduce((acc, payload) => { + if(!acc[payload.action]){ + acc[payload.action] = 0; + } + acc[payload.action]++; + return acc; + }, {}); + + let notification = ''; + if(notificationCounter.added > 0){ + notification += notificationCounter.added + ' added
'; + } + if(notificationCounter.changed > 0){ + notification += notificationCounter.changed + ' updated
'; + } + if(notificationCounter.deleted > 0){ + notification += notificationCounter.deleted + ' deleted
'; + } + if(notification.length){ + Util.showNotify({title: 'Signatures updated', text: notification, type: 'success'}); + } + } + + updateScannedSignaturesBar(tableApi, {showNotice: true}); + } + + // unlock table + unlockTable(tableApi); + }); + }; + + /** + * update trigger function for this module + * compare data and update module + * @param moduleElement + * @param systemData + */ + let updateModule = (moduleElement, systemData) => { + + if(systemData.signatures){ + let mapId = moduleElement.data('mapId'); + let systemId = moduleElement.data('systemId'); + let tableApi = getDataTableInstance(mapId, systemId, 'primary'); + updateSignatureTable(tableApi, systemData.signatures, true); + } + + moduleElement.hideLoadingAnimation(); + }; + + /** + * init callback + * @param moduleElement + * @param mapId + * @param systemData + */ + let initModule = (moduleElement, mapId, systemData) => { + let tableApi = getDataTableInstance(mapId, systemData.id, 'primary'); + unlockTable(tableApi); + }; + + /** + * get module toolbar element + * @returns {jQuery} + */ + let getHeadlineToolbar = () => { + let headlineToolbar = $('
', { + class: 'pull-right' + }).append( + $('', { + class: 'progress-label-right', + text: '0%' + }), + $('', { + class: ['fas', 'fa-fw', 'fa-plus', config.moduleHeadlineIconClass, config.moduleHeadlineIconAddClass].join(' '), + title: 'add' + }).attr('data-toggle', 'tooltip'), + $('', { + class: ['fas', 'fa-fw', 'fa-paste', config.moduleHeadlineIconClass, config.moduleHeadlineIconReaderClass].join(' '), + title: 'signature reader' + }).attr('data-toggle', 'tooltip'), + $('', { + class: ['fas', 'fa-fw', 'fa-exchange-alt', config.moduleHeadlineIconClass, config.moduleHeadlineIconLazyClass].join(' '), + title: 'lazy \'delete\' signatures' + }).attr('data-toggle', 'tooltip') + ); + + headlineToolbar.find('[data-toggle="tooltip"]').tooltip({ + container: 'body' + }); + + return headlineToolbar; + }; + + /** + * get module element + * @param parentElement + * @param mapId + * @param systemData + * @returns {jQuery} + */ + let getModule = (parentElement, mapId, systemData) => { + let moduleElement = $('
').append( + $('
', { + class: config.moduleHeadClass + }).append( + $('
', { + class: config.moduleHandlerClass + }), + $('
', { + text: 'Signatures' + }), + getHeadlineToolbar() + ) + ); + + // scanned signatures progress bar ---------------------------------------------------------------------------- + requirejs(['text!templates/form/progress.html', 'mustache'], (template, Mustache) => { + let data = { + label: true, + wrapperClass: config.moduleHeadlineProgressBarClass, + class: ['progress-bar-success'].join(' '), + percent: 0 + }; + moduleElement.find('.' + config.moduleHeadClass).append(Mustache.render(template, data)); + }); + + moduleElement.data('mapId', mapId); + moduleElement.data('systemId', systemData.id); + + moduleElement.showLoadingAnimation(); + + // draw "new signature" add table + drawSignatureTableNew(moduleElement, mapId, systemData); + + // draw signature table + drawSignatureTable(moduleElement, mapId, systemData); + + // set module observer + setModuleObserver(moduleElement, mapId, systemData); + + return moduleElement; + }; + + /** + * before module hide callback + * @param moduleElement + */ + let beforeHide = moduleElement => { + // disable update + let mapId = moduleElement.data('mapId'); + let systemId = moduleElement.data('systemId'); + let tableApi = getDataTableInstance(mapId, systemId, 'primary'); + lockTable(tableApi); + }; + + /** + * before module destroy callback + * @param moduleElement + */ + let beforeDestroy = moduleElement => { + // Destroying the data tables throws + // -> safety remove all dataTables + let mapId = moduleElement.data('mapId'); + let systemId = moduleElement.data('systemId'); + let primaryTableApi = getDataTableInstance(mapId, systemId, 'primary'); + let secondaryTableApi = getDataTableInstance(mapId, systemId, 'secondary'); + primaryTableApi.destroy(); + secondaryTableApi.destroy(); + }; + + return { + config: config, + getModule: getModule, + initModule: initModule, + updateModule: updateModule, + beforeHide: beforeHide, + beforeDestroy: beforeDestroy, + getAllSignatureNamesBySystem: getAllSignatureNamesBySystem + }; +}); \ No newline at end of file diff --git a/public/js/v1.4.1/app/util.js b/public/js/v1.4.1/app/util.js index 8ec89d08..bf7b7242 100644 --- a/public/js/v1.4.1/app/util.js +++ b/public/js/v1.4.1/app/util.js @@ -33,7 +33,6 @@ define([ // head headMapTrackingId: 'pf-head-map-tracking', // id for "map tracking" toggle (checkbox) - headCharacterSwitchId: 'pf-head-character-switch', // id for "character switch" popover headCurrentLocationId: 'pf-head-current-location', // id for "show current location" element // menu @@ -66,10 +65,12 @@ define([ // animation animationPulseSuccessClass: 'pf-animation-pulse-success', // animation class animationPulseWarningClass: 'pf-animation-pulse-warning', // animation class + animationPulseDangerClass: 'pf-animation-pulse-danger', // animation class // popover - popoverSmallClass: 'pf-popover-small', // class for "small" popover popoverTriggerClass: 'pf-popover-trigger', // class for "popover" trigger elements + popoverSmallClass: 'pf-popover-small', // class for small "popover" + popoverCharacterClass: 'pf-popover-character', // class for character "popover" // help helpDefaultClass: 'pf-help-default', // class for "help" tooltip elements @@ -231,7 +232,7 @@ define([ }else{ callback(responseData.img); } - }).fail(function( jqXHR, status, error) { + }).fail(function( jqXHR, status, error){ let reason = status + ' ' + error; showNotify({title: jqXHR.status + ': getCaptchaImage', text: reason, type: 'error'}); }); @@ -424,7 +425,7 @@ define([ let width = element.offsetWidth; let height = element.offsetHeight; - while(element.offsetParent) { + while(element.offsetParent){ element = element.offsetParent; top += element.offsetTop; left += element.offsetLeft; @@ -494,7 +495,7 @@ define([ * @returns {*} */ $.fn.destroyTooltip = function(recursive){ - return this.each(function() { + return this.each(function(){ let element = $(this); let tooltipSelector = '[title]'; let tooltipElements = element.filter(tooltipSelector); @@ -502,18 +503,20 @@ define([ tooltipElements = tooltipElements.add(element.find(tooltipSelector)); } - tooltipElements.each(function() { + tooltipElements.each(function(){ $(this).tooltip('destroy'); }); }); }; /** - * adds a popup tooltip with character information (created/updated) + * add a popup tooltip with character information (created/updated) * @param tooltipData + * @param options + * @returns {*} */ - $.fn.addCharacterInfoTooltip = function(tooltipData){ - let element = $(this); + $.fn.addCharacterInfoTooltip = function(tooltipData, options){ + let data = {}; if( tooltipData.created.character && @@ -522,59 +525,60 @@ define([ let createdData = tooltipData.created; let updatedData = tooltipData.updated; - // check if data has changed - if( - element.data('created') !== createdData.created || - element.data('updated') !== updatedData.updated - ){ - // data changed - // set new data for next check - element.data('created', createdData.created); - element.data('updated', updatedData.updated); + let statusCreatedClass = getStatusInfoForCharacter(createdData.character, 'class'); + let statusUpdatedClass = getStatusInfoForCharacter(updatedData.character, 'class'); - let statusCreatedClass = getStatusInfoForCharacter(createdData.character, 'class'); - let statusUpdatedClass = getStatusInfoForCharacter(updatedData.character, 'class'); + // convert timestamps + let dateCreated = new Date(createdData.created * 1000); + let dateUpdated = new Date(updatedData.updated * 1000); + let dateCreatedUTC = convertDateToUTC(dateCreated); + let dateUpdatedUTC = convertDateToUTC(dateUpdated); - // convert timestamps - let dateCreated = new Date(createdData.created * 1000); - let dateUpdated = new Date(updatedData.updated * 1000); - let dateCreatedUTC = convertDateToUTC(dateCreated); - let dateUpdatedUTC = convertDateToUTC(dateUpdated); - - let data = { - created: createdData, - updated: updatedData, - createdTime: convertDateToString(dateCreatedUTC), - updatedTime: convertDateToString(dateUpdatedUTC), - createdStatusClass: statusCreatedClass, - updatedStatusClass: statusUpdatedClass - }; - - requirejs(['text!templates/tooltip/character_info.html', 'mustache'], function(template, Mustache) { - let content = Mustache.render(template, data); - - element.popover({ - placement: 'top', - html: true, - trigger: 'hover', - content: '', - container: 'body', - title: 'Created / Updated', - delay: { - show: 250, - hide: 0 - } - }); - - // set new popover content - let popover = element.data('bs.popover'); - popover.options.content = content; - }); - - } + data = { + popoverClass: config.popoverCharacterClass, + ccpImageServerUrl: Init.url.ccpImageServer, + created: createdData, + updated: updatedData, + createdTime: convertDateToString(dateCreatedUTC), + updatedTime: convertDateToString(dateUpdatedUTC), + createdStatusClass: statusCreatedClass, + updatedStatusClass: statusUpdatedClass + }; } - return element; + let defaultOptions = { + placement: 'top', + html: true, + trigger: 'hover', + container: 'body', + title: 'Created / Updated', + delay: { + show: 150, + hide: 0 + } + }; + + options = $.extend({}, defaultOptions, options); + + return this.each(function(){ + let element = $(this); + + requirejs(['text!templates/tooltip/character_info.html', 'mustache'], (template, Mustache) => { + let content = Mustache.render(template, data); + + element.popover(options); + + // set new popover content + let popover = element.data('bs.popover'); + popover.options.content = content; + + if(options.show){ + element.popover('show'); + } + + }); + + }); }; /** @@ -585,10 +589,10 @@ define([ let elements = $(this); let eventNamespace = 'hideCharacterPopup'; - requirejs(['text!templates/tooltip/character_switch.html', 'mustache'], function (template, Mustache) { + requirejs(['text!templates/tooltip/character_switch.html', 'mustache'], function (template, Mustache){ let data = { - id: config.headCharacterSwitchId, + popoverClass: config.popoverCharacterClass, browserTabId: getBrowserTabId(), routes: Init.routes, userData: userData, @@ -608,7 +612,7 @@ define([ let content = Mustache.render(template, data); - return elements.each(function() { + return elements.each(function(){ let element = $(this); // check if popover already exists -> remove it @@ -616,7 +620,7 @@ define([ element.off('click').popover('destroy'); } - element.on('click', function(e) { + element.on('click', function(e){ e.preventDefault(); e.stopPropagation(); @@ -631,7 +635,7 @@ define([ if(popoverData === undefined){ - button.on('shown.bs.popover', function (e) { + button.on('shown.bs.popover', function (e){ let tmpPopupElement = $(this).data('bs.popover').tip(); tmpPopupElement.find('.btn').on('click', function(e){ // close popover @@ -662,7 +666,7 @@ define([ // character switch detected $('body').data('characterSwitch', true); // ... and remove "characterSwitch" data again! after "unload" - setTimeout(function() { + setTimeout(function(){ $('body').removeData('characterSwitch'); }, 500); }); @@ -690,7 +694,7 @@ define([ * @returns {*} */ $.fn.destroyPopover = function(recursive){ - return this.each(function() { + return this.each(function(){ let element = $(this); let popoverSelector = '.' + config.popoverTriggerClass; let popoverElements = element.filter(popoverSelector); @@ -698,7 +702,7 @@ define([ popoverElements = popoverElements.add(element.find(popoverSelector)); } - popoverElements.each(function() { + popoverElements.each(function(){ let popoverElement = $(this); if(popoverElement.data('bs.popover')){ popoverElement.popover('destroy'); @@ -713,9 +717,9 @@ define([ * @returns {*} */ $.fn.initPopoverClose = function(eventNamespace){ - return this.each(function() { - $('body').off('click.' + eventNamespace).on('click.' + eventNamespace + ' contextmenu', function (e) { - $('.' + config.popoverTriggerClass).each(function () { + return this.each(function(){ + $('body').off('click.' + eventNamespace).on('click.' + eventNamespace + ' contextmenu', function (e){ + $('.' + config.popoverTriggerClass).each(function (){ let popoverElement = $(this); //the 'is' for buttons that trigger popups //the 'has' for icons within a button that triggers a popup @@ -743,7 +747,7 @@ define([ * @returns {*} */ $.fn.setPopoverSmall = function(){ - return this.each(function() { + return this.each(function(){ let element = $(this); let popover = element.data('bs.popover'); if(popover){ @@ -760,7 +764,7 @@ define([ $.fn.showMessage = function(config){ let containerElement = $(this); - requirejs(['text!templates/form/message.html', 'mustache'], function(template, Mustache) { + requirejs(['text!templates/form/message.html', 'mustache'], function(template, Mustache){ let messageTypeClass = 'alert-danger'; let messageTextClass = 'txt-color-danger'; @@ -809,7 +813,7 @@ define([ * add/remove css class for keyframe animation * @returns {any|JQuery|*} */ - $.fn.pulseTableRow = function(status, clear){ + $.fn.pulseBackgroundColor = function(status, clear){ let animationClass = ''; switch(status){ @@ -819,9 +823,12 @@ define([ case 'changed': animationClass = config.animationPulseWarningClass; break; + case 'deleted': + animationClass = config.animationPulseDangerClass; + break; } - let clearTimer = function(element) { + let clearTimer = element => { element.removeClass( animationClass ); let currentTimer = element.data('animationTimer'); @@ -841,7 +848,7 @@ define([ } if(clear !== true){ - element.addClass( animationClass ); + element.addClass(animationClass); let timer = setTimeout(clearTimer, 1500, element); element.data('animationTimer', timer); animationTimerCache[timer] = true; @@ -902,14 +909,14 @@ define([ const prepareSafeListener = (listener, passive) => { if (!passive) return listener; - return function (e) { + return function (e){ e.preventDefault = () => {}; return listener.call(this, e); }; }; const overwriteAddEvent = (superMethod) => { - EventTarget.prototype.addEventListener = function (type, listener, options) { // jshint ignore:line + EventTarget.prototype.addEventListener = function (type, listener, options){ // jshint ignore:line const usesListenerOptions = typeof options === 'object'; const useCapture = usesListenerOptions ? options.capture : options; @@ -927,20 +934,20 @@ define([ try { const opts = Object.defineProperty({}, 'passive', { - get() { + get(){ supported = true; } }); window.addEventListener('test', null, opts); window.removeEventListener('test', null, opts); - } catch (e) {} + } catch (e){} return supported; }; let supportsPassive = eventListenerOptionsSupported (); - if (supportsPassive) { + if (supportsPassive){ const addEvent = EventTarget.prototype.addEventListener; // jshint ignore:line overwriteAddEvent(addEvent); } @@ -953,8 +960,8 @@ define([ // Array diff // [1,2,3,4,5,6].diff( [3,4,5] ); // => [1, 2, 6] - Array.prototype.diff = function(a) { - return this.filter(function(i) {return a.indexOf(i) < 0;}); + Array.prototype.diff = function(a){ + return this.filter(function(i){return a.indexOf(i) < 0;}); }; /** @@ -962,7 +969,7 @@ define([ * @param p * @returns {Array.} */ - Array.prototype.sortBy = function(p) { + Array.prototype.sortBy = function(p){ return this.slice(0).sort((a,b) => { return (a[p] > b[p]) ? 1 : (a[p] < b[p]) ? -1 : 0; }); @@ -972,10 +979,10 @@ define([ * get hash from string * @returns {number} */ - String.prototype.hashCode = function() { + String.prototype.hashCode = function(){ let hash = 0, i, chr; if (this.length === 0) return hash; - for (i = 0; i < this.length; i++) { + for (i = 0; i < this.length; i++){ chr = this.charCodeAt(i); hash = ((hash << 5) - hash) + chr; hash |= 0; // Convert to 32bit integer @@ -1094,6 +1101,12 @@ define([ if(resultsWrapper){ resultsWrapper.mCustomScrollbar('destroy'); } + + // select2 sets :focus to the select2 field. This is bad! + // we want to keep the focus where it is (e.g. signature table cell) + // the only way to prevent this is to remove the element + // https://stackoverflow.com/questions/17995057/prevent-select2-from-autmatically-focussing-its-search-input-when-dropdown-is-op + $(this).parents('.editableform').find(this).next().find('.select2-selection').remove(); }); }; @@ -1262,7 +1275,7 @@ define([ // line breaks are 2 characters! let newLines = value.match(/(\r\n|\n|\r)/g); let addition = 0; - if (newLines != null) { + if(newLines != null){ addition = newLines.length; } inputLength += addition; @@ -1300,7 +1313,7 @@ define([ * stop browser tab title "blinking" */ let stopTabBlink = function(){ - requirejs(['notification'], function(Notification) { + requirejs(['notification'], function(Notification){ Notification.stopTabBlink(); }); }; @@ -1388,7 +1401,7 @@ define([ */ let ajaxSetup = () => { $.ajaxSetup({ - beforeSend: function(jqXHR, settings) { + beforeSend: function(jqXHR, settings){ // store request URL for later use (e.g. in error messages) jqXHR.url = location.protocol + '//' + location.host + settings.url; @@ -1579,11 +1592,13 @@ define([ }; /** - * get Area ID by security string + * get areaId by security string + * areaId is required as a key for signature names + * if areaId is 0, no signature data is available for this system * @param security * @returns {number} */ - let getAreaIdBySecurity = (security) => { + let getAreaIdBySecurity = security => { let areaId = 0; switch(security){ case 'H': @@ -1646,7 +1661,6 @@ define([ * @returns {string} */ let getStatusInfoForCharacter = (characterData, option) => { - let statusInfo = ''; // character status can not be checked if there are no reference data @@ -1898,20 +1912,17 @@ define([ /** * get signature group information * @param option - * @returns {{}} + * @returns {Array} */ - let getSignatureGroupInfo = function(option){ - - let groupInfo = {}; - - for (let prop in Init.signatureGroups) { - if(Init.signatureGroups.hasOwnProperty(prop)){ - prop = parseInt(prop); - groupInfo[prop] = Init.signatureGroups[prop][option]; - } + let getSignatureGroupOptions = option => { + let options = []; + for(let [key, data] of Object.entries(Init.signatureGroups)){ + options.push({ + value: parseInt(key), + text: data[option] + }); } - - return groupInfo; + return options; }; /** @@ -1943,28 +1954,22 @@ define([ * @param name * @returns {number} */ - let getSignatureTypeIdByName = function(systemData, sigGroupId, name){ - + let getSignatureTypeIdByName = (systemData, sigGroupId, name) => { let signatureTypeId = 0; - let areaId = getAreaIdBySecurity(systemData.security); - if(areaId > 0){ - let signatureNames = getAllSignatureNames(systemData.type.id, areaId, sigGroupId ); + let signatureNames = getAllSignatureNames(systemData.type.id, areaId, sigGroupId); name = name.toLowerCase(); - - for(let prop in signatureNames) { - + for(let prop in signatureNames){ if( signatureNames.hasOwnProperty(prop) && signatureNames[prop].toLowerCase() === name ){ - signatureTypeId = parseInt( prop ); + signatureTypeId = parseInt(prop); break; } } } - return signatureTypeId; }; @@ -1995,9 +2000,8 @@ define([ * to keep the data always up2data * @param mapUserData */ - let setCurrentMapUserData = (mapUserData) => { + let setCurrentMapUserData = mapUserData => { Init.currentMapUserData = mapUserData; - return getCurrentMapUserData(); }; @@ -2006,7 +2010,7 @@ define([ * @param mapId * @returns {boolean} */ - let getCurrentMapUserData = (mapId) => { + let getCurrentMapUserData = mapId => { let currentMapUserData = false; if(Init.currentMapUserData){ @@ -2041,7 +2045,7 @@ define([ * @param mapId * @returns {boolean|int} */ - let getCurrentMapUserDataIndex = (mapId) => { + let getCurrentMapUserDataIndex = mapId => { return getDataIndexByMapId(Init.currentMapUserData, mapId); }; @@ -2049,7 +2053,7 @@ define([ * update cached mapUserData for a single map * @param mapUserData */ - let updateCurrentMapUserData = (mapUserData) => { + let updateCurrentMapUserData = mapUserData => { let mapUserDataIndex = getCurrentMapUserDataIndex( mapUserData.config.id ); if( !Array.isArray(Init.currentMapUserData) ){ @@ -2072,7 +2076,7 @@ define([ * to keep the data always up2data * @param mapData */ - let setCurrentMapData = (mapData) => { + let setCurrentMapData = mapData => { Init.currentMapData = mapData; return getCurrentMapData(); @@ -2083,7 +2087,7 @@ define([ * @param mapId * @returns {boolean} */ - let getCurrentMapData = (mapId) => { + let getCurrentMapData = mapId => { let currentMapData = false; if( mapId === parseInt(mapId, 10) ){ @@ -2107,7 +2111,7 @@ define([ * @param mapId * @returns {boolean|int} */ - let getCurrentMapDataIndex = (mapId) => { + let getCurrentMapDataIndex = mapId => { return getDataIndexByMapId(Init.currentMapData, mapId); }; @@ -2115,7 +2119,7 @@ define([ * update cached mapData for a single map * @param mapData */ - let updateCurrentMapData = (mapData) => { + let updateCurrentMapData = mapData => { let mapDataIndex = getCurrentMapDataIndex( mapData.config.id ); if(mapDataIndex !== false){ @@ -2146,7 +2150,7 @@ define([ * delete map data by mapId from currentMapData * @param mapId */ - let deleteCurrentMapData = (mapId) => { + let deleteCurrentMapData = mapId => { Init.currentMapData = Init.currentMapData.filter((mapData) => { return (mapData.config.id !== mapId); }); @@ -2176,7 +2180,7 @@ define([ * @param option * @returns {boolean} */ - let getCurrentUserInfo = (option) => { + let getCurrentUserInfo = option => { let currentUserData = getCurrentUserData(); let userInfo = false; @@ -2297,7 +2301,7 @@ define([ characterData = characterData.filter(function(tmpCharacterData, index, allData){ let keepData = true; - for(let tmpJump in data) { + for(let tmpJump in data){ // just scan systems with > jumps than current system if(tmpJump > jumps){ let filteredFinalData = data[tmpJump].filter(filterFinalCharData, tmpCharacterData); @@ -2325,7 +2329,7 @@ define([ } jumps++; - for(let prop in nearBySystems.tree) { + for(let prop in nearBySystems.tree){ if( nearBySystems.tree.hasOwnProperty(prop) ){ let tmpSystemData = nearBySystems.tree[prop]; data = getNearByCharacterData(tmpSystemData, userData, jumps, data); @@ -2374,7 +2378,7 @@ define([ responseData.systemData && responseData.systemData.length > 0 ){ - for (let j = 0; j < responseData.systemData.length; j++) { + for (let j = 0; j < responseData.systemData.length; j++){ showNotify({title: this.description, text: 'System: ' + responseData.systemData[j].name, type: 'success'}); } } @@ -2388,7 +2392,7 @@ define([ } } - }).fail(function( jqXHR, status, error) { + }).fail(function( jqXHR, status, error){ let reason = status + ' ' + error; showNotify({title: jqXHR.status + ': ' + this.description, text: reason, type: 'warning'}); }); @@ -2452,7 +2456,7 @@ define([ }else{ showNotify({title: 'Open window in client', text: 'Check your EVE client', type: 'success'}); } - }).fail(function( jqXHR, status, error) { + }).fail(function( jqXHR, status, error){ let reason = status + ' ' + error; showNotify({title: jqXHR.status + ': openWindow', text: reason, type: 'error'}); }); @@ -2585,9 +2589,9 @@ define([ element.off(eventName).on(eventName, function(e){ clicks++; - if (clicks === 1) { + if (clicks === 1){ setTimeout(element => { - if(clicks === 1) { + if(clicks === 1){ singleClickCallback.call(element, e); } else { doubleClickCallback.call(element, e); @@ -2666,7 +2670,7 @@ define([ if(data.reroute){ redirect(data.reroute, ['logout']); } - }).fail(function( jqXHR, status, error) { + }).fail(function( jqXHR, status, error){ let reason = status + ' ' + error; showNotify({title: jqXHR.status + ': logout', text: reason, type: 'error'}); }); @@ -2709,13 +2713,13 @@ define([ let name = cname + '='; let ca = document.cookie.split(';'); - for(let i = 0; i Username

- + {{userData.name}}

@@ -68,7 +68,7 @@

- + {{#userData.email}} {{userData.email}} {{/userData.email}} diff --git a/public/templates/dialog/signature_reader.html b/public/templates/dialog/signature_reader.html index dc32d37b..766b0345 100644 --- a/public/templates/dialog/signature_reader.html +++ b/public/templates/dialog/signature_reader.html @@ -1,14 +1,14 @@

-
+
- Copy and paste signatures from your probe scanning window. - Hit ctrl + c (copy) - then ctrl + v (paste). This tool can add and update signatures. + Copy and paste signatures from your probe scanning window.
+ Hit ctrl + c (copy) then ctrl + v (paste). + This tool can add and update signatures.
@@ -17,7 +17,7 @@
-
+
diff --git a/public/templates/modules/system_info.html b/public/templates/modules/system_info.html index f76a71d9..6fcb53a7 100644 --- a/public/templates/modules/system_info.html +++ b/public/templates/modules/system_info.html @@ -37,7 +37,7 @@ {{! info text ================================================================================================ }}
- +
diff --git a/public/templates/tooltip/character_info.html b/public/templates/tooltip/character_info.html index c9ddac41..ea786333 100644 --- a/public/templates/tooltip/character_info.html +++ b/public/templates/tooltip/character_info.html @@ -1,31 +1,31 @@ -
- - - -
- - - {{created.character.name}} -
- - -
- {{createdTime}} -
- -
 
- - - -
- - - {{updated.character.name}} -
- - -
- {{updatedTime}} -
+
+
+ + + + + + + + + + + + +
+ {{created.character.name}} + + + {{created.character.name}} + +
 {{createdTime}}
+
+ {{updated.character.name}} + + + {{updated.character.name}} + +
 {{updatedTime}}
+
diff --git a/public/templates/tooltip/character_switch.html b/public/templates/tooltip/character_switch.html index 4a40a1f6..4521ac41 100644 --- a/public/templates/tooltip/character_switch.html +++ b/public/templates/tooltip/character_switch.html @@ -1,16 +1,17 @@ - - +
+
+ {{#otherCharacters}} {{/otherCharacters}} @@ -24,5 +25,6 @@ - -
{{name}} {{name}} - - - - - - + + + + + +
\ No newline at end of file +
+ \ No newline at end of file diff --git a/sass/bootstrap/_wells.scss b/sass/bootstrap/_wells.scss index d530d9ee..337b077d 100644 --- a/sass/bootstrap/_wells.scss +++ b/sass/bootstrap/_wells.scss @@ -29,6 +29,6 @@ border-radius: $border-radius-large; } .well-sm { - padding: 9px; + padding: 7px; border-radius: $border-radius-small; } diff --git a/sass/layout/_animation.scss b/sass/layout/_animation.scss index 67206802..52628042 100644 --- a/sass/layout/_animation.scss +++ b/sass/layout/_animation.scss @@ -69,6 +69,16 @@ } } +.pf-animation-pulse-danger{ + @include animation( pulseBackgroundDanger 1s 1 ); + @include animation-timing-function( cubic-bezier(0.53, -0.03, 0.68, 0.38) ); + + .sorting_1{ + @include animation( pulseBackgroundDangerActive 1s 1 ); + @include animation-timing-function( cubic-bezier(0.53, -0.03, 0.68, 0.38) ); + } +} + @include keyframes(pulseBackgroundSuccess){ 0% {} 10% { @@ -103,6 +113,23 @@ 100% {} }; +@include keyframes(pulseBackgroundDanger){ + 0% {} + 10% { + background-color: $red; + color: $gray-darker; + } + 100% {} +}; +@include keyframes(pulseBackgroundDangerActive){ + 0% {} + 10% { + background-color: darken($red, 5%); + color: $gray-darker; + } + 100% {} +}; + // rotate ========================================================================================= .pf-animate-rotate{ @include transition( all 0.08s linear ); diff --git a/sass/layout/_main.scss b/sass/layout/_main.scss index 6aab7b5e..88f8851e 100644 --- a/sass/layout/_main.scss +++ b/sass/layout/_main.scss @@ -167,6 +167,11 @@ a{ // form fields custom styles ====================================================================== .editable-input{ + + .pf-editable-name{ + text-transform: uppercase; + } + optgroup[label]{ background-color: $gray; color: $gray-light; @@ -292,11 +297,23 @@ select:active, select:hover { // "special" column styles td{ - &:focus-within{ + + &.editable-disabled:focus{ + // disabled xEditable td´s should not get focus style + // -> "pointer-events = none" would be nicer but does not work because "mousedown" should work -> select row function + outline: none; + background-color: transparent; + } + + &.editable-click:not(.editable-disabled){ + cursor: pointer; + } + + &:focus, &.editable-open{ // set td as :focus even is td content is focused outline: 1px solid $orange-dark; - background-color: rgba($orange-dark, .08) !important; outline-offset: -1px; + background-color: rgba($orange-dark, .08); } > .fa-circle{ @@ -691,7 +708,7 @@ table{ top: 0; left: 0; border-style: solid; - border-width: 0 0 8px 8px; + border-width: 0 0 9px 9px; border-color: transparent transparent transparent $gray; cursor: ns-resize; } @@ -1340,18 +1357,6 @@ code { } } -// character switch popover -#pf-head-character-switch{ - td{ - border: none; - - &:first-child + td{ - // 2nd column - padding: 0 5px; - } - } -} - // footer (map) =================================================================================== #pf-footer{ position: absolute; diff --git a/sass/layout/_popover.scss b/sass/layout/_popover.scss index 6a97f867..9408f395 100644 --- a/sass/layout/_popover.scss +++ b/sass/layout/_popover.scss @@ -20,7 +20,7 @@ // image in popover img{ - @include border-radius(5px); + @include border-radius(3px); } h4{ @@ -103,4 +103,20 @@ } } } +} + +// character popover -------------------------------------------------------------------------------------------------- +.pf-popover-character{ + .table>tbody>tr>td{ + border: none; + + &:first-child + td{ + // 2nd column + padding: 0 5px; + } + } + + .well{ + margin-bottom: 0; // overwrite default + } } \ No newline at end of file diff --git a/sass/layout/_system-info.scss b/sass/layout/_system-info.scss index d57feddf..822d6c8a 100644 --- a/sass/layout/_system-info.scss +++ b/sass/layout/_system-info.scss @@ -31,8 +31,8 @@ } } -// signature table module ================================================== -.pf-signature-table-module{ +// system signature module ================================================== +.pf-system-signature-module{ .progress-label-right{ margin-right: 20px; @@ -61,17 +61,8 @@ .pf-sig-table{ font-size: 10px; - .pf-sig-table-edit-desc-text{ - white-space: normal; - - &.editable-empty{ - border-bottom: none; - @extend .pf-dialog-icon-button; - } - } - - .fa-plus{ - @extend .pf-dialog-icon-button; + .pf-sig-table-edit-name-input{ + text-transform: uppercase; } // textarea field @@ -95,8 +86,8 @@ padding: 3px 6px; } - .pf-sig-table-edit-name-input{ - text-transform: uppercase; + .fa-plus{ + @extend .pf-dialog-icon-button; } } diff --git a/sass/library/data-tables/_dataTables-fontAwesome.scss b/sass/library/data-tables/_dataTables-fontAwesome.scss index 952faf49..aa8e5960 100644 --- a/sass/library/data-tables/_dataTables-fontAwesome.scss +++ b/sass/library/data-tables/_dataTables-fontAwesome.scss @@ -24,15 +24,16 @@ table.dataTable thead th.sorting_desc:after { table.dataTable thead th.sorting:after { content: "\f0dc"; - color: $green; font-size: 0.8em; margin-top: -8px; } table.dataTable thead th.sorting_asc:after { content: "\f0de"; + color: $green; } table.dataTable thead th.sorting_desc:after { content: "\f0dd"; + color: $green; } div.dataTables_scrollBody table.dataTable thead th.sorting:after, diff --git a/sass/library/x-editable/_bootstrap-editable.scss b/sass/library/x-editable/_bootstrap-editable.scss index 527084dc..1c2da446 100644 --- a/sass/library/x-editable/_bootstrap-editable.scss +++ b/sass/library/x-editable/_bootstrap-editable.scss @@ -57,11 +57,10 @@ height: 25px; width: auto; min-width: 25px; - text-align: center; - - i { - margin-top: 10px; - } + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; } .editable-inline .editableform-loading {